Lpc Manpages

FUNKTION:
    public varargs int consume(mapping cinfo, int testonly);

    Aenderung der Gesundheit eines Lebewesens durch etwas Konsumierbares.

DEFINIERT IN:
    /std/living/life.c

ARGUMENTE:
    cinfo
        Mapping mit Informationen ueber die Gesundheitsaenderungen bzw.
        Heilung.

    testonly
        Gibt an, ob nur die Bedingungen abgetestet werden sollen,
        oder auch die Wirkung eintreten soll.

RUECKGABEWERT:
    1 erfolgreich konsumiert
    0 keine oder falsche Aenderungsdaten in cinfo (nicht benutzbar)
   <0 Bedingung fuer konsumieren nicht erfuellt, Bitset aus:
      HC_MAX_FOOD_REACHED    - Kann nichts mehr essen
      HC_MAX_DRINK_REACHED   - Kann nichts mehr trinken
      HC_MAX_ALCOHOL_REACHED - Kann nichts mehr saufen
      HC_HOOK_CANCELLETION   - durch H_HOOK_CONSUME abgebrochen

BESCHREIBUNG:
    Die Funktion stellt eine Moeglichkeit zur Verfuegung, die Aenderung
    der Gesundheit eines Lebewesens beim Konsumieren von irgendetwas (z.B in
    einer Kneipe, durch eine Heilstellte oder tragbare Tanke, ...) zentral zu
    erledigen. Sie vereint in sich die Pruefung auf Durchfuerbarkeit der
    Aenderung und Anwendung der Aenderung.

    Der erste Parameter gibt die Eigenschaften der Aenderung an, der zweite ob
    ausschliesslich die Pruefung auf Anwendbarkeit erfolgen soll.

    Das Mapping cinfo hat folgende Struktur:
    a) Einfache Angabe der betroffenen Properties. In neuem Code bitte nicht
       machen, dort ein Mapping wie unter b) beschrieben nutzen!

    b) Strukturiert in Effekte und Bedingungen mit folgenden Schluesseln:
      H_EFFECTS - Mapping der zu aendernden Properties mit dem Umfang der
                  Aenderung, erlaubte Properties siehe H_ALLOWED_EFFECTS

      H_CONDITIONS - Mapping der zu pruefenden Properties mit dem Umfang der
                     Aenderung, erlaubte Properties siehe H_ALLOWED_CONDITIONS

      H_DISTRIBUTION - Verteilung der Aenderung fuer P_SP, P_HP
                       HD_INSTANT bzw. 0: instante Heilung
                       1 - 50: angebene Zahl pro Heartbeat
                       HD_STANDARD: 5 pro Heartbeat

    Aenderungen koennen sowohl positiv als auch negativ sein.

BEMERKUNGEN:
    Hierbei aber bitte beachten, dass Tanken/Entanken sowie Heilungen ggf. von
    It oder Torin genehmigt werden muessen!

BEISPIELE:
    Heilung um 50 LP und 100 KP, aber nur wenn 30 P_FOOD gegessen werden kann:

    TP->consume( ([H_EFFECTS: ([P_HP:50, P_SP:100]),
                   H_CONDITIONS: ([P_FOOD:30]) ]) );

    Heilung um 100 SP und Vergiftung um 2, wenn 15 Alkohol getrunken werden
    koennen. Die SP werden mit 10 (statt 5) pro Heartbeat zugefuehrt.

    TP->consume(([H_EFFECTS: ([P_SP: 100, P_POISON: 2]),
                  H_CONDITIONS: ([P_ALCOHOL: 15]),
                  H_DISTRIBUTION: 10]) )

SIEHE AUCH:
     Aehnlich:  drink_alcohol, eat_food, drink_soft
     Heilung:   heal_self, restore_spell_points, restore_hit_points, 
                buffer_hp, buffer_sp
     Timing:    update_timed_key
     Enttanken: defuel_drink, defuel_food
     Props:     P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
                P_DEFUEL_TIME_DRINK
     Kneipen:   kneipe, AddToMenu, RemoveFromMenu
     Konzepte:  heilung, enttanken, food

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