/
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/
inherit "/obj/monster";
#define COMM_ROOM "/d/am/uu/uni/comm_room"
#define CHAR "/net/daemon/chars/"

object  my_player, notebook;
string  thingy;

void    setup()
{
    set_name( "blue demon" );
    set_long( "A blue small demon with a large green note book.  He is a demon " +
	      "with a purpose.  He scrutinises everyone who passes by looking " +
	      "for that special person.  He is on a mission from a frog.\n" );
    add_alias( "blue" );
    add_adjective( ({ "small", "blue" }) );
    set_level( -2 );
    set_short( "Blue demon" );
    notebook = clone_object( "/std/object" );
    notebook->set_name( "notebook" );
    notebook->add_alias( "book" );
    notebook->add_plural( "books" );
    notebook->add_adjective( ({ "large", "note", "green" }) );
    notebook->set_long( "A large note book, it looks almost brand new.\n" );
    notebook->set_short( "large note book" );
    notebook->move( this_object() );
    add_property( "demon", 1 );
    add_property( "emote", 1 );
}				/* setup() */

/* Who says you can kill my nice demon? */
void    adjust_hp( int hp, object at )
{
}				/* adjust_hp() */

void    got_player( int bing )
{
    if( !my_player )
    {
/* Oh no!  Woe is me! */
	command( "cry" );
	command( "'There goes my chance for a gold frog." );
	init_command( "sigh" );
	call_out( "go_away", 2 );
	return;
    }
    if( !bing )
    {
/* Froodle buns */
	move_player( "X", environment( my_player ) );
    }
    call_out( "init_command", 1, "follow " + my_player->query_name() );
    call_out( "init_command", 1, "'Ahhhh ha!  I have found you." );
    init_command( "eye " + my_player->query_name() );
    call_out( "init_command", 2, "mutter" );
    call_out( "init_command", 3, "emote scribbles something in his notebook." );
    call_out( "init_command", 4, "peer care at " + my_player->query_name() );
    call_out( "init_command", 5, "mutter purple aardvarks" );
    call_out( "init_command", 6, "smile bri" );
    call_out( "init_command", 7, "'Right, got all the info." );
    call_out( "init_command", 8, "wave mad" );
    call_out( "init_command", 9, "unfollow " + my_player->query_name() );
    call_out( "go_home", 11 );
}				/* got_player() */

void    setup_finger( string who )
{
    move_player( "X", COMM_ROOM );
    tell_room( environment(),
	       short   ( 0 ) + " scribbles something hurridly down in its notebook.\n" );

    my_player = find_player( who );
/* Ok, now we try and find our pooooor little player.  pat pat */
    add_property( "goto player", my_player->query_name() );
    add_triggered_action( "player", "goto_player", this_object(),
			  "got_player" );
}				/* setup_tell() */

/* Now try and get back to the communication room */
void    go_home()
{
    add_property( "goto co-ordinates", COMM_ROOM->query_co_ord() );
    add_property( "goto property", "communication room" );
    add_triggered_action( "player", "goto_co_ord", this_object(),
			  "got_home" );
}				/* go_home() */

void    got_home( int bing )
{
    if( !bing )
	move_player( "X", COMM_ROOM );
    command( "'Home sweet home!" );
    call_out( "go_away", 3 );
}				/* got_home() */

string  garble_text( mixed bing, object ob )
{
    call_out( "do_dest", 10, ob );
    return "Warning, this note will self destruct in ten seconds.\n";
}				/* warning() */

string  magic_text( mixed bing, object ob )
{
    call_out( "do_dest", 10, ob );
    return "Warning, this note will self destruct in ten seconds.\n";
}				/* warning() */

void    do_dest( object ob )
{
    object  ob2;

    ob2 = environment( ob );
    if( living( ob2 ) )
    {
	tell_room( environment( ob2 ), ob2->query_cap_name() + "'s " +
		   ob->short() + " spontaneously combusts.\n", ({ ob2 }) );
	tell_object( ob2, "Your " + ob->short() + " spontaneously combusts.\n" );
    }
    else
    {
	tell_room( ob2, ob->short() + " spontaneously combusts.\n" );
    }
    ob->dest_me();
}				/* do_dest() */

void    go_away()
{
    command( "wave" );
    tell_room( environment(), short( 0 ) + " becomes slowly more transperent " +
	       "and then vanishes utterly.\n" );

    dest_me();
}				/* go_away() */