Object Cell "Cell" with description [; print "This space, barely wider than outstretched arms, seems to have been chopped raw and square from unfinished stone. Only the floor is smooth -- a fine white surface beneath your feet"; if (cellgap in Cell) print ". There is a narrow gap in the east wall"; else print ". You see no opening in any wall"; if (Enlightened) { if (floordiagram in self) print ".^^The diagram is inscribed upon the floor -- a circular array of precise spider-black geometry"; else print ".^^You look around. The insulating stone is surely thick enough. You must have made a mistake in drawing the diagram. It is the only possible error: an error you will not repeat"; } "."; ], e_to [; if (cellgap in Cell) { print "You duck your head and push through the gap.^"; return cellgap; } else { if (~~ImpossibleMode) print "[BUG] No exit!^"; rfalse; } ], out_to [; <>; ], in_to [; if (floordiagram in self) <>; "You're already inside..."; ], cant_go [; if (BasementHall hasnt general) { self.count++; if (self.count >= 3) { StopDaemon(self); self.helpmode = true; GuideEnqueue(GuideLeaveCell1Message); } } if (ImpossibleMode) "There is no way out."; "The only way out is the narrow gap leading east."; ], hinto HintoCell, count 0, helpmode false, daemon [; if (BasementHall has general) { StopDaemon(self); self.helpmode = false; return; } self.count++; if (self.count >= 5 && (~~GuideAnyQueued())) { StopDaemon(self); self.helpmode = true; GuideEnqueue(GuideLeaveCellMessage); } ], before [; Look: if (self.helpmode) { GuideEnqueue(GuideLeaveCell2Message); } ], coredir e_obj, coredirmod DIRMOD_ABOVE; Object -> cellgap "narrow gap" with name 'narrow' 'gap' 'oblong' 'opening' 'doorway', door_dir e_to, door_to BasementHall, description "You see a narrow, oblong opening in the east wall. Not much of a doorway, but big enough to get through.", before [; Examine: give self general; if (Cell.helpmode) { GuideEnqueue(GuideLeaveCell3Message); } ], has door open scenery ~general; WallObject -> cellwall with name 'grey' 'gray' 'stone' 'rough', short_name "stone wall", description [; print "The four walls are unseamed, unsmoothed grey rock"; if (cellgap in Cell) print ". The only opening is a narrow gap to the east"; "."; ], before [; Touch, Push: "The stone is rough and unyielding."; ]; CeilingObject -> cellceiling with name 'grey' 'gray' 'stone' 'rough', short_name "stone ceiling", description "The stone ceiling is low, crowding roughly down on your head.", before [; Touch, Push: <>; ]; FloorObject -> cellfloor with name 'smooth' 'white' 'surface' 'smudge' 'smudges', short_name "white floor", description [; print "The floor is also stone, but fine-grained and smooth -- not quite polished. It is very white; white enough to show faint smudges where you lay"; if (BasementHall has general) print " and where you've walked"; "."; ], before [; Touch: "Papery smooth, but cold and hard."; Rub: "You smear the marks on the floor, but they are no less visible."; ]; SceneryObject -> cellscenery with name 'cell' 'space'; KeyClass -> quill "quill pen" with name 'black' 'quill' 'pen' 'feather' 'nib', description [; if (self in player) print "You are holding a"; else print "It's a"; print " quill pen -- a sturdy black feather, its tip carefully cut to a nib"; if (self hasnt general) { give self general; print ". You have no memory of where you got it, or when, or why"; } if (self.number) print ". The nib glistens darkly"; "."; ], helpmode false, ! for inventory guide message before [; Blow: "You blow on the feather, making its edges flutter."; ], scaleweight 14, number 0, has ~general; [ HintoCell; if (BasementHall has general) rfalse; if (~~Cell.helpmode) { Cell.helpmode = true; GuideLeaveCellMessage(); return 2; } if (cellgap hasnt general) { GuideLeaveCell1Message(); rtrue; } GuideLeaveCell3Message(); rtrue; ]; ! ---- Object minddiagram "circular diagram" with name 'circle' 'circular' 'elaborate' 'diagram' 'figure' 'portal'; Object floordiagram "circular diagram" with name 'circle' 'circular' 'elaborate' 'diagram' 'figure' 'array' 'geometry' 'threshold' 'portal', invoke [; if (~~Enlightened) "[BUG] Can't draw diagram before enlightenment."; PronounNotice(self); if (self in Cell) "You have already inscribed the diagram."; move self to Cell; quill.number = 0; "You kneel on the floor, bring the diagram clear in your inner eye, and begin. The first line is clear and precise, ink-black against the smooth white floor.^^ Your work is swift, but not hasty. You dare not miss one mark or detail; it was just such an error which destroyed your last attempt, and nearly destroyed you. After a time your knees ache, and your neck is sore, from your bent position. You do not slow. Magic requires concentration.^^ When the last arc closes the circle, your mind is clear -- neither surprised nor relieved. All is now ready."; ], description "You examine the diagram critically. Yes; it is exactly as described in your book. The latent energy of its geometry seethes within it. You have only to step inside.", before [; Take, Push, Pull: "The diagram is drawn on the floor."; Rub, Touch: "Smear the diagram? Not even an apprentice would make such an error."; Receive: "You are loathe to waste this energy on a mere object. It is built for a human."; Search: "You sense the threshold of the portal."; Enter: print "You step into the center of the circle, and seize the spell with both hands.^^"; !print (emph) "Around you, the world goes as flat as a page ! in a book.", "^"; print (emph) "Around you, the world folds into kaleidoscope reflections.", "^"; TransportEffect(); PlayerTo(EndRoomInitial); rtrue; !deadflag = 2; !"^You pause between moments to consider the possibilities. ! What might stand ahead? The fragments of your past seem ! no more than the shuffled cards of a lost game. The future ! is anywhere, now.^^ ! You move into the next moment."; ], has scenery; ! ---- Object BasementHall "Narrow Hallway" with description "You are standing in a short windowless hallway. To the east is the foot of a flight of stairs, which rises out of sight. To the west, the hallway narrows, ending in a small gap of a doorway.", initial [; if (self hasnt general) { GuideEnqueue(GuideWelcomeMessage); give self general; Cell.helpmode = false; } ], w_to [; print "You duck your head and push through the gap.^"; return basementgap; ], e_to [; <>; ], u_to [; print "You begin climbing the stairs. They seem to go on for a long while"; if (basementstairs hasnt general) { give basementstairs general; print "... pressing between dim stone walls (where is the light coming from? You haven't seen a window yet)... climbing... (how far?)"; } print "...^^Until you pass through a doorway into warm candlelight.^"; return basementstairs; ], cant_go "The hallway runs from the cell (to the west) to the stairs (which rise to the east).", coredir e_obj, coredirmod DIRMOD_ABOVE, has ~general; ! flag for initial guide help SceneryObject -> basementhallscenery with name 'hall' 'hallway' 'short' 'narrow'; Object -> basementgap "narrow gap" with name 'narrow' 'gap' 'small' 'opening' 'doorway', door_dir w_to, door_to Cell, description "You see a narrow opening at the west end of the hallway -- the gap which leads back to the cell in which you awoke.", has door open scenery; Object -> basementstairs "stairs" with name 'stair' 'stairs' 'stairway' 'flight', door_dir u_to, door_to Study, before [; Climb, Take: <>; ], has door open scenery ~general;