inherit "obj/armour"; string owner, giver; void setup() { set_name( "ring" ); set_short( "wedding ring" ); add_adjective( "wedding" ); set_long( "This is a wedding ring crafted from the purest gold from the "+ "mines of Rimward Klatch.\n" ); set_main_plural( "wedding rings" ); set_type( "ring" ); add_property( "shop type", "jewellers" ); add_property( "no recycling", 1 ); set_weight( 1 ); setup_armour( 1000 ); set_percentage( 100 ); set_damage_chance( 0 ); owner = giver = "nobody"; set_wear_remove_func( file_name( this_object() ), "wear_remove" ); } /* setup() */ void do_inscription() { set_read_mess( "\"For you, "+ capitalize( owner ) + ", with eternal love, "+ capitalize( giver ) +".\"" ); } /* do_inscription() */ string query_owner() { return owner; } void set_owner( string word ) { owner = lower_case( word ); do_inscription(); } /* set_owner() */ string query_giver() { return giver; } void set_giver( string word ) { giver = lower_case( word ); do_inscription(); } /* set_giver() */ void wear_remove( int wear ) { if ( living( environment() ) && wear ) if ( (string)this_player()->query_name() != owner ) write( "The ring feels uncomfortable on your finger.\n" ); else write( "You are warmed anew by "+ capitalize( giver ) +"'s love.\n" ); } /* wear_remove() */ mixed *stats() { return ::stats() + ({ ({ "owner", owner }), ({ "giver", giver }), }); } /* stats() */ void init_dynamic_arg( mapping args ) { if ( args[ "::" ] ) ::init_dynamic_arg( args[ "::" ] ); if ( args[ "owner" ] ) owner = lower_case( args[ "owner" ] ); if ( args[ "giver" ] ) giver = lower_case( args[ "giver" ] ); } /* init_dynamic_args() */ mapping query_dynamic_auto_load() { return ([ "::" : ::query_dynamic_auto_load(), "owner" : owner, "giver" : giver ]); } /* query_dynamic_auto_load() */