inherit "/std/weapon";
#include <wa_types.h>
#include <stdproperties.h>
#include <macros.h>
#include <formulas.h>
#include <filter_funs.h>
#include <options.h>
#define LIVE_I_NO_FLESH	"_live_i_no_flesh"
object wielder;
create_weapon()
{ dodaj_nazwy( ({ "kostur", "kostura", "kosturowi", "kostur", "kosturem",
                   "kosturze" }), ({ "kostury", "kosturow", "kosturom",
                   "kostury", "kosturami", "kosturach" }), PL_MESKI_NOS_NZYW );
  ustaw_nazwe( ({ "kostur", "kostura", "kosturowi",
                   "kostur", "kosturem", "kosturze"}),
                  ({"kostury", "kosturow", "kosturem",
                    "kostury", "kosturami", "kosturach"}), PL_MESKI_NOS_NZYW );
                    
    dodaj_przym("kosciany","koscisci");
    dodaj_przym("blady","bladzi");
    
set_long("Dluga laska zrobiona z kosci, na czubku widzisz ludzka czaszke " +
         "ktora w oczy ma wetkniete dwa wielkie rubiny. Na trzonie sa " +   
         "wyryte starodawne runy swicace bladym, niebiesakwym swiatlem. " +
         "Bron emanuje straszliwym zimnem i zla energia.\n");
         
add_item("rubiny", "Piekne kamienie o kolorze krwi. Wydaja sie swiecic " +
         "wlasnym magicznym blaskiem.\n");
add_item("czaszke", "Ludzka czaszka przymocowana do kostura.\n");
add_item("runy", "Starozytne runy, moze sprobujesz je odczytac?.\n");
add_cmd_item("runy", "odczytaj",
             "Udaje ci sie odcyfrowac runy, mowia one : \n" +
             "Smierc jest wszedzie i kurwa zawsze bedzie.\n");    
             
    set_hit(60);
    set_pen(60);
    add_prop(OBJ_I_VOLUME, 3000);
    add_prop(OBJ_I_WEIGHT, 4500);
    add_prop(OBJ_I_VALUE, F_VALUE_WEAPON(60,60) + 2000);
    set_likely_dull(0);
    set_dt(W_SLASH|W_IMPALE|W_BLUDGEON);
    set_wt(W_POLEARM);
    set_hands(W_BOTH);
    add_prop(OBJ_M_NO_BUY, 1);
    add_prop(OBJ_I_IS_MAGIC_WEAPON, 1);
    add_prop(MAGIC_AM_MAGIC, ({ 100, "enchantment"}));
    add_prop(MAGIC_AM_ID_INFO,({"Wow.\n",15}));
    set_wf(this_object());
    set_alarm(0.5,0.0,"add_wielder");
}
mixed
wield(object what)
{
   set_alarm(0.1,0.0,"add_wielder");
 write("Runy wybuchaja niesamowita paleta kolorowych rozblyskow gdy dobywasz " +
       "kostura. Po chwili lekko przygasaja, ale moc ktora bije od tej "+
       "niesamowitej broni pozostaje.\n");
   say("Runy zdobiace kostur rozblyskaja niesamowitym blaskiem, gdy "+
       QCIMIE(this_player(),PL_MIA) + " dobywa go.\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("Pustka. To jest, co odczowasz gdy opuszczasz swa bron.\n");
   say(QCIMIE(this_player(),PL_MIA)+" opuszcza kostur z wyraznym niesmakiem, "+
         "a runy na tej niesamowitej broni przestaja sie mienic.\n");     
   return 1;
}
static void
tell_watcher(string str, object enemy)
{
   object me,*ob;
   int i;
   me = wielder;
   ob = FILTER_LIVE(all_inventory(environment(me))) - ({ me });
   ob -= ({ enemy });
   for (i = 0; i < sizeof(ob); i++)
   if (!ob[i]->query_option(OPT_BLOOD) && CAN_SEE_IN_ROOM(ob[i]))
      {
      if (CAN_SEE(ob[i], me))
         ob[i]->catch_msg(str);
      else
         tell_object(ob[i], "Ktos trafil kogos.\n");
   }
}
public mixed
did_hit(int aid,string hdesc,int phurt,object enemy,int dt,int phit,int dam,int tohit,mixed def_ob,object armour)
{
   object blinding;
   wielder = query_wielded();
   if(enemy->query_prop(LIVE_I_NO_FLESH))
      return ::did_hit(aid,hdesc,phurt,enemy,dt,phit,dam,tohit,def_ob,armour);
   switch(phurt)
   {
/*  
case -1:
      wielder->catch_msg("Wykonujesz potezny zamach " + short(PL_NAR) + 
          ", celujac w " + QIMIE(enemy,PL_BIE) +
          ", ale pudlujesz szpetnie.\n");
      enemy->catch_msg(QCIMIE(wielder,PL_MIA) + " wykonuje potezny zamach " +
          short(PL_NAR) + ", celujac w ciebie, ale pudluje szpetnie.\n");
      tell_watcher(QCIMIE(wielder,PL_MIA) + " wykonuje potezny zamach " +
          short(PL_NAR) + ", celujac w "+
          QIMIE(enemy,PL_BIE)+", ale pudluje szpetnie.\n", enemy);
      break;
*/
      case -1:
      case 0:
      return ::did_hit(aid,hdesc,phurt,enemy,dt,phit,dam,tohit,def_ob,armour);
      case 1..4:
      wielder->catch_msg("Twarz " + QIMIE(enemy,PL_DOP) + " wykrzywia sie w "+
      "grymasie bolu gdy jego " + hdesc + " pokrywa sie zielona mgla ktora "+
      "wysysa energie zyciowa.\n");
      enemy-> catch_msg(QCIMIE(wielder,PL_MIA) + " uderza cie " +
      "czaszka, zatknieta na czubku kostura. Nagle dookola ciebie " +
      "pojawia sie zielona mgla i wysysa z ciebie energie.\n");
      tell_watcher("Twarz " + QIMIE(enemy,PL_DOP) + " wykrzywia sie " + 
      "gdy " + QCIMIE(wielder,PL_MIA) + " trafia go czaszka zatknieta na kosturze. " +
      "Nagle niewiadomo skada pojawia sie zielona mgla i " +
      "otacza " + QIMIE(enemy,PL_BIE) + " wysysajac " +
      "energie zyciowa ofiary.\n",enemy);
      break;
case 5..9:
      wielder->catch_msg("Uderzasz " + QIMIE(enemy,PL_BIE) + " i " +
      "widzisz jak miejsce w ktore trafiles puchnie.\n");
      enemy->catch_msg(QCIMIE(wielder,PL_MIA) + " uderza cie " +
      "na tyle mocno, ze uderzone miejsce dretwieje na chwile a potem " +
      "wybucha tepym, gryzacym bolem.\n");
      tell_watcher(QCIMIE(wielder,PL_MIA) + " uderza" + "" +
      QIMIE(enemy,PL_BIE) + " tak mocno, ze trafione miejsce " +
      "momentalnie puchnie i oblewa sie sincem.\n",enemy);
      break;
case 10..19:
      wielder->catch_msg("Mocno ranisz uderzajac " +
      "" + QIMIE(enemy,PL_BIE) + " w " + hdesc + ". Wylew podskorny " +
      "ktory wywolales rozlewa sie w postaci ogromnego sinca.\n");
      enemy->catch_msg(QCIMIE(wielder,PL_MIA) + " mocno rani cie " +
      "podstepnym uderzeniem " + short(PL_DOP) + ".\n");
      tell_watcher(QCIMIE(wielder,PL_MIA) + " mocno rani " + QIMIE(enemy,PL_BIE) + " " +
      "podstepnym uderzeniem " + short(PL_DOP) + ".\n",enemy);
      break;
case 20..34:
      wielder->catch_msg("Wykonujesz potezny cios " +
      short(PL_NAR) + ", raniac " + QIMIE(enemy,PL_BIE) +
      " w " + hdesc + ". Czujesz, ze twa bron zaczyna pulsowac.\n");
      enemy->catch_msg(QCIMIE(wielder,PL_MIA) + " wykonuje potezny cios " +
      short(PL_NAR) + ", raniac cie w " + hdesc +".\n");
      tell_watcher(QCIMIE(wielder,PL_MIA) + " wykonuje potezny cios " +
      short(PL_NAR) + ", raniac " +
      QIMIE(enemy,PL_BIE) + " w " + hdesc + ".\n",enemy);
      break;
case 35..49:
      wielder->catch_msg("Runy na twej wspanialej broni rozblyskaja mocniej " +         
      "gdy czaszka osadzona na czubku zaglebia swoje straszliwe " +        
      "zeby w ciele " + QIMIE(enemy,PL_DOP) + " wyrywajac kawalki miesa.\n");
      enemy->catch_msg("Czaszka na koncu " + short(PL_DOP) + " ozywa " +
      "i zaglebia swe okropne zeby w twoim ciele. Bol wybucha ci w " +
      "glowie i cale cialo sztywnieje na moment. Widzisz rozrywane tkanki i " +
      "krew, twoja wlasna krew, ktora rozlewa sie strumieniem.\n"); 
      tell_watcher("Nagle czaszka na koncu " + short(PL_DOP) + " ozywa" +
      "i wpija sie swymi zebiskami " +
      "w cialo " + QIMIE(enemy,PL_DOP) + " wyrywajac kawalki " +
      "miesa. Rozrywana tkanka wydaje nieprzyjemny odglos, a na widok " +
      "fontanny krwi i osocza wylewajacych sie z rany twoj zoladek nieprzyjemnie " +
      "sie kurczy.\n",enemy);
      break;
case 50..75:
      wielder->catch_msg("Potezne uderzenie twojego " + short(PL_DOP) +
      " dosiega " + QIMIE(enemy,PL_DOP) + ", zostawiajac krwawe bruzdy " +
      "na " + enemy->koncowka("jego","jej") + " ciele. " + 
      "Rubiny w czaszce rozbyskuja silnym czerwonym blaskiem.\n");
      enemy->catch_msg("Potezne uderzenie " + short(PL_DOP) + " " +
      QIMIE(wielder,PL_DOP) + " dosiega cie, " + 
      "zostawiajac krwawe bruzdy na twym ciele. " +
      "To chyba zludzenie ale wydaje ci sie, ze rubiny w oczach " +
      "czaszki, osadzonej na koncu kostura rozbyskuja szkarlatem.\n");
      tell_watcher("Potezne uderzenie " + short(PL_DOP) + " " +
      QCIMIE(wielder,PL_DOP) + " dosiega " + QIMIE(enemy,PL_DOP) + ", " +
      "zostawiajac krwawe bruzdy na " + enemy->koncowka("jego","jej") + " " +
      "ciele. Oczy na koncu rzeczy ktora wlasnie spowodowala taka " +
      "krzywde rozblyskuja szkarlatem.\n",enemy);
      break;
case 76..99:
      wielder->catch_msg("Masakrujesz " + QIMIE(enemy,PL_BIE) + " "
      + short(PL_NAR) + ", trafiajac w " + hdesc + ". W twej glowie " +
      "zostala juz tylko jedna mysl : SMIERC!!!.\n"); 
      enemy->catch_msg(QIMIE(wielder,PL_MIA) + " masakruje " +
      "cie " + short(PL_NAR) + ". Bol ktory okropnie pulsuje w calym twoim " +
      "ciele nie pozwala ci sie skupic na walce. Masz dziwne przeczucie, ze " +
      "niedlugo dowiesz sie co jest po tamtej stronie.\n"); 
      tell_watcher(QIMIE(wielder,PL_MIA) + " masakruje " +  
      QIMIE(enemy,PL_BIE) + " " + short(PL_NAR) + ". " + 
      QIMIE(enemy,PL_BIE) + " wyglada jakby mial " +
      "za moment upasc, ale kontynuuje swa desperacka walke o zycie.\n",enemy); 
      break;
default:
      wielder->catch_msg("Twoj wrog wykonal wlasnie ostatni ruch " +
      "w swym marnym zywocie. Dobrze wiesz, bo energia w twej broni " +
      "skumulowala sie ostatecznie. " + short(PL_MIA) + " zaczyna mocno " + 
      "pulsowac w twoich rekach, caly swiat dookola staje sie na moment " +
      "ciemniejszy i z kostura wydobywa sie glos : KAZARTH RAKZA " +
      "LAAZTHRANTA!!! Potem nastepuje moment ciszy. I w koncu " +
      "cialo " + QIMIE(enemy,PL_DOP) + " wybucha z glosnym mlasnieciem " +
      "zabryzgujac wnetrznosciami cala okolice.\n");
      enemy->catch_msg("Popelniles blad nie uciekajac, teraz jest juz " +
      "za pozno. Caly swiat zaczyna wirowac ci przed oczami, " + 
      "jakas straszna sila zakrada sie do twego ciala. Nie czujesz bolu, " +
      "nie czujesz juz nic. Nagle sluszysz najdziwniejszy dzwiek w zyciu, " +
      "glosne 'PLOP' i wszystko zamiera. Nie ma juz swiata dookola. Umarles.\n");
      tell_watcher("Do twoich uczu dochodzi jakis dziwny wibrujacy dzwiek. " +
      "Na twarzy " + QIMIE(wielder,PL_DOP) + " wykwita bezlitosny " +
      "usmiech. Nagle swiat dookola ciemnieje i zdaje ci sie ,ze slyszysz " + 
      "glos...uklada sie on w slowa : KAZARTH RAKZA LAAZTHRANTA!!! " +
      "Nagle niespodziewanie cialo " + QIMIE(enemy,PL_DOP) + " eksploduje, " + 
      "a gorace jeszcze wnetrznosci i krew zabryzguja cie od stop po szyje, " +
      "nie oszczedzajac takze najblizszej okolicy. Masz niesamowita ochote " +
      "zwymiotowac.\n", enemy);
      break;
   }
   return 1;
}
