New files.

Change-Id: I03a840ebc4e9472f1312599d6fbc83e8f416e702
diff --git a/README b/README
index 2ad758d..559fa71 100644
--- a/README
+++ b/README
@@ -53,6 +53,8 @@
   room/huette5.c, npc/zwerg1.c
 6. Ein Raum mit einem ausgeruesteten NPC.
   room/huette6.c, npc/zwerg2.c
+7. Ein Raum mit einem NPC, der ueber Spells und Resistenzen verfuegt.
+  room/huette7.c, npc/zwerg3.c
 
 
 B. Unser erster eigener NPC
@@ -62,6 +64,8 @@
   npc/zwerg1.c
 2. Ein toll ausgeruesteter Zwerg.
   npc/zwerg2.c, obj/krempel.c, obj/axt.c, obj/schild.c
+3. Ein Zwerg mit Resistenzen und Spells.
+  npc/zwerg3.c
 
 
 C. Unsere ersten eigenen Gegenstaende
diff --git a/npc/zwerg2.c b/npc/zwerg2.c
index a29afa0..dabedde 100644
--- a/npc/zwerg2.c
+++ b/npc/zwerg2.c
@@ -31,9 +31,10 @@
 
 
   /* Die Axt wird beim Clonen gleich gezueckt. Wenn der Zwerg sie
-     verbummelt ist sie weg und wird im Reset nicht ersetzt: */
+     verbummelt, ist sie weg und wird im Reset nicht ersetzt: */
   AddItem(__PATH__(1)"obj/axt", REFRESH_NONE|CLONE_WIELD);
-  // Beim Clonen gleich anziehen:
+  /* Aehnlich beim Schild: Beim Clonen wird er gleich anzogen
+     und bei Verlust nicht ersetzt: */
   AddItem(__PATH__(1)"obj/schild", REFRESH_NONE|CLONE_WEAR);
   AddItem(__PATH__(1)"obj/krempel", REFRESH_NONE);
 }
diff --git a/npc/zwerg3.c b/npc/zwerg3.c
new file mode 100644
index 0000000..19acd89
--- /dev/null
+++ b/npc/zwerg3.c
@@ -0,0 +1,70 @@
+inherit "/std/npc";
+
+#include __PATH__(1)"defs.h"
+
+
+protected void create() {
+  if (!clonep()) {
+    set_next_reset(-1);
+    return;
+  }
+  ::create();
+
+  create_default_npc(20, 600);
+
+  SetProp(P_SHORT, "Ein kaempferischer Zwerg");
+  SetProp(P_LONG, BSLF(
+    "Dieser Zwerg wehrt sich ein wenig. Ausserdem verfuegt er Resistenzen."));
+  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);
+
+  SetProp(P_MURDER_MSG,
+    "He! Ich gehoere doch zu Notstroms Magiertutorial, %s.");
+  SetProp(P_DIE_MSG, " kippt um wie eine leere Bierflasche.\n");
+
+
+  /* Der Zwerg ist ein wenig anfaellig gegen satanisches Gebrabbel und
+     Furchtschaden, sehr anfaellig gegen Wasser (und Seife), ein wenig
+     resistent gegen Kaelte und recht resistent gegen Gift. */
+  SetProp(P_RESISTANCE_STRENGTHS,
+    ([DT_UNHOLY:     0.3,
+      DT_TERROR:     0.3,
+      DT_POISON:    -0.5,
+      DT_COLD:      -0.3,
+      DT_WATER:      0.6]));
+
+  // Der Zwerg verfuegt ueber ein paar Spezialangriffe:
+  SetProp(P_SPELLRATE, 80);
+
+  AddSpell(25, 300+random(150),
+           BSLF("Kawumm hat Dir voll aufs Schienbein. AUA!"),
+           BSLF("Kawumm haut @WEM mal so richtig auf das Schienbein. Hoeher "
+                "kommt er ja nicht dran."),
+           ({DT_BLUDGEON}), 0,
+           ([SP_PHYSICAL_ATTACK:1, SP_SHOW_DAMAGE:1]));
+  AddSpell(25, 200+random(100),
+           BSLF("Kawumm klettert auf einen Hocker und verpasst Dir einen "
+                "Kinnhaken."),
+           BSLF("Kawumm steigt auf einen Hocker, reckt sich noch ein Stueck "
+                "und verpasst @WEM einen ordentlichen Kinnhaken."),
+           ({DT_BLUDGEON}), 0,
+           ([SP_PHYSICAL_ATTACK:1, SP_SHOW_DAMAGE:1]));
+  AddSpell(25, 200+random(150),
+           BSLF("Kawumm macht da unten etwas, Deine Fuesse tun auf einmal "
+                "hoellisch weh."),
+           BSLF("Kawumm tritt @WEM mal so richtig auf die Fuesse."),
+           ({DT_BLUDGEON}), 0,
+           ([SP_PHYSICAL_ATTACK:1, SP_SHOW_DAMAGE:1]));
+  AddSpell(15, 500+random(150),
+           BSLF("Kawumm kokelt Dich an."),
+           BSLF("Kawumm haelt eine brennende Fackel in @WESSEN Schritt."),
+           ({DT_FIRE}), 0,
+           ([SP_PHYSICAL_ATTACK:0, SP_SHOW_DAMAGE:0]));
+}
+
diff --git a/room/huette7.c b/room/huette7.c
new file mode 100644
index 0000000..ccf502a
--- /dev/null
+++ b/room/huette7.c
@@ -0,0 +1,18 @@
+inherit "/std/room";
+
+#include __PATH__(1)"defs.h"
+
+
+protected void create() {
+  ::create();
+
+  SetProp(P_INT_SHORT, "Eine schummrige Huette");
+  SetProp(P_INT_LONG, BSLF(
+    "Der Raum hat nichts neues. Der NPC kaempft aber ein wenig besser."));
+
+  SetProp(P_LIGHT, 1);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_LIGHT_TYPE, LT_GLOWING);
+
+  AddItem(__PATH__(1)"npc/zwerg3", REFRESH_DESTRUCT);
+}