Section - The Map Room
Outside the Dome is a room in Plateau. The description of Outside the Dome is "A large stone domed structure rises from the forest here, made of a smooth yellow-grey rock that glows pink in the light of the great red sun.[paragraph break]A tall man in red robes stands stoically near the entrance to the dome.[paragraph break][exits].". The exits text of Outside the Dome is "An open archway leads [d]inside[x] the dome, while brick pathways run towards an open [d]avenue[x] or through the [d]forest[x]". Understand "forest" as west when location is Outside the Dome. Understand "avenue" as east when location is Outside the Dome.
The dome-proper is a setpiece in Outside the Dome with printed name "dome". The description is "The large, low dome is completely featureless on the outside.". Check climbing dome-proper: say "You probably could, except there doesn't seem to be anything on top, and you're a bit nervous to do so in front of the robed figure standing ceremoniously at its entrance." instead. Understand "dome/structure/map/room" as dome-proper. Instead of entering dome-proper, try going inside.
Report going from Outside the Dome to Map Room: say "You step through the stone archway, almost bumping your head, and blink in the dim interior.". Report going from Outside the Dome to Mural Far West: say "[tomuraldesc].". Report going from Map Room to Outside the Dome: say "You emerge blinking into the red evening light.". Report going from Avenue South to Outside the Dome: say "You pass down the dirt path through the windsigh till you emerge at a stone dome.".
Report going from Outside the Dome to Avenue South: say "[brickpathdesc]". Report going from Among the Huts to Avenue South: say "[brickpathdesc]". Report going from Ancient Temple to Avenue North: say "[brickpathdesc]". Report going from Nursery to Avenue North: say "[brickpathdesc]".
Mapkeeper is a male Lacunite in Outside the Dome. The printed name is "the mapkeeper". Understand "man" as mapkeeper.
Instead of greeting Mapkeeper when Lacunite-Follower is unidentified: say "'I have no time to talk, Planter,' the man says.".
Instead of going from Outside the Dome to Map Room when Lacunite-Follower is unidentified, say "The man outside holds out a hand to stop you. 'No, Planter,' he says, 'we are keeping the map room free for the Visitor. You will have to come another day.'".
Instead of greeting Mapkeeper: say "The man nods slowly to you. 'This is the Map Room of our Grove,' he says. 'If you like, you may enter to learn more of Forest and its place in our galaxy.'".
Map Room is a room. The description of Map Room is "[if Map Room is unvisited]This large, round room seems dark and empty at first. But as your eyes begin to adjust, you gasp. Suspended in the darkness are millions of tiny points of light, sparkling quietly. As your eyes adjust further, you begin to make out the overall shape: that of an entire [o]galaxy[x].[paragraph break]The man in the robe ducks in from outside. He moves his hand down and suddenly the view dives forward, zooming in a giddying rush towards a single light, which suddenly expands to become a red-gold planet, floating serenely in the center of the room.[paragraph break]'This is the world of Heart,' he says. 'Feel free to use the map room however you like. This figure on the wall will show you how.' He nods, and ducks back outside.[otherwise][dimgalaxydesc][end if][paragraph break]Inlaid into one wall is a stylized [o]figure[x] of a man.[paragraph break][exits].". The exits text of Map Room is "A few soft, shallow steps curve around the room's circumference, making the central space under the dome seem even larger, and bright daylight shines through heavy curtains leading [d]out[x]".
[In here is an interactive map of the galaxy which can be moved along three axes: zooming in and out on various targets, moving forwards and backwards in time, and switching between several overlay modes of additional information. (We are nothing if not ambitious.) By playing with this, the player should be able to learn a great deal about the galactic Forest, and in a "do, don't tell" format much more interesting than yet another expository conversation. The player controls these modes by moving their hand along one of three axes in 3D space, and touching objects of interest. ]
The dim galaxy is a setpiece in Map Room. The description is "[one of]As you walk around the edge of the room, you take in the galaxy of stars from several angles. [or][stopping][dimgalaxydesc].".
gal-zoom is a number that varies. gal-zoom is 3. To decide whether galaxy-zoomed: if gal-zoom is 1, yes; no. To decide whether arm-zoomed: if gal-zoom is 2, yes; no. To decide whether planet-zoomed: if gal-zoom is 3, yes; no. To decide whether continent-zoomed: if gal-zoom is 4, yes; no.
gal-time is a number that varies. gal-time is 4. To decide whether prehistory-timed: if gal-time is 1, yes; no. To decide whether industrial-timed: if gal-time is 2, yes; no. To decide whether colonizing-timed: if gal-time is 3, yes; no. To decide whether present-timed: if gal-time is 4, yes; no.
gal-filter is a number that varies. gal-filter is 1. To decide whether real-filtered: if gal-filter is 1, yes; no. To decide whether life-filtered: if gal-filter is 2, yes; no. To decide whether mission-filtered: if gal-filter is 3, yes; no.
The dim galaxy has a thing called selection. The selection of dim galaxy is map-heart. Galseed is a number that varies. Galseed is 2345.
To say dimgalaxydesc:
if galaxy-zoomed:
say "Only near the edges of the room can you make out individual stars, impossibly tiny points of light caught in enormous three dimensional whirls and eddies. Towards the center, they merge into one glowing sphere of light, which seems enormous though you know it must be trillions of times smaller than life.[paragraph break]Near one side of the room, ";
if selection of dim galaxy is map-otherarm or selection of dim galaxy is map-otherstar, say "a random [o]arm[x] glows with a translucent haze; from a small [o]eddy[x] elsewhere, however,";
else say "one [o]eddy[x] glows[if life-filtered and present-timed] intensely green, and is surrounded[else if life-filtered and colonizing-timed] intensely green, and is surrounded[else if life-filtered and industrial-timed] faintly green at its center, and is surrounded[end if] with a translucent haze[if mission-filtered and present-timed] and is overrun by a dense cluster of white circles and arrows, packed so closely together they are hopelessly jumbled, though[else if mission-filtered and colonizing-timed]by an ant's nest of moving arrows and dotted lines, packed so closely together they are hopelessly jumbled, though[else], different than the galaxy's thousands of other wispy [o]arms[x], and[end if]";
say " a tiny golden spark peeks out from somewhere inside";
else if arm-zoomed:
if selection of dim galaxy is map-otherarm or selection of dim galaxy is map-otherstar:
say "A [one of]rambling[or]twisted[or]crooked[or]rippling[or]languid[or]sparsely populated[or]dense[in random order] arm of the galaxy fills the room, large enough to discern individual stars in [one of]loose patches[or]tight clumps and clusters[or]swirls like spilled milk[or]eddies like a frozen explosion[in random order]. Thousands of random [o]stars[x] twinkle[if selection of dim galaxy is map-otherstars], one glowing with a translucent haze[end if]";
else:
say "A rambling arm of the galaxy fills the room, faint milky clouds resolving into barely-visible stars when you peer closely enough. ";
if life-filtered and ( present-timed or colonizing-timed ) :
say "Near one side of the arm is a patch of glowing green star [o]systems[x][if selection of dim galaxy is map-colonizedworlds] (surrounded by a translucent haze)[end if][if colonizing-timed], slowly lighting up one by one and[end if] roughly centered around one gleaming gold [o]point[x][if selection of dim galaxy is map-heart], surrounded by a translucent haze[end if][if selection of dim galaxy is map-mysteryworlds]; a [o]scattering[x] of other stars nearby glow with a translucent haze[end if]. There are close to a thousand of them";
else if mission-filtered and ( present-timed or colonizing-timed ) :
say "Near one side of the arm, [if colonizing-timed]dotted lines are snaking out from one central point to hundreds[else]thousands[end if] of star [o]systems[x][if selection of dim galaxy is map-colonizedworlds] (surrounded by translucent haze)[end if]";
say "[if colonizing-timed], each of which is enclosed by a bright white circle as soon as the line touches it. A very few however, one in a hundred or less, get[else] are overlaid by white circles. Mixed among them are a handful of[end if] [o]blinking[x] broken circles instead[if selection of dim galaxy is map-mysteryworlds] (surrounded by translucent haze)[end if]. At the center of the cluster is one gleaming gold [o]point[x][if selection of dim galaxy is map-heart], surrounded by a translucent haze[end if]";
else:
say "One [o]particular[x] star pulses gold[if selection of dim galaxy is map-heart or selection of dim galaxy is map-heartnorth or selection of dim galaxy is map-heartmain or selection of dim galaxy is map-heartarchipelago] and glows with a translucent haze[else if selection of dim galaxy is map-colonizedworlds]; a dense cluster of star [o]systems[x] surrounding it glow with a translucent haze[else if selection of dim galaxy is map-mysteryworlds]; a [o]scattering[x] of other stars nearby glow with a translucent haze[end if]";
else if planet-zoomed:
if selection of dim galaxy is map-otherstar:
say "A [if galseed > 5000]dim red star burns faintly[else if galseed > 3000]pale orange sun burns[else if galseed > 1500]bright yellow sun blazes[else]blue-white star burns fiercely[end if] in the center of the room[if galseed / 73 > 80], its tumbling rocky planets lifeless[else if galseed / 73 > 40], orbited by swirling and empty gas giants[else], circled by a motley collection of planets of all sizes[end if]";
else if selection of dim galaxy is map-colonizedworlds:
say "A [if galseed is even]large[else]small[end if] [if galseed > 8800]blue-green[else if galseed > 7600]blue-yellow[else if galseed > 6400]cloudy green[else if galseed > 5200]pinkish-green[else if galseed > 4000]pinkish-blue[else if galseed > 2800]deep green[else]yellow-green[end if] planet orbits a [if do galseed mod 5 is 0]orange-yellow[else if do galseed mod 3 is 0]yellow[else]golden[end if] sun, ";
if mission-filtered and ( present-timed or colonizing-timed ) , say "a white circle hovering above it, ";
let tmpseed be ( do galseed mod 1000 ) / 100;
now tmpseed is tmpseed * ( do galseed mod 100 ) / 10;
now tmpseed is tmpseed * ( do galseed mod 10 ) ;
say "[if do tmpseed mod 9 is 0]thousands of islands dotting it in arcs and clusters[else if do tmpseed mod 7 is 0]dominated by one massive continent[else if do tmpseed mod 6 is 0]mostly vast ocean with a few twisted continents[else if do tmpseed mod 5 is 0]massive ridged continents dominating small arcing oceans[else if do tmpseed mod 4 is 0]a vast polar continent stretching mountainous tendrils down past the equator[else]several large continents strewn against a sparkling ocean[end if]";
now tmpseed is tmpseed * tmpseed * tmpseed * 71;
if mission-filtered and ( present-timed or colonizing-timed ) :
say ". [if colonizing-timed]A white arrow flies smoothly in from somewhere in deep space and touches a point on the planet's surface; as it does so, a white circle lights up, floating above the planet[else]A white circle pulses smoothly above the planet's surface[end if]";
if life-filtered and ( present-timed or colonizing-timed ) :
say ". A glowing overlay of pale green ";
if present-timed, say "[if do tmpseed mod 3 is 0]covers nearly the entire land surface[else if tmpseed is even]stretches across most of the land surface[else]fills more than half of the available land surface[end if]";
else say "[if do tmpseed mod 3 is 0]slowly grows on all the major landmasses[else if tmpseed is even]fills most of one landmass, with a few growing patches touching others[else]seeps slowly outward from a central point on the largest landmass[end if]";
else if selection of dim galaxy is map-mysteryworlds:
say "A [if galseed > 7500]large[else if galseed > 5000]small[else]average-looking[end if] planet floats in the center of the room, ";
if mission-filtered and ( present-timed or colonizing-timed ) , say "[if colonizing-timed]a blinking white arrow marching toward the planet from somewhere in deep space, and [end if]a blinking broken circle hovering above it, ";
say "orbiting a [if do galseed mod 3 is 0]golden[else if galseed is even]yellow[else]orange-yellow[end if] sun. The features of its continents are blurred and out-of-focus";
else:
say "A beautiful cyan-gold planet floats in the center of the room. Great continents[if life-filtered], covered by a pale green overlay,[end if][if prehistory-timed], drifted ever-so-slightly from their current positions,[end if] shimmer in the gold of billions of windsigh[if present-timed], covering even the highest mountains and desolate deserts[else if colonizing-timed], pushing even up the slopes of the highest mountains and into the most barren of deserts[else if industrial-timed], which fill every corner of land except for white patches where mountains rise and brown ones where desolate lands rule[else], growing in spread-out forests on the most temperate parts of the world[end if]. A light-blue ocean churns below clouds burning pinkly in the light of the sun";
if colonizing-timed and mission-filtered, say ".[paragraph break]White arrows rise constantly from the planet's surface near the central continent and disappear into space at the edges of the room";
say ".[paragraph break]The landmasses seem to be divided into one large [o]central[x] continent[if selection of dim galaxy is map-heartmain] (glowing with a translucent haze)[end if] where a pulsing golden dot shines, a [o]northern[x] landmass covering the pole[if selection of dim galaxy is map-heartnorth] (glowing with a translucent haze)[end if], and a long island [o]chain[x] in the southern hemisphere[if selection of dim galaxy is map-heartarchipelago] (glowing with a translucent haze)[end if]";
else if continent-zoomed:
if selection of dim galaxy is map-heartnorth:
say "The north pole of Heart fills the room in a breathtaking expanse. ";
say "The northernmost parts of the globe are barren white plains and white-capped mountain ranges";
if colonizing-timed or present-timed:
say " dotted by hundreds of black divots";
if mission-filtered, say " each of which is overlaid with a stylized crystal icon[if colonizing-timed]. Dotted white lines connect the divots to a thicker white line crossing to the central continent, the dots marching endlessly southward[end if]";
if colonizing-timed or present-timed, say ".[paragraph break]A ring of gold[if life-filtered] covered in a green overlay[end if] [if present-timed]fringes the edges of the continent all the way around the planet, pushing desperately into the snow, the gold turning a pale and sickly color near the northernmost edges[else]just touches the edges of the continent, outposts of windsigh on the edge of the arctic[end if]";
else if selection of dim galaxy is map-heartarchipelago:
say "The island chain stretches in a long arc nearly halfway around the globe on its southern half, the islands ranging in size from tiny specks up to respectable miniature continents[if present-timed]. All[else if colonizing-timed]. Nearly all[else if industrial-timed]. A few[end if][if not prehistory-timed] of them are covered in golden hues[end if][if life-filtered] and glow green on the overlay[end if]";
if mission-filtered and ( colonizing-timed or present-timed ) :
say ". Dozens of random islands are marked with an egg icon on the overlay[if colonizing-timed]; moving dotted lines connect these to the central continent[else], but the icons are greyed out and inactive[end if]";
else if selection of dim galaxy is map-heartmain:
say "The massive central continent of Heart stretches most of the way around the planet. You walk around the room examining it; tracing the paths of huge river drainages, watching rippled mountain ranges run and merge and disappear, following great riparian flatlands to the edge of the sea. Near the northern tip of one mountain range, near the terminator between night and day, a golden dot pulses at a point overlooking a wide river valley";
if industrial-timed or colonizing-timed or present-timed:
say ".[paragraph break]On the night side, clusters of bright lights glow at sparse intervals";
if colonizing-timed and mission-filtered:
say ".[paragraph break]On the overlay, dotted white lines crawl down from the north and south to rocket icons near the equator, where white arrows rise into space and depart in great arcs in all directions";
if life-filtered:
say ".[paragraph break]The windsigh-covered landmasses pulse green on the overlay".
[To decide whether prehistory-timed: if gal-time is 1, yes; no. To decide whether industrial-timed: if gal-time is 2, yes; no. To decide whether colonizing-timed: if gal-time is 3, yes; no. To decide whether present-timed: if gal-time is 4, yes; no.]
To decide what number is do (dividend - a number) mod (divisor - a number):
decide on remainder after dividing dividend by divisor.
The stylized figure of a man is a prop in Map Room. The description is "The drawing shows a figure reaching out to touch a floating cube, which glows with a translucent haze. Surrounding his hand is a sphere with arrows in all three axes: [o]up[x] or [o]down[x], [o]forward[x] or [o]back[x], and [o]left[x] or [o]right[x]." Understand "floating/cube" as stylized figure of a man. Check touching stylized figure: say "You run your fingers over the elegant drawing inlaid into the wall." instead.
The overlay is a minor setpiece in Map Room. Understand "green/haze/glow" as overlay. The description is "[if real-filtered]The overlay seems to be no longer visible.[else if life-filtered]The overlay surrounds you with a faint green haze. Perhaps it responds to biological life?[else]The overlay seems to be represented by an animated icon in the corner of the room, showing a series of tiny white egg-shapes radiating from a central sphere in all directions.[end if]". The provoke message is "It seems you can only look at it.".
A hologram is a kind of prop. Instead of touching a hologram:
say "You reach out a finger and touch [noun]; it [if selection of dim galaxy is noun and selection of dim galaxy is not map-otherstar and selection of dim galaxy is not map-mysteryworlds and selection of dim galaxy is not map-colonizedworlds and selection of dim galaxy is not map-otherarm]stays selected[else]begins to glow with a faint translucent haze[end if]."; now selection of dim galaxy is noun. Instead of examining a hologram, try touching noun.
map-heart is a hologram in Map Room with printed name "the planet Heart". Understand "heart/point/particular" as map-heart.
map-heartnorth is a hologram in Map Room with printed name "the northern continent". Understand "northern/continent" as map-heartnorth.
map-heartmain is a hologram in Map Room with printed name "the central continent". Understand "central/continent" as map-heartmain.
map-heartarchipelago is a hologram in Map Room with printed name "the island chain". Understand "chain/island" as map-heartarchipelago.
map-heartarm is a hologram in Map Room with printed name "the eddy". Understand "eddy" as map-heartarm.
map-otherarm is a hologram in Map Room with printed name "another part of the galaxy". Understand "arms" as map-otherarm.
map-otherstar is a hologram in Map Room with printed name "a random star". Understand "star/stars" as map-otherstar.
map-colonizedworlds is a hologram in Map Room with printed name "a random star system". Understand "systems/system" as map-colonizedworlds.
map-mysteryworlds is a hologram in Map Room with printed name "a random blinking star system". Understand "blinking/scattering" as map-mysteryworlds.
Instead of going up in Map Room, try hologramming. Instead of going down in Map Room, try hologramming. Understand "hleft" as hologramming when location is Map Room. Understand "hright" as hologramming when location is Map Room. Understand "back" as hologramming when location is Map Room. Understand "forward" as hologramming when location is Map Room. Hologramming is an action applying to nothing.
To say zoomclue: say "". [say "[one of]. This seems clear: it indicates a scale change of a power of ten; one order of magnitude[or][stopping]".] To say epochclue: say "[one of]-- indicating the passage of years in powers of ten, perhaps[or][stopping]". [say "[one of]. If one orbit indicates a year, you muse, each acceleration and fade must indicate an increase in elapsed time of a power of ten[or][stopping]".] To say touchclue: say "[if planet-zoomed and selection of dim galaxy is map-otherstar][else]. Briefly, all the visible objects flash with translucent haze, one by one[end if]".
Carry out hologramming:
let movement be indexed text;
let movement be the player's command;
if movement exactly matches the text "up" or movement exactly matches the text "u": [zoom out]
say "You lift your hand up";
if galaxy-zoomed, say "[galaxyborders]." instead;
say "[one of] and the image begins to zoom out. An icon of a windsigh tree appears above you and rapidly shrinks, until when it is about a tenth the size another one fades in above it and also begins to shrink[zoomclue][or][stopping]";
decrease gal-zoom by 1;
now galseed is a random number from 1 to 9999;
if galaxy-zoomed, say ". The tree icon shrinks outwards and reappears twice as the arm collapses with a breathtaking suddenness, until it fills only a matchbox-sized space, one eddy in the whole enormous galaxy which once again is spread out before you";
if arm-zoomed, say ". The star system shrinks into a single faint point of light as the tree icon rapidly shrinks through almost a dozen iterations, until at last other stars fly in as if passing through the outer walls of the room, until you look at a milky galactic arm of a few thousand stars";
if planet-zoomed, say ". The tree icon shrinks once as the view pulls back until you can see the whole planet floating serenely in space";
else if movement exactly matches the text "down" or movement exactly matches the text "d": [zoom in]
say "You lower your hand";
if selection of dim galaxy is nothing, say "[galaxyborders]." instead;
if continent-zoomed, say " and zoom farther in on the planet[if selection of dim galaxy is map-heartnorth or selection of dim galaxy is map-heartmain or selection of dim galaxy is map-heartarchipelago], whiling away long minutes exploring-- you can zoom far enough in to barely make out individual trees. Finally, you pull back out to the level of the whole continent[else], but the resolution becomes blurry much farther in, so after a while you pull back to the continent level[end if]." instead;
if planet-zoomed and ( selection of dim galaxy is map-colonizedworlds ) , say " and explore the planet's surface in detail, drinking in the shorelines of distant continents and alien oceans, before finally returning to the planetary level." instead;
if planet-zoomed and selection of dim galaxy is map-mysteryworlds, say " and try to zoom farther in, but there does not seem to be enough resolution; the planet is only discolored smudges if you try to move closer." instead;
if planet-zoomed and selection of dim galaxy is map-otherstar, say " and zoom in on one [one of]dim[or]grey[or]brown[or]rocky[or]cold[or]silent[at random] [one of]world[or]planet[at random], but the resolution is low, and you see little of interest." instead;
if planet-zoomed and selection of dim galaxy is map-heart, say " but nothing happens[touchclue]." instead;
if arm-zoomed and ( selection of dim galaxy is map-heartarm or selection of dim galaxy is map-otherarm ) , say "[galaxyborders][touchclue]." instead;
say "[one of] and the image begins to zoom in. An icon of a windsigh tree appears above you and rapidly expands, until when it is about ten times larger it fades away and another small icon appears in its place[zoomclue][or][stopping]";
increase gal-zoom by 1;
now galseed is a random number from 1 to 9999;
if continent-zoomed, say ". The tree icon expands once as the view dives down towards [the selection of dim galaxy]";
if planet-zoomed, say ". The stars explode outward as the tree icon rapidly expands through a dozen orders of magnitude towards one point of light in the room's center[if selection of dim galaxy is not map-otherstar], which at the last minute gives birth to a planet which rapidly expands[end if]";
if arm-zoomed, say ". The tree icon expands through two orders of magnitude as the view dives towards one small part of the milky galaxy until it fills the room";
else if movement matches the text "forward": [future]
say "You move your hand forward";
if present-timed, say "[galaxyborders]." instead;
say "[one of] and all motion speeds up. An icon of a star and orbiting planet appears and twirls through ten accelerating revolutions; then fades and is replaced by another at the original speed[epochclue][or][stopping]";
increase gal-time by 1;
if industrial-timed, say ". The stylized orbit icon accelerates forward through three orders of magnitude before slowing to a near-stop";
if colonizing-timed, say ". The stylized orbit icon accelerates forward through two orders of magnitude before slowing again";
if present-timed, say ". The stylized orbit icon accelerates forward through two and a half orders of magnitude before slowing again; as it comes to a stop, it begins to pulse with a golden sheen";
else if movement matches the text "back": [past]
say "You move your hand back towards your body";
if prehistory-timed, say "[galaxyborders]." instead;
say "[one of] and all motion suddenly reverses and accelerates backwards. An icon of a star and orbiting planet appears and twirls through ten backwards, accelerating revolutions; then fades and is replaced by another at the original speed[epochclue][or][stopping]";
decrease gal-time by 1;
if prehistory-timed, say ". The stylized orbit icon accelerates backwards through three orders of magnitude before slowing and then revolving forward again";
if industrial-timed, say ". The stylized orbit icon accelerates backwards through two orders of magnitude before slowing and then revolving forward again";
if colonizing-timed, say ". The stylized orbit icon changes from gold to grey then accelerates backwards through two and a half orders of magnitude before slowing and then revolving forward again";
else if movement matches the text "left": [cycle through views]
decrease gal-filter by 1;
if gal-filter < 1, now gal-filter is 3;
say "You swipe your hand to the left and [if real-filtered]the overlay disappears from the view[else]an overlay shimmers in over the view[end if][if life-filtered], surrounding you with a faintly growing green haze[end if]";
else if movement matches the text "right":
increase gal-filter by 1;
if gal-filter > 3, now gal-filter is 1;
say "You swipe your hand to the right and [if real-filtered]the overlay disappears from the view[else]an overlay drops down over the view[end if]";
else:
say "You move your hand[galaxyborders]. You must have done something wrong." instead;
say ".";
try examining dim galaxy.
To say galaxyborders: say ", but nothing happens other than the whole image flickering for a moment".
Instead of touching or taking the dim galaxy, say "You move your hand through the stars before you but feel nothing. The tiny points simply disappear as your hand passes through the space they once occupied."