Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/beispiele/food/banane.c b/doc/beispiele/food/banane.c
new file mode 100644
index 0000000..8882f4f
--- /dev/null
+++ b/doc/beispiele/food/banane.c
@@ -0,0 +1,114 @@
+/*
+Beispiel fuer eine Banane, die in einem Haps weg ist,
+aber eine Schale hat, die uebrig bleibt und genau wie die
+komplette Banane vergammelt und vergeht.
+*/
+
+#include <food.h>
+
+inherit "/std/food";
+
+string _query_long() {
+ string m = "Du haeltst ";
+ if (is_not_empty()) {
+ m += "eine Banane in der Hand.";
+ if (!is_bad())
+ m += " Sie ist schoen gelb und ohne braune Flecken.";
+ else
+ m += " Sie ist total braun und schon ganz matschig.";
+
+ } else {
+ m += "eine Bananenschale in der Hand.";
+ if (is_bad())
+ m += " Sie ist ganz verschimmelt.";
+ }
+ return break_string(m);
+}
+
+void create() {
+ if (!clonep(this_object())) {
+ set_next_reset(-1);
+ return;
+ }
+ ::create();
+
+ SetProp(P_SHORT,"Eine schoene reife Banane");
+ SetProp(P_NAME, "Banane");
+ SetProp(P_GENDER,FEMALE);
+ SetProp(P_VALUE,20); // ohne Schale
+ SetProp(P_WEIGHT,50); // ohne Schale
+ // SetProp(P_POTION,1); // ist eh Standard
+ SetProp(P_CONSUME_MSG,
+ "@WER2 schaelt eine Banane und isst sie genuesslich.");
+ SetProp(P_EATER_MSG,
+ "Du schaelst eine Banane und isst sie genuesslich.");
+ SetProp(P_BAD_MSG,
+ "Die Banane wird ganz matschig und schlecht.");
+ SetProp(P_REMOVE_MSG,
+ "Die Banane ist so verschimmelt, dass Du sie entsorgst.");
+ SetProp(P_EMPTY_MSG,
+ "Aber das ist doch nur eine BananenSCHALE, die willst Du nicht essen!");
+
+ SetProp(P_MATERIAL,([MAT_MISC_PLANT:100]));
+
+ SetProp(P_EMPTY_PROPS, ([
+ P_SHORT:"Eine Bananenschale",
+ P_NAME:"Bananenschale",
+ P_EMPTY_IDS:({"schale","bananenschale","banane"}),
+ P_VALUE:5, // Wert der Bananenschale
+ P_WEIGHT:5 // Gewicht der Bananenschale
+ ]));
+
+ //SetProp(P_RESET_LIFETIME,1); // ist eh Standard
+ SetProp(P_DESTROY_BAD,300); // verdorbene Bananen verschwinden nach 5 Min
+
+ SetProp(P_FOOD,50); // Fuellgrad der Banane
+ SetProp(P_HP,5);
+ SetProp(P_SP,5);
+
+ AddId(({"banane"}));
+
+}
+
+// Der Behaelter vergammelt auch
+public int make_destroy() {
+ if (!::make_destroy()) {
+ return remove(1);
+ }
+ return 1;
+}
+
+public int make_empty() {
+ SetProp(P_BAD_MSG,
+ "Die Bananenschale wird ganz schimmlig.");
+ SetProp(P_REMOVE_MSG,
+ "Die Bananenschale zersetzt sich vollstaendig.");
+ return ::make_empty();
+}
+
+// parent methode immer aufrufen und pruefen!!
+void make_bad() {
+ if (!::make_bad()) {
+ if (is_not_empty()) {
+ SetProp(P_SHORT,"Eine matschige Banane");
+ AddAdjective(({"matschige","matschigen"}));
+ SetProp(P_EATER_MSG,"Du lutschst die matschige Banane aus ihrer"
+ "Schale. Baeh, die schmeckt ueberhaupt nicht mehr.");
+ SetProp(P_CONSUME_MSG,
+ "@WER2 lutscht eine matschige Banane aus ihrer Schale.");
+ // Die Schale ist dann natuerlich auch vergammelt
+ SetProp(P_EMPTY_PROPS, ([
+ P_SHORT:"Eine verschimmelte Bananenschale",
+ P_NAME:"Bananenschale",
+ P_EMPTY_IDS:({"schale","bananenschale","banane"}),
+ P_EMPTY_ADJ:({"verschimmelte","verschimmelten"}),
+ P_VALUE:5, // Wert der Bananenschale
+ P_WEIGHT:5 // Gewicht der Bananenschale
+ ]));
+ } else {
+ message(P_BAD_MSG);
+ SetProp(P_SHORT,"Eine verschimmelte Bananenschale");
+ AddAdjective(({"verschimmelte","verschimmelten"}));
+ }
+ }
+}
diff --git a/doc/beispiele/food/wasserflasche.c b/doc/beispiele/food/wasserflasche.c
new file mode 100644
index 0000000..3c62c13
--- /dev/null
+++ b/doc/beispiele/food/wasserflasche.c
@@ -0,0 +1,92 @@
+/*
+Beispiel fuer ein tragbares Getraenk in einer Flasche.
+*/
+
+#include <food.h>
+
+inherit "/std/food";
+
+string _query_long() {
+ string m = "Du siehst eine Glasflasche,";
+ if (is_not_empty()) {
+ m += " in der sich Wasser befindet.";
+ if (!is_bad())
+ m += " Es ist glasklar und sieht irgendwie verlockend aus.";
+ else
+ m += " Es ist truebe und sieht nicht gerade verlockend aus.";
+
+ m += " Die Flasche ist ";
+ switch (to_int((QueryProp(P_PORTIONS)-1)/2.5)) {
+ case 0:
+ m += "fast leer.";
+ break;
+ case 1:
+ m += "halb voll.";
+ break;
+ case 2:
+ m += "fast voll.";
+ break;
+ case 3:
+ m += "voll.";
+ break;
+ default:
+ m += "nicht leer.";
+ }
+ } else {
+ m += " in der frueher mal Wasser war.";
+ }
+ return break_string(m);
+}
+
+void create() {
+ if (!clonep(this_object())) {
+ set_next_reset(-1);
+ return;
+ }
+ ::create();
+
+ SetProp(P_SHORT,"Eine Flasche mit Wasser");
+ SetProp(P_NAME, "Wasserflasche");
+ SetProp(P_GENDER,FEMALE);
+ SetProp(P_VALUE,5); // pro Portion (ohne Flasche)
+ SetProp(P_WEIGHT,50); // pro Portion (ohne Flasche)
+ SetProp(P_PORTIONS,10);
+ SetProp(P_DESTROY_BAD,0); // verdorbenes Wasser wird nicht zerstoert
+ SetProp(P_CONSUME_MSG,
+ "@WER2 trinkt aus einer Flasche. Wasser laeuft ueber @WENQPPNS2 Kinn.");
+ SetProp(P_EATER_MSG,
+ "Du trinkst Wasser aus der Flasche. Etwas laeuft Dir ueber das Kinn.");
+ SetProp(P_BAD_MSG,
+ "Das Wasser in der Flasche wird truebe.");
+
+ SetProp(P_MATERIAL,([MAT_GLASS:15, MAT_WATER:85]));
+
+ SetProp(P_EMPTY_PROPS, ([
+ P_SHORT:"Eine leere Flasche",
+ P_NAME:"Flasche",
+ P_EMPTY_IDS:({"flasche"}),
+ P_EMPTY_ADJ:({"leere","leeren"}),
+ P_MATERIAL:([MAT_GLASS:100]),
+ P_VALUE:5, // Wert der Flasche ohne Wasser
+ P_WEIGHT:20 // Gewicht der Flasche ohne Wasser
+ ]));
+
+ SetProp(P_RESET_LIFETIME,3); // 3 Resets, ehe das Wasser truebe wird
+ SetProp(P_DRINK,50); // Fuellgrad pro Schluck
+ SetProp(P_DISTRIBUTION,10); // Punkte Heilung pro Heartbeat
+ SetProp(P_HP,30); // pro Schluck
+ SetProp(P_SP,30); // pro Schluck
+
+ AddId(({"flasche","wasserflasche","wasser"}));
+ AddAdjective(({"volle","vollen"}));
+
+}
+
+// parent methode immer aufrufen und pruefen!!
+void make_bad() {
+ if (!::make_bad() && is_not_empty()) {
+ // die Trinkmeldung aendern wir mal
+ SetProp(P_EATER_MSG,"Du trinkst truebes Wasser aus der Flasche. "
+ "Das war wohl nicht so gut. Dir wird ganz uebel!");
+ }
+}
\ No newline at end of file