blob: c5816a3b5de54c048e41a35dfcda859107200b40 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001/* Paracelsus: Eine Krankheit
2**
3** Beispiel fuer die Verwendung von P_X_ATTR_MOD und P_X_HEALTH_MOD
4**
5** Diese Krankheit setzt alle Attribute herab und erniedrigt
6** zusaetzlich P_MAX_HP und P_MAX_SP um jew. 20 (zusaetzlich zu den
7** Auswirkungen der Attributsenkungen).
8** Gestartet wird die Krankheit, indem sie einfach in das Opfer
9** bewegt wird.
10** Man beachte, dass im remove() die P_X_*-Properties ein leeres
11** Mapping zugewiesen bekommen und keine 0. Nur so werden die
12** Krankheitsfolgen rueckgaengig gemacht.
13*/
14
15// Diese Pragmas sorgen dafuer, dass der Driver darauf achtet, dass bei
16// Funktionsargumenten, -Rueckgabewerten und teilweise bei Zuweisung von
17// Werten an Variablen der richtige Datentyp verwendet wird (z.b. kein string
18// anstelle eines int verwendet wird). Sollte in keinem Objekt fehlen.
19#pragma strong_types, save_types, rtt_checks
20
21inherit "/std/thing";
22
23#include <properties.h>
24#include <moving.h>
25#include <language.h>
26#include <class.h>
27
28protected void create()
29{
30 ::create();
31
32 // ausnahmsweise darf dieses Objekt mal kein P_SHORT+P_LONG haben...
33 SetProp(P_SHORT,0);
34 SetProp(P_LONG, 0);
35 SetProp(P_INVIS, 1); // unsichtbar machen.
36 SetProp(P_NAME,"Krankheit");
37 SetProp(P_GENDER,FEMALE);
38 // wichtig, sonst wiegt die Krankheit 1kg (Standardgewicht fuer thing)
39 SetProp(P_WEIGHT,0);
40 SetProp(P_VALUE,0);
41 SetProp(P_MATERIAL,MAT_MISC_MAGIC);
42 SetProp(P_NODROP,1); // Nicht wegwerfbar.
43
44// ----> Dieser Abschnitt sorgt fuer fiese Statabzuege
45
46 SetProp(P_X_HEALTH_MOD,
47 ([
48 P_HP : -20, // Max. Lebenspunkte um 20 runter
49 P_SP : -20 // Max. Konzentrationspunkte um 20 runter
50 ]) );
51 SetProp(P_X_ATTR_MOD,
52 ([
53 A_CON : -1, // Ausdauer um 1 runter, reduziert auch max. LP!
54 A_DEX : -1, // Geschicklichkeit um 1 runter
55 A_INT : -2, // Intelligenz um 2 runter, reduziert auch max. KP!
56 A_STR : -4, // Staerke um 4 runter
57 ]) );
58
59// <----
60
61 AddId( ({"PARA\nSICK\nEXAMPLE"}) );
62
63 AddClass(CL_DISEASE); // Damit Kleriker helfen koennen.
64 SetProp(P_LEVEL,15); // Aber nicht ganz so einfach zu entfernen
65}
66