blob: a28eb416d977d56cc5033afbc1599c49083a5d71 [file] [log] [blame]
inherit "/std/thing";
#include <properties.h>
#include <moving.h>
#include <language.h>
#pragma strict_types,save_types,rtt_checks
protected void create()
{
::create();
SetProp(P_GENDER, NEUTER);
SetProp(P_NAME, "Gebuesch");
SetProp(P_SHORT,"Ein Gebuesch");
SetProp(P_LONG,"Du stehst vor einem gaanz normalen Gebuesch. Es traegt "
"Fruechte. Und eventuell\nkann man darin etwas finden.\n");
SetProp(P_NOGET,"Es ist festgewachsen, eventuell kann man es ausgraben?\n");
SetProp(P_WEIGHT,5000);
SetProp(P_SIZE,100);
AddId(({"busch","gebuesch"}));
AddDetail(({"fruechte","frucht"}),
"Es scheinen Beeren zu sein. Vielleicht kannst Du sie pfluecken?\n");
AddDetail("beeren",
"Pflueck sie doch, vielleicht bringt das ja was.\n");
// Nur wenn die Syntax erfuellt ist, wird cmd_pfluecken() aufgerufen.
// "pfluecke beeren von busch" etc.
AddCmd("pfluecke|ernte&fruechte|beeren&@ID","cmd_pfluecken",
"Was willst Du denn @verben?|Wo willst Du denn die Beeren @verben?");
// ^- Fehler fuer 'fruechte' ^- Fehler fuer '@ID'
// suchen gibt nur eine Meldung aus. Dafuer braucht man kuenftig keine
// Funktionen mehr.
AddCmd("such|suche|durchsuch|durchsuche&@ID&\nimpossible",0,
"Wo willst Du @VERBen?|Du durchsuchst das Gebuesch, findest aber nichts."
// ^- Fehler fuer '@ID' ^- Fehler fuer unerfuellbare Regel '\nimpossible'
"^@WER1 durchsucht ein Gebuesch, findet aber nichts.");
// ^- return 1-Flag, mit Raummeldung
// Graben geht eh nicht. Daher nur Fehlermeldungen.
// Das ^ sagt, dass hier ein return1 zurueckgegeben wird. Es gibt aber keine
// Raummeldung.
AddCmd("grab|grabe&@ID&aus@\nimpossible",0,
"Was willst Du graben?|Du willst das Gebuesch ausgraben?|"
// ^- Fehler fuer '@ID' ^- Fehler fuer 'aus'
"Die Wurzeln scheinen tief zu rechen. Das wird nichts.^");
// ^- Fehler fuer unerfuellbare Regel '\nimpossible' ^- return 1-Flag
// keine Raum
}
int cmd_pfluecken(string arg, mixed *param)
{
object obj = clone_object(__DIR__"obst");
string msg = "Verwundert pflueckst Du "+(obj->name())+" vom Busch. "
"Komisch.";
this_player()->ReceiveMsg(msg, MT_NOTIFICATION);
if(this_player()->pick(obj))
return 1;
if(obj->move(environment(), M_PUT) == MOVE_OK)
this_player()->ReceiveMsg(obj->Name(WER)+" faellt zu Boden.",
MT_LOOK|MT_LISTEN);
else {
this_player()->ReceiveMsg(obj->Name(WER, 1)+" zerplatzt.",
MT_LOOK|MT_LISTEN);
obj->remove(1);
}
return 1;
}