// Fuer Ruestungen allgemein bitte "man ruestungen" lesen!
inherit "/std/armour";

#include __PATH__(1)"defs.h"


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

  SetProp(P_SHORT, "Ein billiger Schild");
  SetProp(P_LONG, BSLF(
    "Dieser Schild sieht irgendwie komisch aus. Das muss er auch, denn im "
    "Morgengrauen sind Schilde aus technischer Sicht Ruestungen. Deswegen "
    "auch das Beispiel hier ..."));

  SetProp(P_NAME, "Schild");
  SetProp(P_GENDER, MALE);
  AddId(({"schild"}));

  // Auch fuer P_AC unbedingt "man grenzwerte" lesen!
  SetProp(P_AC, 15);
  SetProp(P_ARMOUR_TYPE, AT_SHIELD);
  // Hier hilft "man schadenstypen":
  SetProp(P_DAM_TYPE, DT_BLUDGEON); // fuer Schildstoss der Kaempfer
  SetProp(P_NR_HANDS, 1);

  SetProp(P_VALUE, 200);
  SetProp(P_WEIGHT, 4020);
  SetProp(P_SIZE, 110);

  // Fuer die Materialien "man materialliste" lesen:
  SetProp(P_MATERIAL, ([MAT_STEEL:100]));
}

