/
LIB3/
LIB3/D/ADMIN/
LIB3/D/ADMIN/OBJ/
LIB3/D/ADMIN/ROOM/W/
LIB3/D/HOME/
LIB3/D/HOME/CITY/ARENA/
LIB3/D/HOME/CITY/ITEMS/
LIB3/D/HOME/CITY/POSTOFFI/
LIB3/DOC/
LIB3/GLOBAL/SPECIAL/
LIB3/GLOBAL/VIRTUAL/
LIB3/NET/
LIB3/NET/CONFIG/
LIB3/NET/DAEMON/CHARS/
LIB3/NET/GOPHER/
LIB3/NET/INHERIT/
LIB3/NET/OBJ/
LIB3/NET/SAVE/
LIB3/NET/VIRTUAL/
LIB3/OBJ/B_DAY/
LIB3/OBJ/HANDLERS/TERM_TYP/
LIB3/PLAYERS/B/
LIB3/PLAYERS/N/
LIB3/ROOM/
LIB3/SAVE/
LIB3/SAVE/BOARDS/
LIB3/SAVE/ENVIRON/
LIB3/SAVE/POST/
LIB3/STD/COMMANDS/SHADOWS/
LIB3/STD/CREATOR/
LIB3/STD/DOM/
LIB3/STD/EFFECTS/
LIB3/STD/EFFECTS/HEALING/
LIB3/STD/EFFECTS/OTHER/
LIB3/STD/EFFECTS/POISONS/
LIB3/STD/ENVIRON/
LIB3/STD/GUILDS/
LIB3/STD/LIQUIDS/
LIB3/STD/ROOM/
LIB3/STD/TRIGGER/SHADOW/
LIB3/W/
LIB3/W/BANNOR/
LIB3/W/NEWSTYLE/
/* The singing birthday demon */
#define SONG "/obj/b_day/happy"

inherit "/obj/monster";

int     line;
object  owner;
string  owner_name;

void    setup()
{
    set_name( "demon" );
    add_adjective( "tiny" );
    add_adjective( "pink" );
    add_adjective( "paper" );
    add_adjective( "origami" );
    set_short( "origami demon" );
    set_main_plural( "origami demons" );
    add_plural( "demons" );
    set_long( 
		 "This is a tiny, pink, paper demon. Looking closely you see that\n" +
		 "it has been made by someone with a black belt in Origami!\n" );
    set_level( 1 );
    line = 1;
}

void    set_owner( object person )
{
    owner = person;
    owner_name = (string)owner->query_cap_name();
}

void    heart_beat()
{
    string  line_to_sing, start, end;

    ::heart_beat();

/*  if(line == 1) shout("Someone tells you: It is " +
   owner_name + "'s Birthday today!\n", owner); */

    if( environment( owner ) != environment() )
    {
	tell_room( environment(), "The origami demon rustles after " +
		   owner_name + ".\n" );
	move( environment( owner ) );
	tell_room( environment(), "The origami demon rustles in.\n" +
		   "The origami demon says: Hey " + owner_name + "! I hadn't finished!\n" );
	return;
    }
    line_to_sing = read_file( SONG, line, 1 );
    if( !strlen( line_to_sing ) )
    {
	set_heart_beat( 0 );
	dest_me();
	return;
    }
    if( sscanf( line_to_sing, "%s$N%s", start, end ) == 2 )
	line_to_sing = start + owner_name + end;
    tell_room( environment(), line_to_sing + "\n" );
    line++;
}