| FUNKTION: |
| int defuel_food(); |
| |
| DEFINIERT IN: |
| /std/living/life.c |
| |
| ARGUMENTE: |
| Keine. |
| |
| BESCHREIBUNG: |
| Enttankt den Spieler automatisch um einen gewissen Essens-Wert, |
| sofern der Spieler ueber einer bestimmten Enttank-Grenze liegt und seit |
| seinem letzten Enttanken eine gewisse Zeit vergangen ist. |
| Alle diese Werte sind rassenabhaengig. |
| |
| Es ist also NICHT moeglich, Einfluss auf die Menge des Enttankens |
| zu nehmen. Das ist hier so gewollt. |
| |
| Hat der Spieler mindestens |
| * P_DEFUEL_LIMIT_FOOD in P_FOOD |
| kann er alle |
| * P_DEFUEL_TIME_FOOD |
| um |
| * (x=P_DRINK*P_DEFUEL_AMOUNT_FOOD/2) + random(x) |
| (also um (50 bis 100 * P_FOOD) Prozent) |
| enttanken. |
| |
| RUECKGABEWERTE: |
| DEFUEL_TOO_SOON: -2, wenn Enttankintervallzeiten zu kurz. |
| DEFUEL_TOO_LOW: -1, wenn Enttankgrenze noch nicht erreicht. |
| NO_DEFUEL: 0, wenn Enttanken nicht noetig war (Spieler war leer) |
| >0, wenn Erfolg (enttankte Wert wird zurueckgegeben). |
| |
| (Konstanten kommen aus /sys/defuel.h) |
| |
| BEMERKUNG: |
| Bitte defuel_food() benutzen und nicht P_FOOD oder P_MAX_FOOD des |
| Spielers manipulieren! |
| |
| Achtung: Nur Toiletten sollten diese Funktion im Spieler aufrufen! |
| |
| BEISPIEL: |
| int action_enttanken() { |
| string msg; |
| int val = this_player()->defuel_food(); |
| |
| switch (val) { |
| case DEFUEL_TOO_SOON: |
| msg = "Du warst doch erst vor kurzem auf Toilette..."; |
| break; |
| case DEFUEL_TOO_LOW: |
| msg = "Du versuchst Dich zu entleeren, aber irgendwie will " |
| "das nicht so recht klappen."; |
| break; |
| case NO_DEFUEL: |
| msg = "Du hast seit langem nichts gegessen, wie willst Du dann " |
| "was loswerden koennen?"; |
| break; |
| default: |
| string qualifier; |
| int fuzzypercent = (90+random(20)) * |
| val/this_player()->QueryProp(P_MAX_FOOD); |
| switch(fuzzypercent) { |
| case 0..50: qualifier = "etwas"; break; |
| case 51..75: qualifier = "enorm"; break; |
| default: qualifier = "unglaublich"; break; |
| } |
| msg = "Du entleerst Dich "+qualifier"+. Puh, das tat gut!"; |
| break; |
| } |
| tell_object(this_player(), break_string(msg, 78)); |
| return 1; |
| } |
| |
| SIEHE AUCH: |
| Aehnlich: defuel_drink |
| Tanken: consume, drink_alcohol, drink_soft, eat_food |
| Heilung: heal_self, restore_spell_points, restore_hit_points, |
| buffer_hp, buffer_sp |
| Timing: check_and_update_timed_key |
| Props: P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP, |
| P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK |
| Konzepte: heilung, enttanken, food |
| |
| 9. August 2015 Gloinson |