blob: f07ece34b5bb8b1c90992201cd4ca8220aa205c3 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
2consume()
3*********
4
MG Mud User88f12472016-06-24 23:31:02 +02005public varargs int consume(mapping cinfo, int testonly)
6
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008FUNKTION
9========
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011 public varargs int consume(mapping cinfo, int testonly);
MG Mud User88f12472016-06-24 23:31:02 +020012
Zesstra953f9972017-02-18 15:37:36 +010013 Aenderung der Gesundheit eines Lebewesens durch etwas Konsumierbares.
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015
16DEFINIERT IN
17============
18
19 /std/living/life.c
20
21
22ARGUMENTE
23=========
24
25 cinfo
26 Mapping mit Informationen ueber die Gesundheitsaenderung
27 Heilung.
28 testonly
29 Gibt an, ob nur die Bedingungen abgetestet werden sollen,
30 oder auch die Wirkung eintreten soll.
31
32
33RUECKGABEWERT
34=============
35
MG Mud User88f12472016-06-24 23:31:02 +020036 1 erfolgreich konsumiert
37 0 keine oder falsche Aenderungsdaten in cinfo (nicht benutzbar)
38 <0 Bedingung fuer konsumieren nicht erfuellt, Bitset aus:
39 HC_MAX_FOOD_REACHED - Kann nichts mehr essen
40 HC_MAX_DRINK_REACHED - Kann nichts mehr trinken
41 HC_MAX_ALCOHOL_REACHED - Kann nichts mehr saufen
42 HC_HOOK_CANCELLETION - durch H_HOOK_CONSUME abgebrochen
43
MG Mud User88f12472016-06-24 23:31:02 +020044
Zesstra953f9972017-02-18 15:37:36 +010045BESCHREIBUNG
46============
MG Mud User88f12472016-06-24 23:31:02 +020047
Zesstra953f9972017-02-18 15:37:36 +010048 Die Funktion stellt eine Moeglichkeit zur Verfuegung, die Aenderung
49 der Gesundheit eines Lebewesens beim Konsumieren von irgendetwas (z.B in
50 einer Kneipe, durch eine Heilstellte oder tragbare Tanke, ...) zentral zu
51 erledigen. Sie vereint in sich die Pruefung auf Durchfuerbarkeit der
52 Aenderung und Anwendung der Aenderung.
MG Mud User88f12472016-06-24 23:31:02 +020053
Zesstra953f9972017-02-18 15:37:36 +010054 Der erste Parameter gibt die Eigenschaften der Aenderung an, der zweite ob
55 ausschliesslich die Pruefung auf Anwendbarkeit erfolgen soll.
MG Mud User88f12472016-06-24 23:31:02 +020056
Zesstra953f9972017-02-18 15:37:36 +010057 Das Mapping cinfo hat folgende Struktur:
58 a) Einfache Angabe der betroffenen Properties. In neuem Code bitte nicht
59 machen, dort ein Mapping wie unter b) beschrieben nutzen!
MG Mud User88f12472016-06-24 23:31:02 +020060
Zesstra953f9972017-02-18 15:37:36 +010061 b) Strukturiert in Effekte und Bedingungen mit folgenden Schluesseln:
62 H_EFFECTS - Mapping der zu aendernden Properties mit dem Umfang der
63 Aenderung, erlaubte Properties siehe H_ALLOWED_EFFECTS
MG Mud User88f12472016-06-24 23:31:02 +020064
Zesstra953f9972017-02-18 15:37:36 +010065 H_CONDITIONS - Mapping der zu pruefenden Properties mit dem Umfang der
66 Aenderung, erlaubte Properties siehe H_ALLOWED_CONDITIONS
MG Mud User88f12472016-06-24 23:31:02 +020067
Zesstra953f9972017-02-18 15:37:36 +010068 H_DISTRIBUTION - Verteilung der Aenderung fuer P_SP, P_HP
69 HD_INSTANT bzw. 0: instante Heilung
70 1 - 50: angebene Zahl pro Heartbeat
71 HD_STANDARD: 5 pro Heartbeat
MG Mud User88f12472016-06-24 23:31:02 +020072
Zesstra953f9972017-02-18 15:37:36 +010073 Aenderungen koennen sowohl positiv als auch negativ sein.
MG Mud User88f12472016-06-24 23:31:02 +020074
MG Mud User88f12472016-06-24 23:31:02 +020075
Zesstra953f9972017-02-18 15:37:36 +010076BEMERKUNGEN
77===========
MG Mud User88f12472016-06-24 23:31:02 +020078
Zesstra953f9972017-02-18 15:37:36 +010079 Hierbei aber bitte beachten, dass Tanken/Entanken sowie Heilungen ggf. von
80 der (Heilungs-)Balance genehmigt werden muessen!
MG Mud User88f12472016-06-24 23:31:02 +020081
MG Mud User88f12472016-06-24 23:31:02 +020082
Zesstra953f9972017-02-18 15:37:36 +010083BEISPIELE
84=========
MG Mud User88f12472016-06-24 23:31:02 +020085
Zesstra953f9972017-02-18 15:37:36 +010086 Heilung um 100 KP, 50 LP, aber nur wenn 30 P_FOOD gegessen werden kann:
87
88 consume( ([H_EFFECTS: ([P_HP:50, P_SP:100]),
89 H_CONDITIONS: ([P_FOOD:30]) ]) );
90
91 Heilung um 100 KP und Vergiftung um 2, wenn 15 Alkohol getrunken werden
92 koennen. Die SP werden zeitverzoegert mit 10 pro Heartbeat zugefuehrt.
93
94 consume(([H_EFFECTS: ([P_SP: 100, P_POISON: 2]),
95 H_CONDITIONS: ([P_ALCOHOL: 15]),
96 H_DISTRIBUTION: 10]) )
97
98
99SIEHE AUCH
100==========
101
102 Aehnlich: drink_alcohol, eat_food, drink_soft
103 Heilung: heal_self, restore_spell_points, restore_hit_points,
104 buffer_hp, buffer_sp
105 Timing: check_and_update_timed_key
106 Enttanken: defuel_drink, defuel_food
107 Props: P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
108 P_DEFUEL_TIME_DRINK
109 Konzepte: heilung, enttanken, food
110
111
112LETZTE AeNDERUNG
113================
114
115 29.05.2015, Boing