/* -*- LPC -*- */ /* * $Locker: ceres $ * $Id: plain.c,v 1.7 2002/03/26 01:41:57 pinkfish Exp ceres $ * */ #define CREATOR "Ceres" /** * This is a standard field room. It is a specialisation of /std/outside * providing various ready-made add_items for your fields. * <p> * room_chats are also provided, if you don't wish to keep them simply use * room_chat to write your own or stop_room_chats to remove them. * <p> * The items and chats are seasonal adding richness to your field setting. * @author Ceres */ #include <weather.h> #include <terrain_map.h> inherit TERRAIN_MAP_OUTSIDE_BASE; void create() { do_setup++; ::create(); do_setup--; set_light(80); set_climate("Aw"); add_zone("plain"); switch((string)WEATHER->query_season()) { case "spring": add_item("flower", ({"long", "Some pretty flowers.", "get", ({this_object(), "do_get_flower"}), "pick", ({this_object(), "do_get_flower"}), "smell", "The flowers smell wonderful." })); add_item("tree", "There is the occasional tree here and there covered " "with new leaves at this time of year."); add_item(({"floor", "ground", "earth"}), "The ground is mostly grassy " "with the occasional clump of wild flowers."); room_chat(({120, 240, ({"Birds sing loudly announcing their presence.", "Bees buzz busily from flower to flower.", "A butterfly alights on a nearby flower.", "A bird takes off from a tree and flies low " "across the fields."})})); break; case "summer": add_item(({"floor", "ground", "earth"}), "The ground is mostly grassy. " "The grass is long and sways gently in the breeze. Here and " "there amongst the grass are wild flowers and other plants."); add_item("tree", "There are a few trees which are in their full " "foliage right now."); add_item(({"flower", "plant"}), ({"long", "Some pretty flowers.", "get", ({this_object(), "do_get_flower"}), "pick", ({this_object(), "do_get_flower"}), "smell", "The flowers smell wonderful." })); room_chat(({120, 240, ({"The wind stirs the grass which sways reminding " "you of waves on an ocean.", "A small animal rustles in the long grass.", "A butterfly alights on a nearby flower.", "A bee buzzes around looking for nectar."})})); break; case "autumn": add_item(({"floor", "ground", "earth"}), "The ground is mostly grassy."); add_item("tree", "The occasional trees are gold and brown as their " "leaves die before winter."); room_chat(({120, 240, ({"A squirrel rushes up a nearby tree trunk.", "A bird of prey soars high overhead looking " "for something to eat."})})); break; case "winter": add_item(({"floor", "ground", "earth"}), "The ground is mostly grassy "+ "apart from the occasional hardy shrub."); add_item("tree", "Dotted here and there are skeletal trees bare of " "leaves waiting for spring."); room_chat(({120, 240, ({"Somewhere a small animal forages in the " "undergrowth for winter food."})})); break; } add_item("rock", ({ "long", "A nice rock looking thingy.", "get", ({ this_object(), "do_get_rock" }) }) ); if (!do_setup) { this_object()->setup(); this_object()->reset(); } } /** @ignore yes */ mixed do_get_rock( string verb, object *dest ) { int rock_size; string rock_type; object rock; if ( query_property( "rock object" ) ) return ( rock = clone_object( (string)query_property( "rock object" ) ) ); if ( undefinedp( rock_size = (int)query_property( "rock size" ) ) ) rock_size = 3; if ( !rock_size ) return 0; rock = clone_object( "/obj/mineral" ); if ( undefinedp( rock_type = (string)query_property( "rock type" ) ) ) rock_type = ({ "cinnabar", "coal", "rosy-quartz", "chalk", "flint", "slate" })[ random( 6 ) ]; rock->make_mineral( rock_type, 1 + random( rock_size ) ); if ( !( rock->move( this_player() ) ) ) return 1; rock->dest_me(); return 0; } /** @ignore yes */ mixed do_get_flower( string verb, object *dest ) { string flower_type; object flower; if ( query_property( "flower object" ) ) return (flower = clone_object((string)query_property("flower object"))); if ((int)query_property("noflowers")) return 0; flower = clone_object("/std/plant"); if(undefinedp(flower_type = (string)query_property("flower type"))) flower_type = ({"forgetmenot", "buttercup", "daisy"})[ random(2) ]; flower->set_plant(flower_type); flower->set_plant_type(flower_type); flower->set_plant_desc("A beautiful "+flower_type+" picked before its " "time."); flower->add_plural( pluralize( flower_type ) ); if (!(flower->move(this_player()))) return 1; flower->dest_me(); return 0; }