/** * This is a standard desert room. It is a specialisation of /std/outside * providing various ready-made add_items for your desert. * * 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. * @author Ceres */ #define CREATOR "Ceres" #include <weather.h> #include <move_failures.h> inherit OUTSIDE_OBJ; void create() { ::create(); add_property("climate", ({20, -20, -20 }) ); add_item("sand", "There is a lot of sand here, tons of it just lying " "about the place."); add_item("rock", "There are small rocks here and there in the sand."); room_chat(({120, 240, ({"Grains of sand are blown about in the slight " "breeze."})})); add_property("rock size", 2+random(5)); add_property("track type", "desert"); add_property("sand object", "/obj/media/sand"); } int do_get_rock(object *indirs, string dir, string indir, mixed *args, string pattern) { int rock_size; string rock_type; object rock; if ( query_property( "rock object" ) ) rock = clone_object(query_property("rock object")); else { 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; } int do_get_sand(object *indirs, string dir, string indir, mixed *args, string pattern) { object sand; sand = clone_object(query_property("sand object")); if (!sand) return 0; if (sand->move(this_player()) == MOVE_OK) { this_player()->add_succeeded_mess(sand, "$N $V $D.\n", ({ }) ); return 1; } sand->dest_me(); return 0; }