// My wedding gift to Armando and Nuana. I wish them // the best in the future. // Windy Wibbles, March 2002 inherit ARMOUR_OBJ; int suggest( string str ); int send( string mess ); void update_other(); string parse_mess( string mess ); object other = ( TP -> query_name() == "armando" ? find_player("nuana") : find_player("armando") ); string prop = TP -> query_property("wedding_pin"); string prop2; void setup() { set_name("pin"); set_short("small silver pin"); set_long("This small silver pin, while little more than a "+ "heart-shaped piece of silver, seems to radiate feelings of warmth "+ "and love. It must truly be something valuable to someone.\n"); set_type("badge"); set_cond(1000); set_damage_chance(0); set_weight(0); set_value(0); set_read_mess("This pin is very special. It allows those who have "+ "developed the ultimate bond to be able to express their feelings "+ "even more than they have already. You and your lover will have a special "+ "channel to communicate on, reserved for just the two of you. Use the "+ "command 'mychan <name>' to suggest a channel name - when your spouse "+ "uses the command with the same name, the name will be finalised and your "+ "channel will be created. Then, just use <name> <message>, just like a "+ "normal channel would be used to communicate. You may emote over your "+ "channel with the @ key. If you wish to change your channel name, "+ "all you need to do is suggest a new name and have your spouse "+ "approve it.\n"); } void init() { update_other(); if( TP -> query_name() != "armando" && TP -> query_name() != "nuana" && TP -> query_name() != "windy" ) { tell_object( TP, "You somehow feel that the pin has deemed you unworthy of "+ "holding it. It disappears.\n"); TO -> move("/room/rubbish"); } TP -> add_command("mychan", TO, "<string'name'>", (: suggest( $4[0] ) :) ); if( ( prop && prop2 ) && ( prop == prop2 ) ) TP -> add_command( prop, TO, "<string'message'>", (: send ( $4[0] ) :) ); } int suggest( string str ) { update_other(); if( !other ) return notify_fail("Unfortunately, your spouse is not online to receive your "+ "suggestion.\n"); tell_object( TP, "You suggest to "+ other -> query_short() +" that your "+ "private channel be named "+ str +".\n"); // tell the other spouse in here if( other ) tell_object( other, TP -> query_short() +" has suggested that your private "+ "channel be named "+ str +".\n"); TP -> add_property("wedding_pin", str ); update_other(); if( ( prop && prop2 ) && ( prop == prop2 ) ) { tell_object( TP, "With both of you having agreed on the channel name, the "+ "channel is created.\n"); tell_object( other, "With both of you having agreed on the channel name, "+ "the channel is created.\n"); init(); } return 1; } int send( string mess ) { update_other(); mess = parse_mess( mess ); tell_object( TP, mess ); if( other ) tell_object( other, mess ); return 1; } void update_other() { other = ( TP -> query_name() == "armando" ? find_player("nuana") : find_player("armando") ); prop = TP -> query_property("wedding_pin"); if( other ) prop2 = other -> query_property("wedding_pin"); } string parse_mess( string mess ) { string ret = "%^MAGENTA%^"; ret += "("+prop+") "+ TP -> query_cap_name(); if( mess[0..0] == "@" ) ret += " " + mess[1..strlen(mess)-1]; else ret += ": "+ mess; return ret + "%^RESET%^\n"; }