blob: 6f22d860481c6b54b25308a2c40add502911fdd9 [file] [log] [blame]
// (c) by Thomas Winheller (Padreic@mg.mud.de)
#include "../files.h"
#include <moving.h>
inherit ROOM("stdroom");
inherit "/std/room/kraeuter";
void create()
{
::create();
SetProp(P_LIGHT, 2);
SetProp(P_INDOORS, 0);
SetProp(P_INT_SHORT, "An einem verwunschenden Weiher");
AddSpecialDetail(({"ort", "weiher"}), "_query_int_long");
AddDetail(({"seerosen", "farben", "farbenvielfalt"}),
"Auf dem Wasser schwimmen zahlreiche Seerosen in allen Farben des Regenbogens\n"
+"eine solche Farbenvielfalt wie hier, hast Du bisher noch nirgendwo sonst\n"
+"gesehn.\n");
AddDetail("regenbogen", "Derzeit steht keiner am Himmel.\n");
AddDetail(({"libelle", "libellen", "atmosphaere", "summen"}),
"Hier und da schwirren ueber dem Weiher einige Libellen herum. Ihr Summen\n"
+"verbreitet eine richtig idyllische Atmosphaere an diesem Ort.\n");
AddDetail(({"pixies", "zauberwesen"}),
"Pixies sind kleine verspielte Zauberwesen, die hier im Zauberwald wohnen. Um\n"
+"einem von ihnen zu begegnen wirst Du hier im Wald sicher nich lange suchen\n"
+"muessen, doch vorsicht, sie haben nichts als Unfug im Kopf...\n");
AddDetail(({"wald", "zauberwald", "punkt"}),
"Der verwunschene Weiher ist mehr oder weniger der zentrale Punkt hier im\n"
+"Zauberwald. Er liegt mitten auf einer grossen Lichtung umgeben vom dichten\n"
+"Wald der Pixies\n");
AddDetail(({"lichtung", "mitte"}),
"Der Weiher befindet sich genau in der Mitte der Lichtung, sieh Dich halt\n"
+"einfach mal um.\n");
AddDetail(({"boden", "ufer"}),
"Das Ufer des Weihers besteht aus zahlreichen Steinen die bis in den Weiher\n"
+"hineinreichen. Auf und zwischen diesen Steinen sind jedoch ueberall zahlreiche\n"
+"kleine und mittlere Pflanzen gewachsen.\n");
AddDetail(({"stein", "steine"}), "Ein Stein ist ein Stein ist ein Stein ist ein Stein ist ein Stein.\n");
AddDetail("pflanzen",
"Die verschiedensten Pflanzen wachsen zwischen den Steinen empor und begruenen\n"
+"das Ufer. An einer Stelle kannst Du sogar weissen Wasser-Hahnenfuss wachsen\n"
+"sehen.\n");
AddDetail(({"wasser", "schimmer", "schimmern"}),
"Das Wasser ist irgendwie recht trueb und es geht ein sehr seltsames Schimmern\n"
+"von ihm aus. Irgendetwas besonderes hat es mit diesem Wasser auf sich, das\n"
+"spuerst Du genau. Du weisst jedoch nicht, ob es etwas gutes oder etwas boeses\n"
+"ist.\n");
AddDetail(({"himmel", "luft", "sonne", "waerme", "strahlen", "sonnenstrahlen"}),
"Die Sonne steht hoch am Himmel und fuellt diesen Ort mit einer herrlichen\n"
+"Waerme und ihre Strahlen reflektieren im Wasser in allen erdenklichen Farben.\n");
AddExit("norden", ROOM("lichtungn"));
AddExit("nordosten", ROOM("lichtungno"));
AddExit("nordwesten", ROOM("lichtungnw"));
AddExit("osten", ROOM("lichtungo"));
AddExit("westen", ROOM("lichtungw"));
AddExit("sueden", ROOM("lichtungs"));
AddExit("suedwesten", ROOM("lichtungsw"));
AddExit("suedosten", ROOM("lichtungso"));
AddItem(NPC("ulinia"), REFRESH_REMOVE, 1);
AddCmd(({"bad", "bade", "schwimm", "schwimme", "tauch", "tauche"}), "cmd_schwimmen");
AddCmd(({"trink", "trinke"}), "cmd_trinken");
AddCmd(({"pflueck", "pfluecke"}), "cmd_pfluecken");
// Detail per Hand hinzufuegen, da GetPlant anstelle von AddPlant
// verwendet wird.
AddPlantDetail(OBJ("hahnenfuss"));
}
static int cmd_trinken(string str)
{
int drink;
object ob;
if (member(({"wasser", "wasser aus teich", "wasser aus tuempel",
"wasser aus see", "aus teich", "aus tuempel", "aus wasser",
"aus see"}), str)==-1) {
notify_fail("Was moechtest Du trinken?\n");
return 0;
}
if ((ob=present(WALDID("fee"), ME)) && !ob->IsEnemy(PL)) {
write(BS("Die Waldfee scheint Deinen Entschluss ein wenig von dem "
+"Wasser zu kosten, bemerkt zu haben und straft Dich mit einem "
+"mahnenden Blick ab. Du ueberlegst es Dir also noch einmal und "
+"laesst von Deinem Vorhaben ab."));
return 1;
}
// das tanken am Wasser ist umsonst, es heilt dabei wie ein
// Kneipengetraenk das genau 1 Muenze kostet. Geheilt werden nur SP
// Ein Missbrauch ist im Wald ausgeschlossen, bzw. man muesste den
// gesamten Wald leermetzeln und kann dann ueben bis zum naechsten
// reset. Bei Kosten von einer Muenze pro Heilung ist es sehr fraglich
// ob sich das lohnt.... :)
drink=(PL->QueryProp(P_MAX_DRINK)) - (PL->QueryProp(P_DRINK));
if (drink>10) drink=10; // nie mehr als fuer 10 soak tanken...
if (drink <= 0 || !PL->drink_soft(drink, 1)) {
write("Du bist so voll, Du kannst leider wirklich nichts mehr trinken...\n");
return 1;
}
write("Du gehst an den Rand des Weihers und nimmst einen kraeftigen Schluck von dem\n"
+"Wasser. Sogleich spuerst Du, wie Deine mentalen Kraefte langsam gestaerkt\n"
+"werden.\n");
if (PL->drink_soft(drink)) { // soak gutschreiben erfolgreich?
PL->buffer_sp(drink*6, 5);
PL->SetProp(ZAUBERWALD, time()+AGGRESSIVE_TIME);
}
return 1;
}
static int cmd_schwimmen(string str)
{
string verb;
// besondere Eigenschaft der schluesselwoerter ausnutzen... :)
verb=(query_verb()||"");
if (verb[<1]!='e') verb+="e";
if (member(({"in teich", "in weiher", "in tuempel", "in see"}), str)==-1) {
notify_fail("Worin willst Du "+verb+"n?\n");
return 0;
}
str=capitalize(str[3..]); // "in " abschneiden...
if (present(WALDID("fee"), ME)) {
write(BS("Die Waldfee scheint Deinen Entschluss im "+str+" "+verb
+"n zu gehn irgendwie bemerkt zu haben und straft Dich mit einem "
+"mahnenden Blick ab. Deine Lust zum "+capitalize(verb)
+"n sinkt sogleich gegen null, denn Du verspuerst keine grosse "
+"Lust Dich mit der Waldfee anzulegen."));
return 1;
}
write(BS("Mutig gehst Du einen Schritt ins Wasser, da ueberkommt Dich auch "
+"schon ein seltsames kribbeln am ganzen Koerper. In windeseile "
+"hast Du den "+str+" auch schon wieder verlassen."));
return 1;
}
static int cmd_pfluecken(string str)
{
object ob;
notify_fail("WAS moechtest Du pfluecken?\n");
if (member(({"hahnenfuss",
"wasser-hahnenfuss",
"weisser hahnenfuss",
"weisser wasser-hahnenfuss"}), str)<0) return 0;
if ((ob=present(WALDID("fee"), ME)) && !ob->IsEnemy(PL)) {
write(BS("Die Waldfee scheint Dein Vorhaben bemerkt zu haben und "
+"straft Dich mit einem mahnenden Blick ab. Du ueberlegst es Dir "
+"wieder anders und laesst von Deinem Vorhaben ab, solange die "
+"Fee hier wacht."));
return 1;
}
ob=GetPlant(OBJ("hahnenfuss"));
if (objectp(ob)) {
if (ob->move(PL, M_GET)==1)
write(BS("Vorsichtig pflueckst Du "+ob->name(WEN, 1)
+" und nimmst "+ob->QueryPronoun(WEN)+" an Dich."));
else write(BS("Vorsichtig pflueckst Du "+ob->name(WEN, 1)+" kannst "
+ob->QueryPronoun(WEN)+" aber nicht nehmen."));
}
else if (!ob)
write(BS("Der Hahnenfuss ist noch nicht wieder weit genug "
+"nachgewachsen um ihn pfluecken zu koennen."));
return 1;
}
static string _query_int_long()
{
if (present(WALDID("fee"), ME))
return
"Du stehst nun an einem kleinen verwunschenen Weiher, inmitten des Zauberwalds.\n"
+"Auf dem Wasser schwimmen zahlreiche Seerosen in den verschiedensten Farben\n"
+"und hier und dort schwirrt eine Libelle in der Luft. Mitten ueber dem Weiher\n"
+"schwebt eine wunderschoene Waldfee in der Luft und scheint den Weiher zu\n"
+"bewachen. Irgendetwas geheimnisvolles scheint es mit dem Weiher auf sich\n"
+"zu haben, nur was?\n";
return
"Du stehst nun an einem kleinen verwunschenen Weiher, inmitten des Zauberwalds.\n"
+"Auf dem Wasser schwimmen zahlreiche Seerosen in den verschiedensten Farben und\n"
+"hier und dort schwirrt eine Libelle in der Luft. Alles scheint hier sehr\n"
+"friedlich zu sein, fast ein wenig zu friedlich. Irgendetwas geheimnisvolles\n"
+"scheint es mit diesem Weiher auf sich zu haben, nur was?\n";
}