// Ein recht komplexer Beispiel-Apfel zum Essen
// (nach Original "apfel.c" in Kogida)
//
// 05.08.99 Holger@Wunderland
inherit "std/food"; // Wir erben das Standardessen
#include <defines.h> // ein paar nuetzliches Defines
#include <properties.h> // die wichtigen Properties
#include <food.h> // die properties des Essens
// Prototypen
string ess_msg(); // Funktionen, die wir erst benutzen und
string beiss_msg(); // erst danach definieren, brauchen einen
// Prototyp, sonst bricht der Compiler ab,
// weil er die Funktion noch nicht kennt.
// Prototypen bestehen aus der Funktions-
// definition, gefolgt durch Semikolon
// Das create() wird immer gleich nach dem Clonen aufgerufen
void create() {
// Bin ich kein Klon? -> Dann brich das create() gleich ab!
if (!clonep()) return;
// auch die Mutterklasse (food) braucht ihre create()
// NIEMALS VERGESSEN!
::create();
// Langbeschreibung setzen
SetProp(P_LONG,
"Ein aussergewoehnlich grosser Apfel. Er ist ganz gelb und hat ein "
"rotes Baeckchen. Dir laeuft das Wasser im Mund zusammen.");
// den Singular-Name setzen
SetProp(P_NAME, "Apfel");
// den Plural-Name setzen
SetProp(P_PLURAL, "Aepfel");
// Das Geschlecht setzen (maennlich)
SetProp(P_GENDER, MALE);
// Singular und Plural Id setzen (damit spricht man das Objekt an)
AddId("apfel","aepfel");
// einen gewissen Wert setzen
SetProp(P_VALUE, 20);
// die 'Sperrigkeit' bzw 'Unhandlichkeit' setzen
SetProp(P_BULKINESS, 50);
// das Gewicht setzen in Gramm
SetProp(P_WEIGHT, 200);
// jetzt die Werte die Essen-spezifisch sind
// aus 5 Stuecken besteht der Apfel
SetProp(P_PIECES, 5);
// insgesamt heilt der frische Apfel 10 Lebenspunkte
SetProp(P_HEAL, 10);
// wie saettigt der Apfel?
SetProp(P_FILL, 10);
// der Apfel vergammelt 14400 Sekunden = 4 Stunden = 1 WL-tag
SetProp(P_ROTT, 14400);
// der Geschmack des Apfels (fuers Essen und Kosten)
SetProp(P_TASTE, "Er schmeckt fruchtig frisch und vitaminreich." );
// Der Geruch des Apfels
SetProp(P_SMELL, "Der Apfel duftet ganz wunderbar frisch und fruchtig.");
// Wir aendern die Meldungen die beim Essen ausgegeben werden und
// geben dafuer 2 Closures an (siehe Prototypen oberhalb und Funktionen
// unterhalb von create()
// Wenn man die Zeile weglaesst werden die Standardmeldungen erzeugt.
SetProp(P_EAT, ({ #'ess_msg, 0, #'beiss_msg, 0 }) );
// Wir setzen eigene Meldungen, wenn der Apfel vergammelt.
// Wenn man die weglaesst, kommen Standardmeldungen.
SetProp(P_ROTT_MSG, ({
"Der schoene grosse gelbe Apfel in Deiner Tasche ist mittlerweile "
"schon ganz fleckig und matschig geworden. Du entschliesst Dich, das "
"Ding zu entsorgen, ehe er noch anfaengt zu wegzulaufen. Du aergerst "
"Dich, dass Du den Apfel nicht eher gegessen hast und wirfst ihn weg.",
"Du siehst, wie &&WER&& einen uralten braunen vergammelten Apfel "
"aus seiner Tasche zieht und angwidert wegwirft.",
"Der Apfel verschimmelt und die Ameisen machen sich darueber her. "
"Nach kurzer Zeit schon ist er verschwunden."}) );
// Jetzt setzen wir noch ein paar details, die die Spieler am Apfel
// untersuchen koennen
AddDetail(({"stiel","apfelstiel"}),
"Der Apfel hat eine ganz normalen braunen Apfelstiel.");
AddDetail(({"bluete","apfelbluete"}),
"Der Apfel hat eine kleine braune vertrocknete Bluete.");
AddDetail(({"farbe"}),
"Der Apfel ist ganz gelb und hat auf einer Seite einen roten Fleck.");
AddDetail(({"fleck","seite","baeckchen"}),
"Der Apfel hat ein rotes Baeckchen. Du bekommst Lust hineinzubeissen.");
}
// Jetzt kommen noch die beiden Funktionen, die wir bei P_EAT angegeben
// haben. Sie geben den String zurueck der ausgegeben werden soll. Wenn man
// P_EAT nicht setzt, kann man die Funktionen hier und die Prototypen oben
// weglassen
string ess_msg() {
return "Du beisst hemmungslos in den wunderbaren gelben "
"saftigen Apfel hinein. Er schmeckt einfach phantastisch. Der suesse "
"Fruchtsaft laeuft Dir rechts und links am Mundwinkel herunter. Du "
"kannst Dich einfach nicht zuegeln und innerhalb kuerzester Zeit hast "
"Du den ganzen Apfel aufgegessen. Den uebrig gebliebenen Stiel "
"schnippst Du einfach weg.";
}
string beiss_msg() {
return "Du beisst hemmungslos ein Stueck aus dem wunderbaren "
"gelben saftigen Apfel. Er schmeckt einfach phantastisch. Der suesse "
"Fruchtsaft laeuft Dir rechts und links am Mundwinkel herunter.";
}
|