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);
+}