blob: e9279c74c076d17a47496211b14d9f6a378a9a47 [file] [log] [blame]
notstromc0a51aa2018-11-12 20:21:16 +01001inherit "/std/npc";
2
3#include <new_skills.h>
4#include __PATH__(1)"defs.h"
5
6
7protected void create() {
8 if (!clonep()) {
9 set_next_reset(-1);
10 return;
11 }
12 ::create();
13
14 create_default_npc(20, 600);
15
16 SetProp(P_SHORT, "Ein spiegelblanker Zwerg");
17 SetProp(P_LONG, BSLF(
18 "Dieser Zwerg ist (oha!) FRISCHGEWASCHEN!!\n"
19 "Er ist so spiegelblank, dass Du Dir tatsaechlich vorstellen kannst, "
20 "dass er nicht nur Licht, sondern noch viel mehr reflektiert."));
21 SetProp(P_NAME, "Kawumm");
22 SetProp(P_ARTICLE, 0);
23 SetProp(P_GENDER, MALE);
24
25 AddId(({"zwerg", "kawumm"}));
26 SetProp(P_ALIGN, 100);
27 SetProp(P_RACE, "Zwerg");
28 SetProp(P_SIZE, 102);
29
30 SetProp(P_MURDER_MSG,
31 "He! Ich gehoere doch zu Notstroms Magiertutorial, %s.");
notstrome4fa9ae2018-11-12 20:38:18 +010032 /* Wir setzen hier auch mal eine Kill-Message, dieser Zwerg koennte ja
33 sogar mal wen erwischen: */
34 SetProp(P_KILL_MSG,
35 "Kommt davon, wenn man sich an einem Magiertutorial vergreift, %s!");
notstromc0a51aa2018-11-12 20:21:16 +010036 SetProp(P_DIE_MSG, " kippt um wie eine leere Bierflasche.\n");
37}
38
39/* Defend() wird aufgerufen, wenn dieses Objekt etwas auf die Omme bekommt -
40 oder bekommen soll. Resistenzen erledigt man am besten ueber die Prop aus
41 dem vorangegangenen Beispiel, aber manchmal moechte man ja etwas machen,
42 was ein wenig lustiger ist. */
43public int Defend(int dam, string|string* dam_type, int|mapping spell,
44 object enemy) {
notstrom0216ee12018-11-30 16:46:15 +010045 // Physische Attacken werden unveraendert behandelt:
46 if (!spell || (mappingp(spell) && spell[SP_PHYSICAL_ATTACK]))
47 return ::Defend(dam, dam_type, spell, enemy);
notstromc0a51aa2018-11-12 20:21:16 +010048
notstrom0216ee12018-11-30 16:46:15 +010049 tell_object(enemy, BSLF(
50 "Kawumm ist so glaenzend blankpoliert, dass er Deinen Angriff glatt "
51 "reflektiert."));
52 tell_room(ENV(enemy), BSLF(
53 "Kawumm ist so glaenzend blankpoliert, dass er den Angriff von "+
54 enemy->name()+"glatt reflektiert."),
55 ({enemy}));
56
57 m_add(spell, SP_RECURSIVE, 1);
58 enemy->Defend(dam, dam_type, spell, enemy);
59 /* Wir geben hier 0 zurueck, sind also vollstaendig immun gegen
60 Spells ohne physische Schadenskomponente. Man koennte auch einen
61 kleinen Teil des Schadens durchkommen lassen, aber dann haette
62 der Zwerg einen anderen Namen: */
63 return 0;
notstromc0a51aa2018-11-12 20:21:16 +010064}