inherit "/std/npc";

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


private int ausholen;

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

  create_default_npc(20, 600);

  SetProp(P_SHORT, "Ein angriffslustiger Zwerg");
  SetProp(P_LONG, BSLF(
    "Diesmal ist Kawumms Axt noch spezieller. Da seine Haende und auch die "
    "Axt komisch geformt sind, kann nur er sie zuecken."));
  SetProp(P_NAME, "Kawumm");
  SetProp(P_ARTICLE, 0);
  SetProp(P_GENDER, MALE);

  AddId(({"zwerg", "kawumm"}));
  SetProp(P_ALIGN, 100);
  SetProp(P_RACE, "Zwerg");
  SetProp(P_SIZE, 102);

  AddItem(__PATH__(1)"obj/axt3", REFRESH_NONE|CLONE_WIELD);
}

