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(78);
    set_pen(67);
    add_prop(OBJ_I_VOLUME, 3000);
    add_prop(OBJ_I_WEIGHT, 4500);
    add_prop(OBJ_I_VALUE, F_VALUE_WEAPON(25,39) + 2000);
    set_likely_dull(0);
    set_dt(W_SLASH|W_IMPALE);
    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, ({ 70, "enchantment"}));
    add_prop(MAGIC_AM_ID_INFO,({"Srebrzysta kosa bojowa to potezny "+
        "artefakt, wykuty w krasnoludzkich kuzniach Gor Kranca Swiata "+
        "przed wiekami. Nalozona na nia magia powoduje jej nienaturalna "+
        "wrecz ostrosc i ofektywnosc z jaka posluzyc ona moze wprawnemu wojownikowi "+
        "w walce.\n",15}));
    set_wf(this_object());
    set_alarm(0.5,0.0,"add_wielder");
}
string
znaki()
{
    write("Dotykasz runow, a te rozblyskuja intensywnym, srebrzystym swiatlem, "+
        "ktore sprawia, ze ornamenty na ostrzu wydaja sie poruszac.\n");
    say(QCIMIE(this_player(),PL_MIA) + " dotyka runow, a te rozblyskuja intensywnym, srebrzystym swiatlem, "+
        "ktore sprawia, ze ornamenty na ostrzu wydaja sie poruszac.\n");
    return"";
}
mixed
wield(object what)
{
   set_alarm(0.1,0.0,"add_wielder");
 write("Runy wybuchaja niesamowita paleta kolorowych rozblyskow gdy dob"+
       "ywasz 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 na " +
      "twoich oczach.\n");
      enemy->catch_msg(QCIMIE(wielder,PL_MIA) + " uderza cie" +
          " na tyle mocno, ze slad zostanie na dlugie tygodnie.\n");
      tell_watcher(QCIMIE(wielder,PL_MIA) + " uder" +
          "za " + QIMIE(enemy,PL_BIE) + " tak m" +
          "ocno ,ze cialo puchnie na twoich oczach.\n",enemy);
      break;
case 10..19:
      wielder->catch_msg("Mocno ranisz uderzaja" +
    "c " + 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) + ", rania" +
       "c " + 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.\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.\n",enemy);
      break;
case 50..75:
      wielder->catch_msg("Potezne uderzenie twojego " + short(PL_DOP) +
          " dosiega " + QIMIE(enemy,PL_DOP) + ", zostawia" +
          "jac 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) + " dosi" +
          "ega " + QIMIE(enemy,PL_DOP) + " ,zostawiajac krwaw" +
          "e 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 przeczu" +         
           "cie ,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 wnetrznosci i krew zabryzguje ciebie calego i wszystko wookolo. " +
         "Masz niesamowita ochote zwymiotowac.\n", enemy);
      break;
   }
   return 1;
}
