inherit "/cmd/std/command_driver.c";




int szansa=random(100);

void trafienie(object gracz, object cel, string jak);
void odpoczynek(object gracz);


seria(string str)
{
    mixed tmp;
    object sztylet1,sztylet2;
    object *kogo;
    sztylet1=TP->query_weapon(W_RIGHT);
    sztylet2=TP->query_weapon(W_LEFT);
    if ( !sztylet1 || (sztylet1->query_wt() != W_KNIFE))
            {            
write("Potrzebujesz dwoch sztyletow aby wykonac ten cios!\n");
            return 1;
            }        
if ( !sztylet2 || (sztylet2->query_wt() != W_KNIFE))
            {      
      write("Potrzebujesz dwoch sztyletow aby wykonac ten cios!\n");     
       return 1;  
          }   
if (!str)       
  {      
  if ( TP->query_attack()) kogo = ({TP->query_attack()});
        }    
else if (str) kogo = parse_this(str,"%l:"+PL_BIE);
    if ( TP->query_cios()==1 )
            {          
  write("Musisz chwile poczekac by znow zadac swoj cios\n");  
          return 1;            
} 
    if ( TP->query_cios()==2 )
          {       
     write("Przeciez juz przygotowywujesz sie do wykonania serii morderczych "+
                  "ciosow.\n");       
     return 1;
            }         
  if (!sizeof(kogo))  
      {         
   write("Kogo chcialbys zaatakowac??\n");  
          return 1; 
       }   
 if (sizeof (kogo) > 1 ) 
   {	
notify_fail ("Nie uda ci sie uderzyc kilku przeciwnikow na raz. Musisz " +
		     "zdecydowac sie na jednego.\n");	
return 0;   
 }       
 if (tmp = kogo[0]->query_prop (OBJ_M_NO_ATTACK) ) 
   {
	if (stringp (tmp))	
    notify_fail (tmp);
	else	    
notify_fail ("Cos mowi ci, ze atakowanie " + kogo[0]->query_imie(this_player(), PL_DOP) + " nie byloby wlasciwe.\n");	

return 0;
    }	       
 if (tmp = environment(kogo[0])->query_prop(ROOM_M_NO_ATTACK) )  
  {	
if (stringp (tmp))	    notify_fail (tmp);
	else	
    notify_fail ("Cos mowi ci, ze atakowanie kogos w tym miejscu nie " +	
		 "byloby wlasciwe.\n");	
return 0;    
}  
  write  ("Przygotowujesz sie by zaatakowac " + kogo[0]->query_imie(this_player(),PL_BIE) 
+ " szybka seria ciec swoich sztyletow.\n"); 
   TP->attack_object(kogo[0]);  
      set_alarm(1.0,0.0, "trafienie", this_player(), kogo[0]); 
   TP->set_cios(2);	
    return 1;
}
void
trafienie (object gracz, object cel, string jak)
{  
  object room = environment(gracz); 
   int suma = 0;
    int sila_specjala=0;
    int pen = 0; 
   //suma = return_pen(TP,cel,100); 
   // TA FUNKCJA WYLICZA PENA!
   sila_specjala=(gracz->query_skill(3)*500+random(10000));


   if (present(cel,room)) 
   {   

/*
gracz->catch_msg(QCIMIE(cel,PL_MIA)+" uciekl ci wiec nie mozesz zadac mu seri morderczych "+                
                 "ciosow swoimi sztyletami.\n");        
	gracz->set_cios(0);
 return;  
    */
pen = (TP->query_skill(3)*20+TP->query_stat(1)+TP->query_stat(3)*30-cel->query_stat(2)/2);
  switch(pen)      
  {      
      case 0..10:           

 jak = "ledwo muskajac";           
 break;    
            case 11..200:     
      
 jak = "nieznacznie raniac";  
          break;
            case 201..400:
            jak = "bardzo lekko raniac";
            break;
                case 401..600:
            jak = "lekko raniac";
            break;
                case 601..1000:
            jak = "raniac";
            break;
                case 1001..1200:
            jak = "ciezko raniac";
            break;
                case 1201..1500:
            jak = "bardzo ciezko raniac";
            break;
                case 1501..1800:
            jak = "masakrujac";
            break;
            default:
            jak = "wyciagajac flaki na wierzch";
            
        }
//DAMAGE

   cel->hit_me(pen, W_IMPALE, 1000, gracz, -1 );

//OPIS GDY ZABIL CIOSEM
   if (cel->query_hp()<1)
    {
gracz->catch_msg("Zauwazasz, ze twoj przeciwnik podczas wykonywania swoich ciosow "+
                 "popelnil blad i odslonil sie pozwalajac ci zadac smiertelny cios. "+
                 "Niewiele myslac wyprowadzasz szybka serie ciosowi trafiajac "+
                 QIMIE(cel,PL_NAR)+" swoimi sztyletami w tetnice szyjna. Widzisz jak twoj przeciwnik "+
                 "osuwa sie na ziemie, a obok ciala pojawia sie kaluza krwi.\n");
   tell_room(room,""+QCIMIE(gracz,PL_MIA)+" dostrzegajac blad w obronie swego przeciwnika, wyprowadza szybka "+
                 "serie niebezpiecznych ciosow swoimi sztyletami w kierunku "+
              QIMIE(cel,PL_BIE)+" przecinajac "+cel->koncowka("mu","jej")+" tetnice "+
                "szyjna. "+QCIMIE(cel,PL_MIA)+" ostatkiem sil trzyma sie na nogach, a po "+
              cel->koncowka("jego","jej")+" ciele zaczyna splywac krew. Po chwili "+
              QIMIE(cel,PL_MIA)+" pada bezwladnie na ziemie pozostawiajac wokol siebie kaluza "+
              "krwi.\n",({gracz,cel}));
  cel->catch_msg("Walczac z "+QIMIE(gracz,PL_NAR)+" popelniasz krytyczny blad i odlosniasz "+
                 "sie. Twoj przeciwnik szybko zareagowal na ta sytuacje i wyprowadzil "+
                 "szybka serie ciosow swoimi sztyletami skierowana w ciebie. Nagle uswiadamiasz "+
                 "sobie, ze jego cios przecial ci tetnice szyjna.\n"+
                 "Robi ci sie ciemno przed oczami, padasz na ziemie.\n");
   if(szansa<10)
	gracz->heal_hp(pen/2);
                 cel->set_hp(0);
                 cel->do_die(gracz);
    gracz->set_cios(1);
    set_alarm(25.0,0.0, "odpoczynek", gracz);
    return;
    }
   
    
//OPISY GDY NIE ZABIL
gracz->catch_msg("Zauwazasz schematycznosc ruchow swojego przeciwnika i jestes w stanie "+
                 "przewidziec kazde "+cel->koncowka("jego","jej")+" nastepne posuniecie. Wykonujac szybki "+
                 "piruet, ktorego nie spodziewa sie twoj wrog wykonujesz serie bardzo szybkich pchniec "+
                 "swoimi sztyletami "+jak+" "+QIMIE(cel,PL_BIE)+" w tulow.\n");
    cel->catch_msg(QCIMIE(gracz,PL_MIA)+" przypatruje ci sie przez pewien moment, i nagle "+
                 "wykonuje piruet, ktorego ty sie nigdy bys sie nie spodziew"+cel->koncowka("al","ala")+
                 "atakuje ciebie szybka seria swoich sztyletow "+jak+" ciebie w tulow.\n");
    tell_room(room,""+QCIMIE(gracz,PL_MIA)+" przypatruje sie przez chwile "+QIMIE(cel,PL_CEL)+
                   " i nagle swoich szybkim piruetem z szyderczym usmiechem na ustach "+
                   "wykonuje szybka serie swoimi sztyletami "+jak+" "+
                   cel->koncowka("swego","swoja")+" przeciwni"+cel->koncowka("ka","czke")+
                   " w tulow.\n", ({gracz,cel}));
    
  // czas=3.0;
    gracz->set_cios(1);
    set_alarm(10.0,0.0, "odpoczynek", gracz);
  }  
else
{
TP->set_cios(0);
gracz->set_cios(0);
gracz->catch_msg("Twoj wrog uciekl ci.\n");
}

}

void
odpoczynek(object gracz)
{
    gracz->catch_msg("Jestes gotowy do zadania kolejnej serii morderczych ciosow.\n");
    TP->set_cios(0);
}
