inherit "/std/weapon";

#include <new_skills.h>
#include __PATH__(1)"defs.h"


protected void create() {
  if (!clonep()) {
    set_next_reset(-1);
    return;
  }
  ::create();

  SetProp(P_SHORT, "Eine besondere Axt");
  SetProp(P_LONG, BSLF(
    "Dies ist die Axt von Kawumm, dem Zwerg. Sie ist allerdings nicht fuer "
    "Spielerhaende gedacht."));

  SetProp(P_NAME, "Axt");
  SetProp(P_GENDER, FEMALE);
  AddId(({"axt"}));

  SetProp(P_WC, 180);
  SetProp(P_WEAPON_TYPE, WT_AXE);
  SetProp(P_DAM_TYPE, DT_SLASH);
  SetProp(P_NR_HANDS, 1);

  /* Als Variante des letzten Beispieles: Wenn es egal ist, welcher NPC
     die Axt zuecken darf, dann geht es auch ohne zusaetzliche Function: */
  SetProp(P_RESTRICTIONS, ([SR_PROP: ([P_NPC:1])]));

  SetProp(P_VALUE, 200);
  SetProp(P_WEIGHT, 3250);
  SetProp(P_SIZE, 90);

  SetProp(P_MATERIAL, ([MAT_STEEL:100]));
}

