Inside ThroneRoom "Throne Room" with name "room", description [; print "You're in a small throne room. A skeleton wearing a gold crown sits on a throne in front of you between two pillars. The hallway is to the west."; if (Throne has general) " Some mechanism has lifted the throne off the floor revealing a hidden passageway in the floor."; ""; ], before [; Smell: if (noun == nothing) "The occupant of the throne has been dead long enough for all the smell of rot to go away."; ], d_to [; if (Throne has general) return StoneTunnel; rfalse; ], w_to SmallCorridor, cant_go [; print "The only exit"; if (Throne has general) print "s are down and"; else print " is"; " west."; ]; Object -> Throne "throne" with name "throne", capacity 4, description [; print "This throne occupies the east end of the room."; if (self has general) " Some mechanism has lifted the throne off the floor revealing a hidden passageway."; ""; ], has scenery supporter; Object -> -> ThroneSkeleton "skeleton" with name "skeleton" "king" "hand" "hands", hands false, short_name [; print "skeleton"; if (Sceptre in self) print " holding a sceptre"; rtrue; ], describe [; if (Sceptre in self) { "The skeleton is holding a sceptre."; } rtrue; ], description [; if (self.hands) <>; print "Although he looks dead enough, this royal skeleton sends shivers down your spine. "; if (Sceptre in self) "The skeleton is holding a sceptre."; "There seems to be something in one of his hands."; ], parse_name [ myname retval; retval = 0; self.hands = false; myname = NextWord(); while (myname ~= nothing) { if (myname == 'hand' or 'hands') { retval++; self.hands = true; } if (myname == 'skeleton') { retval++; } myname = NextWord(); } return retval; ], before [; Search: if (~child(self)) "The skeleton's hands are actually quite empty. It appears as if this fellow was clutching something before he died."; else "The skeleton is clutching a sceptre."; Receive, Give: if (self.hands) { if (noun == Sceptre) { move noun to self; move RingHole to ThroneRoom; "As soon as you give the sceptre to the skeleton, the seal on the pillar lowers, revealing a ring-shaped hole."; } move noun to parent(self); print_ret (The) noun, " falls out of ", (the) self, "'s hand and onto the floor"; } "Putting things inside the skeleton like that isn't very respectful of the dead."; ], life [; Give: if (~self.hands) { if (noun == Sceptre) { move noun to self; move RingHole to ThroneRoom; "As soon as you give the sceptre to the skeleton, the seal on the right pillar lowers, revealing a ring-shaped hole."; } move noun to parent(self); print_ret (The) noun, " falls out of ", (the) self, "'s hand and onto the floor"; } "Try giving it to the skeleton instead."; ], has animate transparent static; Object -> SkeletonCrown "crown" with name "crown", description "Pure beaten gold and rubies.", before [; Take, Transfer: "It's glued to the skeleton's skull by time and rot."; ], has scenery; Object -> ThronePillars with name "pillars", description [; print "Strong stone pillars. The one on the left bears a carving of a sword. The one on the right bears a carving of Sir Dugan's royal seal."; if (PillarRight has supporter) { " The seal has slid down revealing a ring-shaped hole."; } ], has pluralname scenery; Object -> PillarLeft "left pillar" with name "pillar" "left", description "A carving of a sword is on this pillar.", has scenery; Object -> ThroneSeal "royal seal" with name "royal" "seal", description [; print "It's a carving of Sir Dugan's royal seal."; if (PillarRight has supporter) " The seal has slid down revealing a ring-shaped hole."; ], has scenery; Object -> PillarRight "right pillar" with name "pillar" "right", description [; print "A carving of Sir Dugan's royal seal is on this pillar."; if (self has supporter) " The seal has slid down revealing a ring-shaped hole."; ], capacity 0, has scenery; Object -> RingHole "ring-shaped hole" with name "ring" "shaped" "ring-shaped" "hole", description [; print "It's a shallow, ring-shaped hole."; if (SapphireRing in self) " A sapphire ring is nestled inside."; ""; ], before [; LetGo: if (SapphireRing in self) "Some force prevents you from pulling the ring out of the hole."; Receive: if (noun == SapphireRing) { move noun to RingHole; give Throne general; "The ring fits perfectly. The throne magically rises, revealing a secret passageway leading down."; } "It doesn't seem to fit."; ], has container open scenery;