blob: 55c1a10861c5cd0a68aad6b291db3a9535a7fcdd [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// (c) by Padreic (Padreic@mg.mud.de)
2
3#include "../files.h"
4#include <combat.h>
5#include <new_skills.h>
6
7inherit NPC("stdnpc");
8
9void create()
10{
11 ::create();
12 SetProp(P_NAME, "Waechter des Waldes");
13 SetProp(P_SHORT, "Der Waechter des Waldes");
14 SetProp(P_LONG,
15 "Vor Dir steht eine sehr sehr alte Eiche. Doch diese Eiche ist keine\n"
16 +"gewoehnliche Eiche, wie Du sie bereits an vielen anderen Stellen gesehn hast.\n"
17 +"Diese Eiche lebt! Du kannst deutlich einen Mund, eine Nase und sogar zwei\n"
18 +"Ohren erkennen. Sie ist eigentlich sehr friedlich gesonnen, kann aber auch\n"
19 +"sehr sehr boese werden, wenn es jemand wagt die Ruhe des Waldes zu stoeren.\n");
20 SetProp(P_RACE, "eiche");
21 SetProp(P_AGGRESSIVE, 0);
22 SetProp(P_LEVEL, 100);
23 SetProp(P_ATTRIBUTES, (["int":80,"con":100,"str":100,"dex":20]) );
24 SetProp(P_GENDER, MALE);
25 SetProp(P_MAX_HP, 1000);
26 SetProp(P_HP, 1000);
27 SetProp(P_ALIGN, 500);
28 SetProp(P_BODY, 100);
29 SetProp(P_SIZE, 1500);
30 SetProp(P_DISABLE_ATTACK, -10000); // is nich :)
31 AddId(({"eiche", "waechter","waechter des waldes", WALDID("waechtereiche") }));
32 SetProp(P_HANDS, ({" mit einem seiner langen Aeste",550,DT_WHIP}) );
33 SetProp(P_SKILL_ATTRIBUTE_OFFSETS, ([SA_SPEED:210]));
34 SetProp(P_NOCORPSE, 1);
35 SetProp(P_XP, 1000*550*5);
36 SetProp(P_DEFAULT_INFO, "bleibt absolut regungslos und reagiert ueberhaupt nicht.\n");
37 SetProp(P_RESISTANCE_STRENGTHS,
38 ([DT_SLASH: 0.1,
39 DT_MAGIC: -1.0,
40 DT_BLUDGEON: -0.5,
41 DT_POISON: 0.25,
42 DT_HOLY: -1.0,
43 DT_RIP: 0.25,
44 DT_FIRE: 0.25,
45 DT_PIERCE: -0.5,
46 DT_WHIP: -1.0 ]) );
47 AddCmd(({"osten", "westen"}), "cmd_blocken");
48}
49
50static string _query_info()
51{
52 if (!PL || PL->QueryProp(ZAUBERWALD)<=time())
53 return "Die alte Eiche ist Dir sehr friedlich gesonnen. Es ist jedoch auch sicher\n"
54 +"klug dieses nicht zu aendern, da sie mit ihren Aesten wohl auch sehr kraeftig\n"
55 +"zuschlagen kann.\n";
56 return "Du hast den Zorn der alten Waechtereiche auf Dich gezogen, das war ganz und\n"
57 +"gar nicht klug von Dir. Jetzt lebe auch mit den Konsequenzen....\n";
58}
59
60static int cmd_blocken()
61{
62 if (PL->QueryProp(P_RACE)=="Dunkelelf" &&
63 PL->QueryProp(AUSGANG)==query_verb()) {
64 write(BS(Name(WER, 1)+" laesst Dich nicht vorbei.")
65 +break_string("Du solltest hier besser verschwinden, "
66 +"so Typen wie Du sind hier nicht gern gesehn!",
67 78, Name(WER, 1)+" sagt: "));
68 return 1;
69 }
70 if (PL && PL->QueryProp(ZAUBERWALD) &&
71 PL->QueryProp(AUSGANG)==query_verb()) {
72 write(BS(Name(WER, 1)+" steht Dir da leider im Weg und laesst Dich nicht vorbei."));
73 return 1;
74 }
75}
76
77int remove()
78{
79 call_other(ROOM("weg1"), "delay_reset");
80 return (int)::remove();
81}
82
83void NotifyPlayerDeath(object who, object killer, object lost_exp)
84{
85 if (!who || killer!=ME) return; // uninteressant
86 log_file("padreic/kill", ctime(time())+" "+capitalize(getuid(who))+" getoetet von /zauberwald/waechter\n");
87}