/* This is the monster part of the curse of Glod * clone him, and call set_owner with the person who's cursed, and the * thing touched as arguments */ inherit NPC_OBJ; string my_owner; object container; void setup() { set_name( "glod"); set_short( "Glod"); add_property( "determinate", "" ); set_long( "This small dwarf looks quite angry, perhaps it's because he's " "just been summoned here.\n" ); basic_setup("dwarf", 1, 1 ); set_main_plural( "Glods" ); } /* setup() */ void set_owner( object owner, object thing ) { if ( !container ) container = clone_object( "/std/container" ); container->set_name( "glod's store" ); thing->move( container ); set_long( "This small dwarf looks quite angry, perhaps it's because he's " "just been transformed from being "+ (string)a_short( thing ) +".\n" ); my_owner = (string)owner->query_name(); load_chat( 60, ({ 1, ":looks stunned.", 1, ":frowns angrily at "+ (string)owner->query_short() +".", 1, "'Now why did you have to go and summon me?", 1, "'What have I ever done to you?", }) ); } /* set_owner() */ void event_exit( object ob ) { if ( !stringp( my_owner ) ) return; if ( ob == find_player( my_owner ) ) { call_out( "check_env", 1 ); } } /* event_exit() */ void event_dest_me( object ob ) { call_out( "check_env", 0 ); } /* check_env() */ void check_env() { if ( environment() != environment( find_player( my_owner ) ) ) { move( environment( find_player( my_owner ) ), "$N run$s in angrily.", "$N run$s out angrily." ); command( "follow "+ my_owner ); } } /* check_env() */ string query_owner() { return my_owner; } object make_corpse() { if ( environment() ) if ( container ) return first_inventory( container ); return ::make_corpse(); } void dest_me() { if ( container ) container->dest_me(); ::dest_me(); } /* dest_me() */