new object $in_location: $located_location;
var $described prose = [];
var $foundation defined_msgs = #[["enter", #[['branches, ["actor", "source", "dest"]]]]];
var $foundation msgs = #[["enter", #[["actor", <$ctext_frob, [["You enter ", <$generator, ["dest", [], [], 'gen_dest]>, "."], #[]]>], ["source", <$ctext_frob, [[<$generator, ["actor", [], [], 'gen_actor]>, " enters ", <$generator, ["dest", [], [], 'gen_dest]>, "."], #[]]>], ["dest", <$ctext_frob, [[<$generator, ["actor", [], [], 'gen_actor]>, " enters from ", <$generator, ["source", [], [], 'gen_source]>, "."], #[]]>]]]];
var $has_commands local = \
#[["exit|leave", [["exit|leave", "", "exit|leave", 'exit_cmd, #[]]]], ["exit", [["exit", "", "exit", 'exit_cmd, #[]]]]];
var $has_commands remote = #[["enter", [["enter", "*", "enter <this>", 'enter_cmd, #[[1, ['this, []]]]]]]];
var $has_commands shortcuts = #[];
var $has_name name = ['prop, "in_location", "in_location"];
var $located location = $nowhere;
var $located obvious = 1;
var $location contents = [];
var $root created_on = 809991552;
var $root defined_settings = #[["locked", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]], ["lockable", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]], ["closable", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]], ["open", #[['parse, ['is_boolean]], ['format, ['format_boolean]]]]];
var $root flags = ['methods, 'code, 'variables, 'core, 'fertile];
var $root inited = 1;
var $root managed = [$in_location];
var $root manager = $in_location;
var $root settings = #[["locked", 0], ["lockable", 0], ["closable", 0], ["open", 1]];
var $thing gender = $gender_neuter;
public method .description() {
arg flags;
var line;
if (.get_setting("open", $in_location))
line = (("Inside " + (.name())) + " you see: ") + ((.contents()).map_to_english('name));
else
line = (((.gender()).pronoun('ps)).capitalize()) + " is closed.";
return (> pass(flags) <) + [line];
};
public method .enter_cmd() {
arg cmdstr, cmd, me;
var m, source;
(> .perms(caller(), 'command) <);
source = sender().location();
m = .eval_message("enter", $in_location, #[["actor", sender().name()], ["$actor", sender()], ["source", source.name()], ["$source", source], ["dest", .name()], ["$dest", this()], ["this", this()]]);
sender().move_to(this());
(.location()).announce(m);
return .announce(m);
};
public method .exit_cmd() {
arg cmdstr, cmd;
(> .perms(caller(), 'command) <);
if ((sender().location()) != this())
return ("You are not in " + (.name())) + "!";
sender().move_to(.location());
(.location()).announce(((((sender().name()).capitalize()) + " exits ") + (.name())) + ".", this(), sender());
.announce(((sender().name()).capitalize()) + " leaves.");
return "You arrive";
};