Currently, I’m working on something that involves a number of automatic doors. Those doors are supposed to be opened by the player and then close themselves without player interference, but one particular puzzle solution involves blocking one of them with a hefty object so it can’t close.
Underlying relates various things to one thing. The verb to underlie means the underlying relation. The verb to be under means the underlying relation. The verb to be beneath means the underlying relation. The crate is a thing in Service Area. it is pushable between rooms. After printing the name of the crate when the crate underlies something (called item): say " (blocking [item])" Pushing it beneath is an action applying to two things. Understand "push [something] under [something]" as pushing it beneath. Check pushing it beneath: if the second noun is closed: say "(first opening [the second noun])"; try silently opening the second noun. Carry out pushing it beneath: now the noun underlies the second noun. Report pushing it beneath: say "You shift [the noun] so that it blocks [the second noun]." After going with the crate: if the crate underlies something: now the crate underlies nothing; follow the hatch-closing rules; continue the action. Definition: A hatch is blocked if the crate underlies it. After opening a hatch: hatches autoclose in one turn from now; continue the action. At the time when hatches autoclose: follow the hatch-closing rules. Hatch-closing rules is a rulebook. A hatch-closing rule: repeat with egress running through open hatches: if the egress is blocked: say "[The egress] whines loudly as it tries to close, but it's blocked by the crate."; otherwise: if the egress is visible, say "[The egress] closes itself with a sucking sound."; now egress is closed.
(Some rules omitted)
Here are my problems: First, obviously the crate should be visible and reachable from both sides of the hatch, if it’s underneath it; I’m not sure how to implement that. Second, I’m not sure what verb would be intuitive for the action of removing the crate from underneath a door: REMOVE, PULL OUT or what.