blob: 341ee6e01f5de9f46eea3b4c37e350ca48f5fb3b [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 maybe_replace_program()
// dieser Standardraum, darf _nicht_ replaced werden...
{ }
int tuempel_ex(string exit, mapping map_ldfied)
{ return map_ldfied[exit]==ROOM("tuempel"); }
static int plant;
void create()
{
int i;
string tuempel, dir;
mixed tmp;
if (!clonep(ME)) return;
::create();
plant=0;
SetProp(P_INDOORS, 0);
SetProp(P_LIGHT, 1);
SetProp(P_INT_SHORT, "Am Rande der Zauberlichtung");
SetProp(EXTRA_LONG, "");
if (PO) dir=(PO->CustomizeObject());
if (!dir) return;
dir=(["o":"ost", "w":"west", "n":"nord", "s":"sued",
"no":"nordost", "nw":"nordwest",
"so":"suedost", "sw":"suedwest"])[dir[8..]];
tuempel=filter(m_indices(QueryProp(P_EXITS)||([])), "tuempel_ex", ME, QueryProp(P_EXITS)||([]))[0][0..<3];
dir=capitalize(dir); tuempel=capitalize(tuempel);
SetProp(P_INT_LONG, BS(
"Du stehst am "+dir+"rand der grossen Lichtung inmitten des Zauberwalds. "
+tuempel+"lich von hier, befindet sich genau in der Mitte der "
+"Lichtung ein kleiner Tuempel in dessen Wasser sich das Sonnenlicht in "
+"allen Farben des Regenbogens spiegelt. Hier und da stehen um den Teich "
+"herum vereinzelt einige Eichen die sich irgendwie zu bewegen "
+"scheinen und ab und zu siehst Du wie sich einige kleine Pixies aus "
+"dem Wald heraus ans Wasser trauen. Die Eichen jedoch, halten immer "
+"einen deutlichen Abstand zum Wasser."+QueryProp(EXTRA_LONG)));
AddDetail(({"raum", lower_case(dir)+"rand", "zauberwald"}), QueryProp(P_INT_LONG));
AddDetail(({"pixies", "zauberwesen", "unfug"}),
"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(({"farben", "regenbogen", "computer"}),
"Noch nie einen Regenbogen gesehn? Hmm.. dann sitzt Du wirklich eindeutig\n"
+"zuviel vor Deinem Computer...\n");
AddDetail("abstand",
"Wieso sie diesen Abstand halten kannst Du nicht nachvollziehn, aber mehr als\n"
+"ein paar Meter gehen sie nie an den alten Weiher dran.\n");
AddDetail(({"sonne", "sonnenstrahlen", "sonnenlicht", "himmel", "herz"}),
"Zahlreiche warme Sonnenstrahlen erwaermen Dein Herz und Du bist richtig\n"
+"gluecklich. Solch ein Idyllisches Plaetzchen willst Du am liebsten nie\n"
+"wieder verlassen. Fehlt eigentlich nur noch ein Partner, mit dem man\n"
+"hier gemeinsam in der Sonne liegen und das rauschen des Wassers geniessen\n"
+"kann.\n");
AddDetail("partner", "Den musst Du Dir schon selbst mitbringen...\n");
AddDetail(({"wald", "zauberwald"}),
"Du befindest Dich quasi mittem ihn ihm. Rund herum um die Lichtung schliesst\n"
+"sich ein dichter Wald an.\n");
AddDetail(({"eiche", "eichen"}),
"Hier befindet sich gerade keine, so dass Du sie nich naeher ansehn kannst.\n");
AddDetail(({"lichtung", "rand", "plaetzchen"}), QueryProp(P_INT_LONG));
AddDetail(({"wasser", "tuempel", "teich", lower_case(tuempel)+"en", "mitte"}),
"Wenn Du Dir den Tuempel in der Mitte der Lichtung etwas naeher ansehen\n"
+"moechtest, solltest Du vielleicht einfach noch ein bisschen naeher rangehn.\n");
AddDetail(({"waldweg", "weg"}),
"Ueber den Waldweg kannst Du den Wald wieder verlassen wenn Du moechtest.\n");
AddDetail(({"boden"}),
"Der Boden ist hier nirgends nackt sichtbar, sondern ist mit einem schoenen\n"
+"gruenen Rasenteppich bedeckt. Nicht zu hoch und nicht zu tief, offensichtlich\n"
+"bedarf diese Grasart keinerlei Pflege oder aber irgendjemand pflegt diesen\n"
+"Rasen hier seeehhhhrrr gruendlich.\n");
AddDetail(({"grasart", "rasen", "art", "gras", "rasenteppich", "halme"}),
"Du schaust Dir den Rasen noch einmal gruendlich an und streichst mit Deiner\n"
+"Hand durch die Halme. Was auch immer das fuer eine Art ist, solch einen Rasen\n"
+"hast Du noch nicht gesehn.\n");
AddDetail("hand",
"Sei lieber vorsichtig, sonst ist die Hand schneller ab als Du denkst...\n");
AddDetail("pflege",
"Ob jemand diesen Rasen pflegt, bzw. _wer_ kannst Du nicht entdecken...\n");
AddSounds(({"rauschen", "wasser"}), "Leise hoerst Du das rauschen des Wassers....\n");
}
#define VERB (["iss": "essen", "esse": "essen", "pflueck": "pfluecken", "pfluecke": "pfluecken"])
static int cmd_pilze(string str)
{
notify_fail("Was moechtest Du "+VERB[query_verb()]+"?\n");
if (str!="pilz" && str!="pilze") return 0;
if (plant>time()) {
write("Du solltest die Pilze erstmal in Ruhe wieder etwas nachwachsen lassen.\n");
return 1;
}
if (PL->QueryProp(ZAUBERWALD)<=time()) {
write("Du bist nur Gast hier und die Bewohner des Zauberwalds, sehen es nicht gerne\n"
+"wenn man hier einfach so die Pilze pflueckt.\n");
return 1;
}
plant=time()+300;
write("Du pflueckst Dir einige Pilze und isst sie. Anschliessend geht es Dir\n"
+"bedeutend besser.\n");
PL->reduce_hit_points( negate(100+random(100)) );
return 1;
}
static int cmd_farne(string str)
{
int food;
notify_fail("Was moechtest Du "+VERB[query_verb()]+"?\n");
if (str!="farn" && str!="farne") return 0;
if (PL->QueryProp(ZAUBERWALD)<=time()) {
write("Du bist nur Gast hier und die Bewohner des Zauberwalds, sehen es nicht gerne\n"
+"wenn man hier einfach so den Farn abreisst.\n");
return 1;
}
// das tanken am Wasser ist umsonst, es heilt dabei wie ein
// mittleres Kneipenessen das genau 1 Muenze kostet. Geheilt werden nur HP
// Ein Missbrauch ist im Wald ausgeschlossen, bzw. man muesste den
// gesamten Wald leermetzeln und kann dann hier tanken bis zum naechsten
// reset. Bei Kosten von einer Muenze pro Heilung ist es sehr fraglich
// ob sich das lohnt.... :)
food=(PL->QueryProp(P_MAX_FOOD)) - (PL->QueryProp(P_FOOD));
if (food>10) food=10; // nie mehr als fuer 10 food tanken...
if (food <= 0 || !PL->eat_food(food, 1)) {
write("Du bist so voll, Du kannst leider wirklich nichts mehr essen...\n");
return 1;
}
write("Du pflueckst ein wenig von dem Farn und isst ihn. Sogleich spuerst Du, wie es\n"
+"Dir allmaehlich wieder besser geht...\n");
if (PL->eat_food(food)) { // food gutschreiben erfolgreich?
PL->buffer_hp(food*6, 8);
PL->SetProp(ZAUBERWALD, time()+AGGRESSIVE_TIME);
}
return 1;
}
static int cmd_sueden()
{
if (PL->QueryProp(ZAUBERWALD)>time()) {
write("Du versuchst in den Wald zu fluechten, doch die Farne und Buesche bilden\n"
+"eine pflanzliche Barriere und lassen Dich nicht hindurch.\n");
return 1;
}
write("Du machst einen Schritt hin nach Sueden und sofort biegen sich auf magische\n"
+"Weise die Farne und Buesche zur Seite und geben einen Trampelpfad nach Sueden\n"
+"frei.\n");
PL->move(ROOM("huette"), M_GO, "durch die Buesche nach Sueden", "zwaengt sich");
return 1;
}