query_spell_name()
{
  return "invisibility";
}


set_duration(d) {
    call_out("dispel",d);
}

init() {
    this_player()->invis();
    set_heart_beat(1);
}

dispel() {
    environment()->vis();
    remove_call_out("dispel");
    destruct(this_object());
}

drop() { return 1; }

id(str) {
    return str == "spell" || str == "invisibility" ||
           str == "invisibility spell";
}

query_spell_name() { return "invisibility"; }


heart_beat() {
    if(environment()->query_attack()) {
        tell_object(environment(),"Combat makes your invisibility go away!\n");
        dispel();
    }
}