/* * Basic Chest with open and close for Valder@FR * -- Wahooka@Eden, FR, et al; Dec '97 */ inherit "/std/container"; int open; void create() { ::create(); /* * Basic setup goes here, or in inherited file...make sure to * include all the size stuff for containers */ } void init() { ::init(); add_action("openclose","open"); add_action("openclose","close"); } int openclose(string str) { string s1, s2; if(!strlen(str)) { notify_fail(capitalize(query_verb())+" what?\n"); return 0; } if(!this_object()->id(lower_case(str))) { notify_fail("You cannot "+query_verb()+" any "+str+".\n"); return 0; } switch(query_verb()) { case "open": if(open) { notify_fail(query_short()+" is already open!\n"); return 0; } open = 1; write("You open "+query_short()+".\n"); tell_room(environment(this_player()),this_player()->query_cap_name()+ " opens "+query_short()+".\n", this_player()); return 1; case "close": if(!open) { notify_fail(query_short()+" is already closed!\n"); return 0; } open = 0; write("You close "+query_short()+".\n"); tell_room(environment(this_player()),this_player()->query_cap_name()+ " closes "+query_short()+".\n", this_player()); return 1; } } int test_add(object ob, int flag) { if(!open) { notify_fail("The "+query_short()+" isn't open!\n"); return 0; } return ::test_add(ob, flag); } int test_remove(object ob, int flag) { if(!open) { notify_fail("The "+query_short()+" isn't open!\n"); return 0; } return ::test_remove(ob, flag); }