#include <config.h> #include "defs.h" inherit ROOM_OBJ; object button, bookcase, board; void setup() { /* the short description is what you get in a room in brief mode. * use capital letters for proper names only and don't put a period * at the end, since the short can be used to construct sentences */ set_short("workroom of "+ CREATOR); /* the determinate is put in front of the short. * if you don't specify it, "a " or "an " will be used automatically. * see help setup */ add_property( "determinate", "the "); /* you set this so you can see in the room. * for a description of light levels and what they mean type * help light */ set_light(100); /* * and when you work into a room in verbose mode. * remember to put two spaces after periods, and uses proper * capitalization, punctuation and spelling. */ set_long("This is the workroom of "+CAP(CREATOR)+". You can see a small wooden " "desk sulking in the corner of the room, it has a beautifully " "carved wooden rolly chair in front of it. It looks like this " "was just newly created, there is a smell of paint and " "leather in the air.\n"); /* The items are the things in the room that you can look at. * Item longs should be proper sentences and shouldn't have \n at the end. * Make sure you have a room item for every noun described in the long * of the room or in the long of another room item. */ add_item("chair", "The teak rolly chair has amazing carvings of dragons and " "... other things on it. They almost seem alive, " "you especialy don't note the way the dragon " "blinks at you." ); add_item("desk", "The desk is made of mahogany with a touch of " "mountain ash. The top has two little basket things " "on it labeled \"in\" and \"out\". The in basket " "is rather small." ); add_item( "dragon", "I told you, you don't notice it winking at you." ); add_item("in basket", "The in basket is full of small yellow forms " "with large red letters on them saying " "\"Important read me first\" and then not " "appearing to actually have any thing else on " "them." ); add_item( "out basket", "The out basket is completely empty." ); add_item("basket", "There are two baskets sitting on top of the desk. " "They have the words \"in\" and \"out\" written " "on them." ); add_item("paint", "You look around to see the source of the paint " "smell and you can't find it. The walls? of the room " "ummm seem to be well shall we just twisting in a " "confused mish mash of shapes, you are sure they are " "not threatening." ); add_item("wall", "The walls are made up of a cloudy substance, white " "in nature that is roiling around the place where " "you are standing. Great magic must be holding it " "back, every now and then you see a demonic head " "push its way out of the cloud roll its eyes and fade " "back into the cloud." ); add_item("cloud", "The cloud is white coloured with a few flashes " "of light bursting in it." ); add_item("demon", "The demonic heads that pop out are pretty nasty " "looking, they disapear with a snarl of strain." ); /* adds all the exits to the room. * the first parameter is the verb used to get through the exit. * the second is where to go once that exit is opened. * and the third is the type of the exit. For a better desription of * this read the docs on rooms. * * remember not to put ".c" at the end of the second parameter */ add_exit("common", "/w/common", "door"); add_exit("pub", CONFIG_START_LOCATION, "path"); add_exit("learning", "/d/learning/main", "path"); /* these two add_alias alias the exits. Now when you type north (or n) * you will go to the starting location and south to the common room */ add_alias("north", "pub"); add_alias("south", "common"); /* this adds an exit in the common room back to your workroom */ "/w/common"->add_exit(CREATOR, "/w/"+CREATOR+"/workroom", "door"); } /* create() */ void reset() { /* if the button does not exist (it has been dested or it hasn't been * created yet the variable is set to 0) This makes sure you don't get * more than one button in your room. */ if (!button) { button = clone_object("/obj/misc/button"); button->move(this_object()); } if (!board) { board = clone_object("/obj/misc/board_mas"); board->move(this_object() ); } if (!bookcase) { /* The first parts of making a shelf it covered elsewhere, it's * basically a matter of cloning the object and make it look like * it should */ bookcase = clone_object("/obj/cont_save"); bookcase->set_name( "bookcase" ); bookcase->set_short( "oaken bookcase" ); bookcase->add_adjective( "wooden" ); bookcase->add_adjective( "oak" ); bookcase->add_adjective( "oaken" ); bookcase->add_property( "there", "standing against the wall" ); bookcase->set_long( "This bookcase is made from oak and " "varnished to bring out the glow. It has 2 shelves, " "upon which you can see some books, and other objects.\n" ); bookcase->set_weight( 2000 ); bookcase->set_max_weight( 4000 ); bookcase->reset_get(); /* This call will allow the shelf to write the savefile in the same * domain as the room is in, if you don't do this call, the savefile * will have to be somewhere in /save/ */ bookcase->check_euid(); /* This call tells the shelf what file should be used to save the stuff * placed on it. */ bookcase->set_save_file( "/w/"+CREATOR+"/creator_kit" ); /* end by putting the shelf in the room */ bookcase->move( this_object() ); } } /* reset() */ /* This function is used by the button. It gives a list of things in * the room that the button should NOT destroy. */ object *query_non_destable() { return ({ bookcase, board }); } /* query_non_destable() */