blob: 380c2bc63e5d99e7b54c00bfb9fa3d113d345d48 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001
Zesstra953f9972017-02-18 15:37:36 +01002defuel_food()
3*************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 int defuel_food();
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 /std/living/life.c
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018ARGUMENTE
19=========
MG Mud User88f12472016-06-24 23:31:02 +020020
Zesstra953f9972017-02-18 15:37:36 +010021 Keine.
MG Mud User88f12472016-06-24 23:31:02 +020022
MG Mud User88f12472016-06-24 23:31:02 +020023
Zesstra953f9972017-02-18 15:37:36 +010024BESCHREIBUNG
25============
26
27 Enttankt den Spieler automatisch um einen gewissen Essens-Wert,
28 sofern der Spieler ueber einer bestimmten Enttank-Grenze liegt und seit
29 seinem letzten Enttanken eine gewisse Zeit vergangen ist.
30 Alle diese Werte sind rassenabhaengig.
31
32 Es ist also NICHT moeglich, Einfluss auf die Menge des Enttankens
33 zu nehmen. Das ist hier so gewollt.
34
35 Hat der Spieler mindestens
36 * P_DEFUEL_LIMIT_FOOD in P_FOOD
37 kann er alle
38 * P_DEFUEL_TIME_FOOD
39 um
40 * (x=P_DRINK*P_DEFUEL_AMOUNT_FOOD/2) + random(x)
41 (also um (50 bis 100 * P_FOOD) Prozent)
42 enttanken.
43
44
45RUECKGABEWERTE
46==============
47
48 DEFUEL_TOO_SOON: -2, wenn Enttankintervallzeiten zu kurz.
49 DEFUEL_TOO_LOW: -1, wenn Enttankgrenze noch nicht erreicht.
50 NO_DEFUEL: 0, wenn Enttanken nicht noetig war (Spieler war leer)
51 >0, wenn Erfolg (enttankte Wert wird zurueckgegeben).
52
53 (Konstanten kommen aus /sys/defuel.h)
54
55
56BEMERKUNG
57=========
58
59 Bitte defuel_food() benutzen und nicht P_FOOD oder P_MAX_FOOD des
60 Spielers manipulieren!
61
62 Achtung: Nur Toiletten sollten diese Funktion im Spieler aufrufen!
63
64
65BEISPIEL
66========
67
68 int action_enttanken() {
69 string msg;
70 int val = this_player()->defuel_food();
71
72 switch (val) {
73 case DEFUEL_TOO_SOON:
74 msg = "Du warst doch erst vor kurzem auf Toilette...";
75 break;
76 case DEFUEL_TOO_LOW:
77 msg = "Du versuchst Dich zu entleeren, aber irgendwie will "
78 "das nicht so recht klappen.";
79 break;
80 case NO_DEFUEL:
81 msg = "Du hast seit langem nichts gegessen, wie willst Du dann "
82 "was loswerden koennen?";
83 break;
84 default:
85 string qualifier;
86 int fuzzypercent = (90+random(20)) *
87 val/this_player()->QueryProp(P_MAX_FOOD);
88 switch(fuzzypercent) {
89 case 0..50: qualifier = "etwas"; break;
90 case 51..75: qualifier = "enorm"; break;
91 default: qualifier = "unglaublich"; break;
92 }
93 msg = "Du entleerst Dich "+qualifier"+. Puh, das tat gut!";
94 break;
95 }
96 tell_object(this_player(), break_string(msg, 78));
97 return 1;
98 }
99
100
101SIEHE AUCH
102==========
103
104 Aehnlich: defuel_drink
105 Tanken: consume, drink_alcohol, drink_soft, eat_food
106 Heilung: heal_self, restore_spell_points, restore_hit_points,
107 buffer_hp, buffer_sp
108 Timing: check_and_update_timed_key
109 Props: P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
110 P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
111 Konzepte: heilung, enttanken, food
MG Mud User88f12472016-06-24 23:31:02 +0200112
1139. August 2015 Gloinson