Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/wiz/food b/doc/wiz/food
new file mode 100644
index 0000000..698e3f6
--- /dev/null
+++ b/doc/wiz/food
@@ -0,0 +1,223 @@
+FOOD, DRINK & ALCOHOL
+=====================
+
+    Es wird empfohlen, jede tragbare Heilung ueber "/std/food"
+    zu implementieren. Hier braucht man nur wenige Properties setzen, um
+    sicherzugehen, dass die Heilung korrekt verlaeuft.
+
+    Bitte bei der Realisierung von tragbaren Tanken IMMER mit der Balance
+    sprechen. Die Heilung unterliegt genauer Kontrolle. Ewig haltbare Speisen
+    sind sowieso genehmigungspflichtig und nur mit guter Begruendung und
+    strengen Auflagen erlaubt.
+
+FEATURES:
+    Unterstuetzt wird das Konsumieren von Speisen per Essen oder Trinken auch
+    in mehreren Portionen. Die Speisen verderben und werden vernichtet.
+    Es sind Lebensmittel mit Behaelter moeglich, so dass dieser leer
+    zurueckbleibt, wenn der Inhalt gegessen oder vernichtet wurde.
+    Die Wirkung von Speisen kann neben der Zufuehrung von Lebens- und Konzen-
+    trationspunkten erweitert werden. Die Wirkung verdorbener Speisen kann 
+    getrennt definiert werden.
+    Wert und Gewicht der Speise werden in Abhaengigkeit der Restmengen immer
+    korrekt berechnet.
+
+REALISIERUNG:
+    Die Realisierung der Timer laeuft ueber die Resets der Speise. Callouts
+    werden lediglich verwendet, um den Aufruf des Resets zu garantieren.
+    Es wird auch geprueft, dass der Aufruf der Resets per Hand nichts
+    durcheinander bringt.
+
+    Des Weiteren ist sichergestellt, dass der Spieler nicht mit Futter in
+    Beruehrung kommt, dessen Timer zum Verderben initialisiert ist.
+
+    Das Konzept ist dem Heilungskonzept der Kneipen angepasst worden.
+    Dem entsprechend sind die Properties sehr aehnlich.
+
+PROPERTIES:
+
+      P_PORTIONS : Anzahl der Portionen (wie oft kann man abbeissen / 
+                   einen Schluck nehmen)
+
+          P_FOOD : Fuellgrad der Speise pro Portion, muss gesetzt sein, wenn
+                   P_DRINK nicht gesetzt ist
+         P_DRINK : Fuellgrad der Fluessigkeit pro Portion, muss gesetzt sein,
+                   wenn P_FOOD nicht gesetzt ist
+       P_ALCOHOL : Alkohollevel pro Portion 
+
+        P_WEIGHT : Gewicht pro Portion (bei QueryProp(P_WEIGHT) wird das
+                   komplette Gewicht aller Portionen + eventuell Behaelter 
+                   zurueckgegeben)
+         P_VALUE : Wert pro Portion  (bei QueryProp(P_VALUE) wird der
+                   komplette Wert aller Portionen + eventuell Behaelter 
+                   zurueckgegeben)
+
+            P_HP : Anzahl der LP, die prop Portion geheilt/geschwaecht werden
+            P_SP : Anzahl der KP, die prop Portion geheilt/geschwaecht werden
+  P_DISTRIBUTION : Verteilung der Heilung auf die Heartbeats
+                   (siehe Hilfe zu H_DISTRIBUTION in consume)
+
+      P_LIFETIME : Zeit in Sekunden, bis die Speise verdirbt (>0)
+                   Zaehlt ab der ersten Inbesitznahme durch einen Spieler
+P_RESET_LIFETIME : Zeit in Resets, bis die Speise verdirbt (>0)
+                   Die Laenge der einzelnen Resets wird wie ueblich berechnet
+                   und P_LIFETIME entsprechend auf durchschnittlich
+                   P_RESET_LIFETIME * 45 * 60 gesetzt.
+                   (existiert, da bisher meistens in Resets gerechnet wurde)
+                   Sollte sinnvollerweise nur als SetProp(P_RESET_LIFETIME)
+                   verwendet werden, kann aber auch abgefragt werden
+
+   P_EMPTY_PROPS : Mapping mit Werten des Behaelters
+                   Alle hier angegebenen Werte (ausser P_PORTIONS) werden
+                   in der Speise gesetzt, wenn die letzte Portion konsumiert
+                   wurde. Wenn diese Prop leer ist, wird das Objekt zerstoert,
+                   wenn keine Portionen mehr da sind.
+                   Achtung: es werden keine closures unterstuetzt! 
+           P_IDS :   Wert in P_EMPTY_PROPS
+                     Liste der IDs des leeren Behaelters
+                     Achtung: es werden keine closures unterstuetzt!
+    P_ADJECTIVES :   Wert in P_EMPTY_PROPS
+                     Liste der Adjektive des leeren Behaelters
+                     Achtung: es werden keine closures unterstuetzt!
+         P_VALUE :   Wert in P_EMPTY_PROPS
+                     Wert des leeren Behaelters
+        P_WEIGHT :   Wert in P_EMPTY_PROPS
+                     Gewicht des leeren Behaelters
+
+        P_NO_BAD : Flag, ob die Speise verderben kann
+                   Darf nur in Absprache mit der Balance auf 1 gesetzt werden!
+
+   P_DESTROY_BAD : Wert, was beim Verderben mit dem Object passiert
+                   DESTROY_BAD   = Die Speise wird beim Verderben zerstoert
+                                   bzw. der Behaelter wird geleert (default)
+                   DESTROY_NEVER = Die Speise wird beim Verderben nicht
+                                   zerstoert
+                   pos. integer  = Anzahl der Sekunden, die zwischen Verderben
+                                   und Zerstoeren der Speise liegen sollen
+
+MESSAGES: (durchlaufen replace_personal() und koennen somit Platzhalter
+          fuer Speise (1. Argument) und Konsument (2. Argument) enthalten)
+
+   P_CONSUME_MSG : fuer den Raum, wenn konsumiert wird
+     P_EATER_MSG : an den Konsumenten
+     P_EMPTY_MSG : wenn leere Behaelter konsumiert werden
+    P_NOFOOD_MSG : wenn Getraenke gegessen werden
+   P_NODRINK_MSG : wenn Futter getrunken wird
+       P_BAD_MSG : wenn Speisen verderben
+    P_REMOVE_MSG : wenn Speisen vernichtet werden
+                   (nur wenn sie nicht beim Verderben vernichtet werden)
+       P_ENV_MSG : wenn im Raum liegende Speisen konsumiert werden
+                   (ist diese Prop leer, geht das sogar!)
+ P_FOOD_FULL_MSG : wenn man nix mehr essen kann
+P_DRINK_FULL_MSG : wenn man nix mehr trinken kann
+  P_ALC_FULL_MSG : wenn man keinen Alkohol mehr vertraegt
+
+METHODEN:
+             consume : wird beim Konsumieren aufgerufen, wenn klar ist,
+                       dass was zum Konsumieren da ist.
+                       gibt das Ergebnis von try_consume() zurueck
+         try_consume : bereitet die Daten auf und fuehrt living->consume() aus
+                       kann zur Pruefung mit testonly-Flag aufgerufen werden
+                       gibt das Ergebnis von living->consume() zurueck
+     success_consume : wird von consume() aufgerufen, wenn Konsumieren klappt
+                       gibt die Meldungen zum Konsumieren aus
+      failed_consume : wird aufgerufen, wenn Konsumieren nicht klappt
+                       gibt den Grund fuer den Fehlschlag aus
+                       (je nach Ergebnis von living->consume())
+                       
+         consume_bad : Aendert die Daten fuer living->consume(), wenn eine
+                       verdorbene Speise konsumiert wird
+                       Standard: Heilung wirkt nicht, Vergiftung +1
+            make_bad : wird aufgerufen, wenn die Speise gerade verdirbt
+                       Gibt die Meldungen beim Verderben aus
+                       Vernichtet das Objekt, wenn das gewollt ist 
+                       Die Methode wird auch aufgerufen, wenn nur noch der
+                       Behaelter existiert! Also den Test is_not_empty() nicht
+                       vergessen!
+        make_destroy : wird aufgerufen, wenn die Speise bereits verdorben ist
+                       und die Zeit aus P_DESTROY_BAD abgelaufen ist.
+                       Gibt die Meldung zum Zerstoeren aus und ruft
+                       make_empty aus, um die Speise bzw. den Inhalt des
+                       Behaelters zu zerstoeren. Ausserdem wird der Reset
+                       abgeschaltet.
+                       Die Methode wird auch aufgerufen, wenn nur noch der
+                       Behaelter existiert! Also den Test is_not_empty() nicht
+                       vergessen!
+                       
+          make_empty : wird aufgerufen, wenn die letzte Portion konsumiert wird
+                       Macht aus einem vollen Behaelter einen leeren oder
+                       vernichtet das Objekt. Der Behaelter verdirbt also im
+                       Normalfall nicht!
+
+                init : Startet den Timer zum Verderben der Speise
+                       (start_lifetime()), wenn sich das Objekt in einem
+                       Spieler befindet.
+                       Prueft, ob Laufzeiten fehlerhafterweise nicht beendet
+                       wurden und holt es dann nach
+          NotifyMove : Startet den Timer zum Verderben der Speise
+                       (start_lifetime()) auch, wenn die Speise in einen
+                       Spieler bewegt wird, ohne dass init() aufgerufen
+                       wurde.
+               reset : wird fuer 3 Situationen verwendet:
+                       1: Das Futter wurde bewegt, der Timer aber noch nicht 
+                          initialisiert -> es wird geprueft, ob der Timer
+                          gestartet werden muss.
+                       2: Der Timer ist abgelaufen ->
+                          laesst die Speise verderben und vernichtet sie
+                          gegebenenfalls
+                       3: Der Timer nach dem Verderben ist abgelaufen ->
+                          vernichtet die Speise
+                       Es wird immer geprueft, ob die Resets zeitgerecht
+		       aufgerufen wurden und die Aktionen nicht zur falschen
+		       Zeit passieren
+
+        is_not_empty : Flag, ob noch Portionen vorhanden sind
+        is_drinkable : Flag, ob Speise trinkbar ist
+                       (nur wenn P_DRINK gesetzt und P_FOOD NICHT gesetzt ist)
+          is_eatable : Flag ob Speise essbar ist
+                       (wenn P_FOOD gesetzt (P_DRINK ist egal))
+              is_bad : Flag, ob Speise verdorben ist
+
+get_current_lifetime : Zeit in Sekunden, wie lange der Timer zum Verderben
+                       laeuft (ist immer 0, wenn P_NO_BAD gesetzt ist)
+      start_lifetime : startet den Timer zum Verderben der Speise falls keine
+                       Gruende dagegen sprechen, wird intern aufgerufen, kann
+                       aber in speziellen Situationen auch manuell aufgerufen
+                       werden (siehe oben unter REALISIERUNG)
+             message : es werden Meldungen zu Statusaenderungen verarbeitet
+                       und korrekt ausgegeben. Es wird der Name der auszu-
+                       gebenen Property uebergeben.
+                       Es werden alle notwendigen Ersetzungen per
+                       replace_personal gemacht und geprueft, ob dem Besitzer
+                       oder dem Raum die Meldung ausgegeben werden muss.
+                       Hierueber sollten nur Meldungen ausgegeben werden, die
+                       durch Aenderungen an der Speise im Reset ausgeloest
+                       werden, also im reset selbst und in den make_*-Methoden.
+
+
+STANDARD:
+    Wenn man nichts in seinem Futter ueberschreibt, dann hat es
+    folgendes Standardverhalten.
+    Es muss immer P_FOOD oder P_DRINK explizit groesser 0 gesetzt werden,
+    sonst laesst sich das Lebensmittel nicht konsumieren!
+
+    - Haltbarkeit: 1 Reset (30 + random(30) Minuten)
+    - der Ablauf der Haltbarkeit startet, sobald ein Spieler die Speise nimmt
+    - Wenn die Speise schlecht wird, wird sie zerstoert
+    - Die Speise hat keinen Behaelter
+    - Es gibt nur einen Schluck/Bissen, dann ist die Speise weg
+    - Gewicht: 50 Gramm / Wert: 10 Muenzen
+    - Man heilt weder LP noch KP
+    - Man wuerde ansonsten 5 LP/KP pro Heartbeat heilen
+    - Man kann die Speise nur konsumieren, wenn man sie in der Hand haelt
+    - Wenn man die verdorbene Speise konsumieren koennte, wuerde man nicht
+      heilen sondern vergiftet werden (P_POISON+1)
+
+BEISPIELE:
+    Beispiele zu tragbaren Speisen und Getraenken kann man unter
+    doc/beispiele/food/ nachschauen
+
+SIEHE AUCH:
+    consume, wiz/heilung, 
+
+LETZTE AeNDERUNG:
+    25.09.2010, Caldra