#include <type.h> inherit ob OBJECT; inherit con CONTAINER; inherit bod BODY; inherit M_GETTABLE; inherit M_MESSAGES; string living_name; static object possessor; void create( void ) { ob::create(); con::create(); bod::create(); set_gettable( 0 ); living_name = 0; set_gender( random( 2 ) + 1 ); } void set_max_hp( int hp ) { bod::set_max_hp( hp ); set_hp( hp ); } int is_player( void ) { return( 0 ); } int is_living( void ) { return( 1 ); } int is_possessed( void ) { if( possessor != 0 ) return( 1 ); return( 0 ); } void set_possessor( object ob ) { possessor = ob; } object query_possessor( void ) { return( possessor ); } int is_attackable( void ) { return( 1 ); } void set_name( string name ) { living_name = name; set_id( name ); } string query_name( void ) { return( living_name ); } void set_wearing( mixed obj ) { object armor; if( obj == 0 ) return; if( typeof(obj) == T_STRING ) { /* We've got to compile our own copy */ armor = clone_object( obj ); if( armor != 0 ) { armor->setup(); armor->move( this_object() ); if( query_slot( armor->query_slot() ) == 0 ) { do_wear( armor ); } } } else { obj->move( this_object() ); if( query_slot( obj->query_slot() ) == 0 ) { do_wear( obj ); } } } void set_wielding( mixed obj ) { object weapon; if( obj == 0 ) return; if( typeof(obj) == T_STRING ) { /* We've got to compile our own copy */ weapon = clone_object( obj ); if( weapon != 0 ) { weapon->setup(); weapon->move( this_object() ); do_wield( weapon ); } } else { obj->move( this_object() ); do_wield( obj ); } } void message( string str ) { if( is_possessed() ) query_possessor()->message( "%^RED%^$%^RESET%^" + str ); } void message_orig( string str ) { if( is_possessed() ) query_possessor()->message_orig( "%^RED%^$%^RESET%^" + str ); }