
P_DRINK
*******


NAME
====

   P_DRINK                       "drink"


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

   /sys/living/life.h


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

   - Lebewesen
     Numerischer Wert fuer den Saettigungsgrad eines Lebewesens mit
     Getraenken. Der maximale Wert steht in P_MAX_DRINK.

   - Speisen/Kneipen
     Numerischer Wert fuer den Saettigungsgrad einer Portion eines
     Getraenkes. Ist diese Property nicht gesetzt oder zusaetzlich
     P_FOOD gesetzt, kann man diese Speise nicht trinken. Eine
     funktionierende Speise _muss_ entweder P_FOOD oder P_DRINK
     groesser 0 gesetzt haben.


HINWEISE
========

::
   Die Property nicht direkt manipulieren, sondern drink_soft()
   verwenden


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

   Properties:
      P_FOOD, P_MAX_FOOD, P_FOOD_DELAY
      P_MAX_DRINK, P_DRINK_DELAY
      P_ALCOHOL, P_MAX_ALCOHOL, P_ALCOHOL_DELAY
   Methoden:
      consume(), eat_food(), drink_soft(), drink_alcohol(), defuel_food()
   Uebersicht Essensobjekte
      wiz/food

Last modified: Thu Oct 28 12:15:00 2010 by Caldra
