#include <config.h> #define DOM_TITLE "the domain of liaison" #define LORD "ohdamn" #define DOMAIN "liaison" #define BOSS_ROOM "/w/ohdamn/rooms/workroom" inherit "/std/dom/cmn_mas"; object board; void setup() { set_dom( DOMAIN ); set_light( 100 ); set_short( "common room for the liaison domain" ); add_property( "determinate", "the " ); set_long("Large relaxing chairs adorn the room. The walls are covered "+ "with strange motifs from different lands and the little shelf "+ "above the fireplace is chocker block full of strange figurines "+ "and bits of cloth. It appears to be the common room of "+ DOM_TITLE+" (the large red letters on the wall were the " + "give away).\nA sign is hanging on the wall.\n"); add_alias("chairs", "chair"); add_alias("cloths", "cloth"); add_alias("motifs", "motif"); add_alias("figurines", "figurine"); add_item("chair", "The chairs are lazing around the room relaxing it looks "+ "like they come here after a hard days working in "+ DOM_TITLE+".\n"); add_item("fireplace", "A nice little fire place with a cheery fire burning "+ "in it keeping every one warm.\n"); add_item("figurine", "Small figurines, they look strangely familiar "+ "until you realise they are the members of "+ DOM_TITLE+".\n"); add_item("cloth", "Strange coloured bits of cloth strewn over the "+ "mantlepice for no readily apparent reason.\n"); add_item("motif", "The motifs on close inspection look like stylised "+ "signatures of all the members of "+DOM_TITLE+ ". Some of them are very strange, in fact there "+ "seem to be more than there are members of the house. "+ "perhaps it is the members of the future.\n"); add_item("shelf", "A nice normal sort of shelf thing. It is like all "+ "those ones you see in houses all over the place, "+ "execpt... the way it has been burnt... hmm it does "+ "not look like the fire did it.\n"); add_item("fire", "There is a fire happily burning away in the fireplace "+ "spluttering and crackling to itself. The flames almost "+ "seem afraid of something. Looking closer you notice a "+ "picture tacked to the side of the fire place.\n"); add_item("picture", "Tacked to the inside wall of the fire thingy, you "+ "know the hole bit at the bottom, is a small picture "+ "it looks like it was taken with the best of demon "+ "photography. It is a picture of a person holding "+ "a small staff, you think it might be "+LORD+ " but you are not sure as the fire light sparkles "+ "in your eyes.\n"); add_sign("This is a sign. Says it all really.\n", "Commands available here are:\n" "add <name> : add <name> as alias for you.\n" "remove <name>: remove <name> as alias for you.\n" "list [<name>]: list aliases added for you or <name>." ); board = clone_object("/obj/misc/board"); board->set_datafile(DOMAIN); board->move(this_object()); add_exit("boss", BOSS_ROOM, "door"); add_exit("drum", CONFIG_START_LOCATION, "path"); BOSS_ROOM->add_exit("common", "/d/"+DOMAIN+"/common", "door"); } /* setup() */ void init() { this_player()->add_command( "add", this_object(), "<word> <word>" ); this_player()->add_command( "add", this_object(), "<word>" ); this_player()->add_command( "remove", this_object(), "<word> <word>" ); this_player()->add_command( "remove", this_object(), "<word>" ); this_player()->add_command( "list", this_object(), "" ); this_player()->add_command( "list", this_object(), "<word>" ); } /* init() */ int do_add( object *indir, string indir_match, string dir_match, mixed *args, string pattern ) { switch( pattern ) { case "<word> <word>": if ( master()->query_lord( this_player()->query_name() ) ) { if ( "/d/liaison/master"->add_member_alias( args[ 0 ], args[ 1 ] ) ) { this_player()->add_succeeded_mess( this_object(), args[ 1 ] +" added as alias for "+ args[ 0 ] +".\n" ); return 1; } else { this_player()->add_failed_mess( this_object(), "Something went wrong.\n" ); return 0; } } else { this_player()->add_failed_mess( this_object(), "Only lords can add aliases to others.\n" ); return 0; } break; case "<word>": if ( "/d/liaison/master"->add_member_alias( this_player()->query_name(), args[ 0 ] ) ) { this_player()->add_succeeded_mess( this_object(), args[ 0 ] +" added as alias for $N.\n" ); return 1; } else { this_player()->add_failed_mess( this_object(), "Couldn't add "+ args[ 0 ] +" as alias for $N.\n" ); return 0; } break; } } /* do_add */ int do_remove( object *indir, string indir_match, string dir_match, mixed *args, string pattern ) { switch( pattern ) { case "<word> <word>": if ( master()->query_lord( this_player()->query_name() ) ) { if ( "/d/liaison/master"->delete_member_alias( args[ 0 ], args[ 1 ] ) ) { this_player()->add_succeeded_mess( this_object(), args[ 1 ] +" removed as alias for "+ args[ 0 ] +".\n" ); return 1; } else { this_player()->add_failed_mess( this_object(), "Something went wrong.\n" ); return 0; } } else { this_player()->add_failed_mess( this_object(), "Only lords can remove aliases for others.\n" ); return 0; } break; case "<word>": if ( "/d/liaison/master"->delete_member_alias( this_player()->query_name(), args[ 0 ] ) ) { this_player()->add_succeeded_mess( this_object(), args[ 0 ] +" removed as alias for $N.\n" ); return 1; } else { this_player()->add_failed_mess( this_object(), "Couldn't remove "+ args[ 0 ] +" as alias for $N.\n" ); return 0; } break; } } /* do_remove */ int do_list( object *indir, string indir_match, string dir_match, mixed *args, string pattern ) { string *names, name; int i; switch( pattern ) { case "<word>": name = args[ 0 ]; break; case "": name = this_player()->query_name(); break; } names = "/d/liaison/master"->member_alias( name ); name = capitalize( name ); i = sizeof( names ); if ( i ) { if ( i > 1 ) { while ( i-- ) { names[ i ] = capitalize( names[ i ] ); } this_player()->add_succeeded_mess( this_object(), "Aliases for "+ name +" are "+ query_multiple_short( names )+".\n" ); } else { this_player()->add_succeeded_mess( this_object(), "Alias for "+ name +" is "+ capitalize( names[ 0 ] )+".\n" ); } } else { this_player()->add_succeeded_mess( this_object(), "No aliases known for "+ name +".\n" ); } return 1; } /* do_list */