blob: a8eb3aa646e7145dec1a4ad1b0bec6b43881c962 [file] [log] [blame]
notstromd1dec4a2018-12-03 10:20:32 +01001/*
2 Manchmal moechte man ja einem NPC eine ordentliche Waffe geben, die dann
3 aber fuer Spieler nicht so geeignet oder schlicht zu gut waere. In diesem
4 Fall ist eine Moeglichkeit, die Waffenwerte abhaengig von demjenigen zu
5 setzen, der sie gerade dabeihat.
6*/
notstrom2b580792018-12-03 10:12:20 +01007inherit "/std/weapon";
8
9#include __PATH__(1)"defs.h"
10
11
12protected void create() {
13 if (!clonep()) {
14 set_next_reset(-1);
15 return;
16 }
17 ::create();
18
19 SetProp(P_SHORT, "Eine besondere Axt");
20 SetProp(P_LONG, BSLF(
21 "Dies ist die Axt von Kawumm, dem Zwerg. Niemand kann so damit zuhauen "
22 "wie er."));
23
24 SetProp(P_NAME, "Axt");
25 SetProp(P_GENDER, FEMALE);
26 AddId(({"axt"}));
27
28 /* Dies ist Kawumms persoenliche Axt, und mit der macht er mehr Schaden als
29 jeder andere. Gleichzeitig ist dies ein Beispiel dafuer, wie man eine
30 Prop mit einer Closure setzt. Da F_QUERY_METHOD angegeben ist, wird die
31 eingebundene Inline-Function jedesmal ausgefuehrt, wenn der Wert von P_WC
notstrom5558a702018-12-03 22:46:28 +010032 abgefragt wird, also z.B. auch bei jedem Attack().
33 Der umgekehrte Fall waere, wenn wir F_SET_METHOD verwenden, dann wuerde
34 die Inline-Function ausgefuehrt, wenn jemand SetProp(P_WC) aufruft. */
notstrom2b580792018-12-03 10:12:20 +010035 Set(P_WC, function int() {
36 if (load_name(ENV()) == __PATH__(1)"npc/zwerg5")
37 return 180;
38 return 100;
39 }, F_QUERY_METHOD);
40
41 SetProp(P_WEAPON_TYPE, WT_AXE);
42 SetProp(P_DAM_TYPE, DT_SLASH);
43 SetProp(P_NR_HANDS, 1);
44
45 SetProp(P_VALUE, 200);
46 SetProp(P_WEIGHT, 3250);
47 SetProp(P_SIZE, 90);
48
49 SetProp(P_MATERIAL, ([MAT_STEEL:100]));
50}
51