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