MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | // (c) by Padreic (Padreic@mg.mud.de) |
| 2 | |
| 3 | #include "../files.h" |
| 4 | |
| 5 | inherit ROOM("stdroom"); |
| 6 | |
| 7 | void create() |
| 8 | { |
| 9 | ::create(); |
| 10 | SetProp(P_INDOORS, 0); |
| 11 | SetProp(P_LIGHT, 1); |
| 12 | SetProp(P_INT_SHORT, "Bei einem Stein"); |
| 13 | AddSpecialDetail(({"ort", "wald", "platz"}), "_query_int_long"); |
| 14 | AddDetail("stein", |
| 15 | "Der Stein ist, durch die Sonnenstrahlen ordentlich aufgeheizt, angenehm warm\n" |
| 16 | +"und bietet eigentlich den idealen Platz um es sich gut gehn zu lassen und in\n" |
| 17 | +"der Sonne zu liegen.\n"); |
| 18 | AddDetail(({"sonne", "himmel", "sonnenstrahlen", "strahlen"}), |
| 19 | "Der blaue Himmel ist nahezu wolkenfrei und so strahlt die Sonne in voller\n" |
| 20 | +"Pracht oben am Himmel und ihre Strahlen prasseln auf Deine Haut.\n"); |
| 21 | AddDetail(({"boden", "weg", "waldweg", "erde"}), |
| 22 | "Ein ganz normaler Waldweg halt, ein bisschen sandig, einige kleine Aestchen\n" |
| 23 | +"ganz normal halt.\n"); |
| 24 | AddSpecialDetail("zeit", "det_zeit"); |
| 25 | AddDetail(({"aestchen", "stoeckchen"}), |
| 26 | "Ganz kleine heruntergefallene Stoeckchen, durch reges drueber laufen\n" |
| 27 | +"im Laufe der Zeit kleingemalen und vom Wetter aufgeloest...\n"); |
| 28 | AddDetail("wetter", |
| 29 | "Auch wenn hier heute die Sonne scheint, gibt es natuerlich auch hier\n" |
| 30 | +"gelegentlich verregnete Tage.\n"); |
| 31 | AddDetail("tage", "Naja... allzuviele sind es jedoch nicht.\n"); |
| 32 | AddDetail(({"nordosten", "lichtung", "ausgang", "weiher"}), |
| 33 | "Im Nordosten kannst Du immer noch die grosse Lichtung mit den wandernden Eichen\n" |
| 34 | +"und dem verwunschenen Weiher erkennen.\n"); |
| 35 | AddDetail(({"eichen", "wandernde eichen"}), |
| 36 | "Im Nordosten auf der Lichtung hast Du vorhin wandernde Eichen gesehn,\n" |
| 37 | +"vielleicht solltest Du einfach nochmal zurueck gehn und sie Dir naeher\n" |
| 38 | +"anschaun.\n"); |
| 39 | AddDetail(({"wolke", "wolken", "schaefchenwolke"}), |
| 40 | "Der Himmel ist eigentlich wolkenfrei nur hier und da zieht mal eine kleine\n" |
| 41 | +"Schaefchenwolke vorbei.\n"); |
| 42 | AddExit("nordosten", ROOM("lichtungsw")); |
| 43 | AddItem(NPC("titina"), REFRESH_REMOVE, 1); |
| 44 | AddCmd(({"setz", "setze", "leg", "lege", "kletter", "klettere"}), "cmd_setzen"); |
| 45 | AddCmd(({"steh", "stehe"}), "cmd_aufstehn"); |
| 46 | } |
| 47 | |
| 48 | #define STEIN WALDID("stein") |
| 49 | |
| 50 | void init() |
| 51 | { |
| 52 | if (PL) PL->SetProp(STEIN, 0); |
| 53 | ::init(); |
| 54 | } |
| 55 | |
| 56 | static int cmd_aufstehn(string str) |
| 57 | { |
| 58 | if (!PL->QueryProp(STEIN)) return 0; |
| 59 | if (str!="auf" && str!="von stein auf") { |
| 60 | notify_fail("Von was moechtest Du aufstehn?\n"); |
| 61 | return 0; |
| 62 | } |
| 63 | PL->SetProp(STEIN, 0); |
| 64 | write("Du kletterst also vom Stein wieder runter und stehst auf.\n"); |
| 65 | return 1; |
| 66 | } |
| 67 | |
| 68 | #define VERB(x) (["setz": "setzt", "leg": "legst", "kletter": "kletterst"])[x] |
| 69 | |
| 70 | static int cmd_setzen(string str) |
| 71 | { |
| 72 | string verb; |
| 73 | verb=query_verb(); |
| 74 | if (verb && verb[<1]=='e') verb=verb[0..<2]; |
| 75 | if (str!="auf stein" && str!="stein" && str!="von stein") { |
| 76 | notify_fail(BS("Wohin moechtest Du " |
| 77 | +(verb!="kletter" ? "Dich " : "")+verb+"en?")); |
| 78 | return 0; |
| 79 | } |
| 80 | if (PL->QueryProp(STEIN)) { |
| 81 | if (verb!="kletter" || str=="auf stein") { |
| 82 | write("Du sitzt doch bereits auf dem Stein!\n"); |
| 83 | return 1; |
| 84 | } |
| 85 | PL->SetProp(STEIN, 0); |
| 86 | write("Du kletterst also vom Stein wieder runter und stehst auf.\n"); |
| 87 | return 1; |
| 88 | } |
| 89 | |
| 90 | write(BS("Entspannt "+VERB(verb)+" Du "+(verb!="kletter" ? "Dich " : "") |
| 91 | +"auf den Stein und geniesst die Sonne.")); |
| 92 | PL->SetProp(STEIN, time()); |
| 93 | return 1; |
| 94 | } |
| 95 | |
| 96 | static string det_zeit() |
| 97 | { return "Wir haben genau "+dtime(time())[<8..]+".\n"; } |
| 98 | |
| 99 | static string _query_int_long() |
| 100 | { |
| 101 | if (present(WALDID("fee"), ME)) |
| 102 | return |
| 103 | "Hier mitten im Wald steht ein grosser Stein, auf dem Titina die wunderschoene\n" |
| 104 | +"Waldfee sitzt und sich in aller Ruhe ihr langes goldenes Haar kaemmt. Die\n" |
| 105 | +"Sonne strahlt genau auf den Stein und es ist wohl wirklich der gemuetlichste\n" |
| 106 | +"Ort auf Erden. Links und rechts vom Weg schliesst der dichte Wald an und so\n" |
| 107 | +"ist der einzige Ausgang Richtung Nordosten zurueck zur Lichtung.\n"; |
| 108 | return "Hier mitten im Wald steht ein grosser Stein, der von der Sonne ordentlich\n" |
| 109 | +"aufgeheizt wird und ihn zu einem traumhaften Ort fuer alle Sonnenliebhaber\n" |
| 110 | +"macht. Links und rechts vom Weg schliesst direkt der dichte Wald an und so\n" |
| 111 | +"ist der einzige Ausgang Richtung Nordosten zurueck zur Lichtung.\n"; |
| 112 | } |