defuel_drink()
**************


FUNKTION
========

   int defuel_drink();


DEFINIERT IN
============

   /std/living/life.c


ARGUMENTE
=========

   Keine.


BESCHREIBUNG
============

   Enttankt den Spieler automatisch um einen gewissen Fluessigkeits-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.
   Ausserdem wird dem Spieler eine gewisse Menge Alkohol entzogen. Er wird
   also mit jedem fluessigen Enttanken etwas nuechterner.

   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_DRINK in P_DRINK
   kann er alle
   * P_DEFUEL_TIME_DRINK
   um
   * (x=P_DRINK*P_DEFUEL_AMOUNT_DRINK/2) + random(x)
     (also um (50 bis 100 * P_DRINK) 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_drink() benutzen und nicht P_DRINK oder P_MAX_DRINK des
   manipulieren!

   Es gibt keine eigene Methode fuer die Verringerung von P_ALCOHOL.

   Achtung: Nur Toiletten sollten diese Funktion im Spieler aufrufen!


BEISPIEL
========

   s. Bsp. zu defuel_food()


SIEHE AUCH
==========

   Aehnlich:  defuel_food
   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
