/* The singing birthday demon */
#define SONG "/obj/b_day/happy"
inherit NPC_OBJ;
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");
    basic_setup("demon", 0, 1, 0);
    line = 1;
}
void set_owner(object person)
{
    owner = person;
    owner_name = (string)owner->one_short();
}
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 + capitalize(owner->query_name()) + end;
    tell_room(environment(), line_to_sing + "\n");
    line++;
}