inherit "/d/Imperium/std/weapon";
#include "../local.h"

#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"
void
create_weapon() 
{
     ustaw_nazwe(({ "labrys","labrysa","labrysowi","labrys","labrysem","labrysie"}),
                 ({ "labrysy","labrysow","labrysom","labrysy","labrysami","labrysach" }), PL_MESKI_NOS_NZYW);
                    
     dodaj_przym( "zdobiony","zdobieni" );
                    
     set_long("Podwojny topor, bywajacy czesto elementem kultowym. Znajduje "
	+"sie go czesto w swiatyniach, miejscach kultu lub ruinach palacow "
	+"i zamkow. Ten egzemplarz jest zdobiony elementami roslinnymi, ktore "
	+"mozna przysiac polyskuja lekko.\n");

     set_hit(73);
     set_pen(72);
     set_wt(W_AXE);
     set_dt(W_SLASH);
     set_hands(W_BOTH);
     add_prop(OBJ_I_IS_MAGIC_WEAPON,1);
     add_prop(OBJ_I_VALUE, 310534200);
     add_prop(OBJ_I_WEIGHT, 14000);
     add_prop(OBJ_I_VOLUME, query_prop(OBJ_I_WEIGHT)/5);
 }
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:
      case 0:
      return ::did_hit(aid,hdesc,phurt,enemy,dt,phit,dam,tohit,def_ob,armour);

      case 1..4:
      wielder->catch_msg("Zahaczasz " + QIMIE(enemy,PL_BIE) + ", trafiajac "+
          enemy->koncowka("go","ja","je")+" w " +
          hdesc +
          " swo" + koncowka("im ","ja ") + short(PL_NAR) + ".\n");
      enemy->catch_msg(QCIMIE(wielder,PL_MIA) + " zahacza cie w "
          + hdesc +
          " swo" + koncowka("im ","ja ") + short(PL_NAR) + ".\n");
      tell_watcher(QCIMIE(wielder,PL_MIA) + " zahacza " +
          QIMIE(enemy,PL_BIE) + ", trafiajac "+enemy->koncowka("go","ja","je")+
          " w " + hdesc + " "+
          "swo" + koncowka("im ","ja ") + short(PL_NAR) + ".\n",enemy);
      break;

      case 5..9:

      wielder->catch_msg("Pozostawiasz nieduza rane trafiajac " + QIMIE(enemy,PL_BIE) +
          " swo" + koncowka("jego ","jej ") + short(PL_DOP) + ".\n");
      enemy->catch_msg(QCIMIE(wielder,PL_MIA) + " pozostawia nieduza rane trafiajac" + 
	short(PL_DOP) + ".\n");
      tell_watcher(QCIMIE(wielder,PL_MIA) + " pozostawia nieduza rane trafiajac " + QIMIE(enemy,PL_BIE) + " "+
           short(PL_NAR) + ".\n",enemy);
      break;
      
      case 10..19:

      wielder->catch_msg("Lekko ranisz " + QIMIE(enemy,PL_BIE) +
          ", trafiajac "+enemy->koncowka("go","ja","je")+
          " w " + hdesc + " zamaszystym uderzeniem" +
          " swo" + koncowka("jego ","jej ") + short(PL_DOP) + ".\n");
      enemy->catch_msg(QCIMIE(wielder,PL_MIA) + " lekko rani cie"+
          " zamaszystym uderzeniem " + short(PL_DOP) + ".\n");
      tell_watcher(QCIMIE(wielder,PL_MIA) + " lekko rani " + QIMIE(enemy,PL_BIE) +
          " zamaszystym uderzeniem " + short(PL_DOP) + ".\n",enemy);
      break;

      case 20..34:
      
      wielder->catch_msg("Wykonujesz zamaszyste ciecie " +
          short(PL_NAR) + ", pozostawiajac paskudna rane na ciele " + QIMIE(enemy,PL_DOP) +
          "trafiajac przeciwnika w " + hdesc + ".\n");
      enemy->catch_msg(QCIMIE(wielder,PL_MIA) + " wykonuje zamaszyste ciecie " +
          short(PL_NAR) + ", pozostawiajac paskudna rane na twym ciele.\n");
      tell_watcher(QCIMIE(wielder,PL_MIA) + " wykonuje zamaszyste ciecies " +
          short(PL_NAR) + ", pozostawiajac paskudna rane na ciele " + QIMIE(enemy,PL_DOP) +
          "trafiajac swego przeciwnika w " + hdesc + ".\n",enemy);
      break;

      case 35..75:

      wielder->catch_msg("Pozostawiasz cieta rane na ciele " + QIMIE(enemy,PL_DOP)+
          ", trafiajac "+enemy->koncowka("go","ja","je") + " w " + hdesc +".\n");
      enemy->catch_msg(QCIMIE(wielder,PL_MIA) + " pozostawia cieta rane na twym ciele "
	+"trafiajac cie w "+ hdesc+".\n");
      tell_watcher(QCIMIE(wielder,PL_MIA) + " pozostawia cieta rane na ciele " + QIMIE(enemy,PL_DOP)+
          ", trafiajac przeciwnika w "+hdesc+".\n",enemy);
      break;


      case 76..99:

      wielder->catch_msg("Masakrujesz " + QIMIE(enemy,PL_BIE) + 
           " " + short(PL_NAR) + ", trafiajac " + enemy->koncowka("go","ja") +
           " w " + hdesc + ".\n"); 
      enemy->catch_msg(QIMIE(wielder,PL_MIA) + " masakruje cie " +
           short(PL_NAR) + ".\n"); 
      tell_watcher(QCIMIE(wielder,PL_MIA) + " masakruje " + 
          QIMIE(enemy,PL_BIE) + " " +
          short(PL_NAR) + ".\n",enemy); 
      break;

      default:
      wielder->catch_msg("Tnac na odlew, celujac w " + QIMIE(enemy,PL_BIE) +" "
	+"pozostawiasz bardzo glebokie rany. Krew tryska strumieniami, a cialo "+
         "przeciwnika, pada bezwladnie pod twe nogi.\n");
      enemy->catch_msg(QIMIE(wielder,PL_MIA)+" tnac na odlew, rani cie bardzo gleboko. "+
         "Tracisz zmysly...\n");
      tell_watcher(QIMIE(wielder,PL_MIA)+" tnie na odlew, celujac  w " + QIMIE(enemy,PL_BIE) + " "+
         "pozostawia bardzo glebokie rany. Martwe cialo "+
         "pada bezwladnie na ziemie.\n",enemy);
      break;

   }

   return 1;
}
int
query_auto_load()
{
    return 1;
}
int
query_recover()
{
    return 1;
}
