inherit "/cmd/std/command_driver.c";

#include "../balans.h"

int specus;
int szansa=random(100);

void
trafienie (object gracz, object cel, string jak)
{  
    object room = environment(gracz); 
    int pen = 0; 
    int hit = 0; 

    pen = query_pen(gracz, cel);
    hit = query_hit(gracz, cel);    

    if (!present(cel,room)) 
    {    
        TP->catch_mng(QCIMIE(cel,PL_MIA)+" uciekl ci wiec nie mozesz " +
            "zadac mu seri morderczych ciosow swoimi sztyletami.\n");        
        TP->set_cios(0);
        return;  
    }      
  
    switch(pen)      
    {      
        case 0..10      : jak = "zaledwie muskajac";            break;    
        case 11..200    : jak = "muskajac";                     break;
        case 201..400   : jak = "pozostawiajac widoczne slady"; break;
        case 401..600   : jak = "lekko raniac";                 break;
        case 601..1000  : jak = "raniac";                       break;
        case 1001..1200 : jak = "powaznie raniac";              break;
        case 1201..1500 : jak = "bardzo ciezko raniac";         break;
        case 1501..1800 : jak = "masakrujac";                   break;
        default         : jak = "prawie zabijajac";
            
    }
//DAMAGE
    cel->hit_me(pen, W_SLASH, hit, gracz, -1 );

//OPIS GDY ZABIL CIOSEM
    if (cel->query_hp()<1)
    {
        gracz->catch_msg("Zauwazasz luke w obronie swego przeciwnika - " +
               QIMIE(cel,PL_NAR)+" i szybko ja wykorzystujesz. Tnies na " +
               "oslep celujac w nieosloniete cialo wroga. Po chwili " +
               "widzisz efekty - martwe cialo pod twymi stopami.\n");
               
        cel->catch_msg("Walczac z "+QIMIE(gracz,PL_NAR)+" popelniasz " +
             "krytyczny blad i odslaniasz sie. Przeciwnik bezlitosnie " +
             "wykorzystuje ta sytuacje tnac w twe nieosloniete cialo. " +
             "Padasz martw"+cel->koncowka("y","a")+" u stop " +
             QIMIE(gracz,PL_DOP)+".\n");
               
        tell_room(room,""+QCIMIE(gracz,PL_MIA)+" zauwaza luke w obronie " +
                  "swego przeciwnika - " + QIMIE(cel,PL_BIE) + " i szybko " +
                  "ja wykorzystuje. Tnie na oslep celujac w nieosloniete " +
                  "cialo wroga. Po chwili widac efekty tej pracy - martwe " +
                  "cialo lezy u stop "+QCIMIE(gracz,PL_DOP)+".\n",({gracz,cel}));
                 
         cel->set_hp(0);
         cel->do_die(gracz);
         specus=1;
         set_alarm(30.0,0.0, "odpoczynek", gracz);
         return;
    }
    
//OPISY GDY NIE ZABIL
    gracz->catch_msg("Celujac w nieosloniete cialo " + QIMIE(cel,PL_DOP) +
           " wyprowadzasz szybka kontre swoimi sztyletami "+ jak +
           " przeciwnika.\n");
           
    cel->catch_msg(QCIMIE(gracz,PL_MIA)+" celujac w twe nieosloniete cialo " +
         "wyprowadza szybka kontre swoimi sztyletami "+jak+".\n");
         
    tell_room(room,""+QCIMIE(gracz,PL_MIA)+" celujac w nieoslonite cialo " + 
              QIMIE(cel,PL_DOP) + " wyprowadza szybka kontre swoimi " +
              "sztyletami "+jak+".\n", ({gracz,cel}));
    
// czas=3.0;
    specus=1;
    set_alarm(20.0,0.0, "odpoczynek", gracz);

}

void
odpoczynek(object gracz)
{
    gracz->catch_msg("Jestes gotowy do zadania kolejnej serii morderczych ciosow.\n");
    specus=0;
}

tnij(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 ( specus==1 )
    {          
        write("Musisz chwile poczekac by znow zadac swoj cios\n");  
        return 1;            
    } 
    
    if ( specus==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(TP, 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("Zaczynasz szukac luki w obronie " + 
          kogo[0]->query_imie(TP,PL_DOP) + ".\n"); 
    TP->attack_object(kogo[0]); 
    set_alarm(1.0,0.0, "trafienie", TP, kogo[0]); 
    specus=2;    
    return 1;
}
