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

