inherit "/d/Imperium/std/weapon";
object wielder;
#include <wa_types.h>
#include <stdproperties.h>
#include <macros.h>
#include <formulas.h>
#include <filter_funs.h>
#include <options.h>
#define TP              this_player()
#define TO              this_object()
void
create_weapon()
{    
   ustaw_nazwe( ({ "halabarda", "halabardy", "halabardzie", "halabarde", "halabarda",
                   "halabardzie" }), ({ "halabardy", "halabard", "halabardom",
                   "halabardy", "halabardami", "halabardach" }), PL_ZENSKI );
                
    dodaj_przym("zielonkawy","zielonkawi");
    dodaj_przym("obusieczny","obusieczni");
    set_long("Dluga i waska halabarda. Jej ostrze ma bardzo dziwny, zielonkawy " +
             "kolor co sprawia, ze nie jest podobna do zadnej innej broni jak " +
             "zdazylo ci sie widziec. Posiada ostrza po obu stronach co napewno " +
             "pomaga podczas walki. Mimo dosc masywnego wygladu jest ona niewiarygodnie " +
             "lekka.\n");
             
    set_likely_dull(1);
    add_prop(OBJ_M_NO_BUY, 1);
    
    add_prop(OBJ_I_IS_MAGIC_WEAPON, 1);
    
    add_prop(MAGIC_AM_MAGIC, ({ 40, "enchantment"}));
    set_hit(60);
    set_pen(36);
    set_wt(W_POLEARM);
    set_dt(W_SLASH | W_IMPALE);
    set_hands(W_BOTH);
    add_prop(OBJ_I_WEIGHT, 1500);
    add_prop(OBJ_I_VOLUME, 1000);
    add_prop(OBJ_I_VALUE, 1);
}    
mixed
wield(object what)
{  
    if (TP->query_stat(5) < 70)
    {
        return "W glowie czujesz potworny bol i nie udaje ci sie utrzymac " + 
               "halabardy w rekach.\n";
    }
   set_alarm(0.1,0.0,"add_wielder");
   write("Ostrze rozblyska zielenia gdy dobywasz tej wspanialej halabardy.\n");
   say("Gdy "+ QCIMIE(this_player(),PL_MIA) +" dobywa swej halabardy " +
       "jej ostrze rozblyska na jasnozielono.\n");
   return 1;
}
void
add_wielder()
{
    wielder = environment(this_object());
}
object
query_wielder()
{
    return wielder;
}    
mixed
unwield(object what)
{
   set_this_player(wielder);
   if(environment(this_object())!=wielder) 
   return 1;
   write("Swiatlo gasnie gdy opuszczasz swoja wspaniala halabarde.\n");
   say("Swiatlo halabardy gasnie gdy "+ (QCIMIE(this_player(),PL_DOP)+" opuszcza ja.\n"));     
   return 1;
}
public int
did_hit( int aid, string hdesc, int phurt, object enemy, int dt, int phit, int
dam, int tohit, mixed def_ob, object armour)
{
        int pen;
        int r = random(100);
        
        if ( r < 20 )
        
        {
                
        pen = (((TP->query_stat(5))));
        
        if(TP->query_stat(5) > 80)
        
        {
                enemy->hit_me(pen, W_IMPALE, 150, TP);
                
                TP->catch_msg("Nagle tracisz panowanie nad halabarda i wgryza sie ona dziko " +
                              "w cialo twego wroga.\n");
                
                enemy->catch_msg(""+QCIMIE(TP,PL_MIA)+" nagle, bazwiednie wbija swa halabarde w twe cialo.\n");
                        
                tell_room(environment(TP),""+QCIMIE(TP,PL_MIA)+" nagle, bezwiednie " +
                       "wbija halabarde w cialo "+QIMIE(enemy,PL_DOP)+" zadajac okropne obrazenia!\n",({TP,enemy}));
                        
        }
 
        ::did_hit(aid,hdesc,phurt,enemy,dt,phit,dam,tohit,def_ob,armour);
        }
        
}
