Lpc Manpages

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 (enttankter 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!
    Fuer mobile Enttanken s. "man enttanken".

BEISPIEL:
    int 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:    update_timed_key, check_timed_key
     Props:     P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
     Kneipen:   kneipe, AddToMenu, RemoveFromMenu
     Konzepte:  heilung, enttanken, food

----------------------------------------------------------------------------
01.10.17, Torin