inherit "/std/weapon";

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

int cmd_iss();


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

  SetProp(P_SHORT, "Eine einfache Axt");
  SetProp(P_LONG, BSLF(
    "Eine echte Waffe! Toll! Da Details und Commands wieder genauso "
    "funktionieren wie in NPCs oder Raeumen, sparen wir uns die hier mal.\n"
    "Bedenke bei beidem allerdings, dass der Spieler den Gegenstand mit "
    "sich traegt. Ein Standardverb als Command zu ueberschreiben, kann also "
    "schnell fuer Frust sorgen, wenn sich das angesprochen fuehlt statt dem "
    "Verb im Raum. Ebeneso bei Details, man denke an die Decke, die man als "
    "Questbelohnung von Chilana erhaelt, und die damit jeden Anfaenger in "
    "den Wahnsinn treibt. Weniger kann also auch hier mehr sein."));

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

  /* Die "Weapon Class" ist der Wumms, den die Waffe hat. Hierfuer unbedingt
     "man grenzwerte" lesen! */
  SetProp(P_WC, 120);
  SetProp(P_WEAPON_TYPE, WT_AXE);
  SetProp(P_DAM_TYPE, DT_SLASH);
  SetProp(P_NR_HANDS, 2);

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

  // Hierfuer mal "man materialliste" angucken:
  SetProp(P_MATERIAL, ([MAT_STEEL:100]));
}

