// Sie veraendern ihr Aussehen zeitabhaengig und verwelken nach einiger
// Zeit ganz.
// Sie treten als "einige Butterblumen" auf. Auch wenn es mehrere von ihnen
// in einem Raum gibt, sind es immer noch "einige Butterblumen".
// 17.11.2004 by Sunrise
inherit "thing";
#include <combat.h>
#include <properties.h>
string GetLong(); // Funktionen deklarieren
string blueten();
void create()
{
if(!clonep()) return;
::create();
AddId(({"butterblume", "blume"}), ({"butterblumen", "blumen"}));
SetProp(P_NAME, "Butterblumen");
SetProp(P_GENDER, FEMALE);
SetProp(P_PLURAL, "Butterblumen");
// Man kann angeben, ob ein Objekt mehrere repraesentieren soll. Eine allgemeine
// Information mit einigen Beispielen: name_usage
SetProp(P_NAME_AMOUNT, "einig");
SetProp(P_NAME_FLAG, NAME_AMOUNT_INDEF|NAME_PLURALOBJ);
// Diese Funktionalitaet erlaubt es uns, eine Funktion anzulegen,
// die bei jedem Aufruf erneut ausgefuehrt wird und sich somit selbst
// staendig aktualisiert.
// Wir nennen dies Query-Methode (von F_QUERY_METHOD)
Set(P_LONG, #'GetLong, F_QUERY_METHOD);
// Ein selbst festgelegtes Property enthaelt die Zeit time(),
// zu der das Objekt erzeugt, also die Blumen gepflueckt wurden.
SetProp("gepflueckt", time());
SetProp(P_SMELL,
"Die Butterblumen riechen fast gar nicht. Aber dafuer "
"sind sie sehr schoen und leuchtend gelb.");
// Das einzige Detail ist veraenderbar und ruft eine Funktion auf
AddDetail(({"blueten", "bluete"}), #'blueten);
}
string GetLong()
{
string str = "Ein paar zarte gelbe Butterblumen. "
"So wie sie oft liebende Kinder ihren Eltern pfluecken.";
// Wieviel Zeit ist seit dem Pfluecken vergangen?
switch(time()-QueryProp("gepflueckt"))
{
case 0..400:
str +=" Sie sind frisch gepflueckt."; break;
case 401..800:
str += " Die Butterblumen lassen schon die Koepfe "
"haengen."; break;
case 801..1200:
str += " Die Butterblumen sind schon ganz verwelkt.";
break;
default:
// wenn sie zu alt sind, verwelken sie
call_out("remove", 1, 1);
str += " Sie sind schon so verwelkt, dass Du sie "
"frustriert wegwirfst."; break;
}
return str;
}
string blueten()
{
switch(time()-QueryProp("gepflueckt"))
{
case 0..400:
return "Die zarten Blueten der Butterblumen sind noch "
"ganz offen und leuchtend. Offenbar sind die "
"Blumen frisch gepflueckt.";
case 401..800:
return "Die zarten Butterblumen lassen schon die Koepfe "
"haengen. Sie sind einfach zu zart, um gepflueckt zu "
"werden.";
case 801..1200:
return "Die Butterblumen sind schon ganz verwelkt. Sie "
"sind einfach zu zart, um gepflueckt zu werden.";
default:
call_out("remove", 1, 1);
return "Die Butterblumen sind derart lasch und verwelkt, "
"dass Du sie traurig wegwirft. Butterblumen sind halt "
"einfach zu zart, um gepflueckt zu werden.";
}
}
|