/* 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++; }