/*
 * This "room" is a special object which can be dropped once.
 */
int dropped;
int grow_stage;
string owner;
init() {
    add_action("quit"); add_verb("quit");
}
quit() {
    write("You cannot quit until you place your portable castle!\n");
    return 1;
}
set_owner(n) {
    owner = n;
}
reset(arg) {
    if (arg)
	return;
    dropped = 0;
    grow_stage = 5;
}
short() {
    return (owner + "'s portable castle");
}
long() {
    write(short() + ".\n");
}
get() {
    write("Once dropped, can not be moved again.\n");
    return 0;
}
heart_beat() {
    if (!dropped)
	return;
    if (grow_stage > 0) {
	say("The castle grows...\n");
	grow_stage -= 1;
	return;
    }
    if (grow_stage == 0) {
	string name;
	say("The portable castle has grown into a full castle!\n");
	shout("Something in the world has changed.\n");
	name = create_wizard(lower_case(owner));
	if (name)
	    move_object(name, environment());
	else
	    say("Castle creation failed.");
	destruct(this_object());
	return;
    }
}
id(str) {
    return str == "castle";
}
drop() {
    dropped = 1;
    shout("There is a mighty crash, and thunder.\n");
    set_heart_beat(1);
    return 0;
}