/* * This "room" is a special object which can be dropped once. */ int dropped; int grow_stage; string owner; set_owner(n) { owner = n; } reset(arg) { if (arg) return; dropped = 0; grow_stage = 5; } short() { return "portable castle"; } long() { write(short() + ".\n"); } 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()); destruct(this_object()); return; } } id(str) { return str == "castle"; } drop() { if (environment(this_player())->query_drop_castle()) { write("Not this close to the city!\n"); return 1; } dropped = 1; shout("There is a mighty crash, and thunder.\n"); set_heart_beat(1); return 0; } get() { if (dropped) { write("You can't take it anymore !\n"); return 0; } return 1; }