"Five Gods Exiled" by Carolyn VanEseltine Release along with cover art, an interpreter, and the source text. The debug state is a truth state that varies. The debug state is true. To DM (message - indexed text): if debug state is true: say message. Volume 1 - Setting Up Include Automap by Mark Tilford. [Include Small Kindnesses by Aaron Reed.] Include Basic Screen Effects by Emily Short. Use MAX_STATIC_DATA of 2000000. Use MAX_PROP_TABLE_SIZE of 500000. Use MAX_DICT_ENTRIES of 3000. Use MAX_OBJECTS of 1000. Use MAX_SYMBOLS of 30000. Use the serial comma, no scoring, and full-length room descriptions. The describe what's on scenery supporters in room descriptions rule is not listed in any rulebook. To press space to continue: say "[paragraph break][italic type][bracket]Press SPACE to continue.[close bracket][roman type]"; wait for the SPACE key; clear only the main screen. [Chapter - Sorry, I need my own direction validator (in place of Chapter - Show valid directions after going nowhere in Small Kindnesses by Aaron Reed)] Book 1 - When Play Begins When play begins: Bring Out Your Dead introduction; say "Preparing the world. Please wait...."; randomize Blight rooms and directions; randomize shrine locations; say "[bracket]Step 1 complete.[close bracket][line break]"; describe shrine entrances; randomize shrine deities; place orbs; place terrain; determine temperature and humidity; determine the weather; say "[bracket]Step 2 complete.[close bracket][line break]"; describe terrain; place barriers; describe barriers; place significant scenery; place decorative scenery; name rooms in the Blight; say "[bracket]Step 3 complete.[close bracket][line break]"; write Blight room descriptions; name shrine rooms; place shrine props; describe shrine interiors; say "[bracket]Step 4 complete.[close bracket][line break]"; build the PC; build key NPCs; set NPC affections; say "[bracket]Step 5 complete.[close bracket][line break]"; arrange the murder; prepare memories; assign PC statistics; prepare the shadow self; say "[bracket]Step 6 complete.[close bracket][line break]"; determine Exile rooms and directions; name rooms in the Exile; prepare Exile backdrops; write Exile room descriptions; say "[bracket]Step 7 complete.[close bracket][line break]"; build monster templates; say "[bracket]Step 8 complete.[close bracket][line break][paragraph break][paragraph break]"; past introduction; press space to continue; present introduction. To Bring Out Your Dead introduction: say "Hello! I'm Carolyn VanEseltine, and this is Five Gods Exiled, my incomplete IF procedural generation extravaganza.[paragraph break]I hauled FGE out and dusted it off for Emily Short's 'Bring Out Your Dead' semi-jam, located at https://itch.io/jam/bring-out-your-dead. There's an accompanying writeup at Sibyl Moon, my game dev blog, which you can find here: http://www.sibylmoon.com/design-notes-for-five-gods-exiled/[paragraph break]Please note that PRAY (or INVOKE) is a key command in this game.[paragraph break]Five Gods Exiled will run in a browser, but there will be a significant delay during world generation, and your browser will probably ask about continuing the script. Just say yes! If you'd prefer to download, there are instructions in the design notes.[paragraph break]I suggest turning off debug messaging during your first playthrough (or your first few playthroughs). It won't suppress all the debug messaging (since there's a bunch of placeholder text) but it will reduce it dramatically. After that, try turning it on to see how the sausage gets made.[paragraph break]Turn off debug messaging? (y/n) >"; if player consents: say "Debug is turned off."; now debug state is false; else: say "Debug remains on.[paragraph break]Some debug-specific commands:[paragraph break]-ENDGAME[line break]- MEMENTO[line break]- PHASE[line break]- REMEMBER[line break]- STATS (not targeting anything)[paragraph break]- STATS (targeting a monster)[paragraph break]"; now debug state is true; say "[paragraph break]" Volume 2 - Outlining the Blight Book 1 - Setting Up Tables Z1 is a room. Z2 is a room. Table of Existing Rooms location n-room ne-room e-room se-room s-room sw-room w-room nw-room R1 Z1 Z1 Z1 Z1 Z1 Z1 Z1 Z1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 A Blight room is a kind of room. Some Blight rooms are defined by the Table of Existing Rooms. A room has some indexed text called the desc. A room has some indexed text called the display name. A room has some indexed text called the odor. A room has some indexed text called the sound. A Blight room has a list of directions called the permitted directions list. A Blight room has a list of directions called the prevented directions list. The Blight is a region. All Blight rooms are in the Blight. Table of Coordinates X Y location 0 0 with 63 blank rows Book 2 - Randomizing Rooms and Directions The X-coord maximum is a number that varies. The X-coord maximum is 8. The Y-coord maximum is a number that varies. The Y-coord maximum is 8. The current room is a room that varies. The important room is a room that varies. To randomize Blight rooms and directions: let the next room be R1; [Just to satisfy the new requirements re: declaring variables.] choose row 1 in the Table of Existing Rooms; [If it were possible to have starting null values in a table, we wouldn't have this rigamarole anyway.] blank out the whole row; now the location in row 1 of the Table of Existing Rooms is R1; [Putting our original room back.] let coord-table maximum be the X-coord maximum times the Y-coord maximum; [How big is this table? Define the grid.] let X-count be 1; let Y-count be 1; repeat with N running from 1 to the coord-table maximum: now the X in row N of the Table of Coordinates is X-count; now the Y in row N of the Table of Coordinates is Y-count; if Y-count is the Y-coord maximum: now Y-count is 1; now X-count is X-count plus 1; otherwise: now Y-count is Y-count plus 1; now the current room is the location in row 1 of the Table of Existing Rooms; let X-current be a random number between 1 and the X-coord maximum; let Y-current be a random number between 1 and the Y-coord maximum; repeat with N running from 1 to the coord-table maximum: if the X in row N of the Table of Coordinates is X-current and the Y in row N of the Table of Coordinates is Y-current: now the location in row N of the Table of Coordinates is the current room; [say "The current room ([current room]) is at [X-current] [Y-current].";] repeat through the Table of Existing Rooms: now the important room is the location entry; let the next room be the location entry; [say "[line break]**Current room: [current room] Important room: [important room] Next room: [next room]***[line break]";] while the important room is not a location listed in the Table of Coordinates: let the connection randomizer be a random number between 1 and 8; [say "Connection randomized to [connection randomizer] - ";] let X-next be 0; let Y-next be 0; if the connection randomizer is 1: [north] let X-next be X-current; let Y-next be Y-current plus 1; otherwise if the connection randomizer is 2: [northeast] let X-next be X-current plus 1; let Y-next be Y-current plus 1; otherwise if the connection randomizer is 3: [east] let X-next be X-current plus 1; let Y-next be Y-current; otherwise if the connection randomizer is 4: [southeast] let X-next be X-current plus 1; let Y-next be Y-current minus 1; otherwise if the connection randomizer is 5: [south] let X-next be X-current; let Y-next be Y-current minus 1; otherwise if the connection randomizer is 6: [southwest] let X-next be X-current minus 1; let Y-next be Y-current minus 1; otherwise if the connection randomizer is 7: [west] let X-next be X-current minus 1; let Y-next be Y-current; otherwise if the connection randomizer is 8: [northwest] let X-next be X-current minus 1; let Y-next be Y-current plus 1; repeat with N running from 1 to the coord-table maximum: if the X in row N of the Table of Coordinates is X-next and the Y in row N of the Table of Coordinates is Y-next: [say "The important room ([important room]) should be placed at [X-next] [Y-next]. ";] if there is no location in row N of the Table of Coordinates: [say "And, hooray, that location is empty! ";] now the location in row N of the Table of Coordinates is the important room; now the next room is the important room; if the connection randomizer is 1: [north] [say "Connecting [current room] to [next room] via a north exit.";] now the n-room corresponding to a location of the current room in the Table of Existing Rooms is the next room; now the s-room corresponding to a location of the next room in the Table of Existing Rooms is the current room; if the connection randomizer is 2: [northeast] [say "Connecting [current room] to [next room] via a northeast exit.";] now the ne-room corresponding to a location of the current room in the Table of Existing Rooms is the next room; now the sw-room corresponding to a location of the next room in the Table of Existing Rooms is the current room; if the connection randomizer is 3: [east] [say "Connecting [current room] to [next room] via an east exit.";] now the e-room corresponding to a location of the current room in the Table of Existing Rooms is the next room; now the w-room corresponding to a location of the next room in the Table of Existing Rooms is the current room; if the connection randomizer is 4: [southeast] [say "Connecting [current room] to [next room] via a southeast exit.";] now the se-room corresponding to a location of the current room in the Table of Existing Rooms is the next room; now the nw-room corresponding to a location of the next room in the Table of Existing Rooms is the current room; if the connection randomizer is 5: [south] [say "Connecting [current room] to [next room] via a south exit.";] now the s-room corresponding to a location of the current room in the Table of Existing Rooms is the next room; now the n-room corresponding to a location of the next room in the Table of Existing Rooms is the current room; if the connection randomizer is 6: [southwest] [say "Connecting [current room] to [next room] via a southwest exit.";] now the sw-room corresponding to a location of the current room in the Table of Existing Rooms is the next room; now the ne-room corresponding to a location of the next room in the Table of Existing Rooms is the current room; if the connection randomizer is 7: [west] [say "Connecting [current room] to [next room] via a west exit.";] now the w-room corresponding to a location of the current room in the Table of Existing Rooms is the next room; now the e-room corresponding to a location of the next room in the Table of Existing Rooms is the current room; if the connection randomizer is 8: [northwest] [say "Connecting [current room] to [next room] via a northwest exit.";] now the nw-room corresponding to a location of the current room in the Table of Existing Rooms is the next room; now the se-room corresponding to a location of the next room in the Table of Existing Rooms is the current room; otherwise: [say "Unfortunately, that row is already taken, but we can hook the directions up anyway.";] let the blocking room be the location in row N of the Table of Coordinates; if the connection randomizer is 1: [north] [say "Connecting [current room] with [blocking room] to the north.";] now the n-room corresponding to a location of the current room in the Table of Existing Rooms is the blocking room; now the s-room corresponding to a location of the blocking room in the Table of Existing Rooms is the current room; if the connection randomizer is 2: [northeast] [say "Connecting [current room] with [blocking room] to the northeast.";] now the ne-room corresponding to a location of the current room in the Table of Existing Rooms is the blocking room; now the sw-room corresponding to a location of the blocking room in the Table of Existing Rooms is the current room; if the connection randomizer is 3: [east] [say "Connecting [current room] with [blocking room] to the east.";] now the e-room corresponding to a location of the current room in the Table of Existing Rooms is the blocking room; now the w-room corresponding to a location of the blocking room in the Table of Existing Rooms is the current room; if the connection randomizer is 4: [southeast] [say "Connecting [current room] with [blocking room] to the southeast.";] now the se-room corresponding to a location of the current room in the Table of Existing Rooms is the blocking room; now the nw-room corresponding to a location of the blocking room in the Table of Existing Rooms is the current room; if the connection randomizer is 5: [south] [say "Connecting [current room] with [blocking room] to the south.";] now the s-room corresponding to a location of the current room in the Table of Existing Rooms is the blocking room; now the n-room corresponding to a location of the blocking room in the Table of Existing Rooms is the current room; if the connection randomizer is 6: [southwest] [say "Connecting [current room] with [blocking room] to the southwest.";] now the sw-room corresponding to a location of the current room in the Table of Existing Rooms is the blocking room; now the ne-room corresponding to a location of the blocking room in the Table of Existing Rooms is the current room; if the connection randomizer is 7: [west] [say "Connecting [current room] with [blocking room] to the west.";] now the w-room corresponding to a location of the current room in the Table of Existing Rooms is the blocking room; now the e-room corresponding to a location of the blocking room in the Table of Existing Rooms is the current room; if the connection randomizer is 8: [northwest] [say "Connecting [current room] with [blocking room] to the northwest.";] now the nw-room corresponding to a location of the current room in the Table of Existing Rooms is the blocking room; now the se-room corresponding to a location of the blocking room in the Table of Existing Rooms is the current room; now the current room is the blocking room; [say "Continuing from [blocking room] (current room [current room], next room [next room], important room [important room])....";] now X-current is the X corresponding to a location of the current room in the Table of Coordinates; now Y-current is the Y corresponding to a location of the current room in the Table of Coordinates; now the current room is the important room; now X-current is the X corresponding to a location of the current room in the Table of Coordinates; now Y-current is the Y corresponding to a location of the current room in the Table of Coordinates; move the player to R1; repeat with N running from 1 to the number of rows in the Table of Existing Rooms: now the current room is the location in row N of the Table of Existing Rooms; if there is an n-room in row N of the Table of Existing Rooms: now the next room is the n-room in row N of the Table of Existing Rooms; change the north exit of the current room to the next room; change the south exit of the next room to the current room; if there is a ne-room in row N of the Table of Existing Rooms: now the next room is the ne-room in row N of the Table of Existing Rooms; change the northeast exit of the current room to the next room; change the southwest exit of the next room to the current room; if there is an e-room in row N of the Table of Existing Rooms: now the next room is the e-room in row N of the Table of Existing Rooms; change the east exit of the current room to the next room; change the west exit of the next room to the current room; if there is an se-room in row N of the Table of Existing Rooms: now the next room is the se-room in row N of the Table of Existing Rooms; change the southeast exit of the current room to the next room; change the northwest exit of the next room to the current room; if there is an s-room in row N of the Table of Existing Rooms: now the next room is the s-room in row N of the Table of Existing Rooms; change the south exit of the current room to the next room; change the north exit of the next room to the current room; if there is an sw-room in row N of the Table of Existing Rooms: now the next room is the sw-room in row N of the Table of Existing Rooms; change the southwest exit of the current room to the next room; change the northeast exit of the next room to the current room; if there is an w-room in row N of the Table of Existing Rooms: now the next room is the w-room in row N of the Table of Existing Rooms; change the west exit of the current room to the next room; change the east exit of the next room to the current room; if there is an nw-room in row N of the Table of Existing Rooms: now the next room is the nw-room in row N of the Table of Existing Rooms; change the northwest exit of the current room to the next room; change the southeast exit of the next room to the current room. Book 3 - All The Adjectives Ever An adjective is a kind of value. The adjectives are abandoned, acceptably, aged, alabaster, alto, amber, amethyst, angular, appealing, appropriately, aquamarine, artistic, ash blond, ash brown, asymmetrical, athletic, attractive, attractively, auburn, auburn brown, average, average height, baked, bald, baleful, baritone, barren, bass, beautiful, birch, black, black-handled, blind, blindingly bright, blond, blotchy, blue, blue-black, blue-gray, blue-grey, blundering, boring, braided, brandy-hued, brawny, breathtaking, brick, brilliant, brittle, broad, broad-horned, broken-limbed, bronze, brown, brownish, bulbous, bulky, burly, bushy, caked, caramel brown, carved, celadon green, champagne-hued, chest-high, chestnut brown, chestnut red, chill, chin length, chocolate brown, chubby, cinnamon brown, cloud gray, coal black, coarse, cognac-hued, colorful, colossal, comely, comfortably, contralto, conventionally, copper, coppery red, cornflower blue, cracked, crazed, cream, cream-colored, crow black, crude, crumbling, crystal blue, crystal green, curly, curvaceous, damaged, damp, dangerous, dapper, dark-hued, dark amber, dark blond, dark blue, dark brown, dark chestnut, dark gold, dark golden, dark gray, dark grey, dark green, dark hazel, dark tan, dark violet, dead, decently, deep, deep red, deformed, delicate, dense, deserted, desolate, diamond, dirt-encrusted, dirty, dirty blond, dishwater blond, disquieting, dizzying, dripping, dry, dull, dusky, dying, ebony, eight-sided, electric blue, elegantly, emaciated, emerald, emerald green, enormous, enticingly, expensively, exquisite, eyeless, fair, fairly well, fat, fathomless, fine, five-sided, flattened, flawless, flaxen, flowing, fog gray, forest green, forgotten, fragrant, freakish, freckled, freezing, frigid, frizzy, frozen, garnet, gaunt, giant, ginger, glass, gleaming, glinting, glistening, gloomy, glossy, gnarled, golden, golden amber, golden blond, golden brown, gorgeous, graceful, granite, gray, gray-blue, greasy, great-tusked, green, green-blue, green-gray, greenish black, grey, grey-brown, grey-green, greyish white, gritty, half-crushed, half-transparent, handsome, haphazardly, hard, hazel, head-high, healthy, hearty, hefty, henna red, hideous, high, homely, honey blond, honey brown, huge, husky, hyacinth blue, ice blue, immaturely, immense, impassable, impenetrable, impressive, indigo blue, inexpensively, inexpertly, ink black, irregular, irregularly shaped, ivory, jagged, jet black, kinky, labyrinthine, lank, lanky, large, leaf green, leafless, lean, leaning, lichen-spotted, lichenous green, light amber, light blond, light blue, light brown, light chestnut, light gold, light golden, light gray, light grey, light green, light hazel, lightning-struck, light red, light silver, light yellow, limestone, limp, lissome, lithe, little, long, lopsided, lovely, low, lumbering, maddened, magenta, magnificently, mahogany, mahogany brown, malachite green, malevolent, maple, marble, maturely, melodic, melting, midnight black, mildewed, milky blue, milky white, mist gray, mocha, modestly, molding, monstrous, mouse brown, multihued, muscular, mutated, narrow, neglected, nondescript, nondescriptly, nonexistant, nut brown, oak, obese, oblong, obsidian, ochre yellow, old, olive, onyx black, oozing, opal, orange, ordinarily, ordinary, oval, overweight, painfully bright, pale, pale ash, pale blue, pale brown, pale gold, pale gray, pale grey, pale purple, pale violet, pale yellow, pallid, peach, pearl gray, peridot green, periwinkle blue, pine green, pink, plain, plainly, platinum blond, pleasantly enough, plump, pockmarked, polished, poorly, porcelain blue, portly, pot-bellied, presentably, pretty, prickly, profuse, prosaically, pure white, purple, rain-dampened, rain-soaked, rapidly melting, raven black, ravening, red, reflective, respectably, rosy, rotund, rough, round, ruby, ruddy, ruined, rushing, russet brown, russet red, rustling, rusty, saffron yellow, sallow, sandy blond, sapphire, scarlet, scrawny, sea green, sessile, seven-sided, shabbily, shadowy, shapely, sharp, shattered, shimmering, shining, shiny, short, shoulder-high, shoulder length, shrill, shriveled, sideways-listing, sienna, silver, silver gray, sinister, six-sided, skeletal, slate gray, slender, slick, slippery, sloppily, slowly melting, small, smoke gray, smooth, snow white, soft, soot black, soprano, sparkling, sparse, spike-topped, spindly, spiny, splendidly, spotted, square, stained, star-shaped, stately, statuesque, steel blue, steel gray, steep, stocky, stone, storm gray, stout, straight, strawberry blond, striated, strident, striped, stunning, stunningly, sturdy, stylishly, sublimely, superbly, svelte, sweet, tall, tan, tangled, tanned, tastefully, tastelessly, tawny brown, tenor, thick, thin, thin-limbed, thinning, thorny, throaty, tiny, topaz, topaz brown, translucent, translucently pale, treacherous, treble, trendily, twisted, ugly, unattractive, unexceptionally, unlovely, unpleasant, unsettling, unstylishly, vast, very long, very short, very tall, violet, vivid auburn, waist-high, waist length, walnut brown, water-smoothed, wavy, well enough, wet, white, white-spotted, wide, willowy, windblown, wiry, wobbly, wood, wooden, wrinkled, yellow, yellowed, yellowish, yellowish-white, young, pure, golden, yellow, sharp, clear, strong, flickering, weak, uneven, uncertain, faltering, frail, shivering, writhing, trembling, wavering, shaky, fine, gritty, smooth, crystalline, sparkling, translucent, bubbling, fizzy, translucent, glimmering, shimmering, murky, shadowy, polished, elegant, small, torn, ragged, smudged, dirty, grim, hard-eyed, sullen, fearful, stern, flint-eyed, implacable, fierce, glowering, steel, high, narrow, wide, swaying, treacherous, creaky, and latticed. The color list is a list of adjectives that varies. The color list is {white, pink, red, orange, yellow, light green, green, dark green, light blue, dark blue, violet, magenta, purple, brown, grey, black}. Volume 3 - Building the Blight Book 1 - Weather And Time [The sun is a backdrop. The sun is in the Blight. The moon is a backdrop. The moon is in the Blight. The stars are a backdrop. The stars are in the Blight. The sky is a backdrop. The sky is in the Blight. The clouds are a backdrop. The clouds are in the Blight. The wind is a backdrop. The winds are in the Blight.] Humidity is a kind of value. The humidities are arid, humid, or precipitating. Temperature is a kind of value. The temperatures are hot, temperate, or cold. The current humidity is a humidity that varies. The current temperature is a temperature that varies. A humidity can be possible or impossible. A humidity is usually possible. A temperature can be possible or impossible. A temperature is usually possible. To determine temperature and humidity: repeat with temporary locale running through Blight rooms: let the temporary terrain be a random terrain in the temporary locale; if arid is possible: if the terrain-type of the temporary terrain is slush or the terrain-type of the temporary terrain is snow or the terrain-type of the temporary terrain is mud: now arid is impossible; if precipitating is possible: if the terrain-type of the temporary terrain is bare earth: now precipitating is impossible; if hot is possible: if the terrain-type of the temporary terrain is slush: now hot is impossible; if temperate is possible or hot is possible: if the terrain-type of the temporary terrain is ice or the terrain-type of the temporary terrain is snow: now hot is impossible; now temperate is impossible; now the current humidity is a random possible humidity; now the current temperature is a random possible temperature; DM "The current humidity is [current humidity] and the current temperature is [current temperature].[line break]" Weather is a kind of value. The weathers are sunny, cloudy, misty, raining, and snowing. The current weather is a weather that varies. To determine the weather: DM "Weather: "; if the current humidity is precipitating: if the current temperature is cold: now the current weather is snowing; DM "snowing."; otherwise: now the current weather is raining; DM "raining."; otherwise if the current humidity is humid: if the current temperature is cold: now the current weather is misty; DM "misty."; otherwise: let K be a random number from 1 to 4; if K is 1: now the current weather is sunny; DM "sunny."; otherwise: now the current weather is cloudy; DM "cloudy."; otherwise: now the current weather is sunny; DM "sunny."; DM "[line break]". Book 2 - Terrain Part 1 - Creating Terrain Table of Defined Terrain Types terrain-type change likelihood grass 10 moss 10 fallen leaves 10 sand 10 mud 10 pebbles 10 bare rock 10 bare earth 10 slush 10 snow 10 ice 10 Terrain-type is a kind of value. The terrain-types are defined by the Table of Defined Terrain Types. A terrain is a kind of thing. A terrain is usually fixed in place. Terrain is usually scenery. A terrain has a terrain-type. A terrain usually has terrain-type grass. Understand the terrain-type property as describing a terrain. A terrain has an adjective called the terrain adjective. A terrain usually has terrain adjective nondescript. Understand the terrain adjective property as describing a terrain. The indefinite article of terrain is usually "some". Understand "fallen" and "leaves" as fallen leaves. Understand "bare" and "earth" as bare earth. Understand "bare" and "rock" as bare rock. 25 terrains are in Z1. [Definition: A Blight room is grassy if it contains a grass terrain. Definition: A Blight room is mossy if it contains a moss terrain. Definition: A Blight room is leafy if it contains a fallen leaves terrain. Definition: A Blight room is sandy if it contains a sand terrain. Definition: A Blight room is muddy if it contains a mud terrain. Definition: A Blight room is pebbly if it contains a pebbles terrain. Definition: A Blight room is rocky if it contains a bare rock terrain. Definition: A Blight room is earthy if it contains a bare earth terrain. Definition: A Blight room is slushy if it contains a slush terrain. Definition: A Blight room is snowy if it contains a snow terrain. Definition: A Blight room is icy if it contains an ice terrain.] Part 2 - Placing Terrain The current terrain-type is a terrain-type that varies. The current terrain is a terrain that varies. To place terrain: now the current terrain-type is a random terrain-type; DM "Terrain placement beginning with [the current terrain-type].[line break]"; repeat with temporary locale running through Blight rooms: now the current terrain is a random terrain in Z1; now the current terrain is in the temporary locale; now the terrain-type of the current terrain is the current terrain-type; if a random chance of (the change likelihood of the current terrain-type) in 100 succeeds: now the current terrain-type is a random terrain-type; DM "Terrain switch! Now placing [the current terrain]....[line break]". Part 3 - Describing Terrain A terrain-type has a list of adjectives called the appropriate terrain adjective list. To describe terrain: initialize terrain description lists; repeat with temporary locale running through Blight rooms: [say "Describing terrain in [temporary locale]. ";] now the current terrain is a random terrain in the temporary locale; let the temporary terrain-type be the terrain-type of the current terrain; sort the appropriate terrain adjective list of the temporary terrain-type in random order; now the terrain adjective of the current terrain is entry 1 of the appropriate terrain adjective list of the temporary terrain-type. To initialize terrain description lists: now the appropriate terrain adjective list of grass is {pale brown, brown, dying, dead, prickly, sparse, thick, jagged}; if the current humidity is arid: add {dry, brittle} to the appropriate terrain adjective list of grass; otherwise: add {damp, slippery} to the appropriate terrain adjective list of grass; if the current weather is raining: add {rain-soaked} to the appropriate terrain adjective list of grass; otherwise if the current weather is snowing: add {frozen} to the appropriate terrain adjective list of grass; now the appropriate terrain adjective list of moss is {pale brown, brown, dying, dead, prickly, thick, lichen-spotted}; if the current humidity is arid: add {dry, brittle} to the appropriate terrain adjective list of moss; otherwise: add {damp, slippery} to the appropriate terrain adjective list of moss; if the current weather is raining: add {rain-soaked} to the appropriate terrain adjective list of moss; otherwise if the current weather is snowing: add {frozen} to the appropriate terrain adjective list of moss; now the appropriate terrain adjective list of fallen leaves is {pale brown, brown, mildewed, molding, white-spotted}; if the current humidity is arid: add {dry, brittle, rustling} to the appropriate terrain adjective list of fallen leaves; otherwise: add {damp, slippery} to the appropriate terrain adjective list of fallen leaves; if the current weather is raining: add {rain-soaked, rain-dampened} to the appropriate terrain adjective list of fallen leaves; otherwise if the current weather is snowing: add {frozen} to the appropriate terrain adjective list of fallen leaves; now the appropriate terrain adjective list of sand is {fine, coarse, pale, dark-hued, gritty}; if the current humidity is arid: add {dry} to the appropriate terrain adjective list of sand; if the current temperature is hot: add {baked} to the appropriate terrain adjective list of sand; otherwise if the current weather is raining: add {rain-soaked, damp} to the appropriate terrain adjective list of sand; otherwise if the current weather is snowing: add {caked, frozen} to the appropriate terrain adjective list of sand; now the appropriate terrain adjective list of mud is {gray, dark-hued, brown, dark brown, coarse, slippery, slick, nondescript}; if the current weather is raining: add {oozing, wet, rain-soaked} to the appropriate terrain adjective list of mud; otherwise if the current weather is snowing: add {frozen} to the appropriate terrain adjective list of mud; now the appropriate terrain adjective list of pebbles is {pale, pale gray, gray, dark gray, black, round, oval, oblong, smooth, water-smoothed, striped, spotted, irregularly shaped, hard}; if the current weather is raining: add {glistening} to the appropriate terrain adjective list of pebbles; now the appropriate terrain adjective list of bare rock is {hard, jagged, irregular, smooth, dirt-encrusted, rough}; if the current humidity is precipitating: add {slippery, damp} to the appropriate terrain adjective list of bare rock; now the appropriate terrain adjective list of bare earth is {gray, dark gray, brown, dark brown, black, barren, hard}; if the current humidity is arid: add {dry} to the appropriate terrain adjective list of bare earth; if the current temperature is hot: add {baked} to the appropriate terrain adjective list of bare earth; now the appropriate terrain adjective list of slush is {pale gray, dark gray, light gray, gray, oozing, wet, slippery, slick, chill, frigid}; if the current weather is raining: add {rain-soaked} to the appropriate terrain adjective list of slush; if the current temperature is temperate: add {melting} to the appropriate terrain adjective list of slush; if the current weather is raining: add {rapidly melting} to the appropriate terrain adjective list of slush; otherwise: add {slowly melting} to the appropriate terrain adjective list of slush; otherwise if the current weather is snowing: add {freezing} to the appropriate terrain adjective list of slush; now the appropriate terrain adjective list of snow is {pale, pallid, dense, dirty, pale gray, light gray, dark gray, gray, chill, frigid}; if the current weather is sunny: add {glistening, glinting, brilliant, shining, blindingly bright, painfully bright} to the appropriate terrain adjective list of snow; now the appropriate terrain adjective list of ice is {translucent, pale, pallid, sharp}; if the current weather is sunny: add {glistening, glinting, brilliant, shining, blindingly bright, painfully bright} to the appropriate terrain adjective list of ice. Rule for printing the name of a terrain (called target terrain): say "[terrain adjective of the target terrain] [terrain-type of the target terrain]". Book 3 - Shrines (Part 1) Part 1 - Shrine Locations A shrine room is a kind of room. Some shrine rooms are defined by the Table of Defined Shrine Rooms. Table of Defined Shrine Rooms shrine rooms S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 A shrine entrance is a kind of thing. A shrine entrance is usually fixed in place. Some shrine entrances are defined by the Table of Defined Shrine Entrances. Table of Defined Shrine Entrances shrine entrance SD1 SD2 SD3 SD4 SD5 SD6 SD7 SD8 SD9 SD10 Table of Defined Shrine Connections shrine shrine entrance S1 SD1 S2 SD2 S3 SD3 S4 SD4 S5 SD5 S6 SD6 S7 SD7 S8 SD8 S9 SD9 S10 SD10 Admission relates one shrine entrance to one shrine room. The verb to admit to (it admits to, it admitted to, it is admitting to) implies the admission relation. Definition: A room (called the chosen room) is shrine-full rather than shrine-free if a shrine entrance is in the chosen room. To randomize shrine locations: repeat through the Table of Defined Shrine Connections: now the shrine entrance entry admits to the shrine entry; repeat with temporary entrance running through shrine entrances: let the temporary room be a random shrine-free Blight room; while the temporary room is R1: let the temporary room be a random shrine-free Blight room; now the temporary entrance is in the temporary room; if the temporary entrance admits to a shrine room (called the target shrine): change the inside exit of the temporary room to the target shrine; change the outside exit of the target shrine to the temporary room. Before entering a shrine entrance: try going inside instead. A shrine entrance can be attempted or unattempted. A shrine entrance is usually unattempted. Before going inside from a shrine-full room: if a shrine entrance (called the target shrine entrance) is visible: now the target shrine entrance is attempted. Part 2 - Describing Shrine Entrances A shrine entrance has an adjective called the appearance. Understand the appearance property as describing a shrine entrance. Understand "shrine" and "entrance" as a shrine entrance. Rule for printing the name of a shrine entrance (called target shrine entrance): say "[appearance of the target shrine entrance] shrine". The list of possible shrine adjectives is a list of adjectives that varies. The list of possible shrine adjectives is {marble, stone, granite, round, square, star-shaped, five-sided, six-sided, seven-sided, eight-sided, small, little, deserted, abandoned, neglected, forgotten, desolate}. To describe shrine entrances: repeat with target shrine entrance running through shrine entrances in the Blight: sort the list of possible shrine adjectives in random order; now the appearance of the target shrine entrance is entry 1 in the list of possible shrine adjectives; remove entry 1 from the list of possible shrine adjectives; now the target shrine entrance is improper-named. Instead of examining a shrine entrance (called the target entrance): if the target entrance admits to a room (called the temporary room): if the temporary room is not visited: say "Looking into the entrance of the [the target entrance], you see the shadowy outline of someone standing very still inside,"; if the temporary room encloses an orb: say " lit by something shining in the darkness."; otherwise: say " and little more."; otherwise: let the temporary statue be a random shrine statue in the temporary room; if the temporary room encloses a lit candle set: say "Candlelight illuminates the inside of the [target entrance], and you can see the [temporary statue] through the doorway."; otherwise: say "Looking into the [target entrance], "; if the temporary room encloses an orb: say "you see something shining in the darkness"; if the temporary statue encloses an orb: say ", enclosed in a familiar marble grip."; otherwise: say "."; otherwise: say "you see little save the shadowy form of the [statue-head of the temporary statue]-headed statue." Part 3 - Shrine Deities Deity is a kind of value. The deities are defined by the Table of Potential Deities. Table of Potential Deities deity health restore rank attunement restore rank debuff removal rank ID rank monster locate rank assignment Inho 5 5 5 5 5 Z1 Muisti 5 3 4 2 1 Z1 Apuraha 5 4 3 1 2 Z1 Ennakointi 2 5 1 4 3 Z1 Kauhusta 4 5 2 3 1 Z1 Yhtenaisyys 3 1 2 4 5 Z1 Arkuus 2 3 5 1 4 Z1 Innostus 3 1 4 5 2 Z1 Taiteellisuus 3 2 5 1 4 Z1 Kohtelias 2 3 1 4 5 Z1 Ylpea 1 4 2 5 3 Z1 Peloton 2 3 4 5 1 Z1 Holtiton 2 4 1 3 1 Z1 Huolellinen 5 4 3 1 2 Z1 Laakari 1 2 3 4 5 Z1 A monster name is a kind of value. [This used to be in the appropriate section, but it was too far down in the code to make the compiler happy.] A shrine statue is a kind of container. A shrine statue is usually fixed in place, open, and not openable. A shrine statue is in every shrine room. A shrine statue can be Perceived or Unperceived. A shrine statue is usually Unperceived. A shrine statue has a deity called the shrine deity. A shrine statue usually has shrine deity Hevonen. Understand the shrine deity property as describing a shrine statue. A shrine statue can be known or unknown. A shrine statue is usually unknown. Understand "[deity]" as a shrine statue when the item described is known. A shrine statue can be previously invoked. A shrine statue is usually not previously invoked. Definition: A shrine room is Perceived if it contains a Perceived shrine statue. Definition: A shrine room is Unperceived if it contains an Unperceived shrine statue. The health restorer is a deity that varies. The health restorer is Inho. The attunement restorer is a deity that varies. The attunement restorer is Inho. The debuff remover is a deity that varies. The health restorer is Inho. The IDer is a deity that varies. The IDer is Inho. The monster locator is a deity that varies. The monster locator is Inho. The current statue is a shrine statue that varies. The current deity is a deity that varies. The deity color list is a list of adjectives that varies. A deity has an adjective called the color. To randomize shrine deities: DM "Randomizing shrine deities."; now the current statue is a random shrine statue; now the current deity is a random deity; add the color list to the deity color list; [The color list is originally found up by the adjectives.] sort the deity color list in random order; let N be 0; repeat with temporary locale running through shrine rooms: now N is N + 1; now the current deity is a random deity; while the assignment corresponding to a deity of the current deity in the Table of Potential Deities is not Z1: now the current deity is a random deity; now the current statue is a random shrine statue in the temporary locale; now the shrine deity of the current statue is the current deity; now the assignment corresponding to a deity of the current deity in the Table of Potential Deities is the temporary locale; DM "The deity of [temporary locale] is [current deity]"; if N is less than 6: now the current statue is Perceived; DM ", Perceived"; otherwise: DM ", Unperceived"; sort the deity color list in random order; now the color of the current deity is entry 1 of the deity color list; remove entry 1 from the deity color list; DM ", associated with [color of the current deity]."; repeat with temporary locale running through Perceived shrine rooms: now current deity is the shrine deity of a random shrine statue in the temporary locale; if the health restore rank of the current deity <= the health restore rank of the health restorer: now the health restorer is the current deity; repeat with temporary locale running through Perceived shrine rooms: now current deity is the shrine deity of a random shrine statue in the temporary locale; if the current deity is not the health restorer: if the attunement restore rank of the current deity <= the attunement restore rank of the attunement restorer: now the attunement restorer is the current deity; repeat with temporary locale running through Perceived shrine rooms: now current deity is the shrine deity of a random shrine statue in the temporary locale; if the current deity is not the health restorer and the current deity is not the attunement restorer: if the debuff removal rank of the current deity <= the debuff removal rank of the debuff remover: now the debuff remover is the current deity; repeat with temporary locale running through Perceived shrine rooms: now current deity is the shrine deity of a random shrine statue in the temporary locale; if the current deity is not the health restorer and the current deity is not the attunement restorer and the current deity is not the debuff remover: if the ID rank of the current deity <= the ID rank of the IDer: now the IDer is the current deity; repeat with temporary locale running through Perceived shrine rooms: now current deity is the shrine deity of a random shrine statue in the temporary locale; if the current deity is not the health restorer and the current deity is not the attunement restorer and the current deity is not the debuff remover and the current deity is not the IDer: now the monster locator is the current deity; DM "Health restoral - [health restorer]. Attunement restoral - [attunement restorer]. Debuff removal - [debuff remover]. ID - [IDer]. Monster location - [monster locator]."; Part 4 - Orbs An orb is a kind of thing. There are 5 orbs in Z1. Understand "shining" as an orb. Understand "light" and "heart" as an orb. Instead of examining an orb: if the noun is in a shrine statue (called the target statue): say "The orb shines past the [color of the target statue] marble fingers of the [target statue]. Shafts of [jewel-type of the target statue]-hued light glint at the heart of the orb."; otherwise: say "The orb shines brightly enough to leave an afterimage, but it casts little light away from its surface[if the player has the noun]. It's perfectly round and smooth to the touch, but its surface tingles, and it feels oddly light in your hand, as if it were energy caged in glass[end if][if the player is in a shrine room].[paragraph break]The orb is flashing faintly[otherwise]. The orb's light is steady and even[end if]." To place orbs: DM "Placing orbs: "; repeat with temporary locale running through Perceived shrine rooms: now the current statue is a random shrine statue in the temporary locale; let current orb be a random orb in Z1; now the current orb is in the current statue; DM "Orb placed in [current statue] at [temporary locale]."; let temporary locale be a random Perceived shrine room; now the current statue is a random shrine statue in the temporary locale; let current orb be a random orb in the current statue; now the player has the current orb; DM "Orb removed from [temporary locale] and passed to the player.". Book 4 - Barriers Part 1 - Barrier Concepts Table of Defined Barrier Types barrier-type barrier minimum size barrier maximum size ocean 4 7 lake 4 7 forest 3 7 wall 2 7 river 2 7 brambles 2 7 hedge 2 4 chasm 2 4 cliff edge 2 3 cliff face 2 3 pool 2 3 pillar 1 1 Barrier-type is a kind of value. The barrier-types are defined by the Table of Defined Barrier Types. A barrier is a kind of thing. A barrier is usually fixed in place. A barrier has some text called the blocking text. [The blocking text of a barrier is usually "[The noun] prevents you from going".] A barrier has a barrier-type. The barrier-type of a barrier is usually ocean. Understand the barrier-type property as describing a barrier. A barrier is usually scenery. The current direction is a direction that varies. A barrier-type has some text called the blocking text. The blocking text of a barrier-type is usually "The [noun] prevents you from going [current direction].[line break]". The blocking text of ocean is "You wade [current direction] to stand in the waves for a moment[if the shadow is in the location]. [The shadow self] watches you impassively until you retreat to stand on the [random terrain in the location] again[otherwise] before retreating back to the [random terrain in the location] of the ocean's shore[end if].[line break]" The blocking text of lake is "You wade [current direction] into the [noun] for a moment, noting that the bottom drops out rapidly[if the shadow is in the location]. [The shadow self] watches you impassively until you retreat to stand on the [random terrain in the location] again[otherwise] before retreating back to the [random terrain in the location] of the lakeshore[end if].[line break]" The blocking text of forest is "[if the shadow is in the location][The shadow self] watches as y[otherwise]Y[end if]ou go [current direction] into the [noun], but the trees and undergrowth are so thick that it is difficult to make any progress. You retreat [if the current weather is sunny]back into the sun[otherwise if the current weather is snowing]back into the snow[otherwise if the current weather is raining]back into the rain[otherwise]again[end if].[line break]" The blocking text of wall is "The wall to the [current direction] does not have enough handholds or footholds for you to climb it.[line break]" The blocking text of river is "The river to the [current direction] is too broad and swift for you to attempt the crossing.[line break]" The blocking text of brambles is "You start [current direction] into the [noun], but you quickly conclude that you can't get through[if the shadow is in the location]. [The shadow self] watches you impassively until you retreat[end if].[line break]" The blocking text of hedge is "You approach the [noun] to the [current direction], but there doesn't seem to be a way through.[line break]" The blocking text of chasm is "There's a [noun] to the [current direction], and you can't see a way across. It's too broad to jump and too steep to climb down.[line break]" The blocking text of cliff face is "You approach the [noun] to the [current direction], but it's too steep for you to climb up.[line break]" The blocking text of cliff edge is "You approach the [noun] to the [current direction], but it's too steep for you to climb down.[line break]" The blocking text of pool is "You approach the [noun] to the [current direction], but there's no shallow place - from its edge onward, the pool is sufficiently deep that you can't see the bottom.[line break]" The blocking text of pillar is "There's a [noun] blocking the way [current direction].[line break]" 62 barriers are in Z1. Prevention relates various barriers to various directions. The verb to prevent (it prevents, they prevent, it prevented, it is prevented) implies the prevention relation. Before going nowhere: if going up: say "You can't fly." instead; otherwise if going down: say "You can't go down from here." instead; otherwise if going inside: say "There's nothing to enter here." instead; otherwise if going outside: say "You're outside already." instead; otherwise if going a direction (called thataway): repeat with temporary barrier running through barriers in the location: if the temporary barrier prevents thataway: now the noun is the temporary barrier; now the current direction is thataway; say the blocking text of the barrier-type of the temporary barrier instead. [ say "[blocking text of the barrier-type of the temporary barrier] [thataway]." instead.] The compass set is a list of directions that varies. The compass set is {north, northeast, east, southeast, south, southwest, west, northwest}. Definition: A direction is compass if it is listed in the compass set. Part 2 - Placing Barriers To place barriers: [say "Barrier placement beginning.";] let barrier size be 0; let barrier start be north; let barrier end be north; let the temporary barrier be a random barrier in Z1; repeat with temporary locale running through Blight rooms: DM "[temporary locale]: "; now the permitted directions list of the temporary locale is the compass set; now the prevented directions list of the temporary locale is {}; now barrier size is 0; now barrier start is north; now barrier end is north; now the temporary barrier is a random barrier in Z1; DM "Picking a new barrier from Z1. "; let the primary direction be a random compass direction; while the primary direction is not entry 1 of the compass set: rotate the compass set; let the terminal direction be entry 8 of the compass set; DM "Starting barrier placement at [primary direction] and ending at [terminal direction]. "; repeat with thataway running through the compass set: if barrier size is 0: if the room thataway from the temporary locale is nothing: DM "[line break] <= barrier minimum size entry) and (barrier size <= barrier maximum size entry): DM "type [barrier-type entry] -"; now the barrier-type of the temporary barrier is barrier-type entry; if the barrier-type of the temporary barrier is ocean: now the indefinite article of the temporary barrier is "the edge of a"; otherwise if the barrier-type of the temporary barrier is brambles: now the indefinite article of the temporary barrier is "a wall of"; now N is 1; DM " in [temporary locale]. [The temporary barrier] prevents [the list of directions that are prevented by the temporary barrier].>>"; now barrier size is 0; now barrier start is thataway; now barrier end is thataway; otherwise: move the temporary barrier to the temporary locale; DM "Placing a barrier of size [barrier size] from [barrier start] to [barrier end] - "; let N be 0; while N is 0: choose a random row in the Table of Defined Barrier Types; if (barrier size >= barrier minimum size entry) and (barrier size <= barrier maximum size entry): DM "type [barrier-type entry] -"; now the barrier-type of the temporary barrier is barrier-type entry; now N is 1; DM " in [temporary locale]. [The temporary barrier] prevents [the list of directions that are prevented by the temporary barrier].>>"; now the temporary barrier is a random barrier in Z1; DM "[line break]Picking a new barrier from Z1. "; now barrier size is 0; now barrier start is thataway; now barrier end is thataway; repeat with thataway running through the compass set: DM "[line break]Checking [thataway] in [temporary locale]"; repeat with temporary barrier2 running through (barriers in the temporary locale): DM " against [temporary barrier2]. "; if thataway is listed in the permitted directions list of the temporary locale and thataway is prevented by the temporary barrier2: DM "Removing [thataway] from the permitted directions list due to [temporary barrier2]. "; remove thataway from the permitted directions list of the temporary locale; add thataway to the prevented directions list of the temporary locale; DM "[line break]***[temporary locale]'s permitted directions list: [permitted directions list of the temporary locale]."; DM "***[temporary locale]'s prevented directions list: [prevented directions list of the temporary locale]." Part 3 - Describing Barriers A barrier has an adjective. The adjective of a barrier is usually nondescript. Understand the adjective property as describing a barrier. A barrier-type has a list of adjectives called the appropriate adjective list. [The ocean adjective list is a list of adjectives that varies. Definition: An adjective is ocean-appropriate if it is listed in the ocean adjective list. The brambles adjective list is a list of adjectives that varies. Definition: An adjective is brambles-appropriate if it is listed in the brambles adjective list. The cliff adjective list is a list of adjectives that varies. Definition: An adjective is cliff-appropriate if it is listed in the cliff adjective list. The pillar adjective list is a list of adjectives that varies. Definition: An adjective is pillar-appropriate if it is listed in the pillar adjective list.] To describe barriers: repeat with temporary locale running through Blight rooms: [say "Describing barriers in [temporary locale]. ";] initialize barrier description lists; repeat with temporary barrier running through barriers in the temporary locale: let the temporary barrier-type be the barrier-type of the temporary barrier; sort the appropriate adjective list of the temporary barrier-type in random order; now the adjective of the temporary barrier is entry 1 of the appropriate adjective list of the temporary barrier-type; [let the current adjective be nondescript; if the barrier-type of the temporary barrier is ocean: let current adjective be a random ocean-appropriate adjective; remove current adjective from the ocean adjective list; otherwise if the barrier-type of the temporary barrier is brambles: let current adjective be a random brambles-appropriate adjective; remove current adjective from the brambles adjective list; otherwise if the barrier-type of the temporary barrier is cliff face: let current adjective be a random cliff-appropriate adjective; remove current adjective from the cliff adjective list; otherwise if the barrier-type of the temporary barrier is pillar: let current adjective be a random pillar-appropriate adjective; remove current adjective from the pillar adjective list; now the adjective of the temporary barrier is current adjective; say "[The temporary barrier] is [current adjective]. ";] [ if the barrier-type of the temporary barrier is brambles: now the printed name of the temporary barrier is "patch of [adjective] [barrier-type]"; otherwise:] now the printed name of the temporary barrier is "[adjective] [barrier-type]"; [say "[line break]".] To initialize barrier description lists: now the appropriate adjective list of ocean is {broad, wide, vast, impassable}; now the appropriate adjective list of lake is {broad, deep, wide, grey, fathomless, gloomy}; now the appropriate adjective list of forest is {tangled, thorny, impassable, impenetrable, labyrinthine, gloomy}; now the appropriate adjective list of wall is {crumbling, brick, stone, spike-topped, tall, high, gloomy}; now the appropriate adjective list of river is {rushing, deep, dangerous, broad, wide, vast, impassable}; now the appropriate adjective list of brambles is {thorny, tangled, impassable, thick, impenetrable, labyrinthine}; now the appropriate adjective list of hedge is {thorny, tangled, impassable, impenetrable, tall, broad, thick}; now the appropriate adjective list of chasm is {shadowy, deep, fathomless, impassable, broad, wide, gloomy}; now the appropriate adjective list of cliff face is {steep, tall, high}; now the appropriate adjective list of cliff edge is {high, dizzying, dangerous, treacherous}; now the appropriate adjective list of pool is {deep, fathomless, shadowy, gloomy, reflective}; now the appropriate adjective list of pillar is {broad, wide, tall, carved}. Book 5 - Significant Landmarks [For starters, let's have 10 pieces of significant scenery, and then pick 8 of them.] Z3 is a room. A significant prop is a kind of thing. A significant prop is usually fixed in place. A significant prop has some text called the eventual title. The barren field is a significant prop in Z3. The eventual title of the barren field is "Market". The broken pillar is a significant prop in Z3. The eventual title of the broken pillar is "Hospital". The empty stream bed is a significant prop in Z3. The eventual title of the empty stream bed is "Bridge". The fallen stone bench is a significant prop in Z3. The eventual title of the fallen stone bench is "Hall". The headless statue is a significant prop in Z3. The eventual title of the headless statue is "Church". The description of the headless statue is "The statue is masterfully crafted up to the neck, which ends in a ragged stump." The patch of dead weeds is a significant prop in Z3. The eventual title of the patch of dead weeds is "Greenhouse". The ring of boulders is a significant prop in Z3. The eventual title of the ring of boulders is "Stadium". Understand "boulder" as the ring of boulders. The rune-carved boulder is a significant prop in Z3. The eventual title of the rune-carved boulder is "Arcanum". Understand "rune", "runes", "carving", and "carvings" as the rune-carved boulder. The stairway to nowhere is a significant prop in Z3. The eventual title of the stairway to nowhere is "Tower". Understand "stair", "step", "steps", and "stairs" as the stairway to nowhere. The vacant grave is a significant prop in Z3. The eventual title of the vacant grave is "Cemetary". Definition: A Blight room is insignificant if (it does not enclose a significant prop and it does not enclose a shrine entrance). The current scenery is a thing that varies. To place significant scenery: let M be 0; while M is less than 8: let the temporary scenery be a random significant prop in Z3; let the temporary locale be a random insignificant Blight room; move the temporary scenery to the temporary locale; DM "Moved [the temporary scenery] to [the temporary locale]."; now M is M plus 1. Book 6 - Decorative Scenery Z4 is a room. A decorative prop is a kind of thing. A decorative prop is usually fixed in place. A decorative prop has an adjective called the color. A tree is a kind of decorative prop. There are 5 trees in Z4. A tree has an adjective called the shape. The initial appearance of a tree is "There is a [shape] tree here." The printed name of a tree is "[shape] tree". Understand the shape property as describing a tree. Understand the color property as describing a tree. Understand "root", "roots", "branch", "branches", "bark", "leaf", "leaves", and "trunk" as a tree. The description of a tree is "This [shape of the noun] tree has [color of the noun] bark." A weed clump is a kind of decorative prop. There are 5 weed clumps in Z4. A weed clump has an adjective called the shape. The printed name of a weed clump is "[color] clump of weeds". Understand the shape property as describing a weed clump. Understand the color property as describing a weed clump. Understand "of" and "weeds" as a weed clump. The initial appearance of a weed clump is "A [shape] clump of [color] weeds sprouts from the [random terrain in the location].". The description of a weed clump is "This is a mundane clump of [color of the noun] weeds." A shrub is a kind of decorative prop. There are 5 shrubs in Z4. A shrub has an adjective called the shape. Understand the shape property as describing a shrub. Understand the color property as describing a shrub. The printed name of a shrub is "[color] shrub". The initial appearance of a shrub is "A [color] shrub grows out of the [random terrain in the location].". The description of a shrub is "It's a [shape of the noun] shrub, [color of the noun] in color. You see nothing unusual about it." A bush is a kind of decorative prop. There are 5 rocks in Z4. A bush has an adjective called the shape. Understand the shape property as describing a bush. Understand the color property as describing a bush. The printed name of a bush is "[shape] bush". The initial appearance of a bush is "A [shape] bush shadows the [random terrain in the location].". The description of a bush is "It's a [shape of the noun], ordinary bush with [color of the noun] leaves." A fallen log is a kind of decorative prop. There are 5 fallen logs in Z4. A fallen log has an adjective called the shape. Understand the shape property as describing a fallen log. Understand the color property as describing a fallen log. The printed name of a fallen log is "[color] log". The initial appearance of a fallen log is "A fallen log lies on the [random terrain in the location]." The description of a fallen log is "It's [color of the noun] in hue and has obviously been here for some time." A carving is a kind of decorative prop. There are 5 carvings in Z4. A carving has a monster name called the carving-shape. Understand the carving-shape property as describing a carving. Understand the color property as describing a carving. The printed name of a carving is "carving of a [carving-shape]". Understand "of" as a carving. A carving has a thing called the carving-surface. The initial appearance of a carving is "The crude image of a [carving-shape] has been carved into the [carving-surface] here.". The description of a carving is "Faded [color of the noun] paint still clings to the [carving-surface of the noun] inside the crudely carved outline of the [carving-shape of the noun]". [To say carving initial appearance: say "The crude image of a [carving-shape] has been carved into the [if the carving-surface of the noun is bare rock][random terrain in the location][otherwise]cliff wall rising to the [random direction prevented by the carving-surface of the noun][end if]." To say carving description: say "Faded [color] paint still clings to the [if the carving-surface of the noun is bare rock][random terrain in the location][otherwise]cliff wall[end if] inside the crudely carved outline of the [carving-shape of the noun]."] A cairn is a kind of decorative prop. There are 5 cairns in Z4. A cairn has an adjective called the shape. Understand the shape property as describing a cairn. Understand the color property as describing a cairn. The printed name of a cairn is "cairn of [color] stones". Understand "of", "stone", and "stones" as a cairn. The initial appearance of a cairn is "A [shape] cairn of [color] stones has been piled nearby." The description of a cairn is "Many large [color] stones have been piled into a [shape] cairn." An effigy is a kind of decorative prop. There are 5 effigies in Z4. An effigy has an adjective called the material. Understand the material property as describing an effigy. The printed name of an effigy is "[material] effigy". An effigy has some text called the effigy-image. The initial appearance of an effigy is "A [material] effigy has been placed here." The description of an effigy is "The [material] effigy depicts a [effigy-image]. The sculpture's features are composed in perfect serenity." [Need some more help here.] Definition: A Blight room is underexciting if (it does not enclose a significant prop and it does not enclose a decorative prop). To place decorative scenery: let M be 0; while M is less than 8: now the current scenery is a random decorative prop in Z4; describe the decorative scenery; let the temporary locale be a random underexciting Blight room; if the current scenery is a carving: let the temporary terrain be a random terrain in the temporary locale; if the temporary terrain is bare rock: now the carving-surface of the current scenery is the temporary terrain; move the current scenery to the temporary locale; DM "Moved [the current scenery] to [the temporary locale]. It's a carving, so I attached it to the [carving-surface of the current scenery].[line break]"; now M is M plus 1; otherwise if there is a cliff face barrier (called the target barrier) in the temporary locale: now the carving-surface of the current scenery is the target barrier; move the current scenery to the temporary locale; DM "Moved [the current scenery] to [the temporary locale]. It's a carving, so I attached it to the [carving-surface of the current scenery].[line break]"; now M is M plus 1; otherwise: DM "Tried to build a carving, but there wasn't anywhere to attach it in [the temporary locale].[line break]"; otherwise: move the current scenery to the temporary locale; DM "Moved [the current scenery] to [the temporary locale].[line break]"; now M is M plus 1. The scenery colors list is a list of adjectives that varies. The scenery adjectives list is a list of adjectives that varies. The scenery images list is a list of texts that varies. To describe the decorative scenery: if the current scenery is a tree: now the scenery colors list is {brown, pale brown, light brown, dark brown, grey-brown, grey, black, tan}; sort the scenery colors list in random order; now the color of the current scenery is entry 1 of the scenery colors list; now the scenery adjectives list is {twisted, thin, tall, gnarled, small, straight, lightning-struck, broken-limbed, sideways-listing, broad, asymmetrical, windblown}; sort the scenery adjectives list in random order; now the shape of the current scenery is entry 1 of the scenery adjectives list; otherwise if the current scenery is a weed clump: now the scenery colors list is {brown, grey, golden, pale brown, light brown, dark brown, pale grey, light grey, dark grey, pale gold, light gold, dark gold}; sort the scenery colors list in random order; now the color of the current scenery is entry 1 of the scenery colors list; now the scenery adjectives list is {dense, sparse, tall, flattened, leafless, brittle, dying, dead}; sort the scenery adjectives list in random order; now the shape of the current scenery is entry 1 of the scenery adjectives list; otherwise if the current scenery is a shrub: now the scenery colors list is {brown, grey, golden, pale brown, light brown, dark brown, pale grey, light grey, dark grey, pale gold, light gold, dark gold, grey-green, greenish black}; sort the scenery colors list in random order; now the color of the current scenery is entry 1 of the scenery colors list; now the scenery adjectives list is {bulbous, asymmetrical, thin-limbed, thorny, flattened, brittle, sideways-listing, damaged, broken-limbed, half-crushed, small}; sort the scenery adjectives list in random order; now the shape of the current scenery is entry 1 of the scenery adjectives list; otherwise if the current scenery is a fallen log: now the scenery colors list is {brown, grey, black, dark brown, pale grey, light grey, dark grey, grey-green, greenish black, white-spotted, lichenous green}; sort the scenery colors list in random order; now the color of the current scenery is entry 1 of the scenery colors list; now the scenery adjectives list is {bulbous, asymmetrical, thin-limbed, thorny, flattened, brittle, sideways-listing, damaged, broken-limbed, half-crushed, small}; sort the scenery adjectives list in random order; now the shape of the current scenery is entry 1 of the scenery adjectives list; otherwise if the current scenery is a carving: now the scenery colors list is {white, brown, grey, black, pale brown, light brown, dark brown, red, ochre yellow}; sort the scenery colors list in random order; now the color of the current scenery is entry 1 of the scenery colors list; now the carving-shape of the current scenery is a random monster name; otherwise if the current scenery is a cairn: now the scenery colors list is {white, brown, grey, black, pale brown, light brown, dark brown, pale grey, light grey, dark grey, red, spotted, striped}; sort the scenery colors list in random order; now the color of the current scenery is entry 1 of the scenery colors list; now the scenery adjectives list is {waist-high, chest-high, shoulder-high, head-high, low, oblong, small, large, long, lopsided, asymmetrical}; sort the scenery adjectives list in random order; now the shape of the current scenery is entry 1 of the scenery adjectives list; otherwise if the current scenery is an effigy: now the scenery colors list is {white, brown, grey, black, pale brown, light brown, dark brown, pale grey, light grey, dark grey, red, spotted, striped}; sort the scenery colors list in random order; now the color of the current scenery is entry 1 of the scenery colors list; now the scenery adjectives list is {stone, granite, marble, limestone}; sort the scenery adjectives list in random order; now the material of the current scenery is entry 1 of the scenery adjectives list; now the scenery images list is {"prone man", "prone woman", "prone child", "kneeling man", "kneeling woman", "kneeling child", "seated man", "seated woman", "seated child"}; sort the scenery images list in random order; now the effigy-image of the current scenery is entry 1 of the scenery images list. Volume 4 - Describing the Blight Book 1 - Naming the Blight To name rooms in the Blight: repeat with temporary locale running through Blight rooms: now the current room is the temporary locale; initialize possible prepositions; determine the current landmark; if the current landmark is a shrine entrance: add {"outside"} to the possible preposition list; otherwise if the current landmark is a terrain: now the possible preposition list is {"amid", "surrounded by", "through"}; let L be 8; let the previous direction be northwest; repeat with thataway running through the compass set: if the room thataway from the temporary locale is nothing: now L is L - 1; now the previous direction is thataway; if L is 1: DM "[temporary locale] is a dead end. Landmark: [a current landmark].[line break]"; if the current landmark is not a terrain: add {"at"} to the possible preposition list; sort the possible preposition list in random order; let the current preposition be entry 1 of the possible preposition list; now the display name of the temporary locale is "Dead end [current preposition] [a current landmark]" in sentence case; otherwise if L is 2: DM "[temporary locale] is a path. Landmark: [current landmark].[line break]"; sort the possible preposition list in random order; let the current preposition be entry 1 of the possible preposition list; if the current landmark is not a terrain: add {"passing", "past"} to the possible preposition list; now the display name of the temporary locale is "Path [current preposition] [a current landmark]" in sentence case; otherwise: DM "[temporary locale] has all kinds of directions going on. Landmark: [a current landmark].[line break]"; sort the possible preposition list in random order; let the current preposition be entry 1 of the possible preposition list; now the display name of the temporary locale is "[current preposition] [a current landmark]" in sentence case. The possible preposition list is a list of texts that varies. To initialize possible prepositions: now the possible preposition list is {"near", "not far from", "next to", "beside", "close to"}. The current landmark is a thing that varies. To determine the current landmark: if a shrine entrance (called the current shrine) is in the current room: now the current landmark is the current shrine; otherwise if a significant prop (called the current prop) is in the current room: now the current landmark is the current prop; otherwise: repeat with temporary barrier running through barriers in the current room: if the current landmark is not a barrier: now the current landmark is the temporary barrier; otherwise if (the number of directions prevented by the temporary barrier) > (the number of directions prevented by the current landmark): now the current landmark is the temporary barrier; if the current landmark is not a barrier: if a decorative prop (called the second prop) is in the current room: now the current landmark is the second prop; otherwise: now the current landmark is a random terrain in the current room. Book 2 - Room Description Type Part 1 - Determining Room Type To write Blight room descriptions: repeat with temporary locale running through Blight rooms: now the current room is the temporary locale; determine the current landmark; if (the number of barriers in the temporary locale) is 0: write an all-directions room description; repeat with temporary barrier running through barriers in temporary locale: if (the number of directions prevented by the temporary barrier) >= 4: write a barrier-dominant room description; if (the number of barriers in the temporary locale) is 1: write a barrier-dominant room description; otherwise if the number of shrine entrances in the temporary locale is 1: write a shrine-based room description; otherwise if the number of significant props in the temporary locale is 1: write a prop-based room description; otherwise: write an undecorated room description; write a Blight odor; write a Blight sound. Part 2 - Barrier-Dominant To write a barrier-dominant room description: if the desc of the current room is "": DM "I'm writing a barrier-dominant room description for [the current room]."; now the desc of the current room is "(Something went wrong with this barrier-dominant room description.)"; if the current landmark is a shrine entrance: let K be a random number between 1 and 4; if K is 1: DM "(type shrine-1).[line break]"; write a barrier sentence; write a weather sentence; write a terrain-shrine sentence; now the desc of the current room is "[the barrier sentence] [the weather sentence] [the terrain-shrine sentence]" in sentence case; otherwise if K is 2: DM "(type shrine-2)[line break]"; write a barrier sentence; write a shrine sentence; write a weather-terrain sentence; now the desc of the current room is "[the barrier sentence] [the shrine sentence] [the weather-terrain sentence]" in sentence case; otherwise if K is 3: DM "(type shrine-3).[line break]"; write a shrine-barrier sentence; write a terrain sentence; write a weather sentence; now the desc of the current room is "[the shrine-barrier sentence] [the terrain sentence] [the weather sentence]" in sentence case; otherwise: DM "(type shrine-4).[line break]"; write a shrine-barrier sentence; write a weather-terrain sentence; now the desc of the current room is "[the shrine-barrier sentence] [the weather-terrain sentence]" in sentence case; otherwise if the current landmark is a significant prop: let K be a random number between 1 and 8; if K is 1: DM "(type prop-1).[line break]"; write a barrier sentence; write a weather sentence; write a terrain-prop sentence; now the desc of the current room is "[the barrier sentence] [the weather sentence] [the terrain-prop sentence]" in sentence case; otherwise if K is 2: DM "(type prop-2).[line break]"; write a barrier sentence; write a weather-prop sentence; write a terrain sentence; now the desc of the current room is "[the barrier sentence] [the weather-prop sentence] [the terrain sentence]" in sentence case; otherwise if K is 3: DM "(type prop-3).[line break]"; write a barrier sentence; write a prop sentence; write a weather-terrain sentence; now the desc of the current room is "[the barrier sentence] [the prop sentence] [the weather-terrain sentence]" in sentence case; otherwise if K is 4: DM "(type prop-4).[line break]"; write a prop-barrier sentence; write a weather sentence; write a terrain sentence; now the desc of the current room is "[the prop-barrier sentence] [the weather sentence] [the terrain sentence]" in sentence case; otherwise if K is 5: DM "(type prop-5).[line break]"; write a prop-barrier sentence; write a weather-terrain sentence; now the desc of the current room is "[the prop-barrier sentence] [the weather-terrain sentence]" in sentence case; otherwise if K is 6: DM "(type prop-6).[line break]"; write a terrain-barrier sentence; write a prop sentence; write a weather sentence; now the desc of the current room is "[the terrain-barrier sentence] [the prop sentence] [the weather sentence]" in sentence case; otherwise if K is 7: DM "(type prop-7).[line break]"; write a terrain-barrier sentence; write a weather sentence; write a prop sentence; now the desc of the current room is "[the terrain-barrier sentence] [the weather sentence] [the prop sentence]" in sentence case; otherwise: DM "(type prop-8).[line break]"; write a terrain-barrier sentence; write a weather-prop sentence; write a prop sentence; now the desc of the current room is "[the terrain-barrier sentence] [the weather-prop sentence]" in sentence case; otherwise: let K be a random number between 1 and 2; if K is 1: DM "(type other-1).[line break]"; write a barrier sentence; write a weather-terrain sentence; now the desc of the current room is "[the barrier sentence] [the weather-terrain sentence]" in sentence case; otherwise: DM "(type other-2).[line break]"; write a terrain-barrier sentence; write a weather sentence; now the desc of the current room is "[the terrain-barrier sentence] [the weather sentence]" in sentence case. Part 4 - Shrine-Based To write a shrine-based room description: if the desc of the current room is "": DM "I'm writing a shrine-based room description for [the current room].[line break]"; let K be a random number between 1 and 3; if K is 1: DM "(type 1).[line break]"; write a weather-shrine sentence; write a terrain-barrier sentence; now the desc of the current room is "[the weather-shrine sentence] [the terrain-barrier sentence]" in sentence case; otherwise if K is 2: DM "(type 2).[line break]"; write a shrine-barrier sentence; write a weather-terrain sentence; now the desc of the current room is "[the shrine-barrier sentence] [the weather-terrain sentence]" in sentence case; otherwise if K is 3: DM "(type 3).[line break]"; write a weather sentence; write a terrain-shrine sentence; write a barrier sentence; now the desc of the current room is "[the weather sentence] [the terrain-shrine sentence] [the barrier sentence]" in sentence case. Part 5 - Prop-Based To write a prop-based room description: if the current room encloses a significant prop: now the current landmark is a random significant prop in the current room; otherwise: now the current landmark is a random decorative prop in the current room; if the desc of the current room is "": DM "I'm writing a prop-based room description for [the current room] "; now the desc of the current room is "(Something went wrong with this prop-based room description.)"; let K be a random number between 1 and 2; if K is 1: DM "(type 1).[line break]"; write a weather-prop sentence; write a terrain sentence; write a barrier sentence; now the desc of the current room is "[the weather-prop sentence] [the terrain sentence] [the barrier sentence]" in sentence case; otherwise if K is 2: DM "(type 2).[line break]"; write a weather sentence; write a terrain-prop sentence; write a barrier sentence; now the desc of the current room is "[the weather sentence] [the terrain-prop sentence] [the barrier sentence]" in sentence case. Part 6 - All-Directions To write an all-directions room description: if the desc of the current room is "": DM "I'm writing an all-directions room description for [the current room]. "; if the current landmark is a shrine entrance: let L be a random number between 1 and 4; if L is 1: DM "(type shrine-1).[line break]"; write a weather-shrine sentence; write a terrain sentence; now the desc of the current room is "[the weather-shrine sentence] [the terrain sentence] From here, you can go in any direction."; otherwise if L is 2: DM "(type shrine-2).[line break]"; write a weather sentence; write a terrain-shrine sentence; now the desc of the current room is "[the weather sentence] [the terrain-shrine sentence] From here, you can go in any direction."; otherwise if L is 3: DM "(type shrine-3).[line break]"; write a weather-terrain sentence; write a shrine sentence; now the desc of the current room is "[the weather-terrain sentence] [the shrine sentence] From here, you can go in any direction."; otherwise: DM "(type shrine-4).[line break]"; write a weather sentence; write a terrain sentence; write a shrine sentence; now the desc of the current room is "[the weather sentence] [the terrain sentence] [the shrine sentence] From here, you can go in any direction."; otherwise if the current room encloses a significant prop: now the current landmark is a random significant prop in the current room; let L be a random number between 1 and 4; if L is 1: DM "(type prop-1).[line break]"; write a weather-prop sentence; write a terrain sentence; now the desc of the current room is "[the weather-prop sentence] [the terrain sentence] From here, you can go in any direction."; otherwise if L is 2: DM "(type prop-2).[line break]"; write a weather sentence; write a terrain-prop sentence; now the desc of the current room is "[the weather sentence] [the terrain-prop sentence] From here, you can go in any direction."; otherwise if L is 3: DM "(type prop-3).[line break]"; write a weather-terrain sentence; write a prop sentence; now the desc of the current room is "[the weather-terrain sentence] [the prop sentence] From here, you can go in any direction."; otherwise: DM "(type prop-4).[line break]"; write a weather sentence; write a terrain sentence; write a prop sentence; now the desc of the current room is "[the weather sentence] [the terrain sentence] [the prop sentence] From here, you can go in any direction."; otherwise: DM "(type other-1).[line break]"; write a weather sentence; write a terrain sentence; now the desc of the current room is "[the weather sentence] [the terrain sentence] From here, you can go in any direction." Part 7 - Undecorated To write an undecorated room description: if the desc of the current room is "": DM "I'm writing an undecorated room description for [the current room] "; now the desc of the current room is "(Something went wrong with this undecorated room description.)"; let K be a random number between 1 and 4; if K is 1: DM "(type 1).[line break]"; write a weather sentence; write a terrain sentence; write a barrier sentence; now the desc of the current room is "[the weather sentence] [the terrain sentence] [the barrier sentence]" in sentence case; otherwise if K is 2: DM "(type 2).[line break]"; write a weather-terrain sentence; write a barrier sentence; now the desc of the current room is "[the weather-terrain sentence] [the barrier sentence]" in sentence case; otherwise if K is 3: DM "(type 3).[line break]"; write a weather sentence; write a terrain-barrier sentence; now the desc of the current room is "[the weather sentence] [the terrain-barrier sentence]" in sentence case; otherwise: DM "(type 4).[line break]"; write a weather-terrain sentence; write a prop sentence; write a barrier sentence; now the desc of the current room is "[the weather-terrain sentence] [the barrier sentence]" in sentence case. The weather sentence is some text that varies. The terrain sentence is some indexed text that varies. The shrine sentence is some indexed text that varies. The prop sentence is some text that varies. The barrier sentence is some text that varies. The weather-terrain sentence is some text that varies. The weather-shrine sentence is some text that varies. The weather-prop sentence is some text that varies. The weather-barrier sentence is some text that varies. The terrain-shrine sentence is some text that varies. The terrain-prop sentence is some text that varies. The terrain-barrier sentence is some text that varies. The shrine-barrier sentence is some text that varies. The prop-barrier sentence is some text that varies. Book 3 - Room Description Sentences The current barrier is a barrier that varies. The alternate barrier is a barrier that varies. Part 1 - Weather Sentences To write a weather sentence: now the weather sentence is "(This is a weather sentence for an unknown case involving [current weather].)"; if the current weather is sunny: if the current temperature is hot: let K be a random number from 1 to 3; if K is 1: now the weather sentence is "The sun beats down upon you."; otherwise if K is 2: now the weather sentence is "The sun glows hotly on high."; otherwise: now the weather sentence is "Sunlight sears across everything."; otherwise if the current temperature is temperate: let K be a random number from 1 to 3; if K is 1: now the weather sentence is "Sunlight gleams down across you."; otherwise if K is 2: now the weather sentence is "Shafts of sunlight pierce a few drifting clouds overhead."; otherwise: now the weather sentence is "The sun shines brilliantly."; otherwise: let K be a random number from 1 to 3; if K is 1: now the weather sentence is "Somehow, the bright sun overhead casts no warmth."; otherwise if K is 2: now the weather sentence is "Chill winter sunlight illuminates everything."; otherwise: now the weather sentence is "The heatless sun above dazzles your eyes."; otherwise if the current weather is cloudy: let K be a random number from 1 to 3; if K is 1: now the weather sentence is "Clouds obscure the sun overhead, reducing it to a dim white glow against grey."; otherwise if K is 2: now the weather sentence is "Grey clouds shroud the coffin sky."; otherwise: now the weather sentence is "The clouds overhead impede all but the ghost of sunlight."; otherwise if the current weather is misty: let K be a random number from 1 to 3; if K is 1: now the weather sentence is "Wisps of grey mist twine across the landscape."; otherwise if K is 2: now the weather sentence is "Long, ethereal veils of mist shroud everything around you."; otherwise: now the weather sentence is "The mist makes everything blur, and it feels harder to trust your eyes."; otherwise if the current weather is raining: let K be a random number from 1 to 3; if K is 1: now the weather sentence is "Long sheets of rain blur everything in sight."; otherwise if K is 2: now the weather sentence is "It rains and rains, as if the rain will never stop."; otherwise: now the weather sentence is "The roar of the rain reduces the strength of all other sounds."; otherwise if the current weather is snowing: let K be a random number from 1 to 3; if K is 1: now the weather sentence is "Snowflakes float from the sky to land on all conceivable surfaces."; otherwise if K is 2: now the weather sentence is "Snow falls constantly, ceaselessly."; otherwise: now the weather sentence is "Snow drifts down, speck by speck, from a dull white sky." Part 2 - Terrain Sentences To write a terrain sentence: now the current terrain is a random terrain in the current room; now the weather-terrain sentence is "(This is a terrain sentence for an unknown case involving [the current terrain].)"; if the current terrain is grass: now the terrain sentence is "The [current terrain] lies flattened and matted on the ground."; otherwise if the current terrain is moss: now the terrain sentence is "[current terrain] grows here in a broad carpet."; otherwise if the current terrain is fallen leaves: now the terrain sentence is "[current terrain] cover the ground here."; otherwise if the current terrain is sand: now the terrain sentence is "[current terrain] yields underfoot with each step."; otherwise if the current terrain is mud: now the terrain sentence is "A few blades of grass struggle in an overwhelming sea of [current terrain]."; otherwise if the current terrain is pebbles: now the terrain sentence is "Here, [current terrain] cover the ground."; otherwise if the current terrain is bare rock: now the terrain sentence is "The earth has been worn away to reveal [current terrain] here."; otherwise if the current terrain is bare earth: if a random chance of 1 in 2 succeeds: now the terrain sentence is "The grass has been worn away to reveal [current terrain] here."; otherwise: now the terrain sentence is "Some unknown force has ripped away the sod here to expose bare earth."; otherwise if the current terrain is slush: now the terrain sentence is "A thick layer of [current terrain] conceals the ground from view."; otherwise if the current terrain is snow: now the terrain sentence is "A hard crust of [current terrain] conceals the ground from view."; otherwise if the current terrain is ice: let M be a random number between 1 and 3; if M is 1: now the terrain sentence is "[current terrain] gleams dully on every surface."; otherwise if M is 2: now the terrain sentence is "[current terrain] makes the footing treacherous."; otherwise if M is 3: now the terrain sentence is "A thick layer of [current terrain] covers the ground." Part 3 - Shrine Sentences To write a shrine sentence: [ now the current landmark is scenery;] now the shrine sentence is "The entrance to [a current landmark] is not far away.". Part 4 - Prop Sentences To write a prop sentence: now the current landmark is scenery; now the prop sentence is "(This is a prop sentence for an unknown case involving [a current landmark].)"; if the current landmark is the barren field: now the prop sentence is "Broken stalks, plainly dead for many winters, project from the furrows of a barren field here."; otherwise if the current landmark is the broken pillar: now the prop sentence is "A broken pillar, wider than your waist and carved with strange emblems, juts from the earth."; otherwise if the current landmark is the empty stream bed: now the prop sentence is "An empty stream bed curves past, cutting a useless course."; otherwise if the current landmark is the fallen stone bench: now the prop sentence is "A fallen stone bench not far away provides a seat for no one."; otherwise if the current landmark is the headless statue: now the prop sentence is "A headless statue poses sightlessly nearby."; otherwise if the current landmark is the patch of dead weeds: now the prop sentence is "A patch of dead weeds, still brittle and not yet turning to rot, juts from the ground nearby."; otherwise if the current landmark is the ring of boulders: now the prop sentence is "Tall boulders stand in an artificial, long-abandoned ring nearby."; otherwise if the current landmark is the rune-carved boulder: now the prop sentence is "Strange runes have been carved into the surface of a hulking boulder nearby."; otherwise if the current landmark is the stairway to nowhere: now the prop sentence is "The first few steps of a stone stair emerge from the ground, but there is no accompanying building - only a mysterious stair into nowhere."; otherwise if the current landmark is the vacant grave: now the prop sentence is "Not far away, the mouth of a vacant grave gapes wide.". Part 5 - Barrier Sentences To write a barrier sentence: now the current barrier is a random barrier in the current room; if the number of barriers in the current room is 1: if the current barrier is ocean: now the barrier sentence is "Long waves roll over the surface of [the current barrier] and exhaust themselves as curling foam. Here beside the shore, the ocean's edge [if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room]blocks travel in all directions except [permitted directions list of the current room][otherwise]blocks the way [prevented directions list of the current room][end if]."; otherwise if the current barrier is brambles: now the barrier sentence is "Wiry branches and extremely long thorns form a barrier of [current barrier] that [if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room]blocks all directions except [permitted directions list of the current room][otherwise]blocks the way [prevented directions list of the current room][end if]."; otherwise if the current barrier is cliff face: now the barrier sentence is "You stand at the base of [a current barrier] that rises impassably to the [prevented directions list of the current room]."; otherwise if the current barrier is a pillar: now the barrier sentence is "To the [prevented directions list of the current room], there stands [a current barrier]."; otherwise: now the barrier sentence is "[A current barrier] [if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room]blocks you from travelling in any direction except [permitted directions list of the current room][otherwise] prevents you from travelling [prevented directions list of the current room][end if]."; otherwise if the number of barriers in the current room is 2: repeat with target barrier running through the barriers in the current room: if the target barrier is not the current barrier: now the alternate barrier is the target barrier; if the current barrier is ocean: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the barrier sentence is "Paths wend [permitted directions list of the current room] around [alternate barrier] and approach the edge of [the current barrier]."; otherwise: now the barrier sentence is "The rolling waves of [the current barrier] block the way [list of directions prevented by the current barrier], and [an alternate barrier] blocks your way [list of directions prevented by the alternate barrier]."; otherwise if the current barrier is brambles: if the alternate barrier is brambles: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the barrier sentence is "Brambles girdle this area, permitting you to leave only [permitted directions list of the current room]."; otherwise: now the barrier sentence is "Brambles block you from travelling [permitted directions list of the current room]."; otherwise: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the barrier sentence is "[A current barrier] hems your way with sharp thorns, and [an alternate barrier] also presents an obstacle to travel. From here, paths lead [permitted directions list of the current room]."; otherwise: now the barrier sentence is "[A current barrier] presents a dangerous obstacle to proceeding [list of directions prevented by the current barrier], and [an alternate barrier] blocks your way [list of directions prevented by the alternate barrier]."; otherwise if the current barrier is cliff face: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the barrier sentence is "You can travel freely to the [permitted directions list of the current room], but all other routes are blocked by [a list of barriers in the current room]."; otherwise: now the barrier sentence is "[A current barrier] rising sharply before you prevents you from going [list of directions prevented by the current barrier], and [an alternate barrier] blocks your way [list of directions prevented by the alternate barrier]."; otherwise if the current barrier is a pillar: if the alternate barrier is a pillar: now the barrier sentence is "Two pillars stand here, one to the [list of directions prevented by the current barrier] and one to the [list of directions prevented by the alternate barrier]. They are visibly different in design, but were likely once part of the same structure."; otherwise if the alternate barrier is a lake: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the barrier sentence is "[A current barrier] stands to the [list of directions prevented by the current barrier], and, to the [list of directions prevented by the alternate barrier], the still surface of [an alternate barrier] blocks your route."; otherwise: now the barrier sentence is "[A current barrier] stands alone on the shore of [an alternate barrier]. You can circumvent them to the [permitted directions list of the current room]."; otherwise if the alternate barrier is a river: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the barrier sentence is "[A current barrier] stands to the [list of directions prevented by the current barrier], and, to the [list of directions prevented by the alternate barrier], [an alternate barrier] winds past."; otherwise: now the barrier sentence is "[A current barrier] stands alone on the shore of [an alternate barrier], which is clearly too broad to cross. From here, you can travel [permitted directions list of the current room]."; otherwise: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the barrier sentence is "To the [permitted directions list of the current room], you can travel freely, but all other routes are blocked by [list of barriers in the current room]."; otherwise: now the barrier sentence is "[A current barrier] to the [list of directions prevented by the current barrier] bears lonely testament to some greater structure standing here in the far-distant past. [A alternate barrier] hems your path in, blocking you from going [list of directions prevented by the alternate barrier]."; otherwise: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the barrier sentence is "Between the [current barrier] and the [alternate barrier] here, you can only travel [permitted directions list of the current room]."; otherwise: now the barrier sentence is "[A current barrier] blocks the way [list of directions prevented by the current barrier], and [a alternate barrier] blocks the way [list of directions prevented by the alternate barrier]"; otherwise: now the barrier sentence is "Due to [the list of barriers in the current room] hemming your route, you [if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room]can only travel to the [permitted directions list of the current room] [otherwise]cannot travel [prevented directions list of the current room][end if]." Part 6 - Weather-Terrain Sentences To write a weather-terrain sentence: now the current terrain is a random terrain in the current room; now the weather-terrain sentence is "(This is a weather-terrain sentence for an unknown case involving [current terrain] and [current weather].)"; if the current weather is sunny: if the current temperature is hot: if the current terrain is grass or the current terrain is moss: now the weather-terrain sentence is "[Current terrain] shrivels beneath the scorching sun."; otherwise if the current terrain is bare earth: now the weather-terrain sentence is "Exposed bare earth bakes beneath the hot sun."; otherwise if the current terrain is mud: now the weather-terrain sentence is "[Current terrain] slowly dries beneath the sun."; otherwise if the current terrain is sand: now the weather-terrain sentence is "Heat shimmers up from the burning [current terrain]."; otherwise if the current terrain is snow: now the weather-terrain sentence is "Cold sunlight glitters on [current terrain]."; otherwise if the current terrain is bare rock: if a random chance of 1 in 2 succeeds: say "The blazing sun imbues the bare rock with shimmering heat."; otherwise: say "Sunlight beats heavily down across the [current terrain], heating it to an almost unbearable temperature."; otherwise: if a random chance of 1 in 2 succeeds: now the weather-terrain sentence is "Sunlight sears down on the [current terrain]."; otherwise: now the weather-terrain sentence is "Sunlight blazes down upon the [current terrain] here."; otherwise if the current temperature is cold: now the weather-terrain sentence is "Warmthless sunlight illuminates the [current terrain]."; otherwise if the current temperature is temperate: if the current terrain is grass or the current terrain is moss: now the weather-terrain sentence is "The [current terrain] covering the ground seems to gain little sustenance from the glaring sun."; otherwise if the current terrain is fallen leaves or the current terrain is pebbles: now the weather-terrain sentence is "[Current terrain] gleam in the harsh sunlight."; otherwise if the current terrain is mud: now the weather-terrain sentence is "The sun's sharp light shows an unappealing vista of [current terrain]."; otherwise if the current terrain is slush: now the weather-terrain sentence is "A field of [current terrain] melts slowly in the sun."; otherwise: now the weather-terrain sentence is "The sun's sharp light makes the [current terrain] here look no more appealing."; otherwise if the current weather is cloudy: if the current terrain is grass: now the weather-terrain sentence is "The [current terrain] covering the ground here gains no energy from the sullen gray sky."; if the current terrain is sand: now the weather-terrain sentence is "The [current terrain] underfoot clumps up in the humid air."; otherwise if the current terrain is bare rock: if a random chance of 1 in 2 succeeds: now the weather-terrain sentence is "Heavy clouds hang low over the [current terrain]."; otherwise: now the weather-terrain sentence is "Sullen clouds loom over an unpromising slope of bare rock."; otherwise if the current terrain is pebbles: now the weather-terrain sentence is "A field of [current terrain] spreads beneath the cloudy sky."; otherwise if the current terrain is snow: now the weather-terrain sentence is "The thick clouds overhead are almost the same color as the [snow] accumulating beneath them."; otherwise: now the weather-terrain sentence is "Dead grey clouds hang above the [current terrain] underfoot."; otherwise if the current weather is misty: if the current terrain is grass: now the weather-terrain sentence is "Mist blurs the edges of the [current terrain] covering the local landscape."; otherwise if the current terrain is bare rock: if a random chance of 1 in 2 succeeds: now the weather-terrain sentence is "Gray mist veils the harsh lines of bare rock around you."; otherwise: now the weather-terrain sentence is "Mist glides across the [current terrain] here, concealing ridges and nonconformities."; otherwise if the current terrain is ice: now the weather-terrain sentence is "Mist obscures the treacherous layer of [current terrain] covering the ground here."; otherwise: now the weather-terrain sentence is "Layers of pale gray mist part to reveal [current terrain] underfoot."; otherwise if the current weather is raining: if the current terrain is grass: now the weather-terrain sentence is "Falling rain soaks heavily into the [current terrain] underfoot."; otherwise if the current terrain is moss: now the weather-terrain sentence is "Rain soaks steadily into the [current terrain] covering the ground."; otherwise if the current terrain is fallen leaves: now the weather-terrain sentence is "The heavy rain has saturated the [current terrain] concealing the ground."; otherwise if the current terrain is sand: now the weather-terrain sentence is "Rain forms rivulets in the [current terrain] and sinks into puddles."; otherwise if the current terrain is bare rock: if a random chance of 1 in 2 succeeds: now the weather-terrain sentence is "Rain sluices over the [current terrain]."; otherwise: now the weather-terrain sentence is "Rain pours over the bare rock exposed here."; otherwise if the current terrain is pebbles: now the weather-terrain sentence is "Scattered pebbles cover the ground, darkened and made slippery by the falling rain."; now the weather-terrain sentence is "Rain falls steadily across the [current terrain] underfoot."; otherwise if the current weather is snowing: if the current terrain is grass or the current terrain is moss or the current terrain is fallen leaves: now the weather-terrain sentence is "Snowflakes drift quietly from the sky to accumulate upon the [current terrain] covering the ground."; otherwise if the current terrain is bare earth: now the weather-terrain sentence is "Snow falls from the sky, forming long drifts that partially expose the bare earth underfoot."; otherwise if the current terrain is pebbles: now the weather-terrain sentence is "The falling snow merges pebbles and ice together in an oddly textured conglomerate underfoot."; otherwise if the current terrain is sand: now the weather-terrain sentence is "Snow and sand form a strange conglomerate here."; otherwise if the current terrain is mud: now the weather-terrain sentence is "Snowflakes wander slowly down from the disinterested heavens and collect upon the [current terrain]."; otherwise if the current terrain is bare rock: if a random chance of 1 in 2 succeeds: now the weather-terrain sentence is "Snow accumulates in white drifts across the bare rock underfoot."; otherwise: now the weather-terrain sentence is "The falling snow fills nooks and crevices in the bare rock underfoot."; otherwise if the current terrain is slush: now the weather-terrain sentence is "[Current terrain] silently absorbs the falling snow."; otherwise if the current terrain is snow: if a random chance of 1 in 2 succeeds: now the weather-terrain sentence is "[Current terrain] grows deeper as more layers accumulate."; otherwise: now the weather-terrain sentence is "The snow falls, covering everything with a [terrain adjective of the current terrain] shroud."; otherwise if the current terrain is ice: now the weather-terrain sentence is "The falling snow gradually obscures the [current terrain] underfoot." Part 7 - Weather-Shrine Sentences To write a weather-shrine sentence: [ now the current landmark is scenery;] now the weather-shrine sentence is "(This is a weather-shrine sentence for an unknown case involving [current weather] and [current landmark].)"; if the current weather is sunny: now the weather-shrine sentence is "Harsh sunlight illuminates the awkward shape of [a current landmark] here."; otherwise if the current weather is cloudy: now the weather-shrine sentence is "Heavy gray clouds fill the skies overhead, and [a current landmark] sits dully in their shadow."; otherwise if the current weather is misty: now the weather-shrine sentence is "A thin layer of gray fog wraps about [a current landmark]."; otherwise if the current weather is raining: now the weather-shrine sentence is "[The current landmark] here provides the possibility of shelter from the streaming rain."; otherwise if the current weather is snowing: now the weather-shrine sentence is "Snow collects in drifts around [the current landmark] nearby." Part 8 - Weather-Prop Sentences To write a weather-prop sentence: now the current landmark is scenery; now the weather-prop sentence is "(This is a weather-prop sentence for an unknown case involving [a current landmark] and [current weather].)"; if the current weather is sunny: if the current landmark is the patch of dead weeds: now the weather-prop sentence is "Sharp sunlight bleaches [a current landmark]."; otherwise if the current landmark is the rune-carved boulder: if the current temperature is hot: now the weather-prop sentence is "There is [a current landmark] here, heated with such force by the implacable sun that the air above it shimmers."; otherwise: now the weather-prop sentence is "Sunlight glitters from tiny quartz nodules in the surface of a rune-carved boulder."; otherwise if the current landmark is the stairway to nowhere: now the weather-prop sentence is "Sunlight illuminates the shape of a stair amid brief ruins. It rises briefly and then terminates in thin air."; otherwise if the current temperature is hot: now the weather-prop sentence is "Sunlight glares down on [a current landmark]."; otherwise if the current temperature is temperate: now the weather-prop sentence is "Sunlight shines down across [a current landmark]."; otherwise if the current temperature is cold: now the weather-prop sentence is "Not far away, [a current landmark] glows in the winter sun."; otherwise if the current weather is cloudy: if the current landmark is the patch of dead weeds: now the weather-prop sentence is "[A current landmark] stretches forlornly toward the clouded sky."; otherwise if the current landmark is the ring of boulders: now the weather-prop sentence is "[A current landmark] looms beneath the clouded sky."; otherwise if the current landmark is the rune-carved boulder: now the weather-prop sentence is "[A current landmark] hulks silently beneath the sullen sky."; otherwise: now the weather-prop sentence is "The low-hanging sky casts a gray pall over the area, stealing all color from [a current landmark] nearby."; otherwise if the current weather is misty: if the current landmark is the barren field: now the weather-prop sentence is "Mist forms odd, translucent mazes among the empty ridges in the barren field nearby."; otherwise if the current landmark is the broken pillar: now the weather-prop sentence is "Mist twines slowly about the shape of [a current landmark] and stretches long tentacles in all directions."; otherwise if the current landmark is the empty stream bed: now the weather-prop sentence is "Mist coils with ethereal slowness around the bottom of an empty stream bed."; otherwise if the current landmark is the headless statue: now the weather-prop sentence is "Grey mist shrouds [a current landmark] standing here and weaves its way across the landscape beyond."; otherwise if the current landmark is the patch of dead weeds: now the weather-prop sentence is "[A current landmark] shivers in the shroud of grey mist that envelops the landscape."; otherwise if the current landmark is the ring of boulders: now the weather-prop sentence is "Tendrils of mist weave back and forth within [a current landmark]."; otherwise if the current landmark is the rune-carved boulder: now the weather-prop sentence is "Tentacles of mist caress the surface of [a current landmark] half-buried in the earth."; otherwise if the current landmark is the stairway to nowhere: now the weather-prop sentence is "A stairway rises through the tendrils of mist. It breaks off at shoulder-height, having gone nowhere at all."; otherwise if the current landmark is the vacant grave: now the weather-prop sentence is "Thin gray mist shrouds a vacant grave not far away."; otherwise if the current weather is raining: if the current landmark is the patch of dead weeds: now the weather-prop sentence is "[A current landmark] grows soggy in the persistent rain."; otherwise if the current landmark is the rune-carved boulder: now the weather-prop sentence is "Rain washes over the sides of a rune-carved boulder nearby."; otherwise: now the weather-prop sentence is "[A current landmark] looks bedraggled in the rain."; otherwise if the current weather is snowing: if the current landmark is the patch of dead weeds: now the weather-prop sentence is "[A current landmark] gradually disappears beneath the falling snow."; if the current landmark is the rune-carved boulder: now the weather-prop sentence is "Snow shrouds the surface of a large boulder nearby. Intricate runes have been carved into its surface."; otherwise: now the weather-prop sentence is "Snowflakes drift down around [a current landmark]." Part 9 - Terrain-Shrine Sentences To write a terrain-shrine sentence: now the current terrain is a random terrain in the current room; [now the current landmark is scenery;] now the terrain-shrine sentence is "(This is a terrain-shrine sentence for an unknown case involving [a current landmark] and [current terrain].)"; if the current terrain is grass: now the terrain-shrine sentence is "Clumps of [current terrain] grow around the base of [a current landmark] nearby."; otherwise if the current terrain is moss: now the terrain-shrine sentence is "[A current landmark] hunches down as if it were trying to blend into the scattered [current terrain] growing here."; otherwise if the current terrain is fallen leaves: now the terrain-shrine sentence is "[Current terrain] lie scattered before the entrance to [a current landmark]."; otherwise if the current terrain is sand: now the terrain-shrine sentence is "[A current landmark] rises from a sere, swept landscape of [a current terrain]."; otherwise if the current terrain is mud or the current terrain is bare rock or the current terrain is bare earth: now the terrain-shrine sentence is "[A current landmark] stands sentinel over an unprepossessing landscape of [current terrain]."; otherwise if the current terrain is pebbles: now the terrain-shrine sentence is "[Current terrain] litter the area around [a current landmark]."; otherwise if the current terrain is slush: now the terrain-shrine sentence is "[A current landmark] hulks amid a sea of [current terrain]."; otherwise if the current terrain is snow: now the terrain-shrine sentence is "[Current terrain] partially covers the roof of [a current landmark] and shrouds the nearby scenery."; otherwise if the current terrain is ice: now the terrain-shrine sentence is "[A current landmark] glitters with a thin layer of [current terrain], just like everything else nearby." Part 10 - Terrain-Prop Sentences To write a terrain-prop sentence: now the current terrain is a random terrain in the current room; now the current landmark is scenery; now the terrain-prop sentence is "(This is a terrain-prop sentence for an unknown case involving [current landmark] and [current terrain].)"; if the current terrain is grass: if the current landmark is the barren field: now the terrain-prop sentence is "Blades of [current terrain] investigate the edges of [a current landmark], but the field itself remains dead and bare."; otherwise if the current landmark is the broken pillar: now the terrain-prop sentence is "[Current terrain] curls about the base of [a current landmark]."; otherwise if the current landmark is the empty stream bed: now the terrain-prop sentence is "[Current terrain] sprouts on the banks of [a current landmark] wending by."; otherwise if the current landmark is the fallen stone bench: now the terrain-prop sentence is "Blades of [current terrain] grow up around a [current landmark]."; otherwise if the current landmark is the headless statue: now the terrain-prop sentence is "[Current terrain] curls over the feet of a [current landmark] standing here."; otherwise if the current landmark is the patch of dead weeds: if a random chance of 1 in 2 succeeds: now the terrain-prop sentence is "[A current landmark] pokes out of the [current terrain]."; otherwise: now the terrain-prop sentence is "[A current landmark] sprouts from the [current terrain] here, an ugly ornament to the bland scenery."; otherwise if the current landmark is the ring of boulders: now the terrain-prop sentence is "[Current terrain] grows in and around a ring of boulders."; otherwise if the current landmark is the rune-carved boulder: now the terrain-prop sentence is "The [current terrain] covering the ground fails to thrive in the lee of a nearby boulder."; otherwise if the current landmark is the vacant grave: now the terrain-prop sentence is "[Current terrain] fringes the edges of a [current landmark] cut into the earth."; otherwise if the current terrain is moss: if the current landmark is the barren field: now the terrain-prop sentence is "Not far away, there is [a current landmark], which is completely free of the [current terrain] covering the ground here."; otherwise if the current landmark is the broken pillar: now the terrain-prop sentence is "[Current terrain] covers the ground and part of [a current landmark] jutting from the ground."; otherwise if the current landmark is the empty stream bed: now the terrain-prop sentence is "[Current terrain] grows along the banks of [a current landmark]."; otherwise if the current landmark is the fallen stone bench: if a random chance of 1 in 2 succeeds: now the terrain-prop sentence is "[Current terrain] covers the ground and creeps up the sides of a [current landmark]."; otherwise: now the terrain-prop sentence is "[Current terrain] spreads over the ground and up the sides of [a current landmark] half-embedded in the earth."; otherwise if the current landmark is the headless statue: now the terrain-prop sentence is "[Current terrain] grows over the feet of the [current landmark] standing here."; otherwise if the current landmark is the patch of dead weeds: now the terrain-prop sentence is "Blankets of [current terrain] cover the ground and encircle the base of [a current landmark]."; otherwise if the current landmark is the ring of boulders: now the terrain-prop sentence is "[Current terrain] grows along the upper surfaces of several boulders set in a ring."; otherwise if the current landmark is the rune-carved boulder: now the terrain-prop sentence is "[Current terrain] covers across the ground, but it avoids growing on the surface of [the current landmark] nearby."; otherwise if the current terrain is fallen leaves: if the current landmark is the barren field: now the terrain-prop sentence is "[Current terrain] have collected along the dead ridges of [a current landmark] here."; otherwise if the current landmark is the broken pillar: now the terrain-prop sentence is "[Current terrain] cover the ground and mound up against the base of [a current landmark] here."; otherwise if the current landmark is the empty stream bed: now the terrain-prop sentence is "[Current terrain] litter the ground nearby and collect at the bottom of [a current landmark]."; otherwise if the current landmark is the fallen stone bench: now the terrain-prop sentence is "[Current terrain] shroud the form of [a current landmark] nearby."; otherwise if the current landmark is the headless statue: now the terrain-prop sentence is "[A current landmark] stands ankle-deep in a drift of [current terrain]."; otherwise if the current landmark is the patch of dead weeds: now the terrain-prop sentence is "[A current landmark] juts from the [current terrain] blanketing the ground."; otherwise if the current landmark is the rune-carved boulder: now the terrain-prop sentence is "[Current terrain] collect in piles at the base of [a current landmark]."; otherwise if the current terrain is sand: if the current landmark is the barren field: now the terrain-prop sentence is "Like a monument to foolishness, the [current terrain] underfoot runs up to the edge of [a barren field], where the rows stand dismally and eternally bare."; otherwise if the current landmark is the broken pillar: now the terrain-prop sentence is "[A current landmark] projects from a flat landscape of [current terrain]."; otherwise if the current landmark is the empty stream bed: now the terrain-prop sentence is "[Current terrain] borders the banks of [a current landmark]."; otherwise if the current landmark is the fallen stone bench: if a random chance of 1 in 2 succeeds: now the terrain-prop sentence is "[Current landmark] lies half-buried in the expanse of [current terrain]."; otherwise: now the terrain-prop sentence is "[Current terrain], shifted by some past breeze, has mounded against the side of [a current landmark]."; otherwise if the current landmark is the patch of dead weeds: now the terrain-prop sentence is "[A current landmark] clings sadly to the sweep of [current terrain] underfoot."; otherwise if the current landmark is the rune-carved boulder: now the terrain-prop sentence is "[A current landmark] sits at the center of a landscape of [current terrain]."; otherwise if the current landmark is the stairway to nowhere: now the terrain-prop sentence is "Windblown [current terrain] mounds shallowly against the base of a short stair. The stair rises to shoulder height before terminating to nowhere."; otherwise if the current terrain is mud: if the current landmark is the barren field: now the terrain-prop sentence is "[Current terrain] covers a broad square of ridged earth, but no seedlings poke up along the barren field's rows."; otherwise if the current landmark is the broken pillar: now the terrain-prop sentence is "[A current landmark] projects from a sea of [current terrain]."; otherwise if the current landmark is the empty stream bed: now the terrain-prop sentence is "[Current terrain] encrusts the bottom of [a current landmark] nearby."; otherwise if the current landmark is the fallen stone bench: now the terrain-prop sentence is "[A current landmark] lies in a sea of [current terrain]."; otherwise if the current landmark is the headless statue: now the terrain-prop sentence is "[A current landmark] stands ankle-deep in the [current terrain] here, posing boldly, but seeing nothing of [one of]his[or]her[at random] surroundings."; otherwise if the current landmark is the patch of dead weeds: now the terrain-prop sentence is "A doleful [current landmark] droops in a broad swathe of churned mud."; otherwise if the current landmark is the ring of boulders: now the terrain-prop sentence is "[A current landmark] juts from a homely vista of [current terrain]."; otherwise if the current landmark is the rune-carved boulder: now the terrain-prop sentence is "[A current landmark] is half-buried in the [current terrain] here."; otherwise if the current landmark is the vacant grave: now the terrain-prop sentence is "The darkness of [a current landmark] gapes from a sea of [current terrain]."; otherwise if the current terrain is pebbles: if the current landmark is the barren field: now the terrain-prop sentence is "The [current terrain] underfoot have been cleared away here to expose earth, and the earth has been cut into the long ridges of a farmer's field, but the field remains completely bare of life."; otherwise if the current landmark is the broken pillar: now the terrain-prop sentence is "A sea of [current terrain] covers the ground, with one [current landmark] rising like a shipwreck's mast on that sea."; otherwise if the current landmark is the empty stream bed: now the terrain-prop sentence is "[Current terrain] cover the ground and line the bottom of [a current landmark] not far away."; otherwise if the current landmark is the fallen stone bench: now the terrain-prop sentence is "[Current terrain] surround a [current landmark]."; otherwise if the current landmark is the headless statue: now the terrain-prop sentence is "[Current terrain] cover the ground around the base of a [current landmark] standing nearby."; otherwise if the current landmark is the patch of dead weeds: now the terrain-prop sentence is "A sole [current landmark] projects from among the [current terrain] covering the ground."; otherwise if the current landmark is the rune-carved boulder: now the terrain-prop sentence is "Runes have been carved into the surface of [a current landmark] resting among the scattered [current terrain] covering the ground."; otherwise if the current terrain is bare rock: if the current landmark is the barren field: now the terrain-prop sentence is "The [current terrain] underfoot is interrupted by a broad square of dirt, which has been layered over the rock to form a seeming field. The field's ridges are barren of life."; otherwise if the current landmark is the broken pillar: now the terrain-prop sentence is "[A current landmark] rises from the [current terrain] with no sign of how they join. The [terrain-type of the current terrain] simply flows upward into the shape of the pillar."; otherwise if the current landmark is the empty stream bed: now the terrain-prop sentence is "[A current landmark] cuts through the bare rock."; otherwise if the current landmark is the fallen stone bench: now the terrain-prop sentence is "[Current terrain] lies on the [current landmark]. The stone of the bench differs from the stone upon which it lies."; otherwise if the current landmark is the patch of dead weeds: now the terrain-prop sentence is "A single [current landmark] nearby found enough dirt secreted among the [current terrain] to grow, but not enough nourishment to survive."; otherwise if the current landmark is the ring of boulders: now the terrain-prop sentence is "A [current landmark] rises from the [current terrain]. The boulders are made of a different rock than that underfoot."; otherwise if the current landmark is the rune-carved boulder: now the terrain-prop sentence is "[A current landmark], crafted from the same stone as the [current terrain] exposed here, sits nearby."; otherwise if the current landmark is the stairway to nowhere: now the terrain-prop sentence is "A stairway rises seamlessly from the [current terrain], but it cuts off after only a few steps."; otherwise if the current terrain is bare earth: if the current landmark is the barren field: now the terrain-prop sentence is "The natural slopes and flatnesses of the [current terrain] are interrupted by the even ridges of a [current landmark]."; otherwise if the current landmark is the broken pillar: now the terrain-prop sentence is "[A current landmark] projects from the [current terrain]."; otherwise if the current landmark is the empty stream bed: now the terrain-prop sentence is "[A current landmark] curves through the bare earth here."; otherwise if the current landmark is the fallen stone bench: now the terrain-prop sentence is "[Current landmark] lies upon the [current terrain]."; otherwise if the current landmark is the patch of dead weeds: now the terrain-prop sentence is "A lone [current landmark] pokes from the [current terrain] exposed here."; otherwise if the current landmark is the rune-carved boulder: now the terrain-prop sentence is "[A current landmark] protrudes from the [current terrain]."; otherwise if the current landmark is the vacant grave: now the terrain-prop sentence is "The desolate shape of [a current landmark] gapes open in [the current terrain]."; otherwise if the current terrain is slush: if the current landmark is the barren field: now the terrain-prop sentence is "[Current terrain] fills the furrows of the [current landmark] here."; otherwise if the current landmark is the broken pillar: now the terrain-prop sentence is "[A current landmark] projects from a marsh of [current terrain]."; otherwise if the current landmark is the empty stream bed: now the terrain-prop sentence is "[Current terrain] covers the ground and melts at the bottom of a nearby [current landmark]."; otherwise if the current landmark is the fallen stone bench: now the terrain-prop sentence is "[A current landmark] lies half-buried in the [current terrain]."; otherwise if the current landmark is the headless statue: now the terrain-prop sentence is "Ignorant of the cold, [a current landmark] stands ankle-deep in [the current terrain]."; otherwise if the current landmark is the patch of dead weeds: now the terrain-prop sentence is "[A current landmark] lies half-frozen in a pool of [current terrain]."; otherwise if the current landmark is the rune-carved boulder: now the terrain-prop sentence is "[A current landmark] protrudes from the [current terrain]."; otherwise if the current terrain is snow: if the current landmark is the barren field: now the terrain-prop sentence is "[Current terrain] fills the furrows of the [current landmark] here."; otherwise if the current landmark is the broken pillar: now the terrain-prop sentence is "[A current landmark] nearby stands out starkly against the [current terrain] covering the ground."; otherwise if the current landmark is the empty stream bed: now the terrain-prop sentence is "[Current terrain] conceals the bottom of [current landmark]."; otherwise if the current landmark is the fallen stone bench: now the terrain-prop sentence is "[Current terrain] lies in broad drifts around [current landmark]."; otherwise if the current landmark is the headless statue: now the terrain-prop sentence is "[Current terrain] obscures the feet of a [current landmark] standing here."; otherwise if the current landmark is the patch of dead weeds: if a random chance of 1 in 2 succeeds: now the terrain-prop sentence is "[Current terrain] clings in unlikely mounds to [current landmark]."; otherwise: now the terrain-prop sentence is "[Current terrain] collects in clusters amid the seed pods of a [current landmark]."; otherwise if the current landmark is the ring of boulders: now the terrain-prop sentence is "[Current terrain] caps [a current landmark] nearby and spreads over the ground."; otherwise if the current landmark is the rune-carved boulder: now the terrain-prop sentence is "[Current terrain] has collected upon the ground and the surface of [a current landmark] nearby."; otherwise if the current terrain is ice: if the current landmark is the barren field: now the terrain-prop sentence is "[Current terrain] fills the furrows of the [current landmark] here."; otherwise if the current landmark is the broken pillar: now the terrain-prop sentence is "A layer of [current terrain] covers both the ground and the [current landmark] rising from it."; otherwise if the current landmark is the empty stream bed: now the terrain-prop sentence is "A fine glaze of [current terrain] conceals the bottom of [current landmark]."; otherwise if the current landmark is the fallen stone bench: now the terrain-prop sentence is "[A current landmark] has frozen into the [current terrain] covering the ground."; otherwise if the current landmark is the headless statue: now the terrain-prop sentence is "A thin layer of [current terrain] encases a [current landmark] standing here."; otherwise if the current landmark is the patch of dead weeds: if a random chance of 1 in 2 succeeds: now the terrain-prop sentence is "[A current landmark] is coated in a brittle layer of [current terrain], just like everything else in view."; otherwise: now the terrain-prop sentence is "[Current terrain] covers the ground and rattles in clumps amid a [current landmark]."; if the current landmark is the rune-carved boulder: now the terrain-prop sentence is "A layer of [current terrain] encrusts both the ground and the [current landmark] rising from it.". Part 11 - Terrain-Barrier Sentences To write a terrain-barrier sentence: DM "I'm writing a terrain-barrier sentence for [current room] right now. "; now the current terrain is a random terrain in the current room; now the terrain-barrier sentence is "(This is a terrain-barrier sentence for an unknown case involving [current terrain] and [the list of barriers in the current room].)"; if the number of barriers in the current room is 1: now the current barrier is a random barrier in the current room; if the barrier-type of the current barrier is ocean: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the terrain-barrier sentence is "[current terrain] spreads [permitted directions list of the current room] away from [the current barrier]."; otherwise: now the terrain-barrier sentence is "[current terrain] leads up to the edge of [the current barrier] stretching away to the [prevented directions list of the current room]."; otherwise if the barrier-type of the current barrier is brambles: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: if the number of entries in the permitted directions list of the current room is 1: now the terrain-barrier sentence is "A path wends [permitted directions list of the current room] through a wall of [current barrier]."; otherwise: now the terrain-barrier sentence is "Paths lead [permitted directions list of the current room] through a wall of [current barrier]."; otherwise: now the terrain-barrier sentence is "[Current terrain] leads up to a wall of [current barrier]. The [barrier-type of the current barrier] block the way [prevented directions list of the current room]."; otherwise if the barrier-type of the current barrier is cliff face: now the terrain-barrier sentence is "[current terrain] leads up to the bottom of [current barrier]. The [barrier-type of the current barrier] blocks the way [prevented directions list of the current room]."; otherwise if the barrier-type of the current barrier is pillar: now the terrain-barrier sentence is "Scattered [current terrain] adorns the base of [a current barrier] blocking the way [prevented directions list of the current room]."; otherwise: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the terrain-barrier sentence is "[current terrain] spreads [permitted directions list of the current room] away from [the current barrier]."; otherwise: now the terrain-barrier sentence is "[current terrain] leads up to the edge of [the current barrier] stretching away to the [prevented directions list of the current room]."; otherwise: now the terrain-barrier sentence is "A vista of [current terrain] stretches [permitted directions list of the current room] past [a list of barriers in the current room].". Part 12 - Shrine-Barrier Sentences To write a shrine-barrier sentence: now the shrine-barrier sentence is "(This is a shrine-barrier sentence for an unknown case involving [current landmark] and [a list of barriers in the current room].)"; now the current barrier is a random barrier in the current room; [ now the current landmark is scenery;] if the number of barriers in the current room is 1: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: if the current barrier is ocean: if the number of entries in the permitted directions list of the current room is 1: now the shrine-barrier sentence is "A path from the [permitted directions list of the current room] lead up to [a current landmark], which overlooks [the current barrier] from a slight rise."; otherwise: now the shrine-barrier sentence is "Paths from the [permitted directions list of the current room] lead up to [a current landmark], which overlooks [the current barrier] from a slight rise."; otherwise if the current barrier is lake: if the number of entries in the permitted directions list of the current room is 1: now the shrine-barrier sentence is "A narrow spit of land from [permitted directions list of the current room] leads up to the [current landmark]. In all other directions, the waters of [a current barrier] spread out, dark and uninviting."; otherwise: now the shrine-barrier sentence is "Paths from the [permitted directions list of the current room] lead up to [a current landmark] on the shore of [a current barrier]."; otherwise if the current barrier is wall: now the shrine-barrier sentence is "[A current landmark] stands here, guarded by a [current barrier] that blocks you from going anywhere but [permitted directions list of the current room]."; otherwise if the current barrier is brambles: now the shrine-barrier sentence is "[A current landmark] nestles here, bracketed by [a current barrier]. From here, you can proceed [permitted directions list of the current room]."; otherwise if the current barrier is cliff face: now the shrine-barrier sentence is "[A current barrier] towers over [the current landmark] at its base. The steep cliff wall blocks you from going anywhere but [permitted directions list of the current room]."; otherwise if the current barrier is a pillar: now the shrine-barrier sentence is "A single [current barrier], all that remains of some former, long-fallen structure, stands near [a current landmark]. The [barrier-type of the current barrier] blocks the way [permitted directions list of the current room]."; otherwise: if the current barrier is ocean: now the shrine-barrier sentence is "Here, [the current barrier] blocks the way [prevented directions list of the current room]. [A current landmark] overlooks the [barrier-type of the current barrier] from a slight rise."; otherwise if the current barrier is wall: now the shrine-barrier sentence is "[A current landmark] stands here, guarded by the [current barrier] that blocks the way [prevented directions list of the current room]."; otherwise if the current barrier is brambles: now the shrine-barrier sentence is "[A current landmark] stands here, guarded by [a current barrier] that blocks the way [prevented directions list of the current room]."; otherwise: now the shrine-barrier sentence is "[A current landmark] stands near [a current barrier], which blocks the way [prevented directions list of the current room]."; otherwise if the number of barriers in the current room is 2: repeat with target barrier running through the barriers in the current room: if the target barrier is not the current barrier: now the alternate barrier is the target barrier; if the current barrier is ocean and the alternate barrier is ocean: now the shrine-barrier sentence is "The ocean stretches out, [adjective of the current barrier] and [adjective of the alternate barrier], in all directions except [the permitted directions list of the current room], dwarfing [the current landmark] nearby."; otherwise if the current barrier is brambles and the alternate barrier is brambles: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the shrine-barrier sentence is "Walls of [adjective of the current barrier], [adjective of the alternate barrier] brambles encircle [a current landmark] here, parting only to the [permitted directions list of the current room]."; otherwise: now the shrine-barrier sentence is "Walls of [adjective of the current barrier], [adjective of the alternate barrier] brambles rise to the [prevented directions list of the current room] around [a current landmark]."; otherwise if the current barrier is cliff face and the alternate barrier is cliff face: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the shrine-barrier sentence is "[A current landmark] sits in the shadow of [a current barrier] to one side and [an alternate barrier] to the other. The only open directions are [permitted directions list of the current room]."; otherwise: now the shrine-barrier sentence is "To the [list of directions prevented by the current barrier], [a current barrier] rises; to the [list of directions prevented by the alternate barrier], [an alternate barrier] rises. Minute by comparison, [a current landmark] sits beneath both."; otherwise if the current barrier is pillar and the alternate barrier is pillar: now the shrine-barrier sentence is "[The current landmark] here is accented by a freestanding pillar to the [list of directions prevented by the current barrier] and a second pillar to the [list of directions prevented by the alternate barrier]."; otherwise: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: let L be a random number between 1 and 2; if L is 1: if the number of entries in the permitted directions list of the current room is 1: now the shrine-barrier sentence is "[A current landmark] nestles here, bracketed by [a list of barriers in the current room]. From here, the only open route is [permitted directions list of the current room]."; otherwise: now the shrine-barrier sentence is "[A current landmark] nestles here, bracketed by [a list of barriers in the current room]. From here, the only open paths are [permitted directions list of the current room]."; otherwise if L is 2: if the number of entries in the permitted directions list of the current room is 1: now the shrine-barrier sentence is "A path from the [permitted directions list of the current room] leads up to [a current landmark], which stands between [a list of barriers in the current room]."; otherwise: now the shrine-barrier sentence is "[A current landmark] stands between [a list of barriers in the current room]. From here, the only open paths are [permitted directions list of the current room]."; otherwise: let L be a random number between 1 and 2; if L is 1: now the shrine-barrier sentence is "[A current landmark] stands between [a current barrier], which blocks the way [list of directions prevented by the current barrier], and [a alternate barrier], which blocks the way [list of directions prevented by the alternate barrier]."; otherwise if L is 2: now the shrine-barrier sentence is "[A current barrier] stands to the [list of directions prevented by the current barrier], and [an alternate barrier] stands to the [list of directions prevented by the alternate barrier], framing [a current landmark] between the two."; otherwise if the number of barriers in the current room is 3: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: if the number of entries in the permitted directions list of the current room is 1: now the shrine-barrier sentence is "A path from the [permitted directions list of the current room] leads up to [a current landmark], which stands equidistantly between [a list of barriers in the current room]."; otherwise: now the shrine-barrier sentence is "[A current landmark] stands between [a list of barriers in the current room]. From here, the only open paths are [permitted directions list of the current room]."; otherwise: now the shrine-barrier sentence is "[A current landmark] stands between [a list of barriers in the current room], which block the way [prevented directions list of the current room]."; otherwise if the number of barriers in the current room is 4: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: if the number of entries in the permitted directions list of the current room is 1: now the shrine-barrier sentence is "[A current landmark] stands between [a list of barriers in the current room]. From here, the only open paths lead [permitted directions list of the current room]."; otherwise: now the shrine-barrier sentence is "[A current landmark] stands between [a list of barriers in the current room]. From here, the only open paths lead [permitted directions list of the current room]."; otherwise: now the shrine-barrier sentence is "[A current landmark] stands between [a list of barriers in the current room], which block the way [prevented directions list of the current room]." Part 13 - Prop-Barrier Sentences To write a prop-barrier sentence: now the prop-barrier sentence is "(This is a prop-barrier sentence for an unknown case involving [current landmark] and [the list of barriers in the current room].)"; now the current barrier is a random barrier in the current room; if the number of barriers in the current room is 1: now the current landmark is scenery; if the current barrier is brambles: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the prop-barrier sentence is "[Current barrier] form a hazardous wall around [a current landmark] at their center. From your position beside the [current landmark], you can only go [permitted directions list of the current room] without risking the thorns."; otherwise: now the prop-barrier sentence is "[Current barrier] form a hazardous wall that prevents you from going [prevented directions list of the current room]. Between you and the brambles, there is [a current landmark]."; otherwise: now the prop-barrier sentence is "Beyond the [current landmark] here, you see [a current barrier], which [if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room]blocks travel in all directions except [permitted directions list of the current room][otherwise]blocks the way [prevented directions list of the current room][end if].". Book 4 - Odor Instead of smelling: say the odor of the location. To write a Blight odor: now the odor of the current room is "The [if the current humidity is humid]humid air[otherwise if the current humidity is arid]arid air[otherwise if the weather is raining]rain[otherwise]air[end if] smells oddly flat and dead." Book 5 - Sound Instead of listening: say the sound of the location. To write a Blight sound: if an ocean barrier is in the current room: now the sound of the current room is "You hear the long, pulsing sound of the waves."; otherwise: now the sound of the current room is "It is unnaturally quiet here." Volume 5 - Building Characters Understand "man" as a person when the item described is male. Understand "woman" as a person when the item described is female. Book 1 - The PC Part 1 - Key Ratings Chapter 1 - Economics, Profession, and Hobbies Economic background is a kind of value. The economic backgrounds are poverty-stricken, struggling, middle-class, rich, and fabulously wealthy. A person has an economic background. Profession is a kind of value. The professions are accountant, air traffic controller, architect, computer scientist, engineer, fundraiser, ghostwriter, interpreter, lawyer, librarian, locksmith, manager, mechanic, nurse, pharmacist, physician, professor, priest, police officer, politician, teacher, technician, student, and unemployed. A person has a profession. Hobby is a kind of value. The hobbies are antique collecting, baking, birdwatching, car restoration, cooking, dancing, fishkeeping, gardening, hiking, hunting, ice skating, jewelry making, music, photography, scuba diving, sewing, skiing, and spelunking. A person has a hobby. Chapter 2 - Motivation and Rationale Motivation is a kind of value. The motivations are familial love, romantic love, duty, idealism, revenge, fear, ambition, curiosity, and economic incentive. [This represents why the person wants to save the world.] A person has a motivation. The list of likely motivations is a list of motivations that varies. The list of likely motivations is {duty, idealism, revenge, fear, ambition, curiosity, economic incentive}. Rationale is a kind of value. The rationales are personal desire, intelligence, dexterity, endurance, scientific skill, blessing of the gods, conviction of ideals, and random chance. [This represents why the player was chosen above others to save the world, or why the other person could have been chosen to save the world.] A person has a rationale. Chapter 3 - Sexual Orientation A person has a number called the heterosexuality rating. Chapter 4 - Age A person has a number called the age. Part 2 - Building the PC To build the PC: now the current person is the player; repeat with target person running through people: now the economic background of the target person is a random economic background; now the rationale of the target person is a random rationale; DM "The PC is from a [economic background of the player] background. The PC is motivated by [motivation of the player]. The PC is in this position due to [rationale of the player]. "; if a random chance of 1 in 2 succeeds: DM "The PC is male. "; now the player is male; otherwise: DM "The PC is female. "; now the player is female; now the heterosexuality rating of the player is a random number between 0 and 10; DM "On a scale between 0 (completely homosexual) and 10 (completely heterosexual), the PC has a rating of [heterosexuality rating of the player]. "; now the age of the player is (15 + (a random number between 1 and 10) + (a random number between 1 and 10) + (a random number between 1 and 10) + (a random number between 1 and 10)); DM "The PC is [age of the player] years old. "; determine the ethnicity; now the weighting of the ethnicity of the player is (the weighting of the ethnicity of the player + 20); name the character; DM "The PC is [ethnicity of the player]. The player's name is [given name of the player] [surname of the player]. "; now the profession of the player is a random profession; now the hobby of the player is a random hobby; DM "Professionally, [zhe] is a [profession of the player], and [zhe] engages in [hobby of the player] as a hobby. "; determine features; set the personality of the current person. Part 3 - Appearance Instead of examining the player: if the player is in the Blight or the player is in a shrine room: say "This is the body of a [if the player is male]man[otherwise]woman[end if], but it seems ill-formed and ill-fitting. This body, like this world, is a mask without a mortal wearer."; otherwise: say "Though you survey yourself, you cannot get a clear impression of your physical form. You appear how you appear, and you are who you must be. So it goes in dreams." Book 2 - For NPCs and the Player Part 1 - Relationship Relationship is a kind of value. The relationships are friend, work rival, hobby rival, mentor, apprentice, supervisor, employee, colleague, lover, fiancee, ex-lover, spouse, ex-spouse, grandparent, parent, sibling, cousin, child, and instructor. The instructor-person is a person that varies. A person can be committed or uncommitted. The player is not committed. The player-commitment is a person that varies. An NPC is a kind of person. An NPC has a relationship. Understand the given name property as describing an NPC. Understand the surname property as describing an NPC. An NPC can be unknown or known. An NPC is usually unknown. Definition: An NPC is blood-relation if (the relationship of it is grandparent) or (the relationship of it is parent) or (the relationship of it is sibling) or (the relationship of the it is cousin). An NPC has a number called the affection strength. An NPC usually has affection strength 3. [Affection is measured on a scale from 1 to 5, with 1 being extreme dislike and 5 being strong affection.] An NPC has some text called the nickname. An NPC has some text called the reverse nickname. Part 2 - Building Key NPCs Z5 is a room. 6 NPCs are in Z5. The list of potential relationships is a list of relationships that varies. To build key NPCs: add the list of relationships to the list of potential relationships; repeat with current NPC running through NPCs in Z5: now the current person is the current NPC; if instructor is listed in the list of potential relationships: now the relationship of the current NPC is instructor; now the instructor-person is the current NPC; remove instructor from the list of potential relationships; otherwise: sort the list of potential relationships in random order; now the relationship of the current NPC is entry 1 of the list of potential relationships; if the relationship of the current NPC is spouse or the relationship of the current NPC is fiancee or the relationship of the current NPC is lover: now the player is committed; now the player-commitment is the current NPC; remove {spouse, fiancee, lover} from the list of potential relationships; add romantic love to the list of likely motivations; if the relationship of the current NPC is supervisor: remove supervisor from the list of potential relationships; if the relationship of the current NPC is mentor: remove mentor from the list of potential relationships; while (the profession of the player is unemployed or the profession of the player is student) and (the relationship of the current NPC is employee or the relationship of the current NPC is colleague or the relationship of the current NPC is supervisor): now the relationship of the current NPC is a random relationship; now the affection strength of the current NPC is a random number between 1 and 5; if the current NPC is blood-relation: now the affection strength of the current NPC is (the affection strength of the current NPC + a random number between 0 and 3); add familial love to the list of likely motivations; otherwise if the current NPC is friend: now the affection strength of the current NPC is (the affection strength of the current NPC + a random number between 1 and 3); otherwise if the relationship of the current NPC is lover or the current NPC is fiancee or the relationship of the current NPC is spouse: now the affection strength of the current NPC is (the affection strength of the current NPC + a random number between 1 and 3); otherwise if the relationship of the current NPC is hobby rival or the relationship of the current NPC is work rival or the relationship of the current NPC is ex-lover or the relationship of the current NPC is ex-spouse: now the affection strength of the current NPC is (the affection strength of the current NPC - a random number between 0 and 2); if the affection strength of the current NPC > 5: now the affection strength of the current NPC is 5; if the affection strength of the current NPC < 1: now the affection strength of the current NPC is 1; if the current NPC is blood-relation: if the relationship of the current NPC is sibling: now the economic background of the current NPC is the economic background of the player; otherwise if a random chance of 1 in 2 succeeds: now the economic background of the current NPC is the economic background of the player; if (the relationship of the current NPC is lover) or (the relationship of the current NPC is ex-lover) or (the relationship of the current NPC is fiancee) or (the relationship of the current NPC is spouse) or (the relationship of the current NPC is ex-spouse): if a random chance of the heterosexuality rating of the player in 10 succeeds: if the player is male: now the current NPC is female; otherwise: now the current NPC is male; otherwise: if the player is female: now the current NPC is female; otherwise: now the current NPC is male; otherwise: if a random chance of 1 in 2 succeeds: now the current NPC is male; otherwise: now the current NPC is female; let the age minimum be 16; let the age maximum be 55; if the relationship of the current NPC is child: let the age minimum be 1; let the age maximum be (the age of the player - 15); otherwise if the relationship of the current NPC is parent: let the age minimum be (15 + the age of the player); let the age maximum be (40 + the age of the player); otherwise if the relationship of the current NPC is grandparent: let the age minimum be (40 + the age of the player); let the age maximum be (55 + the age of the player); otherwise if (the relationship of the current NPC is lover) or (the relationship of the current NPC is ex-lover) or (the relationship of the current NPC is fiancee) or (the relationship of the current NPC is spouse) or (the relationship of the current NPC is ex-spouse): let the age minimum be (the age of the player / 2) + 7; let the age maximum be (the age of the player * 2) + 7; if the age maximum > 60: now the age maximum is 60; now the age of the current NPC is ((a random number between the age minimum and the age maximum) + (a random number between the age minimum and the age maximum)) / 2; determine the ethnicity; name the character; DM "-- Assigning a [relationship of the current NPC] named [given name of the current NPC] [surname of the current NPC] to the PC. [Zhe] is [ethnicity of the current NPC], [if the current NPC is male]male[otherwise]female[end if], and [age of the current NPC] years old. [Zhe] is from a [economic background of the current NPC] background, motivated by [motivation of the current NPC], and got involved with this situation due to [rationale of the current NPC]. "; if the age of the current NPC is less than 20 and a random chance of 1 in 2 succeeds: now the profession of the current NPC is student; otherwise if the relationship of the current NPC is supervisor or the relationship of the current NPC is employee or the relationship of the current NPC is colleague: now the profession of the current NPC is the profession of the player; otherwise if the relationship of the current NPC is work rival: now the profession of the current NPC is the profession of the player; otherwise: now the profession of the current NPC is a random profession; if the relationship of the current NPC is apprentice: now the hobby of the current NPC is the hobby of the player; otherwise if the relationship of the current NPC is hobby rival: now the hobby of the current NPC is the hobby of the player; DM "[Zhe] is a [profession of the current NPC] who engages in [hobby of the current NPC] as a hobby. "; determine nicknames; determine features; set the personality of the current person; sort the list of likely motivations in random order; [This couldn't be done when setting up the PC before because romantic love is only available when the PC is committed and familial love is only available when the PC has a family.] now the motivation of the player is entry 1 in the list of likely motivations. Part 3 - Ethnicity and Names Ethnicity is a kind of value. The ethnicities are non-Hispanic white, non-Hispanic black, Hispanic, Asian-Pacific Islander, native American, and indeterminate. A person has an ethnicity. The ethnicity of a person is usually indeterminate. An ethnicity has a number called the weighting. The weighting of non-Hispanic white is usually 71. The weighting of non-Hispanic black is usually 13. The weighting of Hispanic is usually 11. The weighting of Asian-Pacific Islander is usually 4. The weighting of native American is usually 1. To determine the ethnicity: if the current person is not the player and the current person is an NPC: if the relationship of the current person is child: now the ethnicity of the current person is the ethnicity of the player; otherwise if the current person is blood-relation: now (the weighting of the ethnicity of the player) is (the weighting of the ethnicity of the player + 50); while the ethnicity of the current person is indeterminate: repeat with temporary ethnicity running through the ethnicities: if a random chance of (the weighting of the temporary ethnicity) in 100 succeeds: now the ethnicity of the current person is the temporary ethnicity; if the current person is not the player and the current person is an NPC: if the current person is blood-relation: now (the weighting of the ethnicity of the player) is (the weighting of the ethnicity of the player - 50). Name is a kind of value. To name the character: if the current person is blood-relation and a random chance of 3 in 4 succeeds: now the surname of the current person is the surname of the player; otherwise: sort the common surname list of the ethnicity of the current person in random order; now the surname of the current person is entry 1 in the common surname list of the ethnicity of the current person; let the current age group be age-0-9; if the (age of the current person > 9) and (the age of the current person < 20): now the current age group is age-10-19; otherwise if the age of the current person > 19 and the age of the current person < 30: now the current age group is age-20-29; otherwise if the age of the current person > 29 and the age of the current person < 40: now the current age group is age-30-39; otherwise if the age of the current person > 39 and the age of the current person < 50: now the current age group is age-40-49; otherwise if the age of the current person > 49 and the age of the current person < 60: now the current age group is age-50-59; otherwise if the age of the current person > 59 and the age of the current person < 70: now the current age group is age-60-69; otherwise if the age of the current person > 69 and the age of the current person < 80: now the current age group is age-70-79; otherwise if the age of the current person > 79 and the age of the current person < 90: now the current age group is age-80-89; otherwise if the age of the current person > 89 and the age of the current person < 100: now the current age group is age-90-99; otherwise if the age of the current person > 99 and the age of the current person < 110: now the current age group is age-100-109; otherwise if the age of the current person > 109 and the age of the current person < 121: now the current age group is age-110-120; if the current person is male: sort the male given name list of the current age group in random order; now the given name of the current person is entry 1 of the male given name list of the current age group; remove entry 1 from the male given name list of the current age group; otherwise: sort the female given name list of the current age group in random order; now the given name of the current person is entry 1 of the female given name list of the current age group; remove entry 1 from the female given name list of the current age group. To determine nicknames: if the relationship of the current person is work rival or the relationship of the current person is hobby rival or the relationship of the current person is mentor or the relationship of the current person is apprentice or the relationship of the current person is colleague or the relationship of the current person is instructor: if a random chance of 1 in 2 succeeds: if the current person is female: now the nickname of the current person is "Ms. [surname of the current person]"; otherwise: now the nickname of the current person is "Mr. [surname of the current person]"; otherwise: now the nickname of the current person is "[given name of the current person]"; if a random chance of 1 in 2 succeeds: if the player is female: now the reverse nickname of the current person is "Ms. [surname of the player]"; otherwise: now the reverse nickname of the current person is "Mr. [surname of the player]"; otherwise: now the reverse nickname of the current person is "[given name of the player]"; otherwise if the relationship of the current person is friend: if a random chance of 5 in 6 succeeds: if the current person is female: now the nickname of the current person is "Ms. [surname of the current person]"; otherwise: now the nickname of the current person is "Mr. [surname of the current person]"; otherwise: now the nickname of the current person is "[given name of the current person]"; if a random chance of 5 in 6 succeeds: if the player is female: now the reverse nickname of the current person is "Ms. [surname of the player]"; otherwise: now the reverse nickname of the current person is "Mr. [surname of the player]"; otherwise: now the reverse nickname of the current person is "[given name of the player]"; otherwise if the relationship of the current person is supervisor: let M be a random number between 1 and 3; if M is 1: if the current person is female: now the nickname of the current person is "Ms. [surname of the current person]"; otherwise: now the nickname of the current person is "Mr. [surname of the current person]"; otherwise if M is 2: now the nickname of the current person is "[given name of the current person]"; otherwise if M is 3: now the nickname of the current person is "Boss"; if a random chance of 1 in 2 succeeds: if the player is female: now the reverse nickname of the current person is "Ms. [surname of the player]"; otherwise: now the reverse nickname of the current person is "Mr. [surname of the player]"; otherwise: now the reverse nickname of the current person is "[given name of the player]"; otherwise if the relationship of the current person is employee: if a random chance of 1 in 2 succeeds: if the current person is female: now the nickname of the current person is "Ms. [surname of the current person]"; otherwise: now the nickname of the current person is "Mr. [surname of the current person]"; otherwise: now the nickname of the current person is "[given name of the current person]"; let M be a random number between 1 and 3; if M is 1: if the player is female: now the reverse nickname of the current person is "Ms. [surname of the player]"; otherwise: now the reverse nickname of the current person is "Mr. [surname of the player]"; otherwise if M is 2: now the reverse nickname of the current person is "[given name of the player]"; otherwise if M is 3: now the reverse nickname of the current person is "Boss"; otherwise if the relationship of the current person is lover or the relationship of the current person is fiancee or the relationship of the current person is spouse: let M be a random number between 1 and 10; if M is 1: now the nickname of the current person is "honey"; otherwise if M is 2: now the nickname of the current person is "sweetheart"; otherwise if M is 3: now the nickname of the current person is "darling"; otherwise if M is 4: now the nickname of the current person is "beloved"; otherwise if M is 5: now the nickname of the current person is "babe"; otherwise: now the nickname of the current person is "[given name of the current person]"; let M be a random number between 1 and 10; if M is 1: now the reverse nickname of the current person is "honey"; otherwise if M is 2: now the reverse nickname of the current person is "sweetheart"; otherwise if M is 3: now the reverse nickname of the current person is "darling"; otherwise if M is 4: now the reverse nickname of the current person is "beloved"; otherwise if M is 5: now the reverse nickname of the current person is "babe"; otherwise: now the reverse nickname of the current person is "[given name of the player]"; otherwise if the relationship of the current person is grandparent: let M be a random number between 1 and 4; if M is 1: if the current person is female: now the nickname of the current person is "Grandmother"; otherwise: now the nickname of the current person is "Grandfather"; otherwise if M is 2: if the current person is female: now the nickname of the current person is "Grandma"; otherwise: now the nickname of the current person is "Grandpa"; otherwise if M is 3: if the current person is female: now the nickname of the current person is "Grandmama"; otherwise: now the nickname of the current person is "Grandpapa"; otherwise if M is 4: if the current person is female: now the nickname of the current person is "Gramma"; otherwise: now the nickname of the current person is "Granda"; let M be a random number between 1 and 10; if M is 1: if the player is female: now the reverse nickname of the current person is "sunny girl"; otherwise: now the reverse nickname of the current person is "sunny boy"; otherwise if M is 2: now the reverse nickname of the current person is "sweetie"; otherwise if M is 3: now the reverse nickname of the current person is "pumpkin"; otherwise if M is 4: now the reverse nickname of the current person is "doodlebug"; otherwise if M is 5: now the reverse nickname of the current person is "kiddo"; otherwise: now the reverse nickname of the current person is "[given name of the player]"; otherwise if the relationship of the current person is parent: let M be a random number between 1 and 4; if M is 1: if the current person is female: now the nickname of the current person is "Mother"; otherwise: now the nickname of the current person is "Father"; otherwise if M is 2: if the current person is female: now the nickname of the current person is "Mom"; otherwise: now the nickname of the current person is "Dad"; otherwise if M is 3: if the current person is female: now the nickname of the current person is "Mama"; otherwise: now the nickname of the current person is "Papa"; otherwise if M is 4: if the current person is female: now the nickname of the current person is "Momma"; otherwise: now the nickname of the current person is "Daddy"; let M be a random number between 1 and 10; if M is 1: now the reverse nickname of the current person is "honey"; otherwise if M is 2: now the reverse nickname of the current person is "angel"; otherwise if M is 3: now the reverse nickname of the current person is "pumpkin"; otherwise if M is 4: now the reverse nickname of the current person is "kitten"; otherwise if M is 5: now the reverse nickname of the current person is "goose"; otherwise: now the reverse nickname of the current person is "[given name of the player]"; otherwise if the relationship of the current person is sibling: if a random chance of 1 in 5 succeeds: if the current person is female: now the nickname of the current person is "sis"; otherwise: now the nickname of the current person is "bro"; otherwise: now the nickname of the current person is "[given name of the current person]"; if a random chance of 1 in 5 succeeds: if the player is female: now the reverse nickname of the current person is "sis"; otherwise: now the reverse nickname of the current person is "bro"; otherwise: now the reverse nickname of the current person is "[given name of the player]"; otherwise if the relationship of the current person is child: let M be a random number between 1 and 10; if M is 1: now the nickname of the current person is "kid"; otherwise if M is 2: now the nickname of the current person is "good luck charm"; otherwise if M is 3: now the nickname of the current person is "tomato"; otherwise if M is 4: now the nickname of the current person is "sunshine"; otherwise if M is 5: now the nickname of the current person is "dear"; otherwise: now the nickname of the current person is "[given name of the current person]"; let M be a random number between 1 and 4; if M is 1: if the player is female: now the reverse nickname of the current person is "Mother"; otherwise: now the reverse nickname of the current person is "Father"; otherwise if M is 2: if the player is female: now the reverse nickname of the current person is "Mom"; otherwise: now the reverse nickname of the current person is "Dad"; otherwise if M is 3: if the player is female: now the reverse nickname of the current person is "Mama"; otherwise: now the reverse nickname of the current person is "Papa"; otherwise if M is 4: if the player is female: now the reverse nickname of the current person is "Momma"; otherwise: now the reverse nickname of the current person is "Daddy"; otherwise: now the nickname of the current person is "[given name of the current person]"; now the reverse nickname of the current person is "[given name of the player]"; DM "The PC refers to this character as [nickname of the current person]. The character refers to the PC as [reverse nickname of the current person].[line break]" Part 4 - The Skin Deep Stuff Chapter 1 - Placement of Skin Deep Stuff A person has a number called the physical numeric. A person has an adjective called physical impression. The possible physical impressions list is a list of adjectives that varies. A person has a number called the style numeric. A person has an adjective called style impression. The possible style impressions list is a list of adjectives that varies. A person has an adjective called color preference. [The color list is stashed back with the adjectives for safekeeping.] A person has a number called the actual height. A person has an adjective called height. A person has an adjective called hair length. The possible hair lengths list is a list of adjectives that varies. A person has some text called the hairstyle. The possible hairstyles list is a list of texts that varies. A person has an adjective called skin tone. The possible skin tones list is a list of adjectives that varies. A person has an adjective called hair color. The possible hair colors list is a list of adjectives that varies. A person has an adjective called hair texture. The possible hair textures list is a list of adjectives that varies. A person has an adjective called eye color. The possible eye colors list is a list of adjectives that varies. A person has an adjective called build. The possible builds list is a list of adjectives that varies. A person has some text called facial hair. A person usually has facial hair "". The possible facial hair list is a list of texts that varies. A person has an adjective called voice type. The possible voice types list is a list of adjectives that varies. To determine features: now the physical numeric of the current person is (a random number between 0 and 1) + (a random number between 1 and 2); [Determine physical numeric/impression] if the physical numeric of the current person is 1: now the possible physical impressions list is {unlovely, unattractive, homely, plain}; otherwise if the physical numeric of the current person is 2: now the possible physical impressions list is {attractive, ordinary}; otherwise if the physical numeric of the current person is 3: now the possible physical impressions list is {gorgeous, stunning, appealing, breathtaking}; if the current person is male: add {dapper, handsome} to the possible physical impressions list; otherwise: add {beautiful, comely, lovely} to the possible physical impressions list; sort the possible physical impressions list in random order; now the physical impression of the current person is entry 1 of the possible physical impressions list; now the possible builds list is {delicate, slender, angular, thin, lean, wiry, athletic, svelte, lithe, stocky, hefty, stout, rotund, plump, chubby}; [Determine build] if the current person is male: add {burly, brawny} to the possible builds list; if the physical numeric of the current person is 1: add {emaciated, gaunt, huge, overweight, obese, fat, portly, bulky} to the possible builds list; if the current person is male: add {scrawny, pot-bellied} to the possible builds list; otherwise if the physical numeric of the current person is 3: if the current person is female: add {lissome, shapely, curvaceous, willowy} to the possible builds list; if the height of the current person is tall or the height of the current person is very tall: add {lanky, statuesque} to the possible builds list; sort the possible builds list in random order; now the build of the current person is entry 1 of the possible builds list; now the style numeric of the current person is (a random number between 0 and 2) + (a random number between 1 and 3); [Determine style numeric/impression] if the style numeric of the current person is 1: now the possible style impressions list is {poorly, haphazardly, inexpertly, shabbily, sloppily, tastelessly}; otherwise if the style numeric of the current person is 2: now the possible style impressions list is {unstylishly, comfortably, nondescriptly, modestly, plainly, inexpensively, immaturely}; otherwise if the style numeric of the current person is 3: now the possible style impressions list is {unexceptionally, conventionally, prosaically, ordinarily, appropriately, acceptably, maturely}; otherwise if the style numeric of the current person is 4: now the possible style impressions list is {stylishly, respectably, decently, fairly well, presentably, pleasantly enough, well enough, attractively, trendily}; otherwise if the style numeric of the current person is 5: now the possible style impressions list is {elegantly, magnificently, stunningly, enticingly, splendidly, superbly, tastefully, sublimely, stylishly, expensively}; sort the possible style impressions list in random order; now the style impression of the current person is entry 1 of the possible style impressions list; sort the color list in random order; [Determine color preference] now the color preference of the current person is entry 1 of the color list; let the minimum height be 66; [Initial height range reflects non-Hispanic white male] let the maximum height be 75; if the ethnicity of the current person is non-Hispanic white: [Non-Hispanic white] now the possible skin tones list is {pale, translucently pale, fair, freckled, rosy, peach, tanned, tan, dark tan}; [Skin tones] if the physical numeric of the current person is 1: add {pallid, yellowish, ruddy, sallow} to the possible skin tones list; otherwise if the physical numeric of the current person > 3: add {alabaster, ivory, milky white, golden, bronze, amber} to the possible skin tones list; if the current person is female: [Height] now the minimum height is 60; now the maximum height is 69; now the possible hair textures list is {fine, straight, wavy, curly, braided}; [Hair textures] if the physical numeric of the current person is 1: add {limp, frizzy, greasy, lank, dull} to the possible hair textures list; otherwise if the physical numeric of the current person > 3: add {glossy, shining, flowing} to the possible hair textures list; if a random chance of 1 in 10 succeeds: [Hair colors] now the possible hair colors list is {red, light red, strawberry blond, honey blond, ginger, chestnut red, russet red, deep red, dark chestnut, light chestnut, copper, coppery red, henna red, auburn, vivid auburn, auburn brown}; otherwise if a random chance of 1 in 2 succeeds: now the possible hair colors list is {brown, ash brown, pale brown, light brown, dark brown, mahogany brown, walnut brown, mouse brown}; otherwise: now the possible hair colors list is {blond, dark blond, light blond, flaxen, platinum blond, sandy blond, ash blond, pale yellow, light yellow, saffron yellow}; if the physical numeric of the current person is 1: add {dirty blond, dishwater blond} to the possible hair colors list; otherwise if the physical numeric of the current person > 3: add {golden blond, golden, dark golden, light golden, light amber, amber, dark amber} to the possible hair colors list; if the age of the current person > 55: [Age-based variations] now the possible hair colors list is {light gray, dark gray, steel gray, silver gray, light silver, white, snow white}; if the current person is male: add {thinning, bald} to the possible hair textures list; otherwise if the age of the current person > 35: add {light gray, dark gray, steel gray, silver gray, light silver, white, snow white} to the possible hair colors list; if the current person is male: add {thinning, bald} to the possible hair textures list; let L be a random number between 1 and 100; [Eye color] if L is 1: [violet] now the possible eye colors list is {violet, pale purple, pale violet}; if the physical numeric of the current person > 3: add {dark violet, periwinkle blue, hyacinth blue, amethyst} to the possible eye colors list; otherwise if L < 5: [green] now the possible eye colors list is {green, olive, green-blue, green-gray}; if the physical numeric of the current person > 3: add {crystal green, forest green, leaf green, malachite green, sea green, celadon green, emerald green, peridot green} to the possible eye colors list; otherwise if L < 10: [gray] now the possible eye colors list is {gray, light gray, dark gray, slate gray, storm gray, fog gray}; if the physical numeric of the current person > 3: add {silver gray, smoke gray, cloud gray, pearl gray, mist gray} to the possible eye colors list; otherwise if L < 15: [amber] now the possible eye colors list is {light amber, dark amber, amber}; if the physical numeric of the current person > 3: add {golden amber, champagne-hued, golden brown, golden, light golden, dark golden} to the possible eye colors list; otherwise if L < 30: [hazel] now the possible eye colors list is {hazel, light hazel, dark hazel}; otherwise if L < 60: [brown] now the possible eye colors list is {brown, light brown, dark brown}; if the physical numeric of the current person > 3: add {honey brown, tawny brown, chestnut brown, chocolate brown, brandy-hued, cognac-hued, nut brown, russet brown, topaz brown} to the possible eye colors list; otherwise: [blue] now the possible eye colors list is {blue, pale blue, blue-gray, gray-blue}; if the physical numeric of the current person > 3: add {dark blue, aquamarine, cornflower blue, crystal blue, electric blue, porcelain blue, steel blue, ice blue, indigo blue, sapphire} to the possible eye colors list; otherwise if the ethnicity of the current person is non-Hispanic black: [Non-Hispanic black] if the current person is male: [Height] now the minimum height is 65; now the maximum height is 75; otherwise if the current person is female: now the minimum height is 60; now the maximum height is 69; now the possible skin tones list is {brown, dark brown, nut brown, dusky}; [Skin tones] if the physical numeric of the current person is 1: add {} to the possible skin tones list; otherwise if the physical numeric of the current person > 3: add {ebony, chocolate brown, mahogany, sienna, mocha} to the possible skin tones list; now the possible hair colors list is {brown, dark brown, mahogany brown, walnut brown, black, olive}; now the possible hair textures list is {straight, curly, kinky, braided, thick, bushy}; [Hair textures] if the physical numeric of the current person is 1: add {frizzy} to the possible hair textures list; if the age of the current person > 70: [Age-based variations] now the possible hair colors list is {light gray, dark gray, steel gray, silver gray, light silver, white, snow white}; otherwise if the age of the current person > 45: add {light gray, dark gray, steel gray, silver gray, light silver, white, snow white} to the possible hair colors list; let L be a random number between 1 and 100; [Eye colors] if L is 1: [violet] now the possible eye colors list is {violet, pale purple, pale violet}; if the physical numeric of the current person > 3: add {dark violet, periwinkle blue, hyacinth blue, amethyst} to the possible eye colors list; otherwise if L < 3: [green] now the possible eye colors list is {green, olive, green-blue, green-gray}; if the physical numeric of the current person > 3: add {crystal green, forest green, leaf green, malachite green, sea green, celadon green, emerald green, peridot green} to the possible eye colors list; otherwise if L < 13: [gray] now the possible eye colors list is {gray, light gray, dark gray, slate gray, storm gray, fog gray}; if the physical numeric of the current person > 3: add {silver gray, smoke gray, cloud gray, pearl gray, mist gray} to the possible eye colors list; otherwise if L < 28: [hazel] now the possible eye colors list is {hazel, light hazel, dark hazel}; otherwise if L < 65: [brown] now the possible eye colors list is {brown, light brown, dark brown}; if the physical numeric of the current person > 3: add {honey brown, tawny brown, chestnut brown, chocolate brown, brandy-hued, cognac-hued, nut brown, russet brown, topaz brown} to the possible eye colors list; otherwise if L < 73: [blue] now the possible eye colors list is {blue}; if the physical numeric of the current person > 3: add {dark blue, steel blue, indigo blue} to the possible eye colors list; otherwise: now the possible eye colors list is {black, coal black, soot black, crow black}; if the physical numeric of the current person > 3: add {ebony, jet black, midnight black, obsidian, onyx black, raven black, ink black} to the possible eye colors list; otherwise if the ethnicity of the current person is Hispanic: [Hispanic] if the current person is male: [Height] now the minimum height is 61; now the maximum height is 72; otherwise if the current person is female: now the minimum height is 59; now the maximum height is 66; now the possible skin tones list is {brown, light brown, tanned, tan, dark tan, bronze, copper, caramel brown}; [Skin tones] if the physical numeric of the current person > 3: add {caramel brown} to the possible skin tones list; if the physical numeric of the current person is 1: add {sallow} to the possible skin tones list; now the possible hair colors list is {light brown, brown, dark brown, black, jet black}; [Hair colors] if the physical numeric of the current person > 3: add {mahogany brown, walnut brown, raven black} to the possible hair colors list; now the possible hair textures list is {straight, wavy, curly, braided}; [Hair textures] if the physical numeric of the current person is 1: add {limp, greasy, lank, dull} to the possible hair textures list; otherwise if the physical numeric of the current person > 3: add {glossy, shining, flowing} to the possible hair textures list; if the age of the current person > 55: [Age-based variations] now the possible hair colors list is {light gray, dark gray, steel gray, silver gray, light silver, white, snow white}; if the current person is male: add {thinning, bald} to the possible hair textures list; otherwise if the age of the current person > 35: add {light gray, dark gray, steel gray, silver gray, light silver, white, snow white} to the possible hair colors list; if the current person is male: add {thinning, bald} to the possible hair textures list; let L be a random number between 1 and 100; [Eye color] if L is 1: [violet] now the possible eye colors list is {violet, pale purple, pale violet}; if the physical numeric of the current person > 3: add {dark violet, periwinkle blue, hyacinth blue, amethyst} to the possible eye colors list; otherwise if L < 3: [green] now the possible eye colors list is {green, olive, green-blue, green-gray}; if the physical numeric of the current person > 3: add {crystal green, forest green, leaf green, malachite green, sea green, celadon green, emerald green, peridot green} to the possible eye colors list; otherwise if L < 8: [gray] now the possible eye colors list is {gray, light gray, dark gray, slate gray, storm gray, fog gray}; if the physical numeric of the current person > 3: add {silver gray, smoke gray, cloud gray, pearl gray, mist gray} to the possible eye colors list; otherwise if L < 34: [amber] now the possible eye colors list is {light amber, dark amber, amber}; if the physical numeric of the current person > 3: add {golden amber, champagne-hued, golden brown, golden, light golden, dark golden} to the possible eye colors list; otherwise if L < 44: [hazel] now the possible eye colors list is {hazel, light hazel, dark hazel}; otherwise if L < 70: [brown] now the possible eye colors list is {brown, light brown, dark brown}; if the physical numeric of the current person > 3: add {honey brown, tawny brown, chestnut brown, chocolate brown, brandy-hued, cognac-hued, nut brown, russet brown, topaz brown} to the possible eye colors list; otherwise if L < 75: [blue] now the possible eye colors list is {blue, pale blue, blue-gray, gray-blue}; if the physical numeric of the current person > 3: add {dark blue, aquamarine, cornflower blue, crystal blue, electric blue, porcelain blue, steel blue, ice blue, indigo blue, sapphire} to the possible eye colors list; otherwise: now the possible eye colors list is {black, coal black, soot black, crow black}; if the physical numeric of the current person > 3: add {ebony, jet black, midnight black, obsidian, onyx black, raven black, ink black} to the possible eye colors list; otherwise if the ethnicity of the current person is Asian-Pacific Islander: if the current person is male: [Height] now the minimum height is 63; now the maximum height is 71; otherwise if the current person is female: now the minimum height is 58; now the maximum height is 66; now the possible skin tones list is {golden, golden brown, light brown, amber, olive}; [Skin tones] if the physical numeric of the current person is 1: add {yellowish, sallow} to the possible skin tones list; otherwise if the physical numeric of the current person > 3: add {copper, bronze} to the possible skin tones list; now the possible hair textures list is {fine, straight}; [Hair textures] if the physical numeric of the current person is 1: add {lank, dull} to the possible hair textures list; otherwise if the physical numeric of the current person > 3: add {glossy, shining} to the possible hair textures list; now the possible hair colors list is {black}; if the physical numeric of the current person > 1: add {blue-black, raven black, jet black} to the possible hair colors list; if the age of the current person > 65: [Age-based variations] now the possible hair colors list is {light gray, dark gray, steel gray, silver gray, light silver, white, snow white}; if the current person is male: add {thinning, bald} to the possible hair textures list; otherwise if the age of the current person > 40: add {light gray, dark gray, steel gray, silver gray, light silver, white, snow white} to the possible hair colors list; if the current person is male: add {thinning, bald} to the possible hair textures list; let L be a random number between 1 and 100; [Eye colors] if L is 1: [violet] now the possible eye colors list is {violet, pale purple, pale violet}; if the physical numeric of the current person > 3: add {dark violet, periwinkle blue, hyacinth blue, amethyst} to the possible eye colors list; otherwise if L < 3: [green] now the possible eye colors list is {green, olive, green-blue, green-gray}; if the physical numeric of the current person > 3: add {crystal green, forest green, leaf green, malachite green, sea green, celadon green, emerald green, peridot green} to the possible eye colors list; otherwise if L < 13: [gray] now the possible eye colors list is {gray, light gray, dark gray, slate gray, storm gray, fog gray}; if the physical numeric of the current person > 3: add {silver gray, smoke gray, cloud gray, pearl gray, mist gray} to the possible eye colors list; otherwise if L < 24: [amber] now the possible eye colors list is {light amber, dark amber, amber}; if the physical numeric of the current person > 3: add {golden amber, champagne-hued, golden brown, golden, light golden, dark golden} to the possible eye colors list; otherwise if L < 34: [hazel] now the possible eye colors list is {hazel, light hazel, dark hazel}; otherwise if L < 70: [brown] now the possible eye colors list is {brown, light brown, dark brown}; if the physical numeric of the current person > 3: add {honey brown, tawny brown, chestnut brown, chocolate brown, brandy-hued, cognac-hued, nut brown, russet brown, topaz brown} to the possible eye colors list; otherwise if L < 71: [blue] now the possible eye colors list is {blue, pale blue, blue-gray, gray-blue}; if the physical numeric of the current person > 3: add {dark blue, aquamarine, cornflower blue, crystal blue, electric blue, porcelain blue, steel blue, ice blue, indigo blue, sapphire} to the possible eye colors list; otherwise: now the possible eye colors list is {black, coal black, soot black, crow black}; if the physical numeric of the current person > 3: add {ebony, jet black, midnight black, obsidian, onyx black, raven black, ink black} to the possible eye colors list; otherwise if the ethnicity of the current person is native American: [Native American] if the current person is male: [Height] now the minimum height is 60; now the maximum height is 69; otherwise if the current person is female: now the minimum height is 60; now the maximum height is 69; now the possible skin tones list is {tan, dark tan, brown, light brown, dark brown, cinnamon brown, dusky}; [Skin tones] now the possible hair colors list is {black}; [Hair colors] if the physical numeric of the current person > 1: add {blue-black, raven black, jet black} to the possible hair colors list; now the possible hair textures list is {fine, straight, thick}; [Hair texture] if the physical numeric of the current person is 1: add {lank, dull} to the possible hair textures list; otherwise if the physical numeric of the current person > 3: add {glossy, shining} to the possible hair textures list; if the age of the current person > 70: [Age-based variations] now the possible hair colors list is {light gray, dark gray, steel gray, silver gray, light silver, white, snow white}; if the current person is male: add {thinning, bald} to the possible hair textures list; otherwise if the age of the current person > 40: add {light gray, dark gray, steel gray, silver gray, light silver, white, snow white} to the possible hair colors list; if the current person is male: add {thinning, bald} to the possible hair textures list; let L be a random number between 1 and 100; [Eye color] if L < 3: [green] now the possible eye colors list is {green, olive, green-blue, green-gray}; if the physical numeric of the current person > 3: add {crystal green, forest green, leaf green, malachite green, sea green, celadon green, emerald green, peridot green, pine green} to the possible eye colors list; otherwise if L < 8: [gray] now the possible eye colors list is {gray, light gray, dark gray, slate gray, storm gray, fog gray}; if the physical numeric of the current person > 3: add {silver gray, smoke gray, cloud gray, pearl gray, mist gray} to the possible eye colors list; otherwise if L < 18: [amber] now the possible eye colors list is {light amber, dark amber, amber}; if the physical numeric of the current person > 3: add {golden amber, champagne-hued, golden brown, golden, light golden, dark golden} to the possible eye colors list; otherwise if L < 28: [hazel] now the possible eye colors list is {hazel, light hazel, dark hazel}; otherwise if L < 50: [brown] now the possible eye colors list is {brown, light brown, dark brown}; if the physical numeric of the current person > 3: add {honey brown, tawny brown, chestnut brown, chocolate brown, brandy-hued, cognac-hued, nut brown, russet brown, topaz brown} to the possible eye colors list; otherwise if L < 55: [blue] now the possible eye colors list is {blue, pale blue, blue-gray, gray-blue}; if the physical numeric of the current person > 3: add {dark blue, aquamarine, cornflower blue, crystal blue, electric blue, porcelain blue, steel blue, ice blue, indigo blue, sapphire} to the possible eye colors list; otherwise: now the possible eye colors list is {black, coal black, soot black, crow black}; if the physical numeric of the current person > 3: add {ebony, jet black, midnight black, obsidian, onyx black, raven black, ink black} to the possible eye colors list; now the actual height of the current person is a random number between minimum height and maximum height; if the actual height of the current person < 60: [Setting the actual height] now the height of the current person is very short; otherwise if the actual height of the current person < 64: now the height of the current person is short; otherwise if the actual height of the current person < 67: now the height of the current person is average height; otherwise if the actual height of the current person < 70: now the height of the current person is tall; otherwise: now the height of the current person is very tall; if the physical numeric of the current person is 1: [Skin tone variations] add {spotted, blotchy, pockmarked} to the possible skin tones list; otherwise if the physical numeric of the current person > 3 and the age of the current person < 50: add {smooth, flawless} to the possible skin tones list; if the age of the current person > 50: [Age-based variations] add {milky blue, milky white} to the possible eye colors list; add {wrinkled} to the possible skin tones list; otherwise if the age of the current person > 75: now the possible eye colors list is {milky blue, milky white}; add {wrinkled} to the possible skin tones list; sort the possible skin tones list in random order; [Assigning skin tone, hair color, hair texture, eye color] now the skin tone of the current person is entry 1 of the possible skin tones list; sort the possible hair colors list in random order; now the hair color of the current person is entry 1 of the possible hair colors list; sort the possible hair textures list in random order; now the hair texture of the current person is entry 1 of the possible hair textures list; sort the possible eye colors list in random order; now the eye color of the current person is entry 1 of the possible eye colors list; let the short hair length list be {very short, short, chin length}; [Hair length] let the long hair length list be {shoulder length, long, very long, waist length}; sort the short hair length list in random order; sort the long hair length list in random order; if the current person is male: if a random chance of 1 in 4 succeeds: now the hair length of the current person is entry 1 of the long hair length list; otherwise: now the hair length of the current person is entry 1 of the short hair length list; otherwise: if a random chance of 1 in 2 succeeds: now the hair length of the current person is entry 1 of the long hair length list; otherwise: now the hair length of the current person is entry 1 of the short hair length list; now the possible hairstyles list is {}; if the hair length of the current person is very short: [Very short hair] add {"worn in a buzz cut", "shaved closed to [zher] head", "shaved close to the scalp"} to the possible hairstyles list; if the style numeric of the current person > 3: add {"shaved into intricate patterns"} to the possible hairstyles list; if the current person is male: add {"worn in a crew cut", "with a single long lock in front", "worn high and tight", "with a rattail in back"} to the possible hairstyles list; otherwise: add {"worn in a buzz cut with bangs"} to the possible hairstyles list; [Short/chin length] if the ethnicity of the current person is non-Hispanic black: add {"cut in waves"} to the possible hairstyles list; otherwise if the hair length of the current person is short or the hair length of the current person is chin length: add {"with a tousled look", "worn carelessly windblown", "with long bangs in front", "with long, sideswept bangs", "cut in layers", "cut in a pageboy"} to the possible hairstyles list; if the style numeric of the current person is 1: add {"cut in choppy layers"} to the possible hairstyles list; otherwise if the style numeric of the current person > 3: add {"with artfully arranged bangs", "cut in precise layers"} to the possible hairstyles list; if the current person is male: if the age of the current person < 30: add {"worn in a mohawk", "worn in greased spikes"} to the possible hairstyles list; if the hair length of the current person is short: add {"worn in a bowl cut", "cut in a ducktail", "cut in a flattop", "cut in a mop top"} to the possible hairstyles list; otherwise if the age of the current person > 40: add {"combed over to help conceal a bald spot"} to the possible hairstyles list; otherwise: add {"worn in a bob cut", "worn in a pixie cut"} to the possible hairstyles list; if the age of the current person < 30: add {"worn in two braids", "worn in two pigtails"} to the possible hairstyles list; otherwise if the hair length of the current person is shoulder length or the hair length of the current person is long: [Shoulder length/long] add {"tied back at the nape of the neck", "worn in a single braid", "worn in many braids", "worn in two braids", "parted down the center", "parted on the side", "with a tousled look", "worn carelessly windblown", "with long bangs in front", "worn in a half ponytail", "cut in layers", "worn in a pompadour"} to the possible hairstyles list; if the style numeric of the current person is 1: add {"worn messily", "that could use a good brushing", "that could stand to be washed", "worn in tangled locks"} to the possible hairstyles list; otherwise if the style numeric of the current person > 3: add {"with artfully arranged bangs", "cut in precise layers"} to the possible hairstyles list; if the current person is male: add {"cut in a mullet"} to the possible hairstyles list; if the age of the current person < 30: add {"worn in a mohawk", "worn in greased spikes"} to the possible hairstyles list; otherwise if the age of the current person > 40: add {"combed over to help conceal a bald spot"} to the possible hairstyles list; otherwise: add {"worn in a bun", "worn in a chignon", "worn in a upswept twist"} to the possible hairstyles list; if the age of the current person < 30: add {"worn in two braids", "worn in two pigtails"} to the possible hairstyles list; if the ethnicity of the current person is non-Hispanic black: add {"worn in an afro", "worn in tight dreadlocks", "worn in loose dreadlocks"} to the possible hairstyles list; otherwise: add {"worn in a ponytail", "loose, tucked behind [zher] ears", "worn in tight cornrows", "worn in a half ponytail"} to the possible hairstyles list; if the ethnicity of the current person is non-Hispanic white or the ethnicity of the current person is Hispanic: add {"arranged in ringlets"} to the possible hairstyles list; otherwise if the ethnicity of the current person is Asian-Pacific Islander: add {"pulled up in a topknot"} to the possible hairstyles list; otherwise if the ethnicity of the current person is native American: add {"worn in two braids", "worn in two pigtails"} to the possible hairstyles list; otherwise if the hair length of the current person is very long or the hair length of the current person is waist length: [Very long/waist length] add {"worn in a ponytail", "tied back at the nape of the neck", "worn in a single braid", "worn in many braids", "with long bangs in front", "cut in layers"} to the possible hairstyles list; if the style numeric of the current person is 1: add {"worn messily", "that could use a good brushing", "that could stand to be washed", "worn in tangled locks"} to the possible hairstyles list; otherwise if the style numeric of the current person > 3: add {"with artfully arranged bangs", "cut in precise layers"} to the possible hairstyles list; if the current person is female: add {"coiled intricately atop [zher] head"} to the possible hairstyles list; if the current person is male: add {""} to the possible hairstyles list; otherwise: add {"worn in a bun", "worn in a chignon", "worn in tight cornrows"} to the possible hairstyles list; if the ethnicity of the current person is non-Hispanic white or the ethnicity of the current person is Hispanic: add {"arranged in ringlets", "worn in a beehive", "worn in a bouffant style"} to the possible hairstyles list; if the age of the current person < 30: add {"worn in two braids", "worn in two pigtails"} to the possible hairstyles list; if the ethnicity of the current person is non-Hispanic black: add {"worn in an afro", "worn in tight dreadlocks", "worn in loose dreadlocks"} to the possible hairstyles list; otherwise: add {"worn in a ponytail", "worn loose and tucked behind [zher] ears"} to the possible hairstyles list; if the ethnicity of the current person is Asian-Pacific Islander: add {"pulled up in a topknot"} to the possible hairstyles list; otherwise if the ethnicity of the current person is native American: add {"worn in two braids", "worn in two pigtails"} to the possible hairstyles list; if a random chance of 1 in 2 succeeds: [Hairstyles are a little overwhelming when everyone has one.] sort the possible hairstyles list in random order; now the hairstyle of the current person is entry 1 of the possible hairstyles list; if the current person is blood-relation: if a random chance of 1 in 2 succeeds: now the height of the current person is the height of the player; if a random chance of 1 in 2 succeeds: now the build of the current person is the build of the player; if a random chance of 1 in 2 succeeds: now the skin tone of the current person is the skin tone of the player; if a random chance of 1 in 2 succeeds: now the eye color of the current person is the eye color of the player; if a random chance of 1 in 2 succeeds: if the hair texture of the player is not bald and the hair texture of the player is not thinning: now the hair texture of the current person is the hair texture of the player; if a random chance of 1 in 2 succeeds: now the hair color of the current person is the hair color of the player; now the facial hair of the current person is ""; if the current person is male and the age of the current person > 15: [No 7-year olds with goatees.] if a random chance of 1 in 2 succeeds: [Only one in two men have specific facial hair.] now the facial hair of the current person is "clean-shaven face"; otherwise: if the age of the current person > 15: add {"sparse moustache", "sparse beard", "light goatee", "lightly stubbled face", "thin moustache", "thin goatee"} to the possible facial hair list; if the age of the current person > 20: add {"heavily stubbled face", "moustache", "dense moustache", "bushy moustache", "narrow moustache", "large moustache", "heavy moustache", "long moustache", "short moustache", "pair of sideburns", "pair of long sideburns", "pair of thick sideburns", "goatee", "short goatee", "long goatee", "forked goatee", "short beard", "long beard", "dense beard", "full beard"} to the possible facial hair list; if the style numeric of the current person > 3: add {"impressive moustache", "elegant moustache", "impressive beard", "elegant beard"} to the possible facial hair list; sort the possible facial hair list in random order; now the facial hair of the current person is entry 1 of the possible facial hair list; if the age of the current person < 15: now the possible voice types list is {young, high, sweet, soft, melodic, treble, strident, shrill}; otherwise if the age of the current person < 65: now the possible voice types list is {soft, low, melodic, husky, smooth, strident}; if the current person is female: add {sweet, throaty, soprano, alto, contralto} to the possible voice types list; otherwise: add {deep, rough, tenor, bass, baritone} to the possible voice types list; otherwise: now the possible voice types list is {aged, cracked, strident, shrill}; sort the possible voice types list in random order; now the voice type of the current person is entry 1 of the possible voice types list; DM "[Given name of current person] [Surname of current person] is [physical impression of the current person] and dresses [style impression of the current person], with a preference for [color preference of the current person]. [Zhe] is [height of the current person] and [build of the current person]. [Zhe] has [skin tone of the current person] skin, [eye color of the current person] eyes, a [voice type of the current person] voice,"; if the current person is male and the facial hair of the current person is not "": DM " a [facial hair of the current person],"; DM " and "; if the hair texture of the current person is bald: DM "a bald head"; otherwise: DM "[hair length of the current person]"; if the hair length of the current person is not very short: DM ", [hair texture of the current person]"; DM " [hair color of the current person] hair"; if the hairstyle of the current person is not "": DM " [hairstyle of the current person]"; DM ".[line break]" Part 5 - Core Personality A person can be p-extroverted or p-introverted. A person can be p-sensing or p-intuitive. A person can be p-thinking or p-feeling. A person can be p-judgmental or p-perceptive. A person can be p-independent or p-dependent. A person can be p-cooperative or p-competitive. A person can be p-apathetic or p-energetic. A person can be p-optimistic or p-pessimistic. A person can be p-moral or p-immoral. To set the personality of the current person: DM "[Given name of the current person] [surname of the current person] is "; if a random chance of 1 in 2 succeeds: now the current person is p-extroverted; DM "E"; otherwise: now the current person is p-introverted; DM "I"; if a random chance of 1 in 2 succeeds: now the current person is p-sensing; DM "S"; otherwise: now the current person is p-intuitive; DM "N"; if a random chance of 1 in 2 succeeds: now the current person is p-thinking; DM "T"; otherwise: now the current person is p-feeling; DM "F"; if a random chance of 1 in 2 succeeds: now the current person is p-judgmental; DM "J, "; otherwise: now the current person is p-perceptive; DM "P, "; if a random chance of 1 in 2 succeeds: now the current person is p-independent; DM "independent, "; otherwise: now the current person is p-dependent; DM "dependent, "; if a random chance of 1 in 3 succeeds: now the current person is p-moral; DM "moral, "; otherwise: now the current person is p-immoral; DM "immoral, "; if a random chance of 1 in 2 succeeds: now the current person is p-cooperative; DM "cooperative, and "; otherwise: now the current person is p-competitive; DM "competitive, and "; if a random chance of 1 in 2 succeeds: now the current person is p-apathetic; DM "apathetic.[line break]"; otherwise: now the current person is p-optimistic; DM "optimistic.[line break]" Book 3 - Affections En Masse Liking relates various people to various people. The verb to like (he likes, they like, he liked, he is liked) implies the liking relation. Disliking relates various people to various people. The verb to dislike (he dislikes, they dislike, he disliked, he is disliked) implies the disliking relation. Past-liking relates various people to various people. The verb to past-like (he past-likes, they past-like, he past-liked, he is past-liked) implies the past-liking relation. Past-disliking relates various people to various people. The verb to past-dislike (he past-dislikes, they past-dislike, he past-disliked, he is past-disliked) implies the past-disliking relation. To set NPC affections: now all NPCs are known; DM "Setting the player's affections."; repeat with target NPC running through NPCs in Z5: let L be a random number between 1 and 3; if L is 1: if the player does not like the target NPC: now the player dislikes the target NPC; otherwise if L is 3: if the player does not dislike the target NPC: now the player likes the target NPC; if a random chance of 1 in 3 succeeds: [Reduces the likelihood of affections swinging wildly.] let L be a random number between 1 and 3; if L is 1: if the player does not past-like the target NPC: now the player past-dislikes the target NPC; otherwise if L is 3: if the player does not past-dislike the target NPC: now the player past-likes the target NPC; DM "[Given name of the player] [surname of the player] historically disliked [list of people past-disliked by the player] and historically liked [list of people past-liked by the player]. Now, [given name of the player] dislikes [list of people disliked by the player] and likes [list of people liked by the player].[line break]"; repeat with target NPC running through NPCs in Z5: repeat with target secondary NPC running through NPCs in Z5: let L be a random number between 1 and 3; if L is 1: if the target NPC does not like the target secondary NPC: now the target NPC dislikes the target secondary NPC; otherwise if L is 3: if the target NPC does not dislike the target secondary NPC: now the target NPC likes the target secondary NPC; if a random chance of 1 in 3 succeeds: [Reduces the likelihood of affections swinging wildly.] let L be a random number between 1 and 3; if L is 1: if the target NPC does not past-like the target secondary NPC: now the target NPC past-dislikes the target secondary NPC; otherwise if L is 3: if the target NPC does not past-like the target secondary NPC: now the target NPC past-likes the target secondary NPC; DM "[Target NPC] historically disliked [list of people past-disliked by the target NPC] and historically liked [list of people past-liked by the target NPC]. Now, [target NPC] dislikes [list of people disliked by the target NPC] and likes [list of people liked by the target NPC].[line break]"; now no NPCs are known. Book 4 - Saying With References Chapter 1 - People Pronouns The current person is a person that varies. Before examining a person (called the target): now the current person is the target. To say Zhe: if the current person is male: say "He"; otherwise: say "She". To say zhe: if the current person is male: say "he"; otherwise: say "she". To say Zher: if the current person is male: say "His"; otherwise: say "Her". To say zher: if the current person is male: say "his"; otherwise: say "her". To say zhers: if the current person is male: say "his"; otherwise: say "hers". To say Zhim: if the current person is male: say "Him"; otherwise: say "Her". To say zhim: if the current person is male: say "him"; otherwise: say "her". To say Zhis: if the current person is male: say "His"; otherwise: say "Hers". To say zhis: if the current person is male: say "his"; otherwise: say "hers". To say zhoman: if the current person is male: say "man"; otherwise: say "woman". The secondary person is a person that varies. To say Zhe2: if the secondary person is male: say "He"; otherwise: say "She". To say zhe2: if the secondary person is male: say "he"; otherwise: say "she". To say Zher2: if the secondary person is male: say "His"; otherwise: say "Her". To say zher2: if the secondary person is male: say "his"; otherwise: say "her". To say zhers2: if the secondary person is male: say "his"; otherwise: say "hers". To say Zhim2: if the secondary person is male: say "Him"; otherwise: say "Her". To say zhim2: if the secondary person is male: say "him"; otherwise: say "her". To say Zhis2: if the secondary person is male: say "His"; otherwise: say "Hers". To say zhis2: if the secondary person is male: say "his"; otherwise: say "hers". To say zhoman2: if the secondary person is male: say "man"; otherwise: say "woman". Chapter 2 - Other References Rule for printing the name of an NPC (called the target NPC): if the target NPC is known: say "[given name of the target NPC] [surname of the target NPC]"; otherwise if the age of the target NPC is less than 2: say "baby"; otherwise if the age of the target NPC is less than 4: say "toddler"; otherwise if the age of the target NPC is less than 13: say "[physical impression of the target NPC] "; if the target NPC is male: say "boy"; otherwise: say "girl"; otherwise if the age of the target NPC is less than 18: say "[height of the target NPC], [build of the target NPC] "; if the target NPC is male: say "teenage boy"; otherwise if the target NPC is female: say "teenage girl"; otherwise: say "[height of the target NPC], [build of the target NPC] "; if the target NPC is male: say "man"; otherwise: say "woman". To say gr of the current person: if the relationship of the current person is child: if the current person is female: say "daughter"; otherwise: say "son"; otherwise if the relationship of the current person is parent: if the current person is female: say "mother"; otherwise: say "father"; otherwise if the relationship of the current person is grandparent: if the current person is female: say "grandmother"; otherwise: say "grandfather"; otherwise if the relationship of the current person is spouse: if the current person is female: say "wife"; otherwise: say "husband"; otherwise if the relationship of the current person is ex-spouse: if the current person is female: say "ex-wife"; otherwise: say "ex-husband"; otherwise if the relationship of the current person is ex-lover: say "former lover"; otherwise if the relationship of the current person is sibling: if the current person is female: say "sister"; otherwise: say "brother"; otherwise if the relationship of the current person is work rival: say "rival"; otherwise if the relationship of the current person is hobby rival: say "rival"; otherwise if the relationship of the current person is apprentice: say "student from [hobby of the current person] class"; otherwise if the relationship of the current person is mentor: say "teacher from [hobby of the current person] class"; otherwise: say "[relationship of the current person]". To say gr of the secondary person: if the relationship of the secondary person is child: if the secondary person is female: say "daughter"; otherwise: say "son"; otherwise if the relationship of the secondary person is parent: if the secondary person is female: say "mother"; otherwise: say "father"; otherwise if the relationship of the secondary person is grandparent: if the secondary person is female: say "grandmother"; otherwise: say "grandfather"; otherwise if the relationship of the secondary person is spouse: if the secondary person is female: say "wife"; otherwise: say "husband"; otherwise if the relationship of the secondary person is ex-spouse: if the secondary person is female: say "ex-wife"; otherwise: say "ex-husband"; otherwise if the relationship of the secondary person is ex-lover: say "former lover"; otherwise if the relationship of the secondary person is sibling: if the secondary person is female: say "sister"; otherwise: say "brother"; otherwise if the relationship of the secondary person is work rival: say "rival"; otherwise if the relationship of the secondary person is hobby rival: say "rival"; otherwise if the relationship of the secondary person is apprentice: say "student from [hobby of the secondary person] class"; otherwise if the relationship of the secondary person is mentor: say "teacher from [hobby of the secondary person] class"; otherwise: say "[relationship of the secondary person]". To say gr-age: if the age of the current person is less than 2: say "baby"; otherwise if the age of the current person is less than 4: say "toddler"; otherwise if the age of the current person is less than 13: if the current person is male: say "boy"; otherwise: say "girl"; otherwise if the age of the current person is less than 18: say "teenage "; if the current person is male: say "boy"; otherwise if the current person is female: say "girl"; otherwise if the age of the current person is less than 40: say "young "; if the current person is male: say "man"; otherwise: say "woman"; otherwise if the age of the current person is less than 60: say "middle-aged "; if the current person is male: say "man"; otherwise: say "woman"; otherwise: say "elderly "; if the current person is male: say "man"; otherwise: say "woman". To say hair reference: say "[if the hair texture of the current person is bald]bald head[otherwise][hair length of the current person], [hair texture of the current person] [hair color of the current person] hair[end if]". To decide whether the current person is fuzzy: if the current person is male and the facial hair of the current person is not "" and the facial hair of the current person is not "clean-shaven face": decide on true; otherwise: decide on false. Book 5 - Victim and Murderer To arrange the murder: choose victim and murderer; choose the murder time and location; choose the murder method; choose the murder motive; determine the witnesses; determine alibis and suspicion. Part 1 - Identifying Victim and Murderer The victim is an NPC that varies. The potential victim list is a list of NPCs that varies. The murderer is an NPC that varies. The potential murderer list is a list of NPCs that varies. To choose victim and murderer: repeat with target NPC running through NPCs: add the target NPC to the potential victim list; if the age of the target NPC is greater than 15: add the target NPC to the potential murderer list; sort the potential victim list in random order; now the victim is entry 1 of the potential victim list; remove the victim from the potential murderer list, if present; sort the potential murderer list in random order; now the murderer is entry 1 of the potential murderer list; DM "Victim: [given name of the victim] [surname of the victim]. Murderer: [given name of the murderer] [surname of the murderer].[line break]" Part 2 - Where Were You Historic location is a kind of value. The historic locations are location 1, location 2, location 3, location 4, location 5, location 6, and death location. The chronology location list is a list of historic locations that varies. The chronology location list is {location 1, location 2, location 3, location 4, location 5, location 6}. A historic location has a list of people called the occupancy list. Murder location is a historic location that varies. Murder time is a time that varies. Discovery location is a historic location that varies. Discovery time is a time that varies. The discovery time is 11:59 PM. A person has a number called the activity level. A person has a time called the personal discovery time. The personal discovery time of a person is 11:59 PM. Definition: A person (called the referenced person) is suspicious if the referenced person is the player or the referenced person is an NPC. Table of Murder Chronology Time Person Historic Location Murder known 10:00 AM yourself location 1 false with 111 blank rows To choose the murder time and location: now murder time is a random time between 11:00 AM and 10:00 PM; sort the chronology location list in random order; now murder location is entry 1 in the chronology location list; if a random chance of 1 in 2 succeeds: now discovery location is murder location; let table-start time be murder time - 4 hours; let table-end time be murder time + 4 hours; choose row 1 in the Table of Murder Chronology; blank out the whole row; repeat with target person running through suspicious people: now the activity level of target person is a random number between 0 and 5; if the target person is an NPC: now the target person is known; let L be the table-start time; sort the chronology location list in random order; let the temporary location be entry 1 in the chronology location list; [This helps keep sedentary people sedentary.] while L < the table-end time: choose a blank row in the Table of Murder Chronology; now time entry is L; now person entry is target person; if L is murder time: if target person is the victim or target person is the murderer: now historic location entry is the murder location; otherwise: sort the chronology location list in random order; now historic location entry is entry 1 in the chronology location list; while the historic location entry is the murder location and the target person is the player: sort the chronology location list in random order; now historic location entry is entry 1 in the chronology location list; let the temporary location be entry 1 in the chronology location list; otherwise if L > murder time and target person is the victim: now historic location entry is death location; otherwise if a random chance of the activity level of target person in 5 succeeds: sort the chronology location list in random order; now the historic location entry is entry 1 in the chronology location list; let the temporary location be entry 1 in the chronology location list; otherwise: now the historic location entry is the temporary location; let K be a random number between -1 and 1; now the activity level of target person is the activity level of target person + K; now L is L + 30 minutes; DM "At [time entry], [person entry] was at [historic location entry].[line break]"; repeat with target location running through the historic locations: now the occupancy list of the target location is { }; let the time tracker be the the table-start time; while the time tracker <= the table-end time: repeat with target location running through the historic locations: repeat through the Table of Murder Chronology: if the time tracker is the time entry and the target location is the historic location entry: add the person entry to the occupancy list of the historic location entry; DM "At [time tracker], "; repeat with target location running through the historic locations: if the occupancy list of the target location is { }: DM "[target location] was empty.[line break]"; otherwise: DM "[target location] contained [the occupancy list of the target location].[line break]"; repeat with target location running through the historic locations: now the occupancy list of the target location is { }; now the time tracker is the time tracker + 30 minutes; DM "The victim is [victim] and the murderer is [murderer]. The murder took place at [murder location] at [murder time].[line break]". Part 3 - Method Killing method is a kind of value. The killing methods are knifing, poisoning by mouth, poisoning by contact, poisoning by injection, strangulation, blunt trauma, hand to hand, and firearms. A person has a list of killing methods called the murder skill list. The murder skill list of a person is usually {}. Murder method is a killing method that varies. To choose the murder method: DM "Choosing the murder method.[line break]"; repeat with target person running through suspicious people: add {knifing, strangulation, blunt trauma, hand to hand} to the murder skill list of the target person; if the profession of the target person is nurse or the profession of the target person is pharmacist or the profession of the target person is physician: add {poisoning by injection, poisoning by contact} to the murder skill list of the target person; if the profession of the target person is police officer or the hobby of the target person is hunting or a random chance of 1 in 2 succeeds: add {firearms} to the murder skill list of the target person; sort the murder skill list of the murderer in random order; now the murder method is entry 1 of the murder skill list of the murderer; DM "[Murderer] killed [victim] by [murder method].[line break]". Part 5 - Motive Motive is a kind of value. The motives are thrill-killing, disgust, jealousy, personal gain, anger, fear of victim, fear for secondary, mercy killing, compulsion by the gods, self-defense, and protecting others. The murder motive is a motive that varies. The secondary person considered is a person that varies. To choose the murder motive: DM "Choosing the murder motive.[line break]"; let motive-acceptable be false; while motive-acceptable is false: let motive-acceptable be true; if the murderer dislikes the victim: if the murderer is p-immoral: [Immoral murderer dislikes the victim] let L be a random number between 1 and 9; if L is 1: [thrill-killing] now the murder motive is thrill-killing; otherwise if L is 2: [disgust] now the murder motive is disgust; otherwise if L is 3: [jealousy] now the murder motive is jealousy; otherwise if L is 4: [personal gain] now the murder motive is personal gain; otherwise if L is 5: [anger] now the murder motive is anger; otherwise if L is 6: [fear of victim] if the victim dislikes the murderer: now the murder motive is fear of victim; otherwise: let motive-acceptable be false; otherwise if L is 7: [fear for secondary] if the murderer likes somebody: now the murder motive is fear for secondary; if the murderer likes somebody: now the secondary person considered is a random person liked by the murderer; if the victim dislikes the secondary person: let motive-acceptable be true; otherwise: let motive-acceptable be false; otherwise: let motive-acceptable be false; otherwise: let motive-acceptable be false; otherwise if L is 8: [compulsion by the gods] now the murder motive is compulsion by the gods; otherwise: [self-defense] if the victim dislikes the murderer: now the murder motive is self-defense; otherwise: let motive-acceptable be false; otherwise: [Moral murderer dislikes the victim] let L be a random number between 1 and 5; if L is 1: [fear of victim] if the victim dislikes the murderer: now the murder motive is fear of victim; otherwise: let motive-acceptable be false; otherwise if L is 2: [fear for secondary] if the murderer likes somebody: now the murder motive is fear for secondary; now the secondary person considered is a random person liked by the murderer; if the victim dislikes the secondary person: let motive-acceptable be true; otherwise: let motive-acceptable be false; otherwise: let motive-acceptable be false; otherwise if L is 3: [compulsion by the gods] now the murder motive is compulsion by the gods; otherwise if L is 4: [self-defense] if the victim dislikes the murderer: now the murder motive is self-defense; otherwise: let motive-acceptable be false; otherwise: [protecting others] if the victim is p-immoral: now the murder motive is protecting others; otherwise: let motive-acceptable be false; otherwise if the murderer likes the victim: if the murderer is p-immoral: [Immoral murderer likes the victim] let L be a random number between 1 and 3; if L is 1: [mercy killing] now the murder motive is mercy killing; otherwise if L is 2: now the murder motive is personal gain; otherwise: [compulsion by the gods] now the murder motive is compulsion by the gods; otherwise: [Moral murderer likes the victim] let L be a random number between 1 and 2; if L is 1: [mercy killing] now the murder motive is mercy killing; otherwise if L is 2: [compulsion by the gods] now the murder motive is compulsion by the gods; otherwise: if the murderer is p-immoral: [Immoral murderer is neutral to victim] let L be a random number between 1 and 6; if L is 1: [thrill-killing] now the murder motive is thrill-killing; otherwise if L is 2: [personal gain] now the murder motive is personal gain; otherwise if L is 3: [anger] now the murder motive is anger; otherwise if L is 4: [fear for secondary] if the murderer likes somebody: now the murder motive is fear for secondary; if the murderer likes somebody: now the secondary person considered is a random person liked by the murderer; if the victim dislikes the secondary person: let motive-acceptable be true; otherwise: let motive-acceptable be false; otherwise: let motive-acceptable be false; otherwise: let motive-acceptable be false; otherwise if L is 5: [compulsion by the gods] now the murder motive is compulsion by the gods; otherwise: [self-defense] if the victim dislikes the murderer: now the murder motive is self-defense; otherwise: let motive-acceptable be false; otherwise: [Moral murderer is neutral to victim] let L be a random number between 1 and 3; if L is 1: [mercy killing] now the murder motive is mercy killing; otherwise if L is 2: [protecting others] if the victim is p-immoral: now the murder motive is protecting others; otherwise: let motive-acceptable be false; otherwise: [compulsion by the gods] now the murder motive is compulsion by the gods; if motive-acceptable is false: DM "Came up with an unacceptable motive. Trying again.[line break]"; DM "[murderer]'s motive for killing [victim] was [murder motive][if the murder motive is fear for secondary], where the secondary person involved is [secondary person considered][end if].[line break]". Part 6 - Witnesses To determine the witnesses: DM "Determining the witnesses....[line break]"; now the occupancy list of the murder location is { }; repeat through the Table of Murder Chronology: if the time entry is the murder time and the historic location entry is the murder location and the person entry is not the murderer and the person entry is not the victim: add the person entry to the occupancy list of the historic location entry; now the personal discovery time of the person entry is the murder time; DM "The murder of [victim] by [murderer] was witnessed by [occupancy list of the murder location].[line break]". Part 7 - Alibis and Suspicion To determine alibis and suspicion: DM "Determining alibis and suspicion. (Only I'm not, because there's nothing here yet.)[line break]". Book 6 - PC Statistics Part 1 - Building Statistics Core strength is a number that varies. Core strength is 21. [This is just for triggering the 'hey, this adds up to too much' in the PC statistics assignment loop.] The player has a number called strength. A person has a number called rattack. A person has a number called eattack. A person has a number called rspeed. A person has a number called espeed. Core stamina is a number that varies. The player has a number called stamina. A person has a number called rdefense. A person has a number called edefense. A person has a number called rhealth. A person has a number called chealth. Core will is a number that varies. The player has a number called will. The player has a number called rmovement. The player has a number called emovement. The player has a number called rattunement. The player has a number called cattunement. Core knowledge is a number that varies. The player has a number called knowledge. A person has a number called rawareness. A person has a number called eawareness. A person has a number called rstealth. A person has a number called estealth. To assign PC statistics: now core strength is 2; now core stamina is 2; now core will is 2; now core knowledge is 2; let the temporary count be 0; while the temporary count is less than 15: let K be a random number between 1 and 4; if K is 1 and core strength < 9: now the core strength is core strength + 1; otherwise if K is 2 and core stamina < 9: now the core stamina is core stamina + 1; otherwise if K is 3 and core will < 9: now the core will is core will + 1; otherwise if K is 4 and core knowledge < 9: now the core knowledge is core knowledge + 1; now the temporary count is the temporary count + 1; DM "PC core stats: Strength [core strength], Stamina [core stamina], Will [core will], Knowledge [core knowledge]. "; now the strength of the player is the core strength; now the rattack of the player is the core strength; now the rspeed of the player is (the core strength / 3); now the stamina of the player is the core stamina; now the rdefense of the player is (the core stamina / 2); now the rhealth of the player is (the core stamina * 2); now the chealth of the player is rhealth of the player; now the will of the player is the core will; now the rmovement of the player is the core will; now the rattunement of the player is (the core will * 2); now the cattunement of the player is the rattunement of the player; now the knowledge of the player is the core knowledge; now the rawareness of the player is the core knowledge; now the rstealth of the player is (the core knowledge / 3); calculate the player's enhanced stats. Part 2 - Calculating Enhanced Player Stats Every turn: calculate the player's enhanced stats. [say "(Current stats: attack [eattack of the player], speed [espeed of the player], defense [edefense of the player], movement [emovement of the player], awareness [eawareness of the player], stealth [estealth of the player].)[paragraph break]"] To calculate the player's enhanced stats: now the eattack of the player is the rattack of the player; now the espeed of the player is the rspeed of the player; now the edefense of the player is the rdefense of the player; now the emovement of the player is the rmovement of the player; now the eawareness of the player is the rawareness of the player; now the estealth of the player is the rstealth of the player; repeat with temporary memento running through mementos enclosed by the shadow self: if the wear_at of the temporary memento is 0 or the shadow self is wearing the temporary memento: now the eattack of the player is the eattack of the player + the attack boost of the temporary memento; now the espeed of the player is the espeed of the player + the speed boost of the temporary memento; now the edefense of the player is the edefense of the player + the defense boost of the temporary memento; now the emovement of the player is the emovement of the player + the movement boost of the temporary memento; now the eawareness of the player is the eawareness of the player + the awareness boost of the temporary memento; now the estealth of the player is the estealth of the player + the stealth boost of the temporary memento. Book 7 - Names Appendix The names are Aaliyah, Aaron, Abigail, Acosta, Ada, Adam, Adams, Adrian, Agnes, Aguilar, Aguirre, Ahmed, Aidan, Aiden, Alan, Albert, Alejandro, Alex, Alexa, Alexander, Alexandra, Alexandria, Alexis, Alfred, Ali, Alice, Alicia, Alison, Allen, Allison, Alma, Alvarado, Alvarez, Alvin, Alyssa, Amanda, Amelia, Amy, and James, Anderson, Andrea, Andrew, Angel, Angela, Angelina, Anita, Ann, Anna, Anne, Annette, Annie, Anthony, Antonio, April, Archie, Ariana, Arianna, Arlene, Arnold, Arthur, Ashley, Audrey, Austin, Autumn, Ava, Avery, Avila, Ayala, Bailey, Baker, Banks, Barbara, Barnes, Barry, Beatrice, Begay, Bell, Ben, Benally, Benjamin, Bennet, Bennett, Bernard, Bernice, Bertha, Bessie, Beth, Bethany, Betty, Beulah, Beverly, Bill, Billy, Blake, Blanche, Bob, Bobby, Bonnie, Boyd, Brad, Bradley, Brandi, Brandon, Brandy, Brayden, Breanna, Brenda, Brent, Brett, Brian, Briana, Brianna, Brittany, Brittney, Brooke, Brooklyn, Brooks, Bruce, Bryan, Bryant, Bui, Burns, Butler, Cabrera, Caden, Caitlin, Calderon, Caleb, Calvin, Cameron, Campbell, Campos, Candice, Cao, Cardenas, Carl, Carla, Carlos, Carol, Carole, Caroline, Carrie, Carrillo, Carson, Carter, Casey, Cassandra, Castaneda, Castillo, Castro, Catherine, Cathy, Cecil, Cervantes, Chad, Chan, Chang, Charles, Charley, Charlie, Charlotte, Chase, Chau, Chavez, Chavis, Chee, Chelsea, Chen, Cheng, Cheryl, Chester, Cheung, Cheyenne, Chin, Chiu, Chloe, Cho, Choi, Chong, Chow, Chris, Christian, Christie, Christina, Christine, Christopher, Christy, Chu, Chung, Cindy, Claire, Clara, Clarence, Clark, Claude, Clifford, Clyde, Cody, Cole, Coleman, Colin, Colleen, Collins, Colon, Connie, Connor, Contreras, Cook, Cooper, Cora, Corey, Cortez, Cory, Courtney, Cox, Craig, Cruz, Crystal, Cummings, Curley, Curtis, Cynthia, Daisy, Dakota, Dale, Dalton, Dana, Dang, Daniel, Danielle, Daniels, Danny, Darlene, Darrell, Darren, Darryl, David, Davis, Dawn, Dean, Debbie, Deborah, Debra, Deleon, Delgado, Della, Delores, Denise, Dennis, Derek, Derrick, Desai, Destiny, Devin, Diana, Diane, Dianne, Diaz, Diego, Dinh, Dixon, Do, Dolores, Dominguez, Dominic, Dominique, Don, Donald, Donna, Dora, Doris, Dorothy, Douglas, Duong, Duran, Dustin, Dylan, Earl, Ed, Eddie, Edgar, Edith, Edna, Edward, Edwards, Edwin, Effie, Eileen, Elaine, Eleanor, Elijah, Elizabeth, Ella, Ellen, Ellis, Elmer, Elsie, Emily, Emma, Eric, Erica, Erik, Erika, Erin, Ernest, Espinoza, Esther, Estrada, Ethan, Ethel, Eugene, Eva, Evan, Evans, Evelyn, Everett, Faith, Fannie, Fernandez, Figueroa, Fisher, Flora, Florence, Flores, Floyd, Fong, Ford, Foster, Fox, Frances, Francis, Frank, Franklin, Fred, Frederick, Freeman, Fuentes, Gabriel, Gabriella, Gabrielle, Gail, Gallegos, Garcia, Garrett, Gary, Garza, Gavin, Gene, Genevieve, George, Georgia, Gerald, Geraldine, Gertrude, Gibson, Gilbert, Gina, Gladys, Glenda, Glenn, Gloria, Gomez, Gonzales, Gonzalez, Gordon, Grace, Gracie, Graham, Grant, Gregory, Griffin, Guerrero, Gutierrez, Guy, Guzman, Ha, Hailey, Haley, Hall, Hamilton, Han, Hannah, Hansen, Harold, Harris, Harrison, Harry, Harvey, Hattie, Hawkins, Hayden, Hayes, Heather, Heidi, Helen, Henderson, Henry, Herbert, Herman, Hernandez, Herrera, Hicks, Ho, Hoang, Holly, Holmes, Homer, Hong, Horace, Howard, Hsu, Hu, Huang, Hugh, Hughes, Hunt, Hunter, Huynh, Hwang, Ian, Ida, Ira, Irene, Isaac, Isabel, Isabella, Isabelle, Isaiah, Jack, Jackson, Jacob, Jacobs, Jacqueline, Jada, Jaden, James, Jamie, Jane, Janet, Janice, Jared, Jasmine, Jason, Jay, Jayden, Jean, Jeanne, Jeff, Jeffery, Jeffrey, Jenkins, Jenna, Jennie, Jennifer, Jeremiah, Jeremy, Jerome, Jerry, Jesse, Jessica, Jessie, Jesus, Jill, Jim, Jimenez, Jimmie, Jimmy, Jo, Joan, Joann, Joanna, Joanne, Jocelyn, Jodi, Joe, Joel, John, Johnnie, Johnny, Johnson, Jon, Jonathan, Jones, Jordan, Jose, Joseph, Josephine, Joshua, Joyce, Juan, Juanita, Juarez, Judith, Judy, Julia, Julian, Julie, June, Justin, Kaitlin, Kaitlyn, Kang, Kara, Karen, Katelyn, Katherine, Kathleen, Kathryn, Kathy, Katie, Katrina, Kaur, Kay, Kayla, Kaylee, Keith, Kelly, Kelsey, Kennedy, Kenneth, Kevin, Khan, Kim, Kimberly, King, Kristen, Kristin, Kristina, Krystal, Kumar, Kyle, Kylie, Lai, Lam, Landon, Lara, Larry, Latoya, Lau, Laura, Lauren, Laurie, Lawrence, Le, Leah, Lee, Lena, Leo, Leon, Leona, Leonard, Leroy, Leslie, Lester, Leung, Lewis, Li, Liang, Lillian, Lillie, Lily, Lim, Lin, Linda, Lindsay, Lindsey, Lisa, Liu, Lizzie, Lloyd, Lo, Locklear, Logan, Lois, Lopez, Loretta, Lori, Lorraine, Lottie, Louis, Louise, Lowery, Lu, Lucas, Lucille, Lucy, Luis, Luke, Lula, Luna, Luong, Luther, Luu, Ly, Lydia, Lynn, Ma, Mabel, Mackenzie, Madeline, Madison, Mae, Maggie, Makayla, Maldonado, Mamie, Marc, Marcia, Marcus, Margaret, Margie, Marguerite, Maria, Mariah, Marian, Marie, Marilyn, Marion, Marissa, Marjorie, Mark, Marlene, Marquez, Marshall, Martha, Martin, Martinez, Marvin, Mary, Mason, Matthew, Mattie, Maude, Maureen, Maxine, May, Maya, Mcdonald, Medina, Megan, Meghan, Mejia, Melanie, Melinda, Melissa, Melvin, Mendez, Mendoza, Meyer, Mia, Michael, Michele, Michelle, Miguel, Mike, Mildred, Miller, Milton, Minnie, Miranda, Mitchell, Molina, Molly, Monica, Montoya, Moore, Morales, Moreno, Morgan, Morris, Munoz, Murphy, Murray, Mya, Myers, Myrtle, Nancy, Natalie, Natasha, Nathan, Nathaniel, Navarro, Nellie, Nelson, Nettie, Nevaeh, Nez, Ng, Ngo, Nguyen, Nicholas, Nichole, Nicole, Noah, Nora, Norma, Norman, Nunez, Ochoa, Oh, Oliver, Olivia, Olson, Ortega, Ortiz, Oscar, Otis, Otto, Owen, Owens, Oxendine, Padilla, Paige, Pamela, Park, Parker, Patel, Patricia, Patrick, Patsy, Patterson, Paul, Paula, Pauline, Peggy, Pena, Penny, Perez, Perry, Peter, Peters, Peterson, Pham, Phan, Philip, Phillip, Phillips, Phyllis, Powell, Price, Rachael, Rachel, Ralph, Ramirez, Ramos, Randall, Randy, Ray, Raymond, Rebecca, Reed, Regina, Renee, Reyes, Reynolds, Rhonda, Richard, Richardson, Ricky, Riley, Rios, Rita, Rivas, Rivera, Robert, Robert Agnes, Roberta, Roberts, Robin, Robinson, Robles, Rodney, Rodriguez, Roger, Rogers, Rojas, Roland, Romero, Ronald, Ronnie, Roosevelt, Rosa, Rosales, Rose, Rosemary, Ross, Roy, Ruiz, Russell, Ruth, Ryan, Sabrina, Sadie, Salazar, Salinas, Sallie, Sally, Sam, Samantha, Samuel, Sanchez, Sanders, Sandoval, Sandra, Santiago, Santos, Sara, Sarah, Savannah, Schmidt, Scott, Sean, Sebastian, Selena, Serrano, Seth, Shah, Shane, Shannon, Sharma, Sharon, Shawn, Sheena, Sheila, Shelby, Shelly, Sherri, Sherry, Shin, Shirley, Sidney, Sierra, Silva, Simmons, Sims, Singh, Smith, Snyder, Sofia, Solis, Song, Sophia, Sophie, Soto, Spencer, Stacey, Stacy, Stanley, Stella, Stephanie, Stephen, Steve, Steven, Stevens, Stewart, Sue, Sullivan, Sun, Susan, Susie, Suzanne, Sydney, Sylvia, Tam, Tamara, Tammy, Tang, Tanner, Tanya, Tara, Taylor, Teresa, Terri, Terry, Thao, Thelma, Theodore, Theresa, Thomas, Thompson, Tiffany, Tim, Timothy, Tina, Todd, Tom, Tommy, Tony, Tonya, Torres, Tracey, Tracy, Tran, Travis, Trevor, Trinh, Trinity, Troy, Trujillo, Truong, Tso, Tsosie, Turner, Tyler, Valdez, Valerie, Vanessa, Vang, Vargas, Vasquez, Vazquez, Vega, Velasquez, Velma, Vera, Vernon, Veronica, Vicki, Vickie, Victor, Victoria, Vincent, Viola, Virgil, Virginia, Vivian, Vo, Vu, Wagner, Walker, Wallace, Walter, Wanda, Wang, Ward, Warren, Washington, Watson, Wayne, Webb, Wells, Wendy, Wesley, Whitney, Wilbur, Willard, William, Williams, Willie, Wilma, Wilson, Wong, Woodrow, Woods, Wright, Wu, Wyatt, Xavier, Xiong, Xu, Yang, Yazzie, Yee, Yi, Yoon, Yu, Yvonne, Zachary, Zhang, Zheng, Zhou, Zhu, and Zoe. A person has a name called the given name. A person has a name called the surname. [Definition: A person is nameless if the given name of it is nameless.] An ethnicity has a list of names called the common surname list. The common surname list of non-Hispanic white is {Smith, Johnson, Miller, Jones, Williams, Davis, Anderson, Wilson, Martin, Taylor, Moore, Thompson, Clark, Thomas, Hall, Baker, Nelson, Allen, Harris, King, Adams, Lewis, Walker, Wright, Roberts, Campbell, Jackson, Phillips, Scott, Robinson, Murphy, Cook, Lee, Evans, Peterson, Morris, Collins, Mitchell, Parker, Rogers, Stewart, Turner, Carter, Morgan, Cox, Kelly, Edwards, Bailey, Ward, Reed, Myers, Sullivan, Cooper, Bennett, Hughes, Fisher, Price, Russell, Howard, Bell, Watson, Reynolds, Foster, Ross, Olson, Richardson, Snyder, Powell, Stevens, Brooks, Perry, Cole, Wagner, Meyer, Kennedy, Barnes, Hamilton, Graham, Schmidt, Sanders, Mcdonald, Patterson, Murray, Gibson, Wallace, Butler, Hayes, Burns, Ellis, Fox, Henderson, Wells, Ryan, Jenkins, Hansen, Webb, James}. The common surname list of non-Hispanic black is {Williams, Johnson, Smith, Jones, Jackson, Davis, Thomas, Harris, Robinson, Taylor, Wilson, Moore, Lewis, Walker, Washington, Thompson, Anderson, Scott, Carter, Wright, Miller, Allen, Mitchell, Lee, Martin, Clark, Turner, Hall, King, Edwards, Coleman, James, Evans, Bell, Richardson, Adams, Brooks, Parker, Jenkins, Stewart, Howard, Campbell, Simmons, Sanders, Henderson, Collins, Cooper, Watson, Butler, Alexander, Bryant, Nelson, Morris, Barnes, Jordan, Reed, Woods, Dixon, Roberts, Phillips, Griffin, Baker, Powell, Bailey, Ford, Holmes, Banks, Daniels, Ross, Rogers, Perry, Foster, Patterson, Hunter, Owens, Grant, Marshall, Henry, Morgan, Price, Wallace, Ward, Hayes, Boyd, Freeman, Graham, Hamilton, Franklin, Hawkins, Gordon, Sims, Harrison, Ellis, Kelly, Hicks, Bennet, Joseph, Gibson}. The common surname list of Hispanic is {Garcia, Rodriguez, Martinez, Hernandez, Lopez, Gonzalez, Perez, Sanchez, Ramirez, Torres, Flores, Rivera, Gomez, Diaz, Reyes, Morales, Cruz, Ortiz, Gutierrez, Chavez, Ramos, Gonzales, Ruiz, Alvarez, Mendoza, Vasquez, Castillo, Jimenez, Moreno, Romero, Herrera, Medina, Aguilar, Garza, Castro, Vargas, Fernandez, Guzman, Munoz, Mendez, Salazar, Soto, Delgado, Pena, Rios, Alvarado, Sandoval, Contreras, Valdez, Guerrero, Ortega, Estrada, Nunez, Maldonado, Vega, Vazquez, Santiago, Dominguez, Espinoza, Silva, Padilla, Marquez, Cortez, Rojas, Acosta, Figueroa, Luna, Juarez, Navarro, Campos, Molina, Avila, Ayala, Mejia, Carrillo, Duran, Santos, Salinas, Robles, Solis, Lara, Cervantes, Aguirre, Deleon, Ochoa, Miranda, Cardenas, Trujillo, Velasquez, Fuentes, Cabrera, Leon, Rivas, Montoya, Calderon, Colon, Serrano, Gallegos, Rosales, Castaneda}. The common surname list of Asian-Pacific Islander is {Nguyen, Lee, Kim, Patel, Tran, Chen, Wong, Le, Yang, Wang, Chang, Chan, Pham, Li, Park, Singh, Lin, Liu, Wu, Huang, Lam, Huynh, Ho, Choi, Yu, Shah, Chung, Khan, Zhang, Vang, Truong, Ng, Phan, Lim, Xiong, Vu, Cheng, Cho, Vo, Tang, Ngo, Chu, Lu, Kang, Ly, Hong, Dang, Hoang, Do, Chin, Lau, Bui, Kaur, Han, Ma, Duong, Leung, Yee, Song, Cheung, Ali, Shin, Ahmed, Yi, Thao, Lai, Hsu, Fong, Reyes, Sun, Chow, Liang, Lo, Hwang, Santos, Cruz, Oh, Sharma, Chau, Garcia, Ha, Kumar, Xu, Desai, Thomas, Hu, Luu, Zhou, Dinh, Yoon, Trinh, Tam, Luong, Chong, Chiu, Zheng, Cao, Zhu}. The common surname list of native American is {Smith, Johnson, Begay, Yazzie, Locklear, Jones, Williams, Davis, Wilson, Thompson, Thomas, Miller, Jackson, Martin, Lee, Hunt, James, Lewis, Taylor, Anderson, Clark, Garcia, Martinez, Benally, Scott, Tsosie, Moore, Nelson, King, Jacobs, Oxendine, Walker, Nez, Harris, Allen, Mitchell, Phillips, John, Baker, Adams, Chavis, Morgan, Roberts, Hall, Lopez, Wright, Joe, Morris, Henry, Parker, Reed, George, Richardson, Carter, Robinson, Cook, Campbell, Chee, Collins, Bell, Edwards, Harrison, Evans, Stewart, Jim, Rogers, Stevens, Charley, Sanchez, Russell, Chavez, Bennett, Ward, Sandoval, Howard, Cooper, Ross, Murphy, Watson, Rodriguez, Peterson, Sam, Hernandez, Foster, Curley, Turner, Sanders, Lowery, Brooks, Peters, Spencer, Harvey, Perry, Henderson, Butler, Tso, Cummings, Bryant, Cox}. The temporary age is a number that varies. Age group is a kind of value. The age groups are age-0-9, age-10-19, age-20-29, age-30-39, age-40-49, age-50-59, age-60-69, age-70-79, age-80-89, age-90-99, age-100-109, and age-110-120. An age group has a list of names called the male given name list. An age group has a list of names called the female given name list. The male given name list of age-0-9 is {Aaron, Adam, Adrian, Aidan, Aiden, Alejandro, Alex, Alexander, Andrew, Angel, Anthony, Antonio, Austin, Benjamin, Blake, Brandon, Brayden, Brian, Bryan, Caden, Caleb, Cameron, Carlos, Carson, Carter, Charles, Chase, Christian, Christopher, Cody, Cole, Colin, Connor, Daniel, David, Devin, Diego, Dominic, Dylan, Elijah, Eric, Ethan, Evan, Gabriel, Gavin, Hayden, Hunter, Ian, Isaac, Isaiah, Jack, Jackson, Jaden, James, Jason, Jayden, Jeremiah, Jesse, Jesus, John, Jonathan, Jordan, Jose, Joseph, Joshua, Juan, Julian, Justin, Kevin, Kyle, Landon, Logan, Lucas, Luis, Luke, Mason, Matthew, Miguel, Nathan, Nathaniel, Nicholas, Noah, Owen, Richard, Robert, Ryan, Samuel, Sean, Sebastian, Seth, Steven, Thomas, Timothy, Tyler, William, Wyatt, Xavier, Zachary, Jacob, Michael}. [2005] The female given name list of age-0-9 is {Aaliyah, Abigail, Alexa, Alexandra, Alexis, Allison, Alyssa, Amanda, Amelia, Andrea, Angelina, Anna, Ariana, Arianna, Ashley, Audrey, Autumn, Ava, Avery, Brianna, Brooke, Brooklyn, Caroline, Chloe, Claire, Destiny, Diana, Elizabeth, Ella, Emma, Evelyn, Faith, Gabriella, Gabrielle, Grace, Gracie, Hailey, Haley, Hannah, Isabel, Isabella, Isabelle, Jada, Jasmine, Jenna, Jennifer, Jessica, Jocelyn, Jordan, Julia, Kaitlyn, Katelyn, Katherine, Katie, Kayla, Kaylee, Kimberly, Kylie, Lauren, Leah, Lillian, Lily, Mackenzie, Madeline, Madison, Makayla, Maria, Mariah, Marissa, Mary, Maya, Megan, Melanie, Mia, Michelle, Molly, Morgan, Mya, Natalie, Nevaeh, Nicole, Olivia, Paige, Rachel, Rebecca, Riley, Samantha, Sara, Sarah, Savannah, Sofia, Sophia, Stephanie, Sydney, Taylor, Trinity, Vanessa, Victoria, Zoe, Emily}. [2005] The male given name list of age-10-19 is {Aaron, Adam, Adrian, Alex, Alexander, Andrew, Anthony, Antonio, Austin, Benjamin, Blake, Bradley, Brandon, Brian, Bryan, Caleb, Cameron, Carlos, Charles, Chase, Christian, Christopher, Cody, Connor, Corey, Dakota, Dalton, Daniel, David, Derek, Devin, Dustin, Dylan, Edward, Elijah, Eric, Ethan, Evan, Gabriel, Garrett, Gregory, Hunter, Ian, Isaac, Jacob, James, Jared, Jason, Jeffrey, Jeremy, Jesse, Jesus, John, Jonathan, Jordan, Jose, Joseph, Joshua, Juan, Justin, Kenneth, Kevin, Kyle, Logan, Lucas, Luis, Luke, Marcus, Mark, Matthew, Miguel, Mitchell, Nathan, Nathaniel, Nicholas, Noah, Patrick, Paul, Peter, Richard, Robert, Ryan, Samuel, Scott, Sean, Seth, Shawn, Stephen, Steven, Tanner, Taylor, Thomas, Timothy, Travis, Trevor, Tyler, Victor, William, Zachary, Michael}. [1995] The female given name list of age-10-19 is {Abigail, Alexa, Alexandra, Alexandria, Alexis, Alicia, Allison, Alyssa, Amanda, Amy, Andrea, Angela, Anna, Ashley, Bailey, Breanna, Briana, Brianna, Brittany, Brittney, Brooke, Caitlin, Caroline, Cassandra, Catherine, Chelsea, Cheyenne, Christina, Courtney, Crystal, Danielle, Destiny, Elizabeth, Emily, Emma, Erica, Erin, Gabrielle, Grace, Haley, Hannah, Heather, Jacqueline, Jamie, Jasmine, Jenna, Jennifer, Jordan, Julia, Kaitlin, Kaitlyn, Katelyn, Katherine, Kathryn, Katie, Kayla, Kelly, Kelsey, Kimberly, Kristen, Laura, Lauren, Lindsey, Mackenzie, Madeline, Madison, Maria, Mariah, Marissa, Mary, Megan, Melissa, Michelle, Miranda, Molly, Monica, Morgan, Natalie, Nicole, Olivia, Paige, Rachel, Rebecca, Sabrina, Samantha, Sara, Sarah, Savannah, Selena, Shannon, Shelby, Sierra, Stephanie, Sydney, Taylor, Tiffany, Vanessa, Victoria, Jessica}. [1995] The male given name list of age-20-29 is {Aaron, Adam, Adrian, Alex, Alexander, Andrew, Anthony, Antonio, Benjamin, Blake, Bradley, Brandon, Brent, Brett, Brian, Bryan, Carlos, Casey, Chad, Charles, Christopher, Cody, Corey, Cory, Craig, Curtis, Daniel, David, Derek, Derrick, Donald, Douglas, Dustin, Edward, Eric, Erik, Evan, Frank, Gabriel, Gary, George, Gregory, Ian, Jacob, James, Jared, Jason, Jeffery, Jeffrey, Jeremy, Jesse, Joel, John, Jonathan, Jordan, Jose, Joseph, Joshua, Juan, Justin, Keith, Kenneth, Kevin, Kyle, Larry, Luis, Marcus, Mark, Matthew, Nathan, Nathaniel, Nicholas, Patrick, Paul, Peter, Philip, Phillip, Raymond, Richard, Robert, Ronald, Ryan, Samuel, Scott, Sean, Shane, Shawn, Stephen, Steven, Thomas, Timothy, Todd, Travis, Tyler, Victor, Vincent, Wesley, William, Zachary, Michael}. [1985] The female given name list of age-20-29 is {Alexandra, Alicia, Alison, Allison, Amanda, Amy, Andrea, Angela, Anna, April, Ashley, Bethany, Brandi, Brandy, Brittany, Brittney, Caitlin, Candice, Carrie, Cassandra, Catherine, Chelsea, Christina, Christine, Courtney, Crystal, Cynthia, Dana, Danielle, Diana, Dominique, Elizabeth, Emily, Erica, Erika, Erin, Heather, Holly, Jacqueline, Jamie, Jenna, Jennifer, Joanna, Julia, Julie, Kara, Karen, Katherine, Kathleen, Kathryn, Katie, Katrina, Kelly, Kimberly, Kristen, Kristin, Kristina, Krystal, Latoya, Laura, Lauren, Leah, Leslie, Lindsay, Lindsey, Lisa, Margaret, Maria, Mary, Megan, Meghan, Melanie, Melissa, Michelle, Monica, Natalie, Natasha, Nichole, Nicole, Patricia, Rachael, Rachel, Rebecca, Samantha, Sara, Sarah, Shannon, Sheena, Stacey, Stacy, Stephanie, Tara, Tiffany, Valerie, Vanessa, Veronica, Victoria, Whitney, Jessica}. [1985] The male given name list of age-30-39 is {Aaron, Adam, Andrew, Anthony, Antonio, Benjamin, Billy, Bobby, Brad, Bradley, Brandon, Brent, Brett, Brian, Bryan, Carl, Carlos, Chad, Charles, Christopher, Corey, Cory, Craig, Daniel, Danny, David, Dennis, Derek, Derrick, Donald, Douglas, Dustin, Edward, Eric, Erik, Frank, Gary, George, Gregory, Jacob, James, Jamie, Jared, Jason, Jeffery, Jeffrey, Jeremy, Jerry, Jesse, Joel, John, Johnny, Jonathan, Jose, Joseph, Joshua, Juan, Justin, Keith, Kenneth, Kevin, Kyle, Larry, Marc, Marcus, Mark, Matthew, Nathan, Nicholas, Patrick, Paul, Peter, Philip, Phillip, Randy, Raymond, Richard, Robert, Rodney, Roger, Ronald, Russell, Ryan, Samuel, Scott, Sean, Shane, Shawn, Stephen, Steven, Terry, Thomas, Timothy, Todd, Tony, Travis, Troy, Victor, William, Michael}. [1975] The female given name list of age-30-39 is {Alicia, Allison, Amanda, Amy, Andrea, Angela, Anna, April, Barbara, Brandi, Brandy, Brenda, Carrie, Catherine, Cheryl, Christie, Christina, Christine, Christy, Crystal, Cynthia, Dana, Danielle, Dawn, Deborah, Denise, Diana, Donna, Elizabeth, Emily, Erica, Erin, Gina, Heather, Heidi, Holly, Jacqueline, Jamie, Jessica, Jill, Jodi, Julie, Karen, Katherine, Kathleen, Kathryn, Kelly, Kimberly, Kristen, Kristin, Laura, Leslie, Linda, Lisa, Lori, Margaret, Maria, Mary, Megan, Melanie, Melinda, Melissa, Michele, Michelle, Monica, Nancy, Nicole, Pamela, Patricia, Rachel, Rebecca, Renee, Rhonda, Robin, Sandra, Sara, Sarah, Shannon, Sharon, Sherry, Stacey, Stacy, Stephanie, Susan, Tamara, Tammy, Tanya, Tara, Teresa, Theresa, Tiffany, Tina, Tonya, Tracy, Valerie, Veronica, Wendy, Jennifer}. [1975] The male given name list of age-40-49 is {Alan, Albert, Allen, Andrew, Anthony, Arthur, Barry, Billy, Bobby, Bradley, Brian, Bruce, Bryan, Carl, Charles, Chris, Christopher, Craig, Curtis, Dale, Daniel, Danny, Darrell, Darren, Darryl, David, Dean, Dennis, Donald, Douglas, Edward, Eric, Frank, Gary, George, Gerald, Glenn, Gregory, Harold, Henry, James, Jay, Jeff, Jeffery, Jeffrey, Jerry, Jimmy, Joe, John, Johnny, Jon, Jonathan, Jose, Joseph, Keith, Kenneth, Kevin, Larry, Lawrence, Mark, Martin, Matthew, Mike, Patrick, Paul, Peter, Philip, Phillip, Randall, Randy, Raymond, Richard, Ricky, Robert, Rodney, Roger, Ronald, Roy, Russell, Samuel, Scott, Sean, Shawn, Stephen, Steve, Steven, Terry, Thomas, Tim, Timothy, Todd, Tony, Troy, Victor, Vincent, Walter, Wayne, William, Willie, Michael}. [1965] The female given name list of age-40-49 is {Amy, Andrea, Angela, Anita, Ann, Anna, Anne, Annette, Barbara, Beth, Bonnie, Brenda, Carla, Carol, Catherine, Cathy, Cheryl, Christina, Christine, Cindy, Colleen, Connie, Cynthia, Dana, Darlene, Dawn, Debbie, Deborah, Debra, Denise, Diana, Diane, Donna, Elizabeth, Gina, Jacqueline, Jane, Janet, Janice, Jennifer, Jill, Joyce, Judy, Julie, Karen, Katherine, Kathleen, Kathryn, Kathy, Kelly, Kim, Kimberly, Laura, Laurie, Leslie, Linda, Lori, Lynn, Margaret, Maria, Martha, Mary, Melinda, Melissa, Michele, Michelle, Monica, Nancy, Pamela, Patricia, Paula, Penny, Rebecca, Regina, Renee, Rhonda, Robin, Sandra, Sarah, Sharon, Sheila, Shelly, Sherri, Sherry, Stacey, Stephanie, Susan, Suzanne, Tammy, Teresa, Terri, Theresa, Tina, Tracey, Tracy, Valerie, Wanda, Wendy, Lisa}. [1965] The male given name list of age-50-59 is {Alan, Albert, Allen, Andrew, Anthony, Arthur, Barry, Billy, Bobby, Brian, Bruce, Carl, Charles, Christopher, Craig, Curtis, Dale, Daniel, Danny, Darrell, David, Dennis, Donald, Douglas, Eddie, Edward, Eric, Ernest, Eugene, Francis, Frank, Fred, Frederick, Gary, George, Gerald, Glenn, Gregory, Harold, Harry, Henry, Howard, Jack, James, Jeffery, Jeffrey, Jerry, Jimmy, Joe, John, Johnny, Joseph, Keith, Kenneth, Kevin, Kim, Larry, Lawrence, Lee, Leonard, Louis, Mark, Martin, Marvin, Melvin, Patrick, Paul, Peter, Philip, Phillip, Ralph, Randall, Randy, Raymond, Richard, Ricky, Robert, Rodney, Roger, Ronald, Ronnie, Roy, Russell, Samuel, Scott, Stanley, Stephen, Steve, Steven, Terry, Thomas, Timothy, Tony, Vincent, Walter, Wayne, William, Willie, Michael}. [1955] The female given name list of age-50-59 is {Alice, Anita, Ann, Anne, Barbara, Betty, Beverly, Bonnie, Brenda, Carol, Catherine, Cathy, Cheryl, Christine, Cindy, Connie, Cynthia, Darlene, Debbie, Deborah, Debra, Denise, Diana, Diane, Donna, Dorothy, Elaine, Elizabeth, Ellen, Frances, Gail, Gloria, Helen, Jacqueline, Jane, Janet, Janice, Jean, Jo, Joan, Joanne, Joyce, Judith, Judy, Julie, Karen, Katherine, Kathleen, Kathryn, Kathy, Kim, Laura, Laurie, Leslie, Linda, Lisa, Lori, Lynn, Marcia, Margaret, Maria, Marie, Marilyn, Martha, Maureen, Michele, Michelle, Nancy, Pamela, Patricia, Paula, Peggy, Phyllis, Rebecca, Rhonda, Rita, Robin, Rose, Ruth, Sally, Sandra, Sharon, Sheila, Sherry, Shirley, Susan, Suzanne, Teresa, Terri, Terry, Theresa, Valerie, Vicki, Vickie, Victoria, Virginia, Wanda, Wendy, Mary}. [1955] The male given name list of age-60-69 is {Alan, Albert, Alfred, Allen, Andrew, Anthony, Arthur, Barry, Bernard, Bill, Billy, Bobby, Bruce, Carl, Charles, Clarence, Clifford, Curtis, Dale, Daniel, Danny, David, Dennis, Don, Donald, Douglas, Earl, Eddie, Edward, Ernest, Eugene, Francis, Frank, Fred, Frederick, Gary, Gene, George, Gerald, Glenn, Gregory, Harold, Harry, Henry, Herbert, Howard, Jack, Jeffrey, Jerry, Jim, Jimmy, Joe, John, Johnny, Joseph, Kenneth, Larry, Lawrence, Lee, Leonard, Leroy, Louis, Mark, Martin, Marvin, Melvin, Michael, Mike, Norman, Patrick, Paul, Peter, Philip, Phillip, Ralph, Ray, Raymond, Richard, Robert, Roger, Ronald, Ronnie, Roy, Russell, Samuel, Stanley, Stephen, Steve, Steven, Terry, Thomas, Timothy, Tom, Tommy, Victor, Walter, Wayne, William, Willie, James}. [1945] The female given name list of age-60-69 is {Alice, Anita, Ann, Anna, Anne, Annie, Arlene, Barbara, Betty, Beverly, Bonnie, Brenda, Carol, Carole, Catherine, Charlotte, Cheryl, Christine, Connie, Cynthia, Darlene, Diana, Diane, Dianne, Donna, Doris, Dorothy, Eileen, Elaine, Elizabeth, Ellen, Evelyn, Frances, Gail, Geraldine, Glenda, Gloria, Helen, Irene, Jacqueline, Jane, Janet, Janice, Jean, Jeanne, Jo, Joan, Joann, Joanne, Joyce, Judith, Judy, Karen, Katherine, Kathleen, Kathryn, Kay, Laura, Linda, Lois, Lorraine, Louise, Marcia, Margaret, Maria, Marie, Marilyn, Marjorie, Martha, Mildred, Nancy, Norma, Pamela, Patricia, Patsy, Paula, Peggy, Phyllis, Rebecca, Rita, Roberta, Rose, Rosemary, Ruth, Sally, Sandra, Sarah, Sharon, Sheila, Shirley, Sue, Susan, Suzanne, Sylvia, Theresa, Virginia, Wanda, Mary}. [1945] The male given name list of age-70-79 is {Albert, Alfred, Allen, Alvin, Andrew, Anthony, Arthur, Bernard, Bill, Billy, Bob, Bobby, Bruce, Carl, Charles, Charlie, Clarence, Clifford, Clyde, Dale, Daniel, David, Dennis, Don, Donald, Douglas, Earl, Eddie, Edward, Edwin, Ernest, Eugene, Floyd, Francis, Frank, Franklin, Fred, Frederick, Gary, Gene, George, Gerald, Glenn, Gordon, Harold, Harry, Harvey, Henry, Herbert, Howard, Jack, James, Jerome, Jerry, Jim, Jimmie, Jimmy, Joe, John, Johnny, Joseph, Kenneth, Larry, Lawrence, Lee, Leo, Leon, Leonard, Leroy, Lewis, Lloyd, Louis, Martin, Marvin, Melvin, Michael, Norman, Paul, Peter, Philip, Ralph, Ray, Raymond, Richard, Roger, Ronald, Roy, Russell, Samuel, Stanley, Theodore, Thomas, Tommy, Vernon, Walter, Warren, Wayne, William, Willie, Robert}. [1935] The female given name list of age-70-79 is {Alice, Ann, Anna, Anne, Annie, Arlene, Audrey, Barbara, Bernice, Betty, Beverly, Bonnie, Carol, Carole, Catherine, Charlotte, Clara, Darlene, Delores, Dolores, Donna, Doris, Dorothy, Edith, Edna, Elaine, Eleanor, Elizabeth, Ellen, Emma, Esther, Ethel, Evelyn, Florence, Frances, Geraldine, Gladys, Gloria, Grace, Helen, Irene, Jacqueline, Jane, Janet, Janice, Jean, Jo, Joan, Joann, Joanne, Josephine, Joyce, Juanita, Judith, June, Kathleen, Lillian, Lois, Loretta, Lorraine, Louise, Lucille, Margaret, Margie, Marie, Marilyn, Marion, Marjorie, Marlene, Martha, Mildred, Nancy, Norma, Patricia, Patsy, Pauline, Peggy, Phyllis, Rita, Roberta, Rose, Rosemary, Ruth, Sally, Sandra, Sarah, Sharon, Shirley, Sylvia, Thelma, Theresa, Virginia, Wanda, Willie, Wilma, Yvonne, Mary}. [1935] The male given name list of age-80-89 is {Albert, Alfred, Allen, Alvin, Andrew, Anthony, Arnold, Arthur, Benjamin, Bernard, Bill, Billy, Calvin, Carl, Cecil, Charles, Charlie, Chester, Clarence, Clifford, Clyde, Dale, Daniel, David, Donald, Earl, Edgar, Edward, Edwin, Elmer, Ernest, Eugene, Floyd, Francis, Frank, Fred, Frederick, George, Gerald, Glenn, Gordon, Harold, Harry, Harvey, Henry, Herbert, Herman, Howard, Jack, James, Jesse, Joe, John, Johnnie, Joseph, Kenneth, Lawrence, Lee, Leo, Leon, Leonard, Leroy, Lester, Lewis, Lloyd, Louis, Martin, Marvin, Melvin, Michael, Milton, Norman, Oscar, Paul, Peter, Philip, Ralph, Ray, Raymond, Richard, Roger, Roland, Roy, Russell, Sam, Samuel, Stanley, Theodore, Thomas, Vernon, Victor, Vincent, Wallace, Walter, Warren, Wayne, Willard, William, Willie, Robert}. [1925] The female given name list of age-80-89 is {Agnes, Alice, Alma, Ann, Anna, Anne, Annie, Audrey, Barbara, Beatrice, Bernice, Bertha, Bessie, Betty, Catherine, Charlotte, Clara, Dolores, Doris, Dorothy, Edith, Edna, Eileen, Elaine, Eleanor, Elizabeth, Ella, Elsie, Emma, Esther, Ethel, Eva, Evelyn, Florence, Frances, Geraldine, Gertrude, Gladys, Gloria, Grace, Helen, Ida, Irene, Jane, Jean, Jeanne, Jessie, Joan, Josephine, Joyce, Juanita, Julia, June, Katherine, Kathleen, Kathryn, Laura, Lillian, Lillie, Lois, Lorraine, Louise, Lucille, Margaret, Margie, Marian, Marie, Marilyn, Marion, Marjorie, Martha, Mattie, Maxine, Mildred, Myrtle, Nancy, Nellie, Norma, Patricia, Pauline, Phyllis, Rita, Rose, Ruth, Sarah, Shirley, Thelma, Theresa, Vera, Viola, Virginia, Vivian, Wanda, Willie, Wilma, Mary}. [1925] The male given name list of age-90-99 is {Albert, Alfred, Allen, Alvin, Andrew, Anthony, Arnold, Arthur, Benjamin, Bernard, Carl, Cecil, Charles, Charlie, Chester, Clarence, Claude, Clifford, Clyde, Daniel, David, Donald, Earl, Edgar, Edward, Edwin, Elmer, Ernest, Eugene, Everett, Floyd, Francis, Frank, Fred, Frederick, George, Gerald, Gilbert, Glenn, Gordon, Harold, Harry, Harvey, Henry, Herbert, Herman, Homer, Howard, Jack, James, Jesse, Joe, Joseph, Kenneth, Lawrence, Lee, Leo, Leon, Leonard, Leroy, Lester, Lewis, Lloyd, Louis, Martin, Marvin, Melvin, Michael, Milton, Morris, Norman, Oscar, Paul, Peter, Philip, Ralph, Ray, Raymond, Richard, Robert, Roy, Russell, Sam, Samuel, Sidney, Stanley, Stephen, Theodore, Thomas, Vernon, Victor, Vincent, Walter, Wayne, Wilbur, Willard, William, Willie, Woodrow, John}. [1915] The female given name list of age-90-99 is {Agnes, Alice, Alma, Ann, Anna, Anne, Annie, Barbara, Beatrice, Bernice, Bertha, Bessie, Betty, Beulah, Blanche, Catherine, Charlotte, Clara, Doris, Dorothy, Edith, Edna, Eleanor, Elizabeth, Ella, Ellen, Elsie, Emily, Emma, Esther, Ethel, Eva, Evelyn, Florence, Frances, Genevieve, Gertrude, Gladys, Grace, Helen, Ida, Irene, Jane, Jean, Jennie, Jessie, Josephine, Juanita, Julia, June, Katherine, Kathryn, Laura, Lena, Leona, Lillian, Lillie, Lois, Louise, Lucille, Lucy, Mabel, Mae, Margaret, Marguerite, Marian, Marie, Marion, Marjorie, Martha, Mattie, Maxine, Mildred, Minnie, Myrtle, Nellie, Pauline, Phyllis, Rita, Rose, Ruth, Sarah, Sophie, Stella, Sylvia, Thelma, Theresa, Velma, Vera, Viola, Virginia, Vivian, Willie, Wilma, Mary}. [1915] The male given name list of age-100-109 is {Albert, Alfred, Allen, Alvin, Andrew, Anthony, Arthur, Ben, Benjamin, Bernard, Carl, Cecil, Charles, Charlie, Chester, Clarence, Claude, Clifford, Clyde, Daniel, David, Donald, Earl, Eddie, Edgar, Edward, Edwin, Elmer, Ernest, Eugene, Everett, Floyd, Francis, Frank, Fred, Frederick, George, Harold, Harry, Harvey, Henry, Herbert, Herman, Homer, Howard, Jack, Jacob, James, Jesse, Jessie, Jim, Joe, Johnnie, Joseph, Kenneth, Lawrence, Lee, Leo, Leon, Leonard, Leroy, Leslie, Lester, Lewis, Lloyd, Louis, Luther, Martin, Marvin, Melvin, Michael, Milton, Norman, Oscar, Otis, Paul, Peter, Philip, Ralph, Ray, Raymond, Richard, Robert, Roosevelt, Roy, Russell, Sam, Samuel, Stanley, Stephen, Theodore, Thomas, Tom, Victor, Virgil, Walter, William, Willie, John}. [1905] The female given name list of age-100-109 is {Ada, Agnes, Alice, Alma, Ann, Anna, Anne, Annie, Beatrice, Bernice, Bertha, Bessie, Betty, Beulah, Blanche, Carrie, Catherine, Clara, Cora, Daisy, Dora, Doris, Dorothy, Edith, Edna, Eleanor, Elizabeth, Ella, Ellen, Elsie, Emily, Emma, Esther, Ethel, Eva, Evelyn, Fannie, Florence, Frances, Georgia, Gertrude, Gladys, Grace, Hattie, Helen, Ida, Irene, Jennie, Jessie, Josephine, Julia, Katherine, Kathryn, Laura, Lena, Leona, Lillian, Lillie, Lois, Louise, Lucille, Lucy, Lula, Mabel, Mae, Maggie, Mamie, Margaret, Marguerite, Marie, Marion, Marjorie, Martha, Mattie, Maude, Mildred, Minnie, Myrtle, Nellie, Nora, Pauline, Rosa, Rose, Ruth, Sadie, Sarah, Stella, Susie, Thelma, Velma, Vera, Viola, Virginia, Willie, Mary}. [1905] The male given name list of age-110-120 is {Albert, Alexander, Alfred, Allen, Andrew, Anthony, Archie, Arthur, Ben, Benjamin, Bernard, Carl, Cecil, Charles, Charlie, Chester, Clarence, Claude, Clifford, Clyde, Daniel, David, Donald, Earl, Ed, Eddie, Edgar, Edward, Edwin, Elmer, Ernest, Eugene, Everett, Floyd, Francis, Frank, Fred, Frederick, George, Guy, Harold, Harry, Harvey, Henry, Herbert, Herman, Homer, Horace, Howard, Hugh, Ira, Jack, Jacob, James, Jesse, Jessie, Jim, Joe, Joseph, Lawrence, Lee, Leo, Leon, Leonard, Leroy, Leslie, Lester, Lewis, Lloyd, Louis, Luther, Martin, Michael, Norman, Oliver, Oscar, Otto, Patrick, Paul, Peter, Philip, Ralph, Ray, Raymond, Richard, Robert, Roy, Russell, Sam, Samuel, Stanley, Theodore, Thomas, Tom, Victor, Walter, William, Willie, John}. [1895] The female given name list of age-110-120 is {Ada, Agnes, Alice, Alma, Ann, Anna, Annie, Beatrice, Bertha, Bessie, Beulah, Blanche, Carrie, Catherine, Clara, Cora, Daisy, Della, Dora, Dorothy, Edith, Edna, Effie, Eleanor, Elizabeth, Ella, Ellen, Elsie, Emily, Emma, Esther, Ethel, Eva, Evelyn, Fannie, Flora, Florence, Frances, Georgia, Gertrude, Gladys, Grace, Hattie, Helen, Ida, Irene, Jennie, Jessie, Josephine, Julia, Katherine, Kathryn, Katie, Laura, Lena, Lillian, Lillie, Lizzie, Lottie, Louise, Lucy, Lula, Lydia, Mabel, Mae, Maggie, Mamie, Margaret, Marguerite, Marie, Marion, Martha, Mattie, Maude, May, Mildred, Minnie, Myrtle, Nancy, Nellie, Nettie, Nora, Pauline, Rosa, Rose, Ruth, Sadie, Sallie, Sarah, Stella, Susie, Vera, Viola, Virginia, Willie, Mary}. [1895] Volume 6 - Memories A memory is a kind of thing. A core memory is a kind of memory. A crime-related memory is a kind of memory. An contextual memory is a kind of memory. A memory can be triggered or untriggered. A memory is usually untriggered. Book 1 - Preparing Memories A memory has a person called the associated NPC. The potential NPC list is a list of NPCs that varies. To prepare memories: DM "Preparing memories."; prepare core memories; prepare crime-related memories; prepare contextual memories. Book 2 - Core Memories The news memory is a core memory in Z1. The meditation memory is a core memory in Z1. The selection memory is a core memory in Z1. The grief memory is a core memory in Z1. The responsibility memory is a core memory in Z1. Chapter 1 - Preparing Core Memories To prepare core memories: DM "Preparing core memories."; repeat with target memory running through the core memories: now the current memory is the target memory; now the potential NPC list is {}; repeat with target NPC running through the NPCs: if the target memory is the grief memory or the target memory is the responsibility memory: if the target NPC is not the victim: add the target NPC to the potential NPC list; otherwise: add the target NPC to the potential NPC list; sort the potential NPC list in random order; now the associated NPC of the current memory is entry 1 of the potential NPC list. To remember a core memory: now the current person is the associated NPC of the current memory; if the current memory is the news memory: remember a news memory; otherwise if the current memory is the meditation memory: remember a meditation memory; otherwise if the current memory is the selection memory: remember a selection memory; otherwise if the current memory is the grief memory: remember a grief memory; otherwise if the current memory is the responsibility memory: remember a responsibility memory. Chapter 2 - News Memories To remember a news memory: now the current person is the associated NPC of the current memory; DM "(Remembering a news memory associated with [given name of the current person] [surname of the current person] ([gr of the current person]).)"; say "----------[paragraph break]"; if the age of the current person < 15 and the relationship of the current person is child: [Young children] say "You were at home when you heard the news. You didn't hear the first announcement, actually, because you'd been too busy [if the profession of the player is unemployed or the profession of the player is student]with your tax forms - of all the stupid things - [otherwise]at work - the life of a [profession of the player] is never really slow - [end if]and you got buried in paperwork and somehow didn't really talk to anyone that day, and somehow, no one reached out to you.[paragraph break]The news media called it the Unveiling. They wrote about the old gods, the new gods, the gods only just now discovered - gods of corruption and death and madness, gods that you could reach out and invoke just by knowing the right shape to make with your mind. And you went to the door where your [if the current person is female] daughter[otherwise]son[end if] [given name of the current person] lay sleeping, and you thought about how [zhe] would grow up in this terrible new world. And you thought about touching [zher] [skin tone of the current person] cheek and lifting [zher] up to cradle [zhim] in your arms, and you thought about telling [zhim] that you loved [zhim].[paragraph break]But you went away, and left the door closed after all. [Zhe] could be afraid some other day. Not tonight. Let [zhim] sleep."; otherwise if the relationship of the current person is ex-spouse or the relationship of the current person is ex-lover: [Ex-romances] say "Later, the media called it the Unveiling. They had to call it something; otherwise, how could you build 30-second bites, and what would people type into search engines?[paragraph break]But at the time, there wasn't a name for it. There was just the stuttering, dazed news announcer looking at the camera like [one of]she[or]he[at random] couldn't believe in the teleprompter, and you "; if the current person likes the player: say "felt [given name of the current person] reach out to you and wind [zher] hand around yours, gripping it for comfort. [Zhe] was your [gr of the current person], but for a moment, it didn't matter. [Zher] [eye color of the current person] eyes clung to you for comfort, wide in [zher] [physical impression] face, and you "; if the actual height of the player > the actual height of the current person: say "drew [zhim] close and wrapped an arm around [zher] shoulders and kissed [zher] [hair reference] and [zhe] leaned into you for comfort."; otherwise: say "let [zhim] draw you close and wrap an arm around your shoulders and rest [zher] cheek against yours[if the current person is fuzzy], ignoring, for once, the tickling of [zher] [facial hair][end if]."; otherwise if the current person dislikes the player: say "held hands with your [gr of the current person] because, for once, [given name of the current person] didn't flinch away. [Zher] fingers even tightened on yours, and you looked at your hands because you couldn't quite believe that, either, those [skin tone of the current person] fingers so tight against your own [skin tone of the player] hand."; otherwise: say "reached out to [given name of the current person] and touched [zher] [skin tone of the current person] hand, and [zhe] looked at you - not at the reporter, at you - and pulled away. The world was ending, but [given name of the current person] [surname of the current person] only had ice in [zher] [eye color of the current person] eyes, and for a moment, it felt like the world wasn't ending after all, because the world had secretly ended when [one of][zhe] left you[or]you left [zhim][at random]. You just hadn't known it at the time."; say "[line break]The reporter talked about the old gods, the new gods, the gods only just now discovered. Gods of corruption and death and madness, gods that you could reach out and invoke just by knowing the right shape to make with your mind. And no one's life was ever the same afterward.[paragraph break]But the reporters built 30-second sound bites about it anyway, and that was all right, because life had to go on. And if your life had ended a little, it had ended a little once before, and you knew that life continued. Even if it wasn't the same life."; otherwise if the relationship of the current person is lover or the relationship of the current person is fiancee or the relationship of the current person is spouse: [Current romances] say "Later, the media called it the Unveiling. They had to call it something; otherwise, how could you build 30-second bites, and what would people type into search engines?[paragraph break]But at the time, there wasn't a name for it. There was just the stuttering, dazed news announcer looking at the camera like [one of]she[or]he[at random] couldn't believe in the teleprompter, and you stood staring at the screen and thinking of [given name of the current person].[paragraph break]"; if the current person likes the player: say "You stood thinking of [zher] [one of]tentative[or]brilliant[or]daring[or]delicious[at random] smile, and [zher] favorite [color preference of the current person] [one of]scarf[or]sweater[or]shirt[or]pants[or]motorcycle[or]slippers[or]jacket[or]bathrobe[or]quilt[at random], and [zher] [eye color of the current person] eyes, and the first time [zhe] leaned forward to press [zher] lips against yours. You thought of all the bravery it took when [zhe] [one of]asked to be your[or]said yes to being your[at random] [gr of the current person]. And you wondered if it even mattered any more.[line break]"; otherwise if the affection strength of the current person is 3: say "You stood thinking of how [zhe] "; if the style numeric of the current person < 3: say "stood in front of the mirror for a careful inspection"; otherwise if the style numeric of the current person is 3: say "glanced at the mirror"; otherwise if the style numeric of the current person > 3: say "walked past the mirror in the morning without even a glance"; say ", dressed [style impression of the current person] as always, and out the door. And back in again at the end of the day, tired of [if the profession of the current person is unemployed]the rhythms of the city[otherwise] being a [profession of the current person][end if] and ready to be your [gr of the current person] again, drawing you into the familiar circle of [zher] [skin tone of the current person] arms even as [zher] eyes closed and [zhe] entered some inner world. You thought that, if the reporter was right, there would never really be a chance to get it right - maybe it never could have been right, after all."; otherwise: say "You stood wondering if this was why things had gone wrong between you and [given name of the current person], and whether this was a sign - a macrocosmic event written microcosmically across the bond between you and your [gr of the current person]. You thought of lacing fingers with [zher] a seeming thousand years ago beneath a [one of]red[or]blue[or]green[or]white[or]yellow[or]teal[or]purple[at random] awning that protected you from the [one of]warm[or]cold[or]ice-tipped[or]freezing[or]summer[or]winter[or]autumn[or]spring[at random] rain. You thought of the ice in [zher] [eye color of the current person] eyes now and the way [zhe] turned away in the night, pulling the covers up to hide zher [skin tone of the current person] shoulder, spurning closeness even in [zher] sleep."; say "[line break]The reporter talked about the old gods, the new gods, the gods only just now discovered. And no one's life was ever the same afterward. But you and [given name of the current person] went on anyway, somehow"; if the current person likes the player: say ". You drew strength from each other, and you went on."; otherwise if the affection strength of the current person is 3: let K be a random number between 1 and 3; if K is 1: say ", paired like two huskies on a sledding team, too accustomed to pulling in tandem to break the traces."; otherwise if K is 2: say ". You fit like two pieces of a puzzle, even if the puzzle didn't have a very interesting picture, even if some of the pieces were missing."; otherwise if K is 3: say ". You helped each other to shoulder the burden like two horses in harness, pulling from habit if not from love."; otherwise: say ", despite every reason to stop."; otherwise if the relationship of the current person is colleague or the relationship of the current person is supervisor or the relationship of the current person is employee: [Work contacts] say "You were at work when you heard the news. [Given name of the current person] [surname of the current person] called out, and the strange note in your [gr of the current person][apostrophe]s voice brought you running. [Zhe][apostrophe]d already watched the newscast through once, and [zhe] stood by as you watched the newscaster stutter through the strangest report ever.[paragraph break]The media called it the Unveiling. The newscaster's voice was confusion, a confusion filled with the old gods, the new gods, the gods only just now discovered - gods of corruption and death and madness, gods that you could reach out and invoke just by knowing the right shape to make with your mind.[paragraph break]And for a moment, you felt suspicious of the [style impression of the current person] dressed [zhoman] beside you, uncertain of the heart behind [zher] [physical impression of the current person] face, and you wondered what shapes [zher] mind might have drawn in the past, and what forces those shapes might have called upon. "; if the current person likes the player: say "But the wave of guilt was terrible, and you put the suspicion out of your mind immediately. You'd known [given name of the current person] far too long to think such bizarre things.[paragraph break]When you touched [zher] shoulder for comfort, you found that [zhe] was shaking, and you knew you were as well. You maintained the contact for a moment, [skin tone of the player] fingers against the [color preference of the current person] fabric, because of the guilt, and because you were friends for a moment instead of coworkers. And because you were afraid"; otherwise if the affection strength of the current person is 3: say "And then you thought of the shapes of your own mind - the joys and the jealousies, the triumphs and the havoc, and wondered what forces you might have called down yourself. And [given name of the current person] [surname of the current person] , standing with [zher] [eye color of the current person] eyes wide and one [skin tone of the current person] hand clenched on the back of a chair, was only your [gr of the current person] again, not some [style impression of the current person] dressed force of apocalypse"; otherwise: say "But memories of [given name of the current person][apostrophe]s endless nattering on about [zher] childhood and the glories of [hobby of the current person] and the difficulties of being a [profession of the current person] rebuked you. [Zhe] was too human, even if you disliked [zhim] - because you disliked [zhim]. And for a moment, you were glad of that dislike"; say ".[paragraph break]The reporter talked about the old gods, the new gods, the gods only just now discovered. And no one's life was ever the same afterward. Including the reporter's, and [given name of the current person][apostrophe]s, and most certainly yours."; otherwise if the relationship of the current person is grandparent or the relationship of the current person is parent or the relationship of the current person is sibling or the relationship of the current person is cousin or the relationship of the current person is child: [Family] say "You picked up the phone and found that it was your [gr of the current person] calling. 'I'd like to speak with [given name of the player] [surname of the player],' [zhe] said formally, and then, '[Reverse nickname of the current person]? Is that you?' [Zher] voice sounded strange, and you answered quickly that yes, it was you. And then [zhe] asked you to turn on the television, and to tell [zhim] if this was really happening.[paragraph break]The news media called it the Unveiling. They talked about the old gods, the new gods, the gods only just now discovered - gods of corruption and death and madness, gods that you could reach out and invoke just by knowing the right shape to make with your mind.[paragraph break]And you stood there with the phone slack in your hand, "; if the current person likes the player: say "wondering whether this was a dream. It made you feel afraid to hear your [gr of the current person] sound afraid. You heard [zhim] calling again and again,"; otherwise if the affection strength of the current person is 3: say "unable to focus no matter how you tried, as [nickname of the current person] asked again and again,"; otherwise: say "not really listening to the [gr of the current person] you didn't really love calling again and again,"; say "'[Reverse nickname of the current person]? I don't understand, what's going on? [Reverse nickname of the current person]?' until the phone fell and you watched it clatter and wondered if the world would ever stop feeling far away and strange."; otherwise if the relationship of the current person is mentor: say "You had just arrived at a private session with [given name of the current person] [surname of the current person], another in your latest series of [hobby of the current person] classes, when you heard the news. [Zhe] looked up at you, bewilderment breaking over [zher] [physical impression of the current person] face, and pulled the headphones out of the radio so that you could hear as well.[paragraph break]The news media called it the Unveiling. The frightened announcer talked about the old gods, the new gods, the gods only just now discovered - gods of corruption and death and madness, gods that you could reach out and invoke just by knowing the right shape to make with your mind. It seemed so far away from [hobby of the current person], so far away from [if the profession of the player is unemployed] the various worries of bills and unemployment[otherwise]being a [profession of the player][end if], so far away from anything real"; if the current person likes the player: say ".[paragraph break]You hugged [given name of the current person] because you had to - there was something so lost in [zher] eyes, and you had to comfort it. And when [zher] arms tightened around your shoulders in turn, you thought, [italic type]Whatever this means, it is not the end.[roman type]"; otherwise if the affection strength of the current person is 3: say ".[paragraph break]You walked out - just turned your back on [zhim], ignoring the sudden cry of 'Where are you going?' The money, the commitment, your various hopes and curiosities - they just didn't seem that important, suddenly. You could apologize later, if the world didn't end.[paragraph break]Which it didn't, of course."; otherwise: say ".[paragraph break]You turned your back - and [zhe] caught your shoulder in one [skin tone of the current person] hand, turning you briskly back towards [zhim]. [Zhe] snapped the radio off with a decisive movement. 'It doesn't matter,' [zhe] said. 'It's just - nothing.' [Zher] free hand fluttered for a moment, like [zher] eyes, before steadying on you. 'We can have class anyway.'[paragraph break]It was too weird. You laughed in [zher] face. You didn't mean it, but [zher] [eye color of the current person] eyes narrowed in fury, and [zher] grip tightened sharply before [zhe] dropped [zher] hand. 'Fine. Go.'[paragraph break]And you went. Eventually, you came back, but everything was soured after that. It was a small thing to grieve over, in light of everything else that happened, but sometimes you did anyway."; otherwise if the relationship of the current person is apprentice: say "You were so absorbed by the bizarre news on the television that you missed [one of][given name of the current person]'s knock on the door[or]the door buzzer[or]the doorbell[or][given name of the current person] waving at you through the plate glass door[at random] at first, and then you forgot the [build of the current person] [zhoman]'s name for a second as you stood in the doorway. "; if the current person likes the player: say "[Zhe] asked, 'What's wrong?'[paragraph break]'I'm sorry' - you really registered [zhim], now, and you regretted that you couldn't repair the worried look on [zher] face as you stepped to the side to let [zher] in. You pointed at the television. "; otherwise if the affection strength of the current person is 3: say "[Zhe] frowned. 'Are you okay? You seem a bit off....'[paragraph break]'I was just watching the news. There's an announcement....' You retreated from the door and pointed at the television where the [one of]pretty[or]pert[or]bewildered[at random] news announcer was starting back into the story again. "; otherwise: say "[Zhe] scowled at you as [zhe] pushed into the room. 'I was on time,' [zhe] informed you. 'Are we having this lesson or not?'[paragraph break]In response, you pointed to the television, where the [one of]pretty[or]pert[or]bewildered[at random] news announcer was starting back into the story again. "; say "[Given name of the current person]'s [eye color of the current person] eyes went to the screen.[paragraph break]The news media called it the Unveiling. They talked about the old gods, the new gods, the gods only just now discovered - gods of corruption and death and madness, gods that you could reach out and invoke just by knowing the right shape to make with your mind. From the corner of your eye, you saw the [if the age of the player > the age of the current person]younger[otherwise if the age of the player < the age of the current person]older[otherwise][physical impression of the current person][end if] [zhoman] pinch [zhim]self as if [zhe] might be dreaming. You'd felt the same temptation.[paragraph break]As the news report finished and started again, [given name of the current person] "; if the current person likes the player: say "looked to you with a troubled frown. 'Not the best day for [hobby of the current person], then?'[paragraph break]You hesitated for a moment, thinking of [given name of the current person]'s [economic background of the current person] background and the long hours spent together. [if a random chance of 1 in 2 succeeds]'No, I don't think it's the best day for it,' you said, and [zhe] gave you a [one of]quick[or]regretful[or]wistful[or]grateful[or]relieved[at random] smile before ducking back out the door. [otherwise]'I don't think I could focus enough to teach you, but... would you like to stay anyway? I could get you a [one of]cup of tea[or]cup of cocoa[or]cup of coffee[or]drink... we're off the clock, I think[or]soda[or]glass of water[or]glass of juice[at random]....' [Zher] [one of]quick[or]grateful[or]bewildered[at random] smile was enough to make you glad you'd asked, and [zhe] stayed, talking for hours with you of nothing real and certain as the fluorescent lights clung to [zher] [hair reference]."; otherwise if the affection strength of the current person is 3: say "tightened [zher] grip on [zher] [if the hobby of the current person is baking or the hobby of the current person is cooking]cookbook[otherwise if the hobby of the current person is birdwatching]binoculars[otherwise if the hobby of the current person is spelunking]flashlight[otherwise if the hobby of the current person is fishkeeping]jar of fish food[otherwise if the hobby of the current person is gardening]gardening gloves[otherwise if the hobby of the current person is ice skating]ice skates[otherwise if the hobby of the current person is jewelry making]tool kit[otherwise if the hobby of the current person is music]sheet music[otherwise if the hobby of the current person is photography]camera case[otherwise if the hobby of the current person is skiing]skis[otherwise][color preference of the current person] [one of]satchel[or]messenger bag[or]backpack[at random][end if]. 'I have to go,' [zhe] said abruptly. 'I'll be back next week, right? Next week.'[paragraph break]You didn't really see [zhim] go - you were reaching for the phone yourself, and wondering whether all the effort [if the player is unemployed]of getting through life[otherwise]of becoming a [profession of the current person][end if] had ever been worthwhile. Maybe you should have just stayed a [hobby of the current person] teacher."; otherwise: say "turned to you and said savagely, 'I don't know how you rigged this up, but I don't believe it for a second. If you don't want to keep teaching me, you could just say so.' [Zhe] picked [zher] [if the hobby of the current person is baking or the hobby of the current person is cooking]cookbook[otherwise if the hobby of the current person is birdwatching]binoculars[otherwise if the hobby of the current person is spelunking]flashlight[otherwise if the hobby of the current person is fishkeeping]jar of fish food[otherwise if the hobby of the current person is gardening]gardening gloves[otherwise if the hobby of the current person is ice skating]ice skates[otherwise if the hobby of the current person is jewelry making]tool kit[otherwise if the hobby of the current person is music]sheet music[otherwise if the hobby of the current person is photography]camera case[otherwise if the hobby of the current person is skiing]skis[otherwise][color preference of the current person] [one of]satchel[or]messenger bag[or]backpack[at random][end if] up and marched out the door.[paragraph break][Zhe] believed, later - everyone did - but [zhe] never did apologize."; otherwise if the relationship of the current person is friend: say "You were out with your friend [given name of the current person] when you heard the news. [Zhe] set down [zher] drink and stared at the screen with wide [eye color of the current person] eyes, tracking the caption rapidly through the sound, and then [zhe] "; if the current person likes the player: if the age of the current person < the age of the player: say "tightened [zher] [skin tone of the current person] fingers over your hand like a child clinging to an adult for comfort. "; otherwise: say "placed [zher] [skin tone of the current person] hand on your shoulder like an adult gathering a child in for protection [if the height of the player > the height of the current person], despite you being taller than [zhim][end if]. "; say "You looked at the screen to see what had scared [zhim]. "; otherwise if the affection strength of the current person is 3: say "turned toward you and gestured and knocked her drink over. The [one of]scarlet[or]pink[or]amber[or]clear[or]fizzing[at random] liquid coursed over the [one of]polished[or]scarred[or]gleaming[or]wooden[or]black stone[at random] surface, and [zhe] swore and asked the bartender for a towel to clean it up, but [one of]he[or]she[at random] didn't hear [zhim], and you weren't really listening either. You were reading the captions now, too. "; otherwise: say "jabbed your shoulder sharply and pointed. And you read as well. "; say "[paragraph break]The news media called it the Unveiling. They talked about the old gods, the new gods, the gods only just now discovered - gods of corruption and death and madness, gods that you could reach out and invoke just by knowing the right shape to make with your mind. "; if the current person likes the player: if (the player is male and the current person is female) or (the current person is male and the player is female): if a random chance of the heterosexuality rating of the player in 10 succeeds: say "[paragraph break]And for one, crazy moment, you wanted to [if the height of the player > the height of the current person]gather [zhim] into your arms[otherwise] wrap your arms around [zher] neck[end if] and kiss [zhim] - sweep all that fright and confusion away in surprise. [if the player is committed]But then you remembered [given name of the player-commitment], your [relationship of the player-commitment], and you knew that you couldn't[otherwise]Later, there were times when you silently wished that you had[end if]. But instead you sat [one of]in the club[or]in the pub[or]at the bar[or]in t he restaurant[at random] and listened to the beginning of the end of the world."; otherwise: let M be the age of the player - 4; if the age of the current person is less than the age of the player: let M be the age of the current person - 4; let N be a random number between 2 and M; say "And you thought of [if the player is committed][given name of the player-commitment], your [relationship of the player-commitment], and you thought of [end if]your [if the player is unemployed]struggle to find employment[otherwise]long hours working as a [profession of the player][end if], and you wondered if any of it would matter in the morning. But then you looked at the [if the height of the current person is not average height][height of the current person], [end if][build of the current person] [zhoman] next to you, your solid friend for the last [N in words] years, "; if the player is committed: say "and you thought of [given name of the player-commitment], your [relationship of the player-commitment], "; say " and you knew that you would not be alone."; otherwise: if a random chance of the heterosexuality rating of the player in 10 succeeds: say "[paragraph break]And for one, crazy moment, you wanted to [if the height of the player > the height of the current person]gather [zhim] into your arms[otherwise] wrap your arms around [zher] neck[end if] and kiss [zhim] - sweep all that fright and confusion away in surprise. [if the player is committed]But then you remembered [given name of the player-commitment], your [relationship of the player-commitment], and you knew that you couldn't[otherwise]Later, there were times when you silently wished that you had[end if]. But instead you sat [one of]in the club[or]in the pub[or]at the bar[or]in the restaurant[at random] and listened to the beginning of the end of the world."; otherwise: let M be the age of the player - 4; if the age of the current person is less than the age of the player: let M be the age of the current person - 4; let N be a random number between 2 and M; say "And you thought of [if the player is committed][given name of the player-commitment], your [relationship of the player-commitment], and you thought of [end if]your [if the player is unemployed]struggle to find employment[otherwise]long hours working as a [profession of the player][end if], and you wondered if any of it would matter in the morning. But then you looked at the [if the height of the current person is not average height][height of the current person], [end if] [build of the current person] next to you, your solid friend for the last [N in words], "; if the player is committed: say "and you thought of [given name of the player-commitment], your [relationship of the player-commitment], "; say " and you knew that you would not be alone."; otherwise if the affection strength of the current person is 3: say "And when you thought about it later, it seemed so strange that you heard about the end of the world when you were sitting with [given name of the current person], not even that good a friend, in a random [one of]club[or]pub[or]bar[or]restaurant[at random] that you'd never been to before and never meant to visit again. [Zhe] fidgeted with [zher] [if the current person is female][one of]purse[or]satchel[or]bag[or]handbag[or]briefcase[or]backpack[or]jacket[at random][otherwise][one of]satchel[or]bag[or]briefcase[or]backpack[or]jacket[at random] and stared at the screen and you didn't know what to tell [zhim]. Someone else should have been there for [zhim] - someone who could make sense of it all. Not you."; otherwise: say "[paragraph break]By then, your friendship was already souring, and you couldn't be surprised when [zhe] said abruptly, 'I have to go.' And [zhe] left you alone [one of]in the club[or]in the pub[or]at the bar[or]in the restaurant[at random] without another word, just slung [zher] [if the current person is female][one of]purse[or]satchel[or]bag[or]handbag[or]briefcase[or]backpack[or]jacket[at random][otherwise][one of]satchel[or]bag[or]briefcase[or]backpack[or]jacket[at random] over [zher] shoulder and left you alone with the bill."; otherwise if the relationship of the current person is work rival: say "(News memory involving a work rival goes here.)"; otherwise if the relationship of the current person is hobby rival: say "You ran into [given name of the current person] [surname of the current person] [one of]as you parked your car[or]as you stood on the train platform[at random] before [hobby of the current person] class. [Zhe] was going; you were coming. The [build of the current person] [zhoman] [if the affection strength of the current person > 3]smiled slightly, [otherwise if the affection strength of the current person is 3]arched an eyebrow slightly, [otherwise]glanced briefly at you, then looked away in irritation, [end if] enough of a cue, by now, to let you know that [one of][zhe] expected you'd outperform [zhim] this time[or][zhe] thought [zhe]'d outperformed you this time[at random].[paragraph break][if the affection strength of the current person > 2]You wouldn't have spoken - you never do - [otherwise]The conversation ensuing would have been brief and familiar [end if]if not for the crazy [one of]man[or]woman[at random] who went running past. 'Check your radios! Check the television! The end of the world is here!' The anguished howl was so weird that you and [given name of the current person] both halted, unable to dismiss the weirdness. Knowing [zhe] would [if the affection strength of the current person > 2]have something cutting to say about[otherwise]tease you for[end if] it later, you turned on the radio anyway.[paragraph break]The news media called it the Unveiling. They talked about the old gods, the new gods, the gods only just now discovered - gods of corruption and death and madness, gods that you could reach out and invoke just by knowing the right shape to make with your mind. It was the beginning of the end of the world, and [given name of the current person] was there when you found out about it. You wondered, later, if that helped explain why things worked out the way they did."; otherwise if the relationship of the current person is instructor: say "You didn't know [given name of the current person] [surname of the current person] at all until the day before the news announcement. [Zhe] stopped you [one of]on the street[or]at the train stop[or]in the subway tunnel[or]at the coffee shop[at random] by name - '[reverse nickname of the current person]! [given name of the player] [surname of the player]!' and you turned in bewilderment, because the [voice type of the current person] voice was so confident, but you didn't recognize the [physical impression of the current person] [gr-age] coming up to you at all.[paragraph break]And you had that moment to think it through - to look at [zhim] and [zher] [skin tone of the current person] skin, [zher] [style impression of the current person] chosen clothing, [zher] [hair reference],"; if the hairstyle of the current person is not "": say " [hairstyle of the current person], "; if the facial hair of the current person is not "": say " [zher] [facial hair of the current person], "; say "[zher] intent [eye color of the current person] eyes, and enough time to conclude that you didn't know [zhim] at all.[paragraph break]But [zhe] was smiling, and saying, 'I'm so glad I caught up with you,' and pressing a [color preference of the player] notebook into your hands. 'Here. You forgot this.'[paragraph break]And it was the color notebook you would have chosen, you like [color preference of the player], and it didn't look all that unlike past notebooks you'd chosen, but when you looked inside, the pages contained "; if the rationale of the player is intelligence or the rationale of the player is dexterity: say "a complex maze of intricately sketched curves that you assuredly hadn't drawn. "; otherwise if the rationale of the player is scientific skill: say "a neatly written maze of mathematical proofs relying heavily upon theorems of which you'd never heard. "; otherwise: say "a long, neatly written list of names - [italic type][random deity], [random deity], [random deity]...[roman type] - that were completely unfamiliar to you. "; say "And on the first page, you found a note - the following day's date, and a time, and a phone number, with [italic type]Call me - [given name of the current person] [surname of the current person].[roman type][paragraph break]You looked up to explain that this wasn't yours, and that it must belong to someone else by the same name - but [zhe] was gone, lost in the crowd.[paragraph break]And the next day you heard. The news media called it the Unveiling. They talked about the old gods, the new gods, the gods only just now discovered - gods of corruption and death and madness, gods that you could reach out and invoke just by knowing the right shape to make with your mind. And when you next saw a clock, it was [a random number between 1 and 12]:[a random number between 0 and 5][a random number between 1 and 10] exactly, and you remembered the notebook, and you picked up the phone.[paragraph break]'I need you to help save the world,' [zhe] said."; say "[line break]----------[line break]"; Chapter 3 - Meditation Memories To remember a meditation memory: now the current person is the associated NPC of the current memory; if the relationship of the associated NPC of the current memory is instructor: say "'Breathe,' [given name of the current person] instructed, and you inhaled; exhaled slowly.[paragraph break]'Breathe,' [zhe] said again, and you drew breath a second time and let it out more slowly.[paragraph break]'Now sleep, [reverse nickname of the current person],' [zhe] whispered, and you pictured the blackness, a blackness devoid of stars and gods and dreams, just as you had been trained, and you let yourself fall.[paragraph break]And in the darkness, [zhe] spoke to you of a world seen only in visions, a world of "; let the temporary room be a random Blight room; let the temporary terrain be a random terrain in the temporary room; say "[temporary terrain] and [current weather] skies and shrines built by the memories of the gods instead of human hands. And [zhe] spoke to you of the orbs, human-crafted but present in that dead world, and how you could focus a god's power through an orb like focusing light through a magnifying glass, if you found yourself in the right place, if you cleared your mind in the right way. And in the blackness, [zhe] built a shrine for you, and you practiced the process of "; if the rationale of the player is personal desire: say "reaching into the shrine's power"; otherwise if the rationale of the player is intelligence: say "drawing shapes in your head to unlock the shrine"; otherwise if the rationale of the player is dexterity: say "drawing shapes in the air and shapes in your head"; otherwise if the rationale of the player is endurance: say "triggering and enduring the agony of the shrine"; otherwise if the rationale of the player is scientific skill: say "calculating your way to the essence of the shrine"; otherwise if the rationale of the player is blessing of the gods: say "opening your soul to the shrine"; otherwise if the rationale of the player is conviction of ideals: say "grasping the shrine's power with your mind"; otherwise: say "connecting with the power of the shrine"; say ", again and again until it was "; if the motivation of the player is familial love: say "wrought into the flames"; otherwise if the motivation of the player is romantic love: say "burned upon the living tree"; otherwise if the motivation of the player is duty: say "measured into the music"; otherwise if the motivation of the player is idealism: say "written into the patterns"; otherwise if the motivation of the player is revenge: say "etched upon the crystal"; otherwise if the motivation of the player is fear: say "written in the streets"; otherwise if the motivation of the player is ambition: say "painted on the sky"; otherwise if the motivation of the player is curiosity: say "mapped into the labyrinth"; otherwise: say "web "; say " of your subconscious. Until the habit would stay after even your mind was gone.[paragraph break]With low rhythms and soft words, [zhe] taught you to find the tools you would need to burn a hole between dimensions and bring back the world."; otherwise if the affection strength of the associated NPC of the current memory > 3: say "Remembering an affection-based meditation memory associated with [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory] ([relationship of the associated NPC of the current memory])."; otherwise if the affection strength of the associated NPC of the current memory < 3: say "Remembering a dislike-based meditation memory associated with [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory] ([relationship of the associated NPC of the current memory])."; otherwise: say "Remembering a neutral meditation memory associated with [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory] ([relationship of the associated NPC of the current memory]).". Chapter 4 - Selection Memories To remember a selection memory: now the current person is the associated NPC of the current memory; if the relationship of the associated NPC of the current memory is instructor: say "At first, classes were always in groups - you needed the support of the other people around you to keep the melodies in your mind strong and keep the will of the gods from taking you over. But later, [given name of the instructor-person] [surname of the instructor-person] split you up, leaving four people together and taking one aside. By then, you were studying in the [one of]abandoned[or]forgotten[or]back part of the[at random] [one of]gym[or]warehouse[or]restaurant[or]art studio[or]dance studio[at random] [one of]across the street from where you used to work[or]on the north side[or]on the west side[or]on the east side[or]on the south side[or]over the river[or]across from the church[or]near [nickname of the instructor-person]'s home[at random], so there was a convenient side room.[paragraph break]After so many [one of]hours[or]days[or]weeks[at random] of practice, you could drop into trance anywhere, but as you started to seat yourself on the floor, [nickname of the current person] said, 'Wait.' On the edge of the singing darkness, you hovered, bewildered, and looked up at the [gr-age].[paragraph break]'We need to talk,' [zhe] said, and [zhe] gestured you to the second chair. You sat, bewildered, and [zhe] said, 'I've made the selection. I know who's going to be crossing over.' "; if the affection strength of the associated NPC of the current memory > 3: say "'Me.' Your [voice type of the player] voice sounded strange in your own ears, but as you looked at your instructor's [one of]sad[or]unhappy[or]troubled[at random] [eye color of the current person] eyes, you knew that you were right. 'I'm going back to the real world. Like all the times we practiced.'[paragraph break]'You', [zhe] confirmed, and then, in a rush - 'But I'm sorry, [given name of the player]. I'm so sorry.'[paragraph break]And you knew why [zhe] was sorry - because no matter how hard [zhe] tried to hold [zhim]self apart, no matter how hard [zhe] tried to be a general instead of a soldier, [zhe] liked you. And you liked [zhim]. And now, in all ways that mattered, [zhe] was sending you out to die. "; otherwise if the affection strength of the associated NPC of the current memory < 3: say "'Me.' Your [voice type of the player] voice echoed off the walls. 'I see.'[paragraph break]For a moment, you just stared at [zhim] - this [physical impression of the current person] [gr-age] for whom you had learned no love. You wondered if that might not be a hint of a smile on [zher] lips, a slight twitch of muscle in [zher] [skin tone of the current person] cheek. You wondered if it might not be a test.[paragraph break]'Well?' [zhe] demanded, and you heard the waver in [zher] [voice type of the current person] voice, and you knew suddenly that it wasn't a test. [Zhe] was afraid that you would refuse. You really were the best person to go, and [zhe] was terrified that you would refuse because, in all ways that mattered, [zhe] was sending you out to die. "; otherwise: say "'Me.' Your [voice type of the player] voice echoed off the walls.[paragraph break]'You,' [zhe] confirmed. '"; if the rationale of the player is personal desire: say "You want it more than anyone else - "; otherwise if the rationale of the player is intelligence: say "You're brighter than anyone else here, "; otherwise if the rationale of the player is dexterity: say "You focus through movement better than anyone else here, "; otherwise if the rationale of the player is endurance: say "You have a higher pain tolerance than anyone else here, "; otherwise if the rationale of the player is scientific skill: say "You're better at the calculations than anyone else here, "; otherwise if the rationale of the player is blessing of the gods: say "You know when the gods are near, and you know how to block them out of your mind. You're better at it than anyone else here, "; otherwise if the rationale of the player is conviction of ideals: say "You want it more than anyone else here, "; otherwise if the rationale of the player is random chance: say "You're the one.'[paragraph break]'Why me?' you [one of]demanded[or]asked[or]whispered[at random].[paragraph break][Zhe] opened [zher] mouth, hesitated, and then shrugged. With brutal honesty, [zhe] said, 'Luck of the draw, I suppose. It had to be someone.' And more softly, 'But I am sorry.' "; if the rationale of the player is not random chance: say "and that will make a difference. You're more likely to succeed than anyone else, and we can't afford anything less than success.' And more softly, 'But I am sorry.' "; say "[paragraph break]But you wanted to go. "; if the motivation of the player is the motivation of the current person: say "Unlike your instructor, "; otherwise: say "Like your instructor, "; if the motivation of the player is familial love: say "you had more than yourself to live for - but that meant you had more than yourself to die for, too. You wouldn't survive this, but your family would. "; otherwise if the motivation of the player is romantic love: say "you had more than yourself to live for - but that meant you had more than yourself to die for, too. You wouldn't survive this, but the one you have to save would. "; otherwise if the motivation of the player is duty: say "you were driven by a sense of duty - and if you were the best one to go, then you were ready to answer that call. You had seen too many of the horrors of this world to refuse. "; otherwise if the motivation of the player is idealism: say "you were driven by your ideals. You knew your own strengths and your own failings, and you knew that you can make it through the trials ahead. You knew that you could be the one who saved the world. "; otherwise if the motivation of the player is revenge: say "you were driven by revenge. No natural force brought this about - it was pure human planning in the face of panic. Someone thought humanity was better off without its gods than with them, and someone ended the world. And when the end of the world was over, then those who survive you would make that person, or those people, answer for this hell. "; otherwise if the motivation of the player is fear: say "you were driven by fear. If the world couldn't be saved, it would only get worse - and you'd seen too many horrors here (dead-eyed programmers typing on empty air when their computers have been pulled away, children [one of]walking[or]skipping[or]running blindly[at random] into the paths of drivers who never stop, butchers rendering something more grisly than lamb) to endure any more. You'd accepted this. "; otherwise if the motivation of the player is ambition or the motivation of the player is economic incentive: say "you were driven by ambition. And you knew [if the motivation of the player is the motivation of the current person](and [zhe] knows) [end if]that this might not really be the end - that what [zhe] knew about the real world might be lesser and more mundane than anything that's really over there. [if the motivation of the player is economic incentive]And if you survived - somehow - then you stood to be in a much, much better place in the remade world than anyone could be in this nightmare and ruin. "; otherwise if the motivation of the player is curiosity: say "you were driven by curiosity. You had to know what the real world was like - you had to know what was over there through more than your mentor's words shaping your trance. You had to go yourself because there would never be a time or a place like this again. "; if the affection strength of the associated NPC of the current memory > 3: say "And so you smiled at [zhim], and [zhe] smiled back in relief, and in some back corner of your mind, you thought, [italic type]This is the end of the beginning of the end of the end of the world.[roman type]"; otherwise if the affection strength of the associated NPC of the current memory < 3: say "And in some back corner of your mind, you thought, [italic type]This is the end of the beginning of the end of the end of the world.[roman type]"; otherwise: say "And you would go, whether [zhe] wished it were you or not. This was your time and your chance. And in some back corner of your mind, you thought, [italic type]This is the end of the beginning of the end of the end of the world.[roman type]"; otherwise if the affection strength of the associated NPC of the current memory < 3: now the secondary person is the instructor-person; say "Some time after [given name of the secondary person] [surname of the secondary person] moved [zher2] class to the [one of]abandoned[or]forgotten[or]back part of the[at random] [one of]gym[or]warehouse[or]restaurant[or]art studio[or]dance studio[at random] [one of]across the street from where you used to work[or]on the north side[or]on the west side[or]on the east side[or]on the south side[or]over the river[or]across from the church[or]near [nickname of the instructor-person]'s home[at random], your [gr of the current person] touched your arm as you were leaving and asked, '[reverse nickname of the current person]? Can I talk with you for a moment?'[paragraph break]Although your feelings toward the [gr-age] had rapidly been souring, there was something in [zher] [voice type of the current person] voice, some expression on [zher] [physical impression of the current person]face, that made you agree [if the relationship of the current person is spouse or the current person is blood-relation]to go down the street a ways with [zhim] instead of home as you had intended[otherwise]instead of pointing out that you would be in the same place that evening, that you lived together, that you had other tasks right now[end if]"; say ".[paragraph break]Having been so anxious before, now [given name of the current person] couldn't seem to figure out how to begin. You watched the [style impression of the current person] dressed [gr-age] as [zhe] fiddled with [zher] sleeve buttons, studied [zher] [skin tone of the current person] skin, and finally asked, 'Well?'[paragraph break]'[given name of the instructor-person] picked me.' It came out in a rush. '[Zhe2] asked me to come early, and took me aside, and told me that I was the one. I'm not supposed to tell anyone.' [Zhe] ran a hand back over [zher] [hair reference].[paragraph break]'Then why are you telling me?' you [one of]snapped[or]demanded[or]asked[or]asked cautiously[or]frowned[at random].[paragraph break]'Because I can't go.' [Given name of the current person] [one of]wrung [zher] hands[or]bit at a fingernail[or]stared at you[or]stared at the curb[or]stared at a tree across the street for a moment. Cars went whizzing by, occupied by dead-eyed men and women who never looked left or right[at random]. 'I thought... I thought perhaps you could. "; if the motivation of the current person is familial love: say "My family - '"; if the current person is blood-relation or the relationship of the current person is spouse: say "[paragraph break]'My family too. Or aren't you my [gr of the current person] any more?' Shock flashed brightly in [given name of the current person]'s eyes as you went on. 'For the sake of [italic type]our[roman type] family, you think that I should go out and die? That's charming, [given name of the current person] - really charming. "; otherwise: say "[paragraph break]'You say it like I don't have a family. Did you think I rose from the ocean one day? Or scientists built me in a lab? Do you think I don't have anyone to care about?' Shock flashed brightly in [given name of the current person]'s eyes as you went on. 'For the sake of [italic type]your[roman type] family, you think that I should go out and die? That's charming, [given name of the current person] - really charming. "; if the motivation of the player is familial love: say "[paragraph break]'As it happens, I love my family too. I love my family enough to die for them.' You took a breath. 'And if you only love your family enough to live for them... then I suppose you had better stay. You had better stay and help them get through this, when I save the [one of]goddamn[or]whole damn[or]freaking[or]friggin'[or]fucking[at random] world.'"; otherwise: say "[paragraph break]'As it happens, I want to go. But I don't plan to die. I plan to get through this.' You could feel [one of]your fingernails digging into your thigh as you struggled for self-control[or]your fingernails biting into your palm as you clenched a fist[or]the way [zhe] ooked at you, though you were looking away[or]the wind from the passing cars on your skin, dangerously close[at random]. 'And if I get through this, you'd better have an apology for me.' "; otherwise if the motivation of the current person is duty: say "When the end comes - when the end has come - someone has to help put the world back together. They'll need me.'[paragraph break][if the profession of the current person is unemployed]'You weren't even employed. But you think they need you to put the world back together.'[otherwise]'You think they'll need a [profession of the current person].'[end if][paragraph break]'Yes,' [zhe] said sharply. 'I do. Don't you?'"; if the profession of the current person is the profession of the player: say "[paragraph break]'[if the player is unemployed]I know I'm unemployed, but are you forgetting that I'm useful[otherwise]Are you forgetting I'm a [profession of the current person] too[end if][if the relationship of the current person is colleague or the relationship of the current person is supervisor or the relationship of the current person is employee]? Are you forgetting we used to work together[end if]?'"; otherwise: say "'[if the player is unemployed]More than they'll need me? They might need me too. Who's to say they won't need me more than you[otherwise]More than a [profession of the player][end if]?' you demanded, indicating yourself with one sweep of a hand.[paragraph break]"; say "[paragraph break]'They'll need me more than you,' [zhe] said, and you knew [zhe] was right. And you agreed."; otherwise: say "I can't do it.' And you thought [zher] voice trembled, though it might just have been the sound of[one of]cars speeding past[or]water flowing under the bridge[or]a sudden gust of wind whipping past the buildings[or]distant rain[or]distant music[at random]. 'I can't do it. I'm too afraid. But you can.'[paragraph break]'As it happens, I want to go.' It was the truth. 'But I don't plan to die. I plan to get through this.' You could feel [one of]your fingernails digging into your thigh as you struggled for self-control[or]your fingernails biting into your palm as you clenched a fist[or]the way she looked at you, though you were looking away[or]the wind from the passing cars on your skin, dangerously close[at random]. 'And if I get through this, you'd better be ready to make good.'"; say "[paragraph break]For the gratitude - the way [zhe] started to say something, the way [zhe] stopped - the way [zhe] lifted one hand and dropped it again - for all of those things, you hated [zhim] then, with a numb, dull hate. Because, while you had all your reasons to go... [zhe] had decided that [zher] life was more important than yours, and you let [zhim]."; otherwise: now the secondary person is the instructor-person; say "The phones were working again, so, instead of trying to corner [given name of the instructor-person] [surname of the instructor-person] after class, you called [zhim2] from [one of]an empty office[or]home[at random]. The ringing jarred oddly with the focus melody always running in the back of your mind, but you concentrated and didn't let it distract you. Your instructor's [voice type of the instructor-person] voice was cautious over the line. 'Yes?'[paragraph break]'[nickname of the instructor-person], it's [given name of the player]. I wanted to talk to you about [given name of the current person].'[paragraph break]'What about [zhim]?' The [voice type of the instructor-person] voice was guarded now.[paragraph break]'Don't choose [zhim]. Please.'[paragraph break]There was a pause. 'We'll talk after the next class. We shouldn't talk about this now.'[paragraph break]'It couldn't wait three more days. If you won't talk with me over the phone, I'll meet you. Just tell me where.'[paragraph break]There was another pause before [nickname of the instructor-person] [one of]rattled off[or]spat out[or]recited[or]growled[at random] a coded location. 'I'll be there,' you promised, and, after another few words, you hung up the phone.[paragraph break]Only then did you turn back to your [gr of the current person] sitting silently nearby. [Given name of the current person] was still shaking, and [zher] [eye color of the current person] eyes were fixated on [one of]a nearby coat rack[or]a nearby bookshelf[or]the surface of the desk[or]nowhere in particular[or]the curtained window[at random]. 'You don't have to go, [nickname of the current person],' you said. 'I'll arrange things somehow. I'll arrange it all.'"; say "[line break]'[one of]I believe you[or]Thank you[or]Thank you so much[or]I can't ever repay you[or]Thank God[at random],' [zhe] said, with painful sincerity in [zher] [voice type of the current person] voice.[paragraph break]"; if (the motivation of the player is familial love and (the current person is blood-relation or the relationship of the current person is spouse)) or (the motivation of the player is romantic love and the current person is the player-commitment): if the affection strength of the associated NPC of the current memory > 3: say "'Anything for you,' you said, and it was true. The secret, painful truth was that it was all for [zhim] - that your [gr of the current person] was all that drove you through this, all that kept you clinging to the focusing melodies and fighting back the voices of the gods. You'd managed to keep it a secret.[paragraph break]But maybe [zhe] did know, because there was a wet shimmer tracing its way down [zher] [skin tone of the current person] cheek, and a second. Maybe [zhe] did know that your world was only worth saving for [zhim]."; otherwise: say "'Anything for you', you said, and it wasn't quite a lie. It only tasted like a lie because you felt the voices of the gods so close by, almost too close for you to fight them off, and if you just stopped holding out, it would be such a relief. But it would leave your [gr of the current person] without hope, and you couldn't do that.[paragraph break]And maybe [zhe] knew, because there was a wet shimmer tracing its way down [zher] [skin tone of the current person] cheek, and a second. Maybe [zhe] knew that you weren't saving the world for [zhim], but for yourself - to silence those unbearable voices without leaving [zhim] alone and afraid. Yet it was close enough to love to count."; otherwise: say "'As it happens, I want to go. But I don't plan to die. I plan to get through this.' You laughed a little bit, and then said, 'Just so you know. This isn't the end for me.'[paragraph break]'This isn't the end for you,' [zhe] agreed. But you saw a wet shimmer tracing its way down [zher] [skin tone of the current person] cheek, and a second. [Zhe] didn't believe you. [one of]But that was all right; you were always a lousy liar[or]But that was all right; you would prove [zhim] wrong in time[at random].". Chapter 5 - Grief Memories To remember a grief memory: now the current person is the associated NPC of the current memory; now the secondary person is the victim; if the current person is the instructor-person: say "(Remembering an instructor-based grief memory.)"; otherwise if the relationship of the victim is sibling: if the current person is the victim: now the current person is the instructor-person; say "When you're just growing up, you say the unforgiveable all the time. 'HEY! [given name of the victim]! You [one of]idiot[or]stupid[or]brainless[at random] [one of]fart[or]imbecile[or]moron[or]jerk[at random], [one of]get out of my room[or]stay out of my room[or]don't you ever read my diary again[or]don't you ever take things out of my room again[or]stop leaving your crap on the stairs[at random]!' The [if the victim is male]boy[otherwise]girl[end if] laughs, and you, the"; if the age of the player > the age of the victim: let M be the age of the player - the age of the victim; say "[M in words] older"; otherwise if the age of the player < the age of the victim: let M be the age of the victim - the age of the player; say "[M in words] younger sibling"; otherwise: say " frustrated fraternal twin"; say ", yell at [zhim2], 'Don't ever do it again, or I'll kill you!'[paragraph break]Clinging to [one of]the bridge railing[or]your cigarette[or]the lamppost[or]the edge of the table[or]the corrugated trunk of the oak tree[at random], you listened to [given name of the current person] [surname of the current person] trying to explain to you that [given name of the victim] was dead, but [zher] voice had become far away, and [zher] face was only a thumbprint on the oil painting, and you were losing the thread of the music that [given name of the instructor-person] had worked so hard, so very hard to instill. Behind the memory of [given name of the victim]'s [one of]pouting[or]tearstained[or]indignant[or]laughing[at random] face ([physical impression of the victim] even then), behind the impression of those [one of]sparkling[or]secretive[or]gleaming[or]shining[at random] [eye color of the victim] eyes, the thoughts of the gods pressed silently in on you, and you lost the desire to hold on.[paragraph break]You missed the funeral. They had to bury the body before one of the dead-eyed horde smelled it out and tried to take it away. You weren't even there when they buried your [gr of the secondary person] - you were tied in the shadows beneath the [one of]abandoned[or]forgotten[or]back part of the[at random] [one of]gym[or]warehouse[or]restaurant[or]art studio[or]dance studio[at random] [one of]across the street from where you used to work[or]on the north side[or]on the west side[or]on the east side[or]on the south side[or]over the river[or]across from the church[or]near [nickname of the instructor-person]'s home[at random], screaming and rubbing your wrists raw against the ropes as [given name of the current person] sang [zher] [voice type of the current person] voice equally raw in an effort to bring you home.[paragraph break]It echoed in your head afterward - 'Don't ever do it again, or I'll kill you!' But[if the affection strength of the victim < 3], no matter how little you liked your [gr of the secondary person], [otherwise] you loved your [gr of the secondary person], even then, and [end if]you had never wanted to live in a world without [zhim2]."; otherwise: let L be a random number between 1 and 2; say "You'd never dug a grave before. It turned out to be hard work - pushing the shovel in, turning the earth, pulling it up again, with the [one of]warm[or]chill[or]freezing[at random]"; if L is 1: say " rain falling over you in long, slow curtains"; otherwise: say " wind running over your "; if the hair texture of the player is bald: say "bare scalp"; otherwise: say "[hair length of the player] [hair texture of the player] hair"; say " and down your neck. You wanted to stop perhaps more than anything in your life, because it would mean that the box wasn't real and the contents weren't real and your [gr of the secondary person] wasn't dead.[paragraph break]...murdered. The word fell through your consciousness like grains of dirt falling off the blade of the shovel. [given name of the victim] [surname of the victim] was dead, and if it wasn't suicide (you all thought not) and if it wasn't a work of the gods (you all thought not) then it was one of you. And you couldn't quite forget that.[paragraph break]You dug, and you grieved, and you felt the eyes of your classmates on you. "; if the victim is the instructor-person: say "But [given name of the victim] [surname of the victim], your teacher and bully and organizer and leader, was dead"; otherwise: say "[given name of the instructor-person] [surname of the instructor-person] stood at the front, watching you and your [if the relationship of the victim is the relationship of the current person] other [end if][gr of the current person], [given name of the current person] [surname of the current person], dig"; say ". "; if L is 1: say "And the rain poured down [given name of the current person][apostrophe]s [skin tone of the current person] cheeks just like yours, and [zhe] struggled over [zher] shovel just like you did"; otherwise: say "And the wind pulled at [given name of the current person][apostrophe]s [hair reference]"; if the facial hair of the current person is "": say " and toyed with the edge of [zher] [color preference of the current person] scarf"; otherwise: say " and teased at [zher] [facial hair of the current person]"; say ", and your classmates watched with dull, traumatized eyes that looked almost like the eyes of the god-taken.[paragraph break][given name of the current person] began to hum, and in a moment, you recognized the first focusing melody that [given name of the instructor-person] taught you. You took up the song, and the others around you took it up as well, singing and watching or singing and digging until the hole was deep enough and your minds were all strong enough to hold what they needed to hold.". Chapter 6 - Responsibility Memories To remember a responsibility memory: if the victim is the instructor-person: now the secondary person is the instructor-person; say "Restaurants weren't safe any more; there was no way of knowing what would happen in the kitchen. You settled for grocery stores, because the dead-eyed kids still walking through their jobs wouldn't notice if you wrote them a check that never cashed later or pulled a fifty out of the till when their backs were turned. The stockers and baggers and cashiers went through the echoes of their former lives robotically, so long as the thoughts of the gods drifted through them and through their suppliers and through all the other clockwork pieces needed. So long as you didn't mind avoiding the meat section entirely and ignoring the vermin.[paragraph break]You'd gone vegetarian. It was still better than restaurants.[paragraph break]So you were at home after the funeral, staring at your [one of]tomato[or]lentil[or]bean[or]cheese[or]broccoli[or]cabbage[at random] soup because you couldn't eat. No matter how important it was to eat.[paragraph break]There were only five of you, now, and you didn't know how to tell anyone the final secret that [given name of the instructor-person] [surname of the instructor-person] had given you. You didn't know how to tell them that they weren't safe - that when the end of the end of the world came, you would come back to kill one of them"; say ".[paragraph break][italic type]Two lives to save the world[roman type], [given name of the secondary person] said, in memory. [Zher2] [voice type of the current person] voice echoed off the [one of]cinderblock walls[or]warehouse ceiling[at random] as [zhe2] walked beside you. [italic type]One is sent out. One remains behind.[roman type][paragraph break]You raised a spoonful of soup to your lips. Stared into the darkened kitchen. [italic type]But - who is the other one? Who am I supposed to - [roman type][paragraph break]Your [gr of the current person] should have been home, but [given name of the current person] [one of]said [zhe] needed some space[or]said you plainly needed some space[at random] and left you alone. [given name of the secondary person] wouldn't have approved. The buddy system, always.[paragraph break]But who was your buddy now? [italic type]Anyone,[roman type] [given name of the secondary person] said, and then qualified it: [italic type]Any one of your peers. Anyone with the training I've given you.[paragraph break][roman type][Zhe2] said, [italic type]There will be a sixth orb - not an orb, truly, but a talisman of much greater power. Bring it through the Exile, and give it to someone who knows how to handle the power"; say ".[paragraph break]Like you, [roman type]you said.[paragraph break][italic type]Like me,[roman type] [zhe2] confirmed, "; if the affection strength of the instructor-person > 3: say "and no matter how much you liked [zhim2], you thought in that moment of killing [zhim2]. [Zhe2]"; otherwise if the affection strength of the instructor-person < 3: say "and a savage swell of dislike filled you. In that moment, you thought uncontrollably of killing [zhim2]. [Zhe2]"; otherwise: say "and no matter how long you looked at [zhim2], you couldn't convince yourself that this was only a test. If there really was a death to deal out, surely [zhe2]"; say " deserved it for bringing you to this.[paragraph break]You dribbled the soup from your spoon back into the bowl. There were footsteps in the hall outside; [given name of the current person] had arrived. You pushed the soup away with your thoughts and stood up to comfort [zhim]."; if the relationship of the associated NPC of the current memory is instructor: say "Remembering a mentor-based responsibility memory associated with [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory] ([relationship of the associated NPC of the current memory])."; otherwise if the affection strength of the associated NPC of the current memory > 3: say "Remembering an affection-based responsibility memory associated with [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory] ([relationship of the associated NPC of the current memory])."; otherwise if the affection strength of the associated NPC of the current memory < 3: say "Remembering a dislike-based responsibility memory associated with [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory] ([relationship of the associated NPC of the current memory])."; otherwise: say "Remembering a neutral responsibility memory associated with [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory] ([relationship of the associated NPC of the current memory]).". Book 3 - Crime-Related Memories 10 crime-related memories are in Z1. A crime-related memory can be alibi, sympathy, or suspicion. A crime-related memory is usually alibi. A crime-related memory has a person called the secondary NPC. The player has a person called the suspect. An NPC has a person called the suspect. The player has a person called the alibi-provider. An NPC has a person called the alibi-provider. To prepare crime-related memories: DM "Crime-related memories are mostly shut down at the moment while the crime system gets reworked.[line break]". [say "Preparing crime-related memories. The murderer is [given name of the murderer] [surname of the murderer] and the victim is [given name of the victim] [surname of the victim].". now the potential NPC list is {}; [Setting up alibis and suspicions.] repeat with target NPC running through the NPCs: if the target NPC is not the victim and the target NPC is not the murderer: add the target NPC to the potential NPC list; sort the potential NPC list in random order; let NPC A be entry 1 of the potential NPC list; let NPC B be entry 2 of the potential NPC list; let NPC C be entry 3 of the potential NPC list; now the alibi-provider of NPC A is NPC B; now the alibi-provider of NPC B is NPC A; say "[Given name of NPC A] [surname of NPC A] and [Given name of NPC B] [surname of NPC B] have alibis for each other."; now the alibi-provider of NPC C is the player; now the alibi-provider of the player is NPC C; say "[Given name of NPC C] [surname of NPC C] and [Given name of the player] [surname of the player] (the player) have alibis for each other."; now the alibi-provider of the murderer is the murderer; add the murderer to the potential NPC list; add the player to the potential NPC list; repeat with target NPC running through the NPCs: let the second potential list be the potential NPC list; remove the alibi-provider of the target NPC from the second potential list, if present; remove the target NPC from the second potential list, if present; sort the second potential list in random order; now the suspect of the target NPC is entry 1 of the second potential list; say "[Given name of the target NPC] [surname of the target NPC] suspects [given name of the suspect of the target NPC] [surname of the suspect of the target NPC]."; remove the player from the potential NPC list; remove the murderer from the potential NPC list; while the number of entries in the potential NPC list is not 0: let the target NPC be entry 1 of the potential NPC list; say "[Given name of the target NPC] [surname of the target NPC] has an alibi from [given name of the alibi-provider of the target NPC] [surname of the alibi-provider of the target NPC]. [Given name of the target NPC] [surname of the target NPC] suspects [given name of the suspect of the target NPC] [surname of the suspect of the target NPC]."; remove the target NPC from the potential NPC list; repeat with target NPC running through the NPCs: if the target NPC is not the victim: add the target NPC to the potential NPC list; repeat with target memory running through the crime-related memories: now the current memory is the target memory; sort the potential NPC list in random order; now the associated NPC of the current memory is entry 1 of the potential NPC list; let K be a random number between 1 and 10; if K < 3 and the associated NPC of the current memory is not the murderer: now the current memory is alibi; now the secondary NPC of the current memory is the alibi-provider of the associated NPC of the current memory; if K < 6: now the current memory is sympathy; otherwise if K < 9: now the current memory is suspicion; now the secondary NPC of the current memory is the suspect of the associated NPC of the current memory.] To remember a crime-related memory: if the current memory is sympathy: remember a sympathy memory; otherwise if the current memory is alibi: remember an alibi memory; otherwise if the current memory is suspicion: remember a suspicion memory. To remember a sympathy memory: say "(Remembering a sympathy memory associated with [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory] ([relationship of the associated NPC of the current memory]).)". To remember an alibi memory: say "(Remembering an alibi memory: alibi for [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory] provided by [given name of the secondary NPC of the current memory] [surname of the secondary NPC of the current memory].)". To remember a suspicion memory: say "(Remembering a suspicion memory: [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory] ([relationship of the associated NPC of the current memory]) suspects [given name of the secondary NPC of the current memory] [surname of the secondary NPC of the current memory].)". Book 4 - Contextual Memories Chapter 1 - Preparing Contextual Memories 50 contextual memories are in Z1. A memory-time is a kind of value. The memory-times are pre-unveiling, post-unveiling, and post-exile. A contextual memory has a memory-time. A memory-type is a kind of value. The memory-types are relationship-based, profession-based, hobby-based, economic-based, motivation-based, rationale-based, location-based, or memento-based. A contextual memory has a memory-type. Table of Recorded Memories memory-time memory-type associated NPC pre-unveiling relationship-based yourself with 50 blank rows To prepare contextual memories: DM "Preparing contextual memories."; now the potential NPC list is {}; repeat with target NPC running through the NPCs: add the target NPC to the potential NPC list; blank out the whole of the Table of Recorded Memories; repeat with target memory running through the contextual memories: now the current memory is the target memory; let M be 1; while M is 1: let M be 0; sort the potential NPC list in random order; now the associated NPC of the current memory is entry 1 of the potential NPC list; now the memory-time of the target memory is a random memory-time; now the memory-type of the target memory is a random memory-type; repeat through the Table of Recorded Memories: if the memory-time entry is the memory-time of the target memory and the memory-type entry is the memory-type of the target memory and the associated NPC entry is the associated NPC of the target memory: let M be 1; DM "Rejecting a [memory-time of the target memory] [memory-type of the target memory] memory involving [given name of the associated NPC of the target memory] [surname of the associated NPC of the target memory] due to duplication."; DM "Accepting a [memory-time of the target memory] [memory-type of the target memory] memory involving the PC's [relationship of the associated NPC of the target memory] [given name of the associated NPC of the target memory] [surname of the associated NPC of the target memory]. No duplication."; choose a blank row in the Table of Recorded Memories; now memory-time entry is the memory-time of the target memory; now memory-type entry is the memory-type of the target memory; now associated NPC entry is the associated NPC of the target memory. To remember an contextual memory: now the current person is the associated NPC of the current memory; if the current memory is pre-unveiling: say "You remember, from before the Unveiling...."; remember a pre-unveiling memory; otherwise if the current memory is post-unveiling: say "You remember, from after the Unveiling...."; remember a post-unveiling memory; otherwise if the current memory is post-exile: remember a post-exile memory; Chapter 2 - Pre-Unveiling Memories To remember a pre-unveiling memory: DM "(Remembering a pre-unveiling [memory-type of the current memory] contextual memory involving a [relationship of the associated NPC of the current memory] - [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory].)"; if the memory-type is relationship-based: if the relationship of the current person is supervisor or the relationship of the current person is colleague: now the current person is the player; say "You paused in front of the bathroom mirror and took a moment to survey your appearance before the meeting with [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory]. The [physical impression of the player] [zhoman] who looked back had frightened [eye color of the player] eyes, and [zher] [skin tone of the player] hands were shaking slightly. Then, [zhe] smoothed [zher] [color preference] shirt, ran a hand over [zher] [hair reference], and set [zher] shoulders. [Zher] smile wasn't very believable, but it was a smile. With a sigh, you turned from the mirror and pushed through the swinging door to face your [relationship of the associated NPC of the current memory][apostrophe]s [one of]wrath[or]fury[or]disappointment[or]lecture[at random]."; otherwise if the relationship of the current person is lover or the relationship of the current person is ex-lover or the relationship of the current person is fiancee or the relationship of the current person is spouse or the relationship of the current person is ex-spouse: if a random chance of 1 in 2 succeeds: say "[Given name of the current person] [surname of the current person] found you walking through a garden in the [one of]chill[or]cold[or]freezing[or]unseasonably warm[at random] [one of]October[or]November[or]December[or]January[or]February[at random] twilight. You were [one of]a little stoned and a little drunk[or]a little drunk, but not as drunk as you wanted to be[or]a little high, but not as high as you wanted to be[or]drunker than you wanted to be and feeling quietly isolated[or]higher than you wanted to be and feeling quietly isolated[or]absolutely sober and feeling isolated[at random] as the sounds of the party drifted from the open windows. [Zher] [hair reference] "; if the hair texture of the current person is bald: say "gleamed faintly in the light"; otherwise if the hairstyle of the current person is not "": say "was [hairstyle of the current person]"; otherwise: say "caught the reflected light from the window "; say " and [zher] [eye color of the current person] eyes were shadowed as, wordlessly, [zhe] wrapped you in the warmth of [zher] arms and kissed you."; otherwise: say "You remember going to the carnival with [given name of the current person] [surname of the current person]. [Zhe] was delighted by [one of]the little goldfish in plastic bags[or]the stuffed cartoon beagles[or]the fake Indian headdresses[or]the garish maracas[or]the ridiculous portraits of popular musicians[at random] being offered as prizes at the [one of]ring toss[or]rifle range[or]ball toss[or]dart game[at random]. You "; if the knowledge of the player > 6: say "tried until your pocket money was gone, but you couldn't manage to win one for [zher]. [Zhe] kissed you anyway. "; otherwise: say "won on your [one of]first[or]second[or]third[or]fourth[or]fifth[at random] try, and [zhe] kissed you exultantly as you handed over the prize. "; say "[Zher] mouth tasted like [one of]popcorn[or]caramel[or]cotton candy[at random]."; otherwise if the memory-type is hobby-based: if the hobby of the player is birdwatching: if the hobby of the current person is birdwatching: say "You and [given name of the current person] [surname of the current person] had been standing in the swamp for hours, water soaking heavily into your shoes, as you waited for the [one of]woodpecker[or]eagle[or]loon[or]falcon[or]heron[at random] to return. Suddenly, your [gr of the current person] nudged you, and you saw the shape you had both studied returning to the nest. You smiled, though [zhe] couldn't see you, and you knew that [zhe] was smiling too."; otherwise if the hobby of the player is ice skating: say "The ice slid beneath your skates like a caress. You turned once, twice, and leapt in a spinning spiral before landing again.[paragraph break]Applause echoed across the deserted rink. You wobbled, then recovered, and looked to see [given name of the current person] [surname of the current person] leaning against the rail and clapping"; if the affection strength of the current person > 2: say " in honest admiration. You smiled at your [gr of the current person] and executed a graceful [if the player is male]bow[otherwise]curtsy[end if] before gliding to the rail to join [zhim]."; otherwise: say " sardonically. [Zher] presence spoiled the peace of the rink, and you felt your shoulders slump as you skated toward the rail to see what [zhe] wanted."; otherwise if the hobby of the player is sewing: if the hobby of the current person is sewing: say "As the meeting of the costumer's guild broke up, the steady stream of congratulations lifted your spirits like an ocean wave lifting water-borne seeds on its swell. "; if the current person likes the player: say "The huge hug from [given name of the current person] [surname of the current person] made you feel particularly good, and you laughed a little as you promised your [gr of the current person], 'Don't worry. You're next!'"; otherwise if the affection strength of the current person is 3: say "The warmth of [given name of the current person] [surname of the current person][apostrophe]'s congratulations particularly surprised and pleased you, as you knew that your [gr of the current person] was normally lukewarm to your craft."; otherwise if the affection strength of the current person < 3: say "But [given name of the current person] [surname of the current person] walked straight past you, head held high and shoulders squared as [zhe] went out the door. You stared after your [gr of the current person] for a moment, replaying the reactions of the [physical impression] [skin tone] face in your mind, and then turned away to accept the next warm smile and handshake. To hell with [zhim], anyway." Chapter 3 - Post-Unveiling Memories To remember a post-unveiling memory: now the current person is the associated NPC of the current memory; if the relationship of the current person is child: if the age of the current person > 7 and the age of the current person < 17: say "The grocery rushes were bad. 'Please line up! Please line up!' the supermarket woman kept screaming, but no one listened to her. You clutched the hand of your [age of the current person in words]-year-old [gr of the current person] [given name of the current person] as you forced your way through the crowd, but then a uniformed guard shoved you back, and you almost tripped over [zhim]. [Zhe] gasped as your too-tight grip twisted [zher] wrist, a sound that cut through the crowd and into your heart. You wished that you could have left [zhim] at home, but"; if the player is committed: now the current person is the player-commitment; say " your [gr of the current person] couldn't be home - [given name of the instructor-person] needed [given name of the current person] - and"; now the current person is the associated NPC of the current memory; say " you didn't dare leave [given name of the current person] at home alone. There was no option.[paragraph break]So you rallied"; if the current person likes the player: say " as [given name of the current person] found [zher] bravery and fought back tears,"; otherwise if the affection strength of the current person is 3: say " as [given name of the current person] began to cry,"; say " and you forced your way through the crowd because [gr-age]s needed to eat, and so did you. With the heavy cardboard box burdening your arm and [given name of the current person] clinging to your heels, you fled."; otherwise: say "There were riots. You heard about them from the same chipper news announcer who'd discussed the end of the world. As long as they were still on TV, they weren't so bad.[paragraph break]When the riots came home, they were the worst thing ever. You and your [gr of the current person] [given name of the current person] [surname of the current person] barricaded yourselves in the back office, propping a chair under the handle and pushing a desk against the door. There weren't any windows, which concerned you, but there was a ventilation duct and you were reasonably sure you wouldn't suffocate.[paragraph break]You could hear screaming from somewhere in the building. It rose and fell like ocean waves, sometimes near, sometimes far. At one point, it sounded familiar, and you looked up at your [gr of the current person]. 'Was that - '[paragraph break]'No. No, it wasn't.' [Zher] [skin tone of the current person] skin looked paler than you'd ever seen before, and the whites rimming the [eye color of the current person] irises of [zher] eyes reminded you of a frightened horse. 'It wasn't.'" Chapter 4 - Post-Exile Memories To remember a post-exile memory: DM "(Remembering a post-exile [memory-type of the current memory] contextual memory involving a [relationship of the associated NPC of the current memory] - [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory].)"; now the current person is the associated NPC of the current memory; if the relationship of the current person is instructor: say "[Given name of the current person] [surname of the current person] dodged your question in class, so you stayed late one night and asked it again. 'The orbs we're looking for - the orbs sent into the real world. You told us they were manmade, but how did we make them?'[paragraph break]Your instructor paused in the parking lot and played [zher] flashlight beam briefly into your eyes, blinding you, before [zhe] resumed walking. 'You don't want to know, [reverse nickname of the current person].' [Zher] [voice type of the current person] voice was terse. 'Don't think about it too hard.' Humming a focus melody, [zhe] got into [zher] car and shut the door.[paragraph break]You never cornered [zhim] successfully again, and your question went unanswered."; otherwise if the relationship of the current person is lover or the relationship of the current person is spouse: say "[if the affection strength of the current person > 3]Making love[otherwise]Sex[end if] became dangerous. You didn't want it to be. "; if the current person likes the player: say "Your [gr of the current person] was so desperately beautiful by candlelight, and your head and heart ached with exhaustion in the exiled world. "; otherwise if the affection strength of the current person is 3: say "You wanted sex to be like movement or music - something you could turn to that would help drown out the gods. "; otherwise: say "You didn't love your [gr of the current person] any more, but you did want [zhim], and sex was a way to pass the time without fighting. "; say "The sight of [given name of the current person]'s [skin tone of the current person] skin against the candlelit [color preference of the current person] sheets"; if the hair texture of the current person is not bald: say ", the sight of [zher] [hair length of the current person] [hair color of the current person] hair against the pillows,"; say " made parts of you tighten and heat and hunger, and the glow in [zher] [eye color of the current person] eyes let you know [zhe] shared your feelings.[paragraph break]And for a time, it was still safe to stroke your hand over [zher] cheek"; if the current person is female: say " and [one of]brush your thumb across[or]kiss your way[or]trace your tongue[or]caress your way[at random] [one of]over [zher] lips[or]along [zher] throat[or]down between [zher] breasts[at random] as"; otherwise: say " and [one of]brush your thumb across[or]kiss your way[or]trace your tongue[or]caress your way[at random] [one of]over [zher] lips[or]along [zher] throat[or]over [zher] chest[at random] as"; say " [zhe] [one of]gasped[or]smiled knowingly[or]laughed softly[or]purred[or]growled low in [zher] throat[or]caught [zher] breath[at random] and [one of]knotted [zher] hand in your [hair length of the player] hair[or]stretched languidly beneath your attentions[or]pressed [zher] body against you[or]rolled you on top of [zhim][or]rolled you to your back[or]twined [zher] arms around your neck[or]reached out to return the attentions in kind[at random]. For a time, it was still safe to go even further than that, and the moment when you lost control and [if the player is male]buried yourself in [zher] body[otherwise]surrendered to the wild rippling ecstasy[end if] was only a surrender - not a true danger. You were just "; if the player is male and the current person is male: say "two men"; otherwise if the player is male and the current person is female: say "a man and a woman"; otherwise if the player is female and the current person is female: say "two women"; otherwise if the player is female and the current person is male: say "a woman and a man"; say " lit by candlelight, free to take your pleasure in each other as heedlessly or recklessly or [if the affection strength of the current person > 3]lovingly[otherwise if the affection strength of the current person is 3] hungrily[otherwise]singlemindedly[end if] as you chose.[paragraph break]But then came the day when you lost the shield of music entirely, and in the brightest moment under candlelight, the everpresent gods pressed into your head. [Given name of the current person] vanished entirely in a screaming chaos of color and sound, and you were lost with only scattered rhythms and broken phrases to guide you back to your own head.[paragraph break]You came to yourself "; if the current person likes the player: say "half-naked on the floor of the bedroom. [Given name of the current person] was restraining you in a position that seemed to mock your earlier activities. [Zhe] just kept chanting your name over and over, exhaustion riding heavily in [zher] [voice type of the current person] voice, until [zhe] realized you could hear [zhim]. "; otherwise if the affection strength of the current person is 3: say "fully dressed and prone on the sidewalk outside your house with [given name of the current person] clinging to your arm and shouting at you, [zher] [voice type of the current person] run raw. "; otherwise: say "fully dressed curled fetally on the sidewalk not far from home. "; say "Dawn was tinting the sky above the cityline. You'd lost an entire night."; otherwise: let M be a random number between 1 and 4; if M is 1: say "You heard a humming - rising, falling, encouraging, enticing - and, after listening for a long moment, you started to hum as well. Your voice was tentative at first, but there was something right about the humming, and you grew stronger as you continued. The melody formed strange shapes in your mind. The shapes fit together -[paragraph break]- and suddenly, your mind fit back together. [given name of the current person] [surname of the current person] was there, [eye color of the current person] eyes intent on yours, humming as [zhe] knelt in front of you.[paragraph break][Zhe] saw the change in your expression and collapsed with a "; if the current person likes the player: say "gasp of relief. 'I thought we'd lost you!'[paragraph break]'No,' you reassured your [gr of the current person]. 'You pulled me back"; otherwise if the affection strength of the current person is 3: say "shudder of exhaustion. 'I'm so glad you're back. I thought we'd lost you.'[paragraph break]'No,' you said distantly. 'I'm not that weak"; otherwise if the affection strength of the current person < 3: say "snarl. 'Don't ever make me do that again. We can't afford to lose you'[paragraph break]'No,' you said. 'You can't.' And a moment later, thinking better of your harshness: 'And you won't"; say ".' But the minds of the gods, bright and terrible, were still all around you, and your mental shield was weak. You wondered how much more you could endure."; otherwise if M is 2: say "[Zhe] had to ask you twice before you heard [zhim]: 'It's getting worse, isn't it?'[paragraph break]Still holding the focusing melody in the back of your mind, you looked back at your [gr of the current person], [given name of the current person] [surname of the current person], taking in the way the candlelight flickered over [zher] [style impression of the current person] chosen clothing and [zher] [hair reference]. [Zher] [eye color of the current person] eyes were wide in [zher] [skin tone of the current person] face, and [zher] lips were tense. 'Worse?' you asked blankly.[paragraph break]'The voices. The colors.' [Zhe] waved vaguely towards the open window. 'The - gods.'[paragraph break]'Yeah. It is.'[paragraph break][Zhe] nodded. 'I thought it was.' Exhaustion filled [zher] [voice type of the current person] voice. 'I don't know how much longer I can take it.'[paragraph break]Involuntarily, you looked at the window. Through the [physical impression of the player] reflection of your face, past the [gr-age][apostrophe]s silhouette behind you, you watched the empty-eyed crowds walking the streets.[paragraph break]"; if the current person likes the player: say "You began to sing aloud, then, calling all your instructor's training up, forming the shapes in your mind that would help your mind stay distinct and safe. [Zhe] shivered, but then [zhe] looked back at you and began to sing too. Your voices rose and fell together, shaped and changed the shapes in your mind, and you saw your [gr of the current person] relax.[paragraph break][Given name of the current person] closed the curtains, shutting out the night, and the two of you began to play cards by candlelight."; otherwise if the affection strength of the current person is 3: if a random chance of 1 in 2 succeeds: say "'You'll be all right,' you said, and you closed the curtains to bring [zhim] back into the room. 'Just stay focused.' The quick smile you gave, the quick smile you received - neither one had much hope."; otherwise: say "'Neither do I,' you admitted. But it wasn't what [zhe] needed to hear, and you saw a sharp shiver go through the [if the height of the current person is not average height][height of the current person], [end if] [build of the current person] [zhoman]. You didn't say anything else, because you didn't know what else to say."; otherwise if the affection strength of the current person < 3: say "In some small spasm of the mind, you pictured [zhim] among the crowd. You imagined [zhis] [build of the current person] silhouette moving down the street as [zher] mind drifted into the embrace of the gods, and it wasn't such a bad image before you pushed it away. It wasn't such a bad image at all."; otherwise if M is 3: if the relationship of the current person is instructor: say "(***CONTINUE HERE)"; otherwise: now the secondary person is the instructor-person; say "Your instructor, [given name of the secondary person] [surname of the secondary person], didn't [one of]invite[or]court[or]appreciate[or]answer[at random] questions. [Zhe2]'d made that perfectly apparent, and so you were surprised when your [gr of the current person] raised [zher] hand in the gap between words.[paragraph break][Given name of the secondary person] stared at [zhim] for a moment before finally saying, '[Given name of the current person].'[paragraph break]'Why are there so few of us?' [Given name of the current person] glanced about for support. [if the affection strength of the current person > 3]You tried to look supportive, but there was only so much you could do[otherwise]You didn't respond; [zhe] was on [zher] own here[end if]. 'I mean - the entire world is at stake here, and you don't know if we can do this. Can't know if we can do this. Shouldn't there be more than...?' [Zher] abortive gesture encompassed you and the other few people [one of]seated[or]standing[at random] in the [one of]small[or]spacious[or]large[or]tiny[or]cramped[or]cozy[or]stuffy[or]cold[or]overly warm[at random] [one of]office[or]studio[or]apartment[or]kitchen[or]den[or]living room[or]gym[at random]. 'There are so many other people who could help us.'[paragraph break]To"; say " your surprise, the [build of the secondary person] [zhoman2] decided to answer. 'The [one of]art[or]skill[or]science[or]ability[or]craft[at random] you're learning is [one of]very[or]highly[or]extremely[or]considered[at random]... [one of]dangerous[or]sensitive[at random]. By learning these techniques, you're reworking the fabric of reality - weaving yourselves out of the will of the gods and into your own wills. There are risks involved, and those risks need to be limited.'[paragraph break]'How bad can the risks be?' [Given name of the current person] [one of]narrowed [zher] [eye color of the current person] eyes slightly[or]set [zher] shoulders[or]laughed a little, [zher] [voice type of the current person] voice attempting confidence[or]brushed down [zher] [style impression] chosen clothing[at random]. 'Name one.'[paragraph break]'Here's one to start. If you should trip and fall in front of a train tomorrow, your death could tear a hole in reality. Everyone who isn't stumbling around lost out there is a risk to our future.' It was such a melodramatic thing to say, but [given name of the secondary person][apostrophe]s [eye color of the secondary person] eyes burned, and [zhe2] wasn't laughing. Somehow, neither were you."; otherwise if M is 4: now the secondary person is the instructor-person; say "[Given name of the instructor-person] [surname of the instructor-person] was angrier than you had ever seen [zhim2]. [Zhe2] [one of] paced in front of the small group[or]stood perfectly still[or]clenched [zher2] fist as if [zhe2] would have liked to hit someone[or]cursed in a steady, monotonous stream[or]trembled visibly with passion[at random] as [zhe2] glared at "; if the relationship of the current person is instructor: say "you. "; otherwise: say "[given name of the current person] [surname of the current person], your [gr of the current person]. "; say "'You put us all at risk,' [zhe2] snarled. '[apostrophe]Pair up, and stay paired[apostrophe] - did you think it was a guideline? Did you think I was telling you for your health?[paragraph break]'Look outside!' You were meeting in the [one of]church basement[or]rink basement[or]lodge basement[or]back office[at random] that time, and there were no windows, so [zhe2] pointed at the door. 'Walk down that street, and look for people who are still people - people who aren't just acting out the minds of the gods! People who can think for themselves, and aren't just trapped in a loop of stray thought! People who can create, and love, and act instead of reacting![paragraph break]'And the next time you walk out on your partner,' [zhe2] said, returning [zher2] [eye color of the secondary person] gaze to "; if the relationship of the current person is instructor: say "you. "; otherwise: say "[nickname of the current person], 'I may just kill you myself. Because if the gods ever notice what we're doing - if they ever care - then we're all dead. I mean it.'[paragraph break][Zhe2] turned away"; let N be a random number between 1 and 5; if N is 1: say "and pinched the bridge of [zher2] nose"; otherwise if N is 2: say ", took off [zher2] glasses, and began cleaning them with tight, deliberate movements"; otherwise if N is 3: say " and stared into nowhere for a long moment"; otherwise if N is 4: say " and leaned on the wall for a moment, [zher2] head bowed. In another time, you might have thought that [zhe2] was praying, but you knew that [zhe2] was humming to [zhim2]self to strengthen [zher2] shield against the minds of the gods"; let the temporary NPC list be a list of people; repeat with temporary NPC running through NPCs: if the profession of the temporary NPC is priest: add the temporary NPC to the temporary NPC list; if the number of entries in the temporary NPC list is 0 and the profession of the player is priest: say ". Even you have cast off the long rituals and faith of seminary. Your God is gone from the world"; otherwise if the profession of the player is priest: say ". Even you and [the temporary NPC list] have cast off the long rituals and faith of seminary. Your God is gone from the world"; otherwise: say ". Even [the temporary NPC list] have cast off the long rituals and faith of seminary. Their God is gone from the world"; otherwise if N is 5: say " and hit the wall with [zher2] fist, an empty, booming sound"; say ".". Book 5 - Remembering Memories The current memory is a memory that varies. To remember the current memory: if the current memory is a core memory: remember a core memory; otherwise if the current memory is a crime-related memory: remember a crime-related memory; otherwise if the current memory is an contextual memory: remember an contextual memory. Volume 7 - Building the Exile Book 1 - Determining Rooms and Directions Table of Exile Room Generation location E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 E20 An Exile room is a kind of room. Some Exile rooms are defined by the Table of Exile Room Generation. An Exile room has a list of directions called the permitted directions list. An Exile room has a list of directions called the prevented directions list. The Exile is a region. All Exile rooms are in the Exile. Correspondence relates rooms to each other. The verb to correspond with (it corresponds with, they correspond with, it corresponded with, it is corresponded with) implies the correspondence relation. Table of Exile-Blight Correspondence Exile room Blight room E1 R1 E2 R2 E3 R3 E4 R4 E5 R5 E6 R6 E7 R7 E8 R8 E9 R9 E10 R10 E11 R11 E12 R12 E13 R13 E14 R14 E15 R15 E16 R16 E17 R17 E18 R18 E19 R19 E20 R20 To determine Exile rooms and directions: repeat with temporary locale running through Exile rooms: let matching locale be the Blight room corresponding to an Exile room of the temporary locale in the Table of Exile-Blight Correspondence; now temporary locale corresponds with matching locale; now the permitted directions list of the temporary locale is the permitted directions list of the matching locale; now the prevented directions list of the temporary locale is the prevented directions list of the matching locale; [say "[temporary locale] corresponds with [matching locale].";] repeat with temporary locale running through Exile rooms: let matching locale be the Blight room corresponding to an Exile room of the temporary locale in the Table of Exile-Blight Correspondence; repeat with thataway running through compass directions: let the possible locale be the room thataway from the matching locale; if possible locale is not nothing: if an Exile room (called the next room) corresponds with the possible locale: change the thataway exit of the temporary locale to the next room; [say "For correspondence with [matching locale], exit from [temporary locale] to [next room] needed to the [thataway]."] Book 2 - Naming Rooms The Exile courtyard is a room that varies. The Exile weaponry is a room that varies. The Exile bridge is a room that varies. The Exile hall is a room that varies. The Exile clothier is a room that varies. The Exile florist is a room that varies. The Exile stadium is a room that varies. The Exile arcanum is a room that varies. The Exile tower is a room that varies. The Exile graveyard is a room that varies. An Exile room can be focal or transitional. An Exile room is usually transitional. An Exile room has some indexed text called the locale type. The current street name is an indexed text that varies. To name rooms in the Exile: DM "Starting to name Exile rooms."; initialize the Exile keyword lists; determine the current street name; repeat with temporary prop running through significant props: [say "Checking [the temporary prop].";] if the temporary prop is in a room (called the temporary locale): [ say "[The temporary locale] encloses [the temporary prop].";] if an Exile room (called the matching locale) corresponds with the temporary locale: now the matching locale is focal; [let the temporary tracker be a random focal-event tracker in Z1; [See more about these in volume 11, Events.] move the temporary tracker to the temporary locale; now the key prop of the temporary tracker is the temporary prop;] [ say "***I found [the temporary prop] in [the temporary locale], and [the matching locale] is the room that corresponds!";] sort Exile keyword list 1 in random order; sort Exile keyword list 2 in random order; let K be a random number between 1 and 3; if K is 1: now the display name of the matching locale is "[entry 1 of Exile keyword list 1][entry 2 of Exile keyword list 2] [eventual title of the temporary prop]" in title case; otherwise if K is 2: now the display name of the matching locale is "[entry 1 of Exile keyword list 1] [eventual title of the temporary prop]" in title case; otherwise if K is 3: now the display name of the matching locale is "[entry 2 of Exile keyword list 1] [eventual title of the temporary prop]" in title case; now the locale type of the matching locale is the eventual title of the temporary prop; repeat with temporary room running through Exile rooms: if the temporary room is focal: [Skip focal rooms - they just mark street separations, effectively] determine the current street name; otherwise: [For transitional rooms - streets, etc.] let L be 8; let the previous direction be northwest; repeat with thataway running through the compass set: if the room thataway from the temporary room is nothing: now L is L - 1; now the previous direction is thataway; if L is 1: let M be a random number between 1 and 3; if M is 1: now the locale type of the temporary room is "dead End"; otherwise if M is 2: now the locale type of the temporary room is "cul-de-sac"; otherwise: now the locale type of the temporary room is "blind Alley"; otherwise if L is 2: let M be a random number between 1 and 8; if M is 1: now the locale type of the temporary room is "street"; otherwise if M is 2: now the locale type of the temporary room is "road"; otherwise if M is 3: now the locale type of the temporary room is "walk"; otherwise if M is 4: now the locale type of the temporary room is "way"; otherwise if M is 5: now the locale type of the temporary room is "avenue"; otherwise if M is 6: now the locale type of the temporary room is "row"; otherwise if M is 7: now the locale type of the temporary room is "alley"; otherwise if M is 8: now the locale type of the temporary room is "lane"; otherwise if L is 3: let M be a random number between 1 and 3; if M is 1: now the locale type of the temporary room is "junction"; otherwise if M is 2: now the locale type of the temporary room is "juncture"; otherwise if M is 3: now the locale type of the temporary room is "corner"; otherwise if L is 4: let M be a random number between 1 and 3; if M is 1: now the locale type of the temporary room is "crossing"; otherwise if M is 2: now the locale type of the temporary room is "crossroads"; otherwise if M is 3: now the locale type of the temporary room is "intersection"; otherwise: let M be a random number between 1 and 3; if M is 1: now the locale type of the temporary room is "square"; otherwise if M is 2: now the locale type of the temporary room is "field"; otherwise if M is 3: now the locale type of the temporary room is "park"; now the display name of the temporary room is "[current street name] [locale type of the temporary room]" in title case; if the display name of the temporary room matches the text " ": replace the text " " in the display name of the temporary room with " ". To determine the current street name: sort Exile keyword list 1 in random order; sort Exile keyword list 2 in random order; sort the common surname list of the ethnicity of the current person in random order; let K be a random number between 1 and 6; if K is 1: now the current street name is "[entry 1 of Exile keyword list 1]"; otherwise if K is 2: now the current street name is "[entry 2 of Exile keyword list 1]"; otherwise if K is 3: now the current street name is "[entry 1 of Exile keyword list 1][entry 2 of Exile keyword list 2]"; otherwise if K is 4: now the current street name is "[entry 1 of Exile keyword list 1] [entry 1 in the common surname list of the ethnicity of the current person]"; otherwise if K is 5: now the current street name is "[entry 2 of Exile keyword list 1] [entry 1 in the common surname list of the ethnicity of the current person]"; otherwise if K is 6: now the current street name is "[entry 1 in the common surname list of the ethnicity of the current person]". Exile keyword list 1 is a list of texts that varies. Exile keyword list 2 is a list of texts that varies. To initialize the Exile keyword lists: now Exile keyword list 1 is {}; now Exile keyword list 2 is {}; if the current humidity is arid: add {"Damp", "Moist", "Dank", "Slime", "Slippery ", "Watery ", "Water", "Drizzly ", "Splash"} to Exile keyword list 1; add {"flowing", "flow", "gushing", "gush", "scour", "scoured", "scouring", "surging", "surge", "sweeping", "sweep", "swirling", "swirl", "swirled"} to Exile keyword list 1; if the current humidity is humid or the current humidity is precipitating: add {"Barren ", "Hard", "Arid ", "Dry", "Desolate "} to Exile keyword list 1; add {"blot", "blotted", "dessicant", "parched"} to Exile keyword list 2; if the current temperature is hot: add {"Chill", "Ice", "Icy ", "Frost", "Snow", "Frozen ", "Sleet", "Slush", "Slushy "} to Exile keyword list 1; add {"drift", "bank", "flake"} to Exile keyword list 2; if the current temperature is cold: add {"Hot"} to Exile keyword list 1; add {"bake", "baked", "baking", "roast", "roasted", "roasting"} to Exile keyword list 2; if the current humidity is arid: add {"Steam", "Steaming ", "Swelter ", "Warm", "Sticky "} to Exile keyword list 1; add {"boil", "boiled", "boiling", "fry", "fried", "frying"} to Exile keyword list 2; repeat with temporary shrine statue running through Unperceived shrine statues: let the temporary deity be the shrine deity of the temporary shrine statue; DM "Adding keywords for [temporary deity] to the Exile keyword lists."; if the temporary deity is Inho: [Disgust] add {"Abhorrence ", "Abhorred ", "Aversion ", "Bothered ", "Contempt ", "Deplored ", "Disgust ", "Disturbed ", "Loathing ", "Revulsion ", "Removed "} to Exile keyword list 1; otherwise if the temporary deity is Muisti: [Memory] add {"Cited", "Cognizant ", "Enshrined ", "Reminiscing ", "Retrospective "} to Exile keyword list 1; add {"memory", "treasure", "recall", "recollect"} to Exile keyword list 2; otherwise if the temporary deity is Apuraha: [Scholarship] add {"Bookish ", "Civilized ", "Cultured ", "Learned ", "Lettered ", "Literate ", "Scholastic ", "Trained "} to Exile keyword list 1; add {"college", "read", "study"} to Exile keyword list 2; otherwise if the temporary deity is Ennakointi: [Anticipation] add {"Alarmed", "Apprehensive ", "Anxious ", "Disquieted ", "Foreboding ", "Mistrusting ", "Suspicious ", "Uneasy ", "Worried "} to Exile keyword list 1; add {"waiting", "premonition", "vagrant "} to Exile keyword list 2; otherwise if the temporary deity is Kauhusta: [Horror] add {"Dire", "Dread", "Fearful ", "Hideous ", "Hiding ", "Horrendous ", "Horrific ", "Nightmare "} to Exile keyword list 1; add {"asylum", "fear", "hideaway", "horror", "retreat", "safeguard", "shelter", "shield", "terror"} to Exile keyword list 2; otherwise if the temporary deity is Yhtenaisyys: [Unity] add {"Amity ", "Blend", "Harmony ", "Lull", "Peace", "Rest", "Treaty ", "Unity "} to Exile keyword list 1; add {"accord", "alliance", "meeting", "union"} to Exile keyword list 2; otherwise if the temporary deity is Arkuus: [Tenderness] add {"Benevolent ", "Care", "Grace", "Gracious ", "Kind", "Mercy", "Sympathetic ", "Tact", "Tender "} to Exile keyword list 1; add {"altruist", "bounty", "charity"} to Exile keyword list 2; otherwise if the temporary deity is Innostus: [Zeal] add {"Avid ", "Diligent ", "Eager ", "Vehement"} to Exile keyword list 1; add {"ardor", "craving", "intensity", "verve", "zeal"} to Exile keyword list 2; otherwise if the temporary deity is Taiteellisuus: [Artistry] add {"Artistic ", "Brilliant ", "Clever", "Craft", "Expert ", "Ingenious "} to Exile keyword list 1; add {"finesse", "method", "polish", "style", "symmetry", "talent"} to Exile keyword list 2; otherwise if the temporary deity is Kohtelias: [Courteous] add {"Courteous ", "Chivalrous ", "Civil ", "Cozy ", "Elegant ", "Gallant ", "Thoughtful "} to Exile keyword list 1; add {"ceremony", "courtesy", "favor"} to Exile keyword list 2; otherwise if the temporary deity is Ylpea: [Proud] add {"Dignified ", "Proud", "Vain"} to Exile keyword list 1; add {"conceit", "delight", "disdain", "honor", "hubris", "pleasure", "pride"} to Exile keyword list 2; otherwise if the temporary deity is Peloton: [Fearless] add {"Bold", "Brassy ", "Daring ", "Dashing ", "Dauntless ", "Gallant ", "Sure", "Valiant "} to Exile keyword list 1; add {"assurance", "courage", "hero"} to Exile keyword list 2; otherwise if the temporary deity is Holtiton: [Reckless] add {"Brash ", "Careless ", "Dangerous ", "Desperate ", "Headlong ", "Heedless ", "Luck", "Opportune ", "Rash", "Reckless ", "Wild "} to Exile keyword list 1; add {"danger", "hazard", "jeopardize", "risk", "venture"} to Exile keyword list 2; otherwise if the temporary deity is Huolellinen: [Careful] add {"Alert ", "Concerned ", "Guarded", "Mindful", "Prim", "Shy", "Sober", "Vigilant ", "Wary "} to Exile keyword list 1; add {"guard"} to Exile keyword list 2; otherwise if the temporary deity is Laakari: [Doctor] add {"Diagnosed", "Frail", "Ill"} to Exile keyword list 1; add {"health", "injector", "needle", "pierced", "piercing", "syringe"} to Exile keyword list 2. Book 3 - Transitional Exile Backdrops Some milling people are a backdrop. The description of the milling people is "It's hard to remember what it was like to be part of this world." Some buildings are a backdrop. To prepare Exile backdrops: move the milling people backdrop to all transitional Exile rooms; move the buildings backdrop to all transitional Exile rooms; update backdrop positions. Volume 8 - Describing the Exile To write Exile room descriptions: write transitional room descriptions; write focal room descriptions. Book 1 - Transitional Room Descriptions To write transitional room descriptions: DM "Writing transitional room descriptions."; repeat with temporary locale running through transitional Exile rooms: now the current room is the temporary locale; write the Exile introduction sentence; write the Exile people sentence; write the Exile buildings sentence; write the transitional exits sentence; now the desc of the current room is "[the Exile introduction sentence] [the Exile people sentence] [the Exile buildings sentence] [the transitional exits sentence]" in sentence case. Book 2 - Writing Transitional Sentences The Exile introduction sentence is some indexed text that varies. The Exile people sentence is some indexed text that varies. The Exile buildings sentence is some indexed text that varies. The transitional exits sentence is some indexed text that varies. Part 1 - Exile Introduction Sentences To write the Exile introduction sentence: now the Exile introduction sentence is "Nothing seems very real here." Part 2 - Exile People Sentences To write the Exile people sentence: now the Exile people sentence is "People [one of]wander[or]meander[or]wisp[or]move[at random] [one of]down[or]up[or]through[or]along[or]around[or]into and out of[at random] [one of]this[or]the[at random] [one of]narrow[or]wide[or]spacious[or]well-lit[or]poorly-lit[or]shadowy[at random] [locale type of the current room]." Part 3 - Exile Buildings Sentences To write the Exile buildings sentence: now the Exile buildings sentence is "Buildings [one of]rise[or]stand[or]are positioned[or]cast their shadows[or]loom[or]tower[or]have been scattered[at random] all around." Part 4 - Transitional Exits Sentences To write the transitional exits sentence: if the number of entries in the prevented directions list of the current room is greater than the number of entries in the permitted directions list of the current room: now the transitional exits sentence is "You [one of]think you can go[or]can go[or]can travel[or]see exits to the[at random] [permitted directions list of the current room]."; otherwise: now the transitional exits sentence is "The buildings block you from going [prevented directions list of the current room], but all other ways are open." Book 3 - Focal Room Descriptions Part 1 - Eventual Focal Inventory A randomized supporter is a kind of supporter. A randomized supporter is usually privately-named. A randomized supporter has an adjective called the focal adjective. Understand the focal adjective property as describing a randomized supporter. A randomized supporter has some text called the don't-move-me text. The don't-move-me text of a randomized supporter is usually "The [random shopkeeper in the location] would likely object." A randomized container is a kind of container. A randomized container is usually privately-named. A randomized container has an adjective called the focal adjective. Understand the focal adjective property as describing a randomized container. A randomized container has some text called the don't-move-me text. The don't-move-me text of a randomized container is usually "The [random shopkeeper in the location] would likely object." A randomized prop is a kind of thing. A randomized prop is usually privately-named and fixed in place. A randomized prop has an adjective called the focal adjective. Understand the focal adjective property as describing a randomized prop. A randomized prop has some text called the don't-move-me text. The don't-move-me text of a randomized prop is usually "The [random shopkeeper in the location] would likely object." Taking or pushing an randomized prop is futile lifting. Taking or pushing an randomized supporter is futile lifting. Taking or pushing an randomized container is futile lifting. Instead of futile lifting: say "[don't-move-me text of the noun][line break]". Section 1 - Market Section 2 - Hospital The hospital building is a scenery randomized prop. Understand "huge", "makeshift", "warehouse", "hospital", and "building" as the hospital building. The printed name of the hospital building is "building". The hospital corridor is a scenery randomized prop. Understand "corridor", "corridors", "canvas", "hall", "hallway", "wire", "panel", "panels", "pole", "poles", "metal", "framework", and "hanging" as the hospital corridor. The description of the hospital corridor is "The corridors here are formed by hanging canvas panels upon metal frameworks. Though they do very little to muffle sound, they do provide visual privacy for the patients and doctors - not that privacy is a real concept to the god-taken drones stumbling through the building." Before entering the hospital corridor: now the current person is a random shopkeeper in the location; say "[The current person] steps out and blocks your approach. Looking you up and down briefly, [zhe] shakes [zher] head and motions you away from the corridor." The hospital sentinel is a scenery randomized prop. Understand "hospital", "guard", "guards", "sentinel", and "sentinels" as the hospital sentinel. The printed name of the hospital sentinel is "[focal adjective of the hospital sentinel] sentinel". The hospital catwalk is a scenery randomized prop. Understand "catwalks" as the hospital catwalk. The printed name of the hospital catwalk is "[focal adjective of the hospital catwalk] catwalk". Section 3 - Bridge Section 4 - Hall The hall banner is a scenery randomized prop. Understand "banner" and "banners" as the hall banner. The printed name of the hall banner is "[focal adjective of the hall banner] banner". The hall flagstones are a scenery randomized prop. Understand "flagstone" and "flagstones" as the hall flagstones. The printed name of the hall flagstones is "[focal adjective of the hall flagstones] flagstones". The hall conductor is a privately-named scenery person. Understand "conductor" as the hall conductor. The printed name of the hall conductor is "[build of the hall conductor] conductor". The hall music is some text that varies. To update the hall music: let L be a random number between 1 and 7; if L is 1: now the hall music is "stately waltz"; otherwise if L is 2: now the hall music is "country waltz"; otherwise if L is 3: now the hall music is "sultry rumba"; otherwise if L is 4: now the hall music is "jaunty cha-cha"; otherwise if L is 5: now the hall music is "bouncy polka"; otherwise if L is 6: now the hall music is "lively swing tune"; otherwise if L is 7: now the hall music is "heated tango". Section 5 - Church The church ceiling is a scenery randomized prop. Understand "towering" and "ceiling" as the church ceiling. The printed name of the church ceiling is "ceiling". The church windows are a scenery randomized prop. Understand "stained", "glass", "window", and "windows" as the church windows. The printed name of the church windows is "[focal adjective of the church windows] stained glass windows". The church furniture is a scenery randomized prop. Understand "smashed" and "furniture" and "pew" and "pews" and "altar" as the church furniture. The printed name of the church furniture is "smashed furniture". The church glass is a scenery randomized prop. Understand "shard", "shards", "of", and "glass" as the church glass. The printed name of the church glass is "shards of [focal adjective of the church glass] glass". The church floor is a scenery randomized prop. Understand "scarred" and "floor" as the church floor. The printed name of the church floor is "scarred [focal adjective of the church floor] floor". Section 6 - Greenhouse The greenhouse panels are a scenery randomized prop. Understand "panels", "panel", "window", and "skylight" as the greenhouse panels. The printed name of the greenhouse panels is "[focal adjective of the greenhouse panels] panels". The greenhouse counter is a scenery randomized supporter. Understand "counter" as the greenhouse counter. The printed name of the greenhouse counter is "[focal adjective of the greenhouse counter] counter". The greenhouse planters are a scenery randomized container. Understand "planter", "planters", "pot", and "pots" as the greenhouse planters. The printed name of the greenhouse planters is "[focal adjective of the greenhouse planters] planters". The greenhouse flowers are a randomized prop. Understand "flower", "flowers", "stem", "stems", "blossom","blossoms", "stalks", "stalk", "sprays", "spray", "shoots", and "shoot" as the greenhouse flowers. The greenhouse flowers have an adjective called the secondary adjective. Understand the secondary adjective property as describing the greenhouse flowers. The printed name of the greenhouse flowers is "[focal adjective of the greenhouse flowers] flowers". The greenhouse greenery is a scenery randomized prop. Understand "leaves", "leaf", "greenery", "plant", "plants", "tree", and "trees" as the greenhouse greenery. The printed name of the greenhouse greenery is "[focal adjective of the greenhouse greenery] greenery". The greenhouse wrapping paper is a randomized prop. Understand "wrapping" and "paper" as the greenhouse wrapping paper. The printed name of the greenhouse wrapping paper is "[focal adjective of the greenhouse wrapping paper] wrapping paper". The greenhouse shears are a randomized prop. Understand "shears", "shear", "scissor", and "scissors" as the greenhouse shears. The printed name of the greenhouse shears is "[focal adjective of the greenhouse shears] shears". The greenhouse paperwork is a randomized prop. Understand "paperwork", "paper", and "papers" as the greenhouse paperwork. The printed name of the greenhouse paperwork is "[focal adjective of the greenhouse paperwork] paperwork". Section 7 - Stadium Section 8 - Arcanum Section 9 - Tower Section 10 - Cemetary Part 2 - Shopkeepers A shopkeeper is a kind of person. 10 shopkeepers are in Z1. Understand "woman" as a shopkeeper when the item described is female. Understand "man" as a shopkeeper when the item described is male. A shopkeeper has some indexed text called the desc. A shopkeeper has some indexed text called the examine-desc. Understand the physical impression property as describing a shopkeeper. Rule for writing a paragraph about a shopkeeper (called the target shopkeeper): say "[desc of the target shopkeeper][line break]". Rule for printing the name of a shopkeeper (called the target person): now the current person is the target person; say "[physical impression of the target person] [zhoman]". Instead of examining a shopkeeper (called the target person): say "[examine-desc of the target person][line break]". Section 1 - Placing Shopkeepers To place a shopkeeper: now the current person is a random shopkeeper in Z1; if a random chance of 1 in 2 succeeds: now the current person is male; otherwise: now the current person is female; let the age minimum be 16; let the age maximum be 100; now the age of the current person is ((a random number between the age minimum and the age maximum) + (a random number between the age minimum and the age maximum)) / 2; determine the ethnicity; name the character; determine features; if the facial hair of the current person is not "": now the examine-desc of the current person is "The [if the hair texture of the current person is bald]bald [end if][gr-age] is [height of the current person] and [build of the current person], with [one of]distinctly[or]distinctively[or]rather[or]notably[or]unusually[at random] [physical impression of the current person] features and a [facial hair of the current person]. [Zher] skin is [skin tone of the current person] and [zher] eyes are [eye color of the current person][if the hair texture of the current person is not bald], and [zher] [hair texture of the current person] hair is [hair length of the current person] and [hair color of the current person][end if]. [Zhe] is dressed [style impression of the current person]."; otherwise: now the examine-desc of the current person is "The [if the hair texture of the current person is bald]bald [end if][gr-age] is [height of the current person] and [build of the current person], with [one of]a distinctly[or]a distinctively[or]a rather[or]a notably[or]an unusually[at random] [physical impression of the current person] face and [style impression of the current person] chosen clothing. [Zher] skin is [skin tone of the current person] and [zher] eyes are [eye color of the current person][if the hair texture of the current person is not bald], and [zher] [hair texture of the current person] hair is [hair length of the current person] and [hair color of the current person][end if]."; now the current person is in the current room. Section 2 - Setting Shopkeeper Attitudes To set shopkeeper attitudes: repeat with temporary room running through focal rooms: now the current room is the temporary room; now the current person is a random shopkeeper in the current room; if the locale type of the current room is "Market": now the desc of the current person is "A [physical impression of the current person] [gr-age] with [hair reference] [one of]walks through the market hawking [zher] wares[or]sneers casually at one of [zher] competitors in the marketplace[or]coughs occasionally as [zhe] wanders through the market[or]aggressively convinces passersby to examine [zher] goods[or]seems to be making quite a profit as [zhe] corners customer after customer to examine [zher] wares[at random]."; if the locale type of the current room is "Hospital": now the desc of the current person is "A [build of the current person] [gr-age] [one of]stands at the reception desk[or]surveys the crowd with grim eyes[or]glances up every now and then to the catwalk[or]rubs [zher] right thumb absentmindedly over a scar on [zher] left wrist[at random]."; if the locale type of the current room is "Bridge": now the desc of the current person is "A [if the height of the current person is not average height][height of the current person], [end if][physical impression of the current person] [zhoman] [one of]loiters casually beside the bridge[or]scans passersby with an overly sharp eye[or]picks [zher] teeth absent-mindedly with the tip of a knife[or]cleans [zher] nails absent-mindedly with the tip of a knife[or]leans sleepily over the railing to watch water go by beneath the bridge[at random]."; if the locale type of the current room is "Hall": now the desc of the current person is "A [build of the current person] [gr-age] [one of]watches the crowd enviously[or]sways slightly[or]hums along with the music[or]taps [zher] fingers in time[at random] from [zher] position beside the refreshment table."; update the hall music; if the locale type of the current room is "Church": now the desc of the current person is "A [physical impression of the current person] [gr-age] [one of]sorts quietly through the wreckage[or]stands at the front of the room, seeming lost[or]paces quietly down the ruined aisle and back[or]gazes thoughtfully up at the [church windows][at random]."; if the locale type of the current room is "Greenhouse": now the desc of the current person is "A [if the height of the current person is not average height][height of the current person], [end if] [physical impression of the current person] [gr-age] leans against the counter and [one of]inspects [zher] nails[or]hums softly to [zhim]self[or]watches you expressionlessly[or]trims the stems of a plant with a pair of [greenhouse shears][or]sorts through a stack of [greenhouse paperwork][at random]."; if the locale type of the current room is "Stadium": now the desc of the current person is "Nearby, a [gr-age] [one of]howls for blood as [zhe] watches the events below[or]dips [zher] hand into [zher] popcorn again as [zhe] stares fixedly downward[or]sits with [zher] hands steepled under [zher] chin as [zhe] watches[at random]."; if the locale type of the current room is "Arcanum": now the desc of the current person is "A [if the height of the current person is not average height][height of the current person] [end if] [gr-age] swathed in a [color preference of the current person] cloak [one of]sorts through papers on the counter[or]grinds something in a mortar behind the counter[or] inspects a row of bubbling test tubes[or]inscribes a series of runes on a piece of parchment behind the counter[or]shelves books one by one with deliberate motions[at random]."; if the locale type of the current room is "Tower": now the desc of the current person is "A [physical impression of the current person] [gr-age] [one of]thumbs through a stack of papers[or]runs a fingertip idly across a scar on [zher] temple as [zhe] studies you[or]is going through a stack of documents one by one, first perusing and then signing each one[or]sits very straight in the chair nearby[at random]."; if the locale type of the current room is "Cemetary": now the desc of the current person is "Huddled in a [color preference of the current person] wrap, a [if the height of the current person is not average height][height of the current person], [end if][build of the current person] [zhoman] [one of]stares at a headstone[or]leans tiredly against the trunk of a tree[or]wanders slowly down a path[or]watches you expressionlessly[at random].". Part 3 - Room Descriptions Section 1 - Writing Room Descriptions To write focal room descriptions: DM "Writing focal room descriptions. "; repeat with temporary room running through focal rooms: now the current room is the temporary room; if a shopkeeper is not in the current room: furnish focal rooms; place a shopkeeper; DM "Placing a shopkeeper in the [locale type of the current room]. This probably means this room needs all the other random stuff that normally comes with it, so I'm going to place that too. "; otherwise: DM "Shopkeeper present in the [locale type of the current room]. "; now the current person is a random shopkeeper in the current room; if the locale type of the current room is "Market": now the desc of the current room is "This room needs a proper description."; if the locale type of the current room is "Hospital": now the desc of the current room is "This large, open building, originally a warehouse, has been converted into a makeshift hospital. The sounds of low talking, electronic beeping, and muffled weeping wind through the labyrinthine corridors. Above, [hospital sentinel]s patrol a steady beat along [hospital catwalk]s."; if the locale type of the current room is "Bridge": now the desc of the current room is "This room needs a proper description."; if the locale type of the current room is "Hall": now the desc of the current room is "Dancers [one of]swirl across[or]spin across[or]step in measured lines across[or]whirl across[or]spiral over[or]circumnavigate[at random] the [hall flagstones] beneath the [focal adjective of the hall banner] banners that [one of]hang[or]float[or]depend[or]dangle[or]droop[at random] from the arched ceiling. The band has been arrayed across a dais to one side, and they play to the [one of]concise[or]lazy[or]precise[or]enthusiastic[or]practiced[or]dramatic[or]expressive[at random] cues of a [hall conductor]."; update the hall music; now the sound of the current room is "The band is currently playing a [hall music].[line break]"; if the locale type of the current room is "Church": now the desc of the current room is "The towering ceiling is almost lost in shadows, for neither electric lights nor candles are burning here, but there is enough light from the [church windows] to see that the church has been ravaged. [odor of the current room] Smashed furniture and [church glass] litter the [church floor]."; if the locale type of the current room is "Greenhouse": now the desc of the current room is "[The greenhouse panels] overhead concentrate the sunlight across rows and rows of [greenhouse greenery]. [Greenhouse planters] [one of]spill forth[or]contain[or]nurture[at random] [one of]tall stalks of[or]sprays of[or]many shoots of[at random] [secondary adjective of the greenhouse flowers] [greenhouse flowers]. The occasional butterfly flits past, and birdsong filters from the trees at the edges. A few cabinets surround [a greenhouse counter] to one side." in sentence case; if the locale type of the current room is "Stadium": now the desc of the current room is "This room needs a proper description."; if the locale type of the current room is "Arcanum": now the desc of the current room is "This room needs a proper description."; if the locale type of the current room is "Tower": now the desc of the current room is "This room needs a proper description."; if the locale type of the current room is "Cemetary": now the desc of the current room is "Cold grey mist slithers between the trunks of the [one of]tall[or]slender[or]drooping[or]shadowy[or]thin[or]severe[at random] [one of]willow[or]pine[or]fir[or]cherry[or]laurel[or]poplar[at random] trees and around the low shapes of headstones. Gravel paths form a somber labyrinth as they wind about the graves. Carried by a slight wind, voices from neighboring streets float erratically past, raised in shouts of laughter or cries of misery." in sentence case; set shopkeeper attitudes; DM "Focal descriptions complete." Section 2 - Furnishing Focal Rooms The furnishings adjective list is a list of adjectives that varies. To furnish focal rooms: if the locale type of the current room is "Market": DM "Furnishing [the current room] with stuff. Please add stuff."; if the locale type of the current room is "Hospital": move the hospital building to the current room; move the hospital corridor to the current room; now the furnishings adjective list is {hard-eyed, grim, sullen, fierce, glowering, stern, flint-eyed, implacable}; sort the furnishings adjective list in random order; now the focal adjective of the hospital sentinel is entry 1 of the furnishings adjective list; move the hospital sentinel to the current room; now the furnishings adjective list is {steel, high, narrow, wide, swaying, treacherous, creaky, latticed}; sort the furnishings adjective list in random order; now the focal adjective of the hospital catwalk is entry 1 of the furnishings adjective list; move the hospital catwalk to the current room; if the locale type of the current room is "Bridge": DM "Furnishing [the current room] with stuff. Please add stuff."; if the locale type of the current room is "Hall": now the furnishings adjective list is the color list; sort the furnishings adjective list in random order; now the focal adjective of the hall banner is entry 1 of the furnishings adjective list; now the furnishings adjective list is {polished, cracked, crumbling, grey, black, brown, white, granite}; sort the furnishings adjective list in random order; now the focal adjective of the hall flagstones is entry 1 of the furnishings adjective list; now the current person is the hall conductor; determine features; move the hall conductor to the current room; if the locale type of the current room is "Church": now the furnishings adjective list is {enormous, colossal, shattered, broad, wide, tall, cracked, ruined}; sort the furnishings adjective list in random order; now the focal adjective of the church windows is entry 1 of the furnishings adjective list; move the church windows to the current room; now the furnishings adjective list is {red, blue, green, yellow, golden, purple, orange, sparkling, multihued}; sort the furnishings adjective list in random order; now the focal adjective of the church glass is entry 1 of the furnishings adjective list; move the church glass to the current room; now the furnishings adjective list is {wood, stone, oak, marble, maple, birch, pale ash}; sort the furnishings adjective list in random order; now the focal adjective of the church floor is entry 1 of the furnishings adjective list; move the church floor to the current room; now the odor of the current room is "The air [one of]reeks of[or]smells of[or]is redolent of[at random] [one of]incense[or]smoke[or]ash[or]oil[or]myrrh[at random] and [one of]flowers[or]blood[or]broken wood[or]broken stone[at random]."; if the locale type of the current room is "Greenhouse": now the furnishings adjective list is {glass, polished, translucent}; sort the furnishings adjective list in random order; now the focal adjective of the greenhouse panels is entry 1 of the furnishings adjective list; move the greenhouse panels to the current room; now the furnishings adjective list is {marble, long, short, stone, wooden, sturdy, wobbly}; sort the furnishings adjective list in random order; now the focal adjective of the greenhouse counter is entry 1 of the furnishings adjective list; move the greenhouse counter to the current room; now the furnishings adjective list is {tall, long, white, broad}; sort the furnishings adjective list in random order; now the focal adjective of the greenhouse planters is entry 1 of the furnishings adjective list; move the greenhouse planters to the current room; now the furnishings adjective list is {scarlet, amber, cream-colored, yellow, violet, spotted}; sort the furnishings adjective list in random order; now the focal adjective of the greenhouse flowers is entry 1 of the furnishings adjective list; now the furnishings adjective list is {large, tiny, profuse, fragrant}; sort the furnishings adjective list in random order; now the secondary adjective of the greenhouse flowers is entry 1 of the furnishings adjective list; now the greenhouse flowers are in the greenhouse planters; now the furnishings adjective list is {dense, thick, gleaming, healthy}; sort the furnishings adjective list in random order; now the focal adjective of the greenhouse greenery is entry 1 of the furnishings adjective list; move the greenhouse greenery to the current room; now the furnishings adjective list is {colorful, blue, white, translucent, shimmering}; sort the furnishings adjective list in random order; now the focal adjective of the greenhouse wrapping paper is entry 1 of the furnishings adjective list; move the greenhouse wrapping paper to the greenhouse counter; now the furnishings adjective list is {old, rusty, gleaming, polished, black-handled}; sort the furnishings adjective list in random order; now the focal adjective of the greenhouse shears is entry 1 of the furnishings adjective list; move the greenhouse shears to the greenhouse counter; now the furnishings adjective list is {dense, boring, thick, yellowed, stained}; sort the furnishings adjective list in random order; now the focal adjective of the greenhouse paperwork is entry 1 of the furnishings adjective list; move the greenhouse paperwork to the greenhouse counter; if the locale type of the current room is "Stadium": DM "Furnishing [the current room] with stuff. Please add stuff."; if the locale type of the current room is "Arcanum": DM "Furnishing [the current room] with stuff. Please add stuff."; if the locale type of the current room is "Tower": DM "Furnishing [the current room] with stuff. Please add stuff."; if the locale type of the current room is "Cemetary": DM "Furnishing [the current room] with stuff. Please add stuff.". Volume 9 - Gameplay (Everywhere) Book 1 - Verb Changes Part 1 - Look Chapter 1 - Room Descriptions The room desc body text rule is listed instead of the room description body text rule in the carry out looking rulebook. This is the room desc body text rule: if the location provides the property desc: say "[the desc of the location][line break]"; otherwise: say the description of the location. The room display name rule is listed instead of the room description heading rule in the carry out looking rulebook. This is the room display name rule: if the location provides the property display name: say "[bold type][the display name of the location][roman type]"; otherwise: say "[bold type][printed name of the location][roman type]". Book 2 - New Verbs Part 1 - Listing Exits Listing exits is an action applying to nothing. Understand "exits" as listing exits. Carry out listing exits: say "From here, you can go:[line break]"; repeat with thataway running through directions: let the target room be the room thataway from the location; if the target room is not nothing: say "- [thataway] "; if the target room is visited: say "("; if the target room is in the Blight or the target room is a shrine room: say the display name of the target room in lower case; say ")[line break]"; otherwise: say the display name of the target room in title case; say ")[line break]"; otherwise: say "into the unknown[line break]". Part 2 - Swimming Swimming is an action applying to nothing. Understand "swim" as swimming. Report swimming: say "You think you knew how to swim, once, but you can't remember it now." Swimming directionally is an action applying to one thing. Understand "swim [direction]" as swimming directionally. Instead of swimming directionally: try swimming. Swimming objectionably is an action applying to one thing. Understand "swim in/to [something]" and "swim [something]" as swimming objectionably. Instead of swimming objectionably: try swimming. Book 3 - Testing + Debugging [Note: This entire section needs to be commented out for a release version. Of course, at the time of this writing, a whole lot more than that needs to be removed.] Part 1 - Phasing By Hand Phasing is an action applying to nothing. Understand "phase" as phasing. Check phasing: if debug state is false: say "Sorry, this is a debug specific command."; stop the action; else if a room (called the next room) corresponds with the location: say "Phasing check complete. Target room [next room] exists. Phasing now.[paragraph break]Please note that you are bypassing normal Exile access and will not automatically return."; otherwise: say "Phasing error: no corresponding room exists."; stop the action. Carry out phasing: if a room (called the next room) corresponds with the location: move the player to the next room. Part 2 - Remembering By Hand Remembering is an action applying to nothing. Understand "remember" as remembering. Carry out remembering: if debug state is false: say "Sorry - this verb is shut down when debug is turned off. If you try it again with debug on, it will scroll the heck out of you."; else: say "This is a debug verb that will scroll the heck out of you. Continue?"; if the player consents: repeat with target memory running through memories: now the current memory is the target memory; remember the current memory; else: say "Probably a good idea." Part 3 - Listing Stats Listing stats is an action applying to nothing. Understand "stats" as listing stats. Carry out listing stats: if debug state is false: say "Sorry - this is a debug-only command."; else: say "Strength: [Strength of the player]. Regular attack: [rattack of the player]. Enhanced attack: [eattack of the player].[line break]Regular speed: [rspeed of the player]. Enhanced speed: [espeed of the player].[paragraph break]Stamina: [Stamina of the player]. Regular defense: [rdefense of the player]. Enhanced defense: [edefense of the player].[line break]Health maximum: [rhealth of the player]. Current health: [chealth of the player].[paragraph break]Will: [will of the player]. Regular Exile movement: [rmovement of the player]. Enhanced Exile movement: [emovement of the player].[line break]Attunement maximum: [rattunement of the player]. Current attunement: [cattunement of the player].[paragraph break]Knowledge: [knowledge of the player]. Regular awareness: [rawareness of the player]. Enhanced awareness: [eawareness of the player].[line break]Regular stealth: [rstealth of the player]. Enhanced stealth: [estealth of the player].". Listing monster stats is an action applying to one thing. Understand "stats [something]" as listing monster stats. Carry out listing monster stats: say "Examining [a noun].[line break]Regular physical attack: [rattack of the noun]. Enhanced physical attack: [eattack of the noun].[line break]Regular mental attack: [rmattack of the noun]. Enhanced mental attack: [emattack of the noun].[line break]Regular speed: [rspeed of the noun]. Enhanced speed: [espeed of the noun].[line break]Regular defense: [rdefense of the noun]. Enhanced defense: [edefense of the noun].[line break]Health maximum: [rhealth of the noun]. Current health: [chealth of the noun].[line break]Regular awareness: [rawareness of the noun]. Enhanced awareness: [eawareness of the noun].[line break]Regular stealth: [rstealth of the noun]. Enhanced stealth: [estealth of the noun].". Part 4 - Generating Mementos By Hand Generating mementos is an action applying to nothing. Understand "memento" as generating mementos. Carry out generating mementos: if debug state is false: say "Sorry, this is a debug-specific command."; else: generate a memento; move the current memento to the shadow self; say "Your shadow self now has [the current memento]." Part 5 - Debug Status Toggling debug is an action applying to nothing. Understand "debug" as toggling debug. Carry out toggling debug: if the debug state is true: now the debug state is false; say "Debugging off."; otherwise: now the debug state is true; say "Debugging on." [The debug string is some indexed text that varies. To debug report: if the debug state is true: say "DEBUG: [debug string]".] Part 6 - Triggering Endgame Testing endgame is an action applying to nothing. Understand "endgame" as testing endgame. Carry out testing endgame: trigger the portal. Book 3 - Invoking Part 1 - Invocation Definition: An orb is activated if it is in a shrine statue. Definition: An orb is inactive if it is not in a shrine statue. Definition: A shrine statue is activated if it encloses an orb. Definition: A shrine statue is inactive if it does not enclose an orb. Definition: A shrine room is activated if it encloses an activated orb. Definition: A shrine room is inactive if it does not enclose an activated orb. Invoking is an action applying to one visible thing. Understand "invoke [something]", "focus [something]", "focus on [something]", "concentrate on [something]", "concentrate [something]", "meditate [something]", "meditate on [something]", "pray [something]", and "pray to [something]" as invoking. Does the player mean invoking a shrine statue: it is very likely. The current shrine statue is a shrine statue that varies. The current orb is an orb that varies. Exile access is a truth state that varies. Exile access is false. Check invoking: if the noun is not a shrine statue and the noun is not an orb: say "You don't know how to invoke any power in [the noun]." instead; if the noun is an orb and the noun is inactive: say "You try to invoke the power of [the noun], but you can't seem to grasp its power. It is energy, but undirected energy"; if the location is a shrine room: say ".[paragraph break]Out of the corner of your eye, you see the statue's hand move slightly." instead; otherwise: say ". You must find a place where it can be directed." instead; if the noun is a shrine statue and the noun is inactive: say "You try to invoke the power of [the noun], but your thoughts have no power outside your head"; if the player has an orb: say ".[paragraph break]From the corner of your eye, you see the orb in your hand flash faintly." instead; otherwise: say ". A source of energy is needed." instead; if the noun is a shrine statue: now the current shrine statue is the noun; now the current orb is a random orb in the shrine statue; otherwise if the noun is an orb: now the current orb is the noun; now the current shrine statue is a random shrine statue in the location; say "You focus upon the [current orb] and clear your mind. "; if the current shrine statue is known: say "Activate this shrine of [shrine deity of the current shrine statue]? (y/n)> "; otherwise: now the current shrine statue is known; now the display name of the location is "Inside a shrine of [shrine deity of the current shrine statue]"; say "Past training wells up within you, and, as you stare at the orb, "; if the rationale of the player is personal desire: say "you reach hungrily out to the power in the shrine. "; otherwise if the rationale of the player is intelligence: say "you picture an intricate shape in your mind. "; otherwise if the rationale of the player is dexterity: say "you trace an intricate shape with your hand, using it to guide the pattern in your mind. "; otherwise if the rationale of the player is endurance: say "you feel a low ripple of pain. A stronger ripple follows, and another, but you stand perfectly still. "; otherwise if the rationale of the player is scientific skill: say "a series of numbers opens in your mind. With the rapidity of habit, you calculate your way through the maze. "; otherwise if the rationale of the player is blessing of the gods: say "you open your soul to the power of the shrine. "; otherwise if the rationale of the player is conviction of ideals: say "you close the grip of your mind about the power in the shrine. "; otherwise: say "you feel an odd *click* in your head as you connect with the power of the shrine. "; say "A name fills your mind: [italic type][shrine deity of the current shrine statue][roman type]. [shrine deity of the current shrine statue] is "; if the current shrine statue is Perceived: say "a deity native to this blighted world, now open to your perception"; otherwise: say "a deity exiled by humanity, divided from your perception by the veil between worlds"; if a lit candle set (called the target candle) is in the location: say ".[paragraph break]The [color of the target candle] candles flare "; if the current shrine statue is Perceived: say "brilliantly"; otherwise: say "luridly, causing the shrine's shadows to shiver and quail before regaining their dominance"; say ".[paragraph break]Activate the shrine? (y/n)> "; if player consents: say "Focusing the power of the orb, you tap into the power of [shrine deity of the current shrine statue][run paragraph on]"; otherwise: say "You "; if the rationale of the player is personal desire: say "disengage reluctantly from the power of [shrine deity of the current shrine statue]." instead; otherwise if the rationale of the player is intelligence: say "picture the intricate shape dissolving into smoke. As the shape dissolves, the power of [shrine deity of the current shrine statue] dissolves away." instead; otherwise if the rationale of the player is dexterity: say "reverse the pattern you traced and release the power of [shrine deity of the current shrine statue]." instead; otherwise if the rationale of the player is endurance: say "move, flexing your muscles and untensing the tense sinews, and the power of [shrine deity of the current shrine statue] falls away." instead; otherwise if the rationale of the player is scientific skill: say "reverse your calculations, dividing and summing your way back to zero, and the power of [shrine deity of the current shrine statue] returns to its fractal components." instead; otherwise if the rationale of the player is blessing of the gods: say " close your soul against the power of the shrine, and your awareness of [shrine deity of the current shrine statue] fades away." instead; otherwise if the rationale of the player is conviction of ideals: say " release the power in the orb, and [shrine deity of the current shrine statue]'s power fades." instead; otherwise: say " pull away from the questing power of [shrine deity of the current shrine statue], and there is a second odd *click* in your head again as you disengage." instead. Core memory dump is a truth state that varies. Core memory dump is false. The currently invoked deity is a deity that varies. Carry out invoking: now the current room is the location; if the noun is enclosed by a shrine statue (called the target statue): now the noun is the target statue; now the current shrine statue is the target statue; [ say "(Shrine deity of the [current shrine statue] = [shrine deity of the current shrine statue]. Health restorer = [health restorer]. Attunement restorer = [attunement restorer]. Debuff remover = [debuff remover]. IDer = [IDer]. Monster locator = [monster locator].)";] if the shrine deity of the current shrine statue is the health restorer: now the current shrine statue is previously invoked; if an unlit candle set (called the target candle) is in the location: now the target candle is lit; describe the current shrine interior; say ". The [candle type of the target candle] candles bloom with [flame type of the target candle] light.[line break]"; otherwise: say "."; restore the player's health; otherwise if the shrine deity of the current shrine statue is the attunement restorer: now the current shrine statue is previously invoked; if an unlit candle set (called the target candle) is in the location: now the target candle is lit; describe the current shrine interior; say ". The [candle type of the target candle] candles blossom with [flame type of the target candle] light.[line break]"; otherwise: say "."; restore the player's attunement; otherwise if the shrine deity of the current shrine statue is the debuff remover: now the current shrine statue is previously invoked; if an unlit candle set (called the target candle) is in the location: now the target candle is lit; describe the current shrine interior; say ". The [candle type of the target candle] candles spring into [flame type of the target candle] light.[line break]"; otherwise: say "."; remove the player's debuffs; otherwise if the shrine deity of the current shrine statue is the IDer: [Previously invoked status gets set in the called activity for this one.] if an unlit candle set (called the target candle) is in the location: now the target candle is lit; describe the current shrine interior; say ". The [candle type of the target candle] candles blaze into [flame type of the target candle] life.[line break]"; otherwise: say "."; identify the player's stuff; otherwise if the shrine deity of the current shrine statue is the monster locator: now the current shrine statue is previously invoked; if an unlit candle set (called the target candle) is in the location: say ". The [candle type of the target candle] candles leap into [flame type of the target candle] light.[line break]"; now the target candle is lit; describe the current shrine interior; otherwise: say "."; locate monsters for the player; otherwise: say ".[line break]"; if an unlit candle set (called the target candle) is in the location: now the target candle is lit; describe the current shrine interior; if the current shrine statue is previously invoked: now the danger increment is 1; [ say "This statue was previously invoked. Turning on the danger increment ([danger increment]).";] otherwise: now the current shrine statue is previously invoked; now the danger increment is 0; [ say "This statue has just been invoked for the first time. Turning off the danger increment ([danger increment]).";] now the current deity is the shrine deity of the current shrine statue; now the currently invoked deity is the shrine deity of the current shrine statue; now core memory dump is true; [ a core memory triggers in 1 turn from now;] now Exile access is true; phase the player into the Exile. Part 2 - Phasing The deity shadow color list is a list of adjectives that varies. The deity shadow color list is {brown, grey, black, dark blue, dark green, purple}. To phase the player into the Exile: say "The power of [current deity] flows through the statue to envelop you, and the world vanishes in a field of"; if the color of the current deity is listed in the deity shadow color list: say " [one of]dense[or]overwhelming[or]stifling[or]suffocating[or]impenetrable[or]gold-edged[or]silver-edged[or]unmitigated[at random] [color of the current deity] shadows.[paragraph break]You step into the shadows...."; otherwise: say " [one of]brilliant[or]glittering[or]sparkling[or]glaring[or]shimmering[or]glimmering[at random] [color of the current deity] light.[paragraph break]You step into the light...."; press space to continue; set shopkeeper attitudes; [This changes the shopkeepers' appearances and attitudes a bit each time.] let the temporary locale be the room outside from the location; say "[first time]This is the exiled world. Being here requires a strong effort of will to maintain your connection to the power of [current deity]. If you lose your connection to [current deity], then you will be released back into the blighted world. [paragraph break][only]You reorient yourself."; if a room (called the next room) corresponds with the temporary locale: move the player to the next room; [ say "(You will phase back in [Will] turns from now.)";] the player phases back from the Exile in emovement of the player turns from now. Part 3 - Health Restoral To restore the player's health: say "The power of the orb, channeled through the shrine, flows into you. "; if the shadow self is not in the location and Exile access is true: say "Your shadow materializes beside you. "; now the shadow self is in the location; if the chealth of the player < the rhealth of the player: now the chealth of the player is the rhealth of the player; now the current person is the shadow self; say "Your shadow lets out a sigh, a faint, half-audible sound, and rolls [zher] shoulders slightly and flexes [zher] hands. You see that [zhe] has been fully rejuvenated."; otherwise: say "It feels good - healthy and strong - but you're not aware of anything changing." Part 4 - Attunement Restoral To restore the player's attunement: say "The power of the orb, channeled through the shrine, flows into you. "; if the cattunement of the player < the rattunement of the player: now the cattunement of the player is the rattunement of the player; say "Your mind sharpens and clears. You are correctly attuned again to this blighted world, rather than being divided between two worlds."; otherwise: say "It feels good - solid and real - but you're not aware of anything changing." Part 5 - Debuff Removal To remove the player's debuffs: say "Shazam, you are now buff again!" Part 6 - IDing Items To identify the player's stuff: say "The power of the orb, channeled through the shrine, flows into you"; if the shadow self is in the location: now the current person is the shadow self; say ", and, from you, into your shadow self. You become aware of the strengths and weaknesses of your shadow: [zhe] is "; if the strength of the player is 2: say "terribly weak"; otherwise if the strength of the player is 3: say "very weak"; otherwise if the strength of the player is 4: say "weak"; otherwise if the strength of the player is 5: say "average in strength"; otherwise if the strength of the player is 6: say "strong"; otherwise if the strength of the player is 7: say "very strong"; otherwise if the strength of the player is 8: say "incredibly strong"; otherwise: say "inhumanly strong"; say " ([strength of the player]) "; if (the strength of the player > 5) and (the stamina of the player < 5): say " but "; otherwise if (the strength of the player < 5) and (the stamina of the player > 5): say " yet "; otherwise: say " and "; if the stamina of the player is 2: say " terribly frail"; otherwise if the stamina of the player is 3: say "very frail"; otherwise if the stamina of the player is 4: say "frail"; otherwise if the stamina of the player is 5: say "average in constitution"; otherwise if the stamina of the player is 6: say "robust"; otherwise if the stamina of the player is 7: say "very robust"; otherwise if the stamina of the player is 8: say "incredibly robust"; otherwise: say "inhumanly robust"; say " ([stamina of the player])"; say ". "; if (the shadow self is wearing a wearable memento) or (the shadow self has an automatic memento): say "[paragraph break][Zher] abilities are affected by:[paragraph break]"; let M be 0; repeat with temporary memento running through mementos carried by the shadow self: if (the temporary memento is wearable and the temporary memento is worn by the shadow self) or (the temporary memento is an automatic memento): now the current memento is the temporary memento; report the current memento's stats; now M is M + 1; say "[paragraph break]Thus affected, [zhe] is "; otherwise: say "[paragraph break]Examining [zher] abilities, you find [zhim] to be "; if (the eattack of the player + the edefense of the player) < 3: say "a terrible fighter"; otherwise if (the eattack of the player + the edefense of the player) < 4: say "a very poor fighter"; otherwise if (the eattack of the player + the edefense of the player) < 6: say "a poor fighter"; otherwise if (the eattack of the player + the edefense of the player) < 8: say "an adequate fighter"; otherwise if (the eattack of the player + the edefense of the player) < 9: say "a good fighter"; otherwise if (the eattack of the player + the edefense of the player) < 11: say "a remarkably skilled fighter"; otherwise if (the eattack of the player + the edefense of the player) < 13: say "an incredibly skilled combatant"; otherwise: say "an inhumanly skilled combatant"; say " ([eattack of the player + edefense of the player]) "; say " who is "; if the espeed of the player < 1: say "terribly slow"; otherwise if the espeed of the player is 1: say "slow"; otherwise if the espeed of the player is 2: say "average in speed"; otherwise if the espeed of the player is 3: say "fast"; otherwise if the espeed of the player is 4: say "very fast"; otherwise if the espeed of the player is 5: say "incredibly fast"; otherwise: say "inhumanly fast"; say " ([espeed of the player]) "; say ", "; if the estealth of the player is 1: say " terrible at sneaking about"; otherwise if the estealth of the player is 2: say "bad at sneaking about"; otherwise if the estealth of the player is 3: say "average in stealth"; otherwise if the estealth of the player is 4: say "fairly stealthy"; otherwise if the estealth of the player is 5: say "very stealthy"; otherwise if the estealth of the player is 6: say "incredibly stealthy"; otherwise: say "inhumanly stealthy"; say " ([estealth of the player]) "; say ", and "; if the eawareness of the player is 2: say "oblivious to danger"; otherwise if the eawareness of the player is 3: say "inattentive to danger"; otherwise if the eawareness of the player is 4: say "not always attentive to danger"; otherwise if the eawareness of the player is 5: say "average in alertness"; otherwise if the eawareness of the player is 6: say "reasonably alert to danger"; otherwise if the eawareness of the player is 7: say "very alert to danger"; otherwise if the eawareness of the player is 8: say "incredibly alert to danger"; otherwise: say "inhumanly alert to danger"; say " ([eawareness of the player])"; say ". You also note that [zhe] is "; if the chealth of the player - the rhealth of the player is 0: say "completely healthy"; otherwise if the rhealth of the player - the chealth of the player is 1: say "minorly injured"; otherwise if the rhealth of the player - the chealth of the player < the chealth of the player / 2: say "somewhat injured"; otherwise if the rhealth of the player - the chealth of the player < the chealth of the player / 4: say "severely injured"; otherwise if the chealth of the player is 1: say "so badly injured that [zhe] is dying before your eyes"; otherwise: say "injured"; say " ([chealth of the player] out of [rhealth of the player])"; if the shadow self has an intrinsic memento or the shadow self has an inactive memento: say "The power of the shrine diffuses beyond your shadow's skin, and you sense more about [zher] possessions....[paragraph break]"; repeat with temporary memento running through mementos carried by the shadow self: if the temporary memento is an intrinsic memento or the wear_at of the temporary memento is not 0: now the current memento is the temporary memento; report the current memento's stats; otherwise: say "."; now the current shrine statue is previously invoked; otherwise if Exile access is true: say ". You feel it quest outward toward your shadow self, but then the power fails. The distance is too far."; otherwise: say ", but it fails to coalesce in any form you can grasp. The circumstances are wrong for this shrine to activate.". To report the current memento's stats: say "- [a current memento], which"; if the current memento is an intrinsic memento: say ", if consumed by the shadow, would have the effect of "; otherwise if the current memento is inactive: say ", if worn, would be "; otherwise: say " has the effect of "; let M be 0; if the attack boost of the current memento is not 0: if the attack boost of the current memento > 0: now M is the attack boost of the current memento; otherwise if the attack boost of the current memento < 0: now M is (0 - the attack boost of the current memento); if M is 1: say "slightly"; otherwise if M is 2: say "somewhat"; otherwise if M is 3: say "significantly"; otherwise if M is 4: say "greatly"; otherwise: say "hugely"; if the attack boost of the current memento > 0: say " increasing"; otherwise if the attack boost of the current memento < 0: say " decreasing"; say " [zher] skill in attacking enemies (by [M])"; if the speed boost of the current memento is not 0: if the attack boost of the current memento is not 0: if the defense boost of the current memento is not 0 or the awareness boost of the current memento is not 0 or the stealth boost of the current memento is not 0: say ", "; otherwise: say " and "; now M is 0; if the speed boost of the current memento > 0: now M is the speed boost of the current memento; otherwise if the speed boost of the current memento < 0: now M is (0 - the speed boost of the current memento); if M is 1: say "slightly"; otherwise if M is 2: say "somewhat"; otherwise if M is 3: say "significantly"; otherwise if M is 4: say "greatly"; otherwise: say "hugely"; if the speed boost of the current memento > 0: say " increasing"; otherwise if the speed boost of the current memento < 0: say " decreasing"; say " [zher] speed (by [M])"; if the defense boost of the current memento is not 0: if the attack boost of the current memento is not 0 or the speed boost of the current memento is not 0: if the awareness boost of the current memento is not 0 or the stealth boost of the current memento is not 0: say ", "; otherwise: say " and "; now M is 0; if the defense boost of the current memento > 0: now M is the defense boost of the current memento; otherwise if the defense boost of the current memento < 0: now M is (0 - the defense boost of the current memento); if M is 1: say "slightly"; otherwise if M is 2: say "somewhat"; otherwise if M is 3: say "significantly"; otherwise if M is 4: say "greatly"; otherwise: say "hugely"; if the defense boost of the current memento > 0: say " increasing"; otherwise if the defense boost of the current memento < 0: say " decreasing"; say " [zher] ability to defend against attack (by [M])"; if the awareness boost of the current memento is not 0: if the attack boost of the current memento is not 0 or the speed boost of the current memento is not 0 or the defense boost of the current memento is not 0: if the stealth boost of the current memento is not 0: say ", "; otherwise: say " and "; now M is 0; if the awareness boost of the current memento > 0: now M is the awareness boost of the current memento; otherwise if the awareness boost of the current memento < 0: now M is (0 - the awareness boost of the current memento); if M is 1: say "slightly"; otherwise if M is 2: say "somewhat"; otherwise if M is 3: say "significantly"; otherwise if M is 4: say "greatly"; otherwise: say "hugely"; if the awareness boost of the current memento > 0: say " increasing"; otherwise if the awareness boost of the current memento < 0: say " decreasing"; say " [zher] ability to notice hidden threats (by [M])"; if the stealth boost of the current memento is not 0: if the attack boost of the current memento is not 0 or the speed boost of the current memento is not 0 or the defense boost of the current memento is not 0 or the awareness boost of the current memento is not 0: say " and "; now M is 0; if the stealth boost of the current memento > 0: now M is the stealth boost of the current memento; otherwise if the stealth boost of the current memento < 0: now M is (0 - the stealth boost of the current memento); if M is 1: say "slightly"; otherwise if M is 2: say "somewhat"; otherwise if M is 3: say "significantly"; otherwise if M is 4: say "greatly"; otherwise: say "hugely"; if the stealth boost of the current memento > 0: say " increasing"; otherwise if the stealth boost of the current memento < 0: say " decreasing"; say " [zher] ability to avoid the attention of enemies (by [M])"; if the movement boost of the current memento is not 0: now M is 0; say ". Also, the [current memento]"; if the current memento is an intrinsic memento: say ", if consumed by the shadow, would better attune you to the exiled world, thus "; otherwise if the current memento is inactive: say ", if worn, would better attune you to the exiled world, thus "; otherwise: say " has the effect of better attuning you to the exiled world, thus"; if the movement boost of the current memento > 0: now M is the movement boost of the current memento; otherwise if the movement boost of the current memento < 0: now M is (0 - the movement boost of the current memento); if M is 1: say "slightly"; otherwise if M is 2: say "somewhat"; otherwise if M is 3: say "significantly"; otherwise if M is 4: say "greatly"; otherwise: say "hugely"; if the movement boost of the current memento > 0: say " increasing"; otherwise if the movement boost of the current memento < 0: say " decreasing"; say " your ability to remain there (by [M])."; otherwise: say "." Part 7 - Monster Locator A monster is a kind of thing. The located monster list is a list of monsters that varies. The located monster text is an indexed text that varies. To locate monsters for the player: say "The power of the orb, channeled through the shrine, flows into you. You are part of the world, and its senses are yours....[line break]"; let K be 0; now the located monster list is {}; repeat with target monster running through monsters in the Blight: now the current room is the location of the target monster; [ say "(Target monster: [target monster])";] let L be 0; repeat with temporary monster running through monsters in the current room: now L is L + 1; repeat with temporary monster running through monsters in the current room: now the current monster is the temporary monster; if (the number of entries in the permitted directions list of the current room is 1) or (the number of entries in the permitted directions list of the current room is 2): if L < 3: now the located monster text is "At a [display name of the current room], there is [a current monster]." in sentence case; otherwise: now the located monster text is "At a [display name of the current room], there are [a list of monsters in the current room]." in sentence case; otherwise: if L < 3: now the located monster text is "[display name of the current room], there is [a current monster]." in sentence case; otherwise: now the located monster text is "[display name of the current room], there are [a list of monsters in the current room]." in sentence case; if the current monster is not listed in the located monster list: say "[located monster text][line break]"; add the current monster to the located monster list; now K is K + 1; if K is 0: if the shadow self is in a Blight room or the shadow self is in a shrine room: say "Aside from your shadow, you sense no intrusions of the exiled world upon the blighted world."; otherwise: say "The blighted world is calm and barren."; otherwise: say "Aside from your shadow, you sense no further intrusions of the exiled world upon the blighted world." Book 4 - Returning from the Exile Shadow-awareness is a truth state that varies. Shadow-awareness is false. Immediate return is a truth-state that varies. Immediate return is false. At the time when the player phases back from the Exile: if the player is in an Exile room: if core memory dump is true: call a core memory dump; now core memory dump is false; now immediate return is true; otherwise if the player is in a transitional room: call a transitional event; return the player; otherwise if the player is in a focal room: call a focal event; return the player; otherwise: say "No event for you. You're in an Exile room that isn't transitional or focal. How the heck did that happen?" Instead of waiting when the player is in the Exile: say "You clear your mind and allow yourself to relax into the rhythms of the exiled world. The thoughts of the exiled gods drift across yours[first time], as ponderous and unaware as leviathans moving through the ocean's depths[only]...."; if core memory dump is true: call a core memory dump; now core memory dump is false; now immediate return is true; otherwise if the player is in a transitional room: call a transitional event; return the player; otherwise if the player is in a focal room: call a focal event; return the player. Before doing something when immediate return is true (this is the immediate return rule): now immediate return is false; say "The intention of [current action] forms in your mind, but "; if the rationale of the player is personal desire: say "you are exhausted from the effort of will required to stay here, and you lose your inner grip on [currently invoked deity][apostrophe]s power. "; otherwise if the rationale of the player is intelligence: say "the power of [currently invoked deity] and the patterns of the exiled world unravel from you. "; otherwise if the rationale of the player is dexterity: say "your focus upon [currently invoked deity][apostrophe]s power has weakened, and the patterns of the exiled world fade away. "; otherwise if the rationale of the player is endurance: say "your mind has grown exhausted from the tumult of the exiled world, and your focus upon [currently invoked deity][apostrophe]s power falters. "; otherwise if the rationale of the player is scientific skill: say "you are losing track of this world, and your thoughts are exhausted. You lose the power of [currently invoked deity]."; otherwise if the rationale of the player is blessing of the gods: say "the power of [currently invoked deity] is fading from you. "; otherwise if the rationale of the player is conviction of ideals: say "the power of [currently invoked deity] is fading away. "; otherwise: say "you feel an odd, unpleasant stretching in your head. With a half-felt *click*, the power of [currently invoked deity] falls away from you. "; return the player instead. The immediate return rule is listed first in the before rules. To return the player: now immediate return is false; say "[paragraph break]All the colors grow brighter, so sharp that your eyes ache, and then the world dissolves into tendrils of brilliant light. The tendrils shift like a kaleidescope and then pull apart to reveal the blighted world, as concrete and certain as a dreamer's first sight of day."; press space to continue; if a room (called the next room) corresponds with the location: monsters are summoned in 1 turn from now; move the player to the next room; say "[italic type]"; say "[the number of activated Unperceived shrine rooms in words]" in title case; say " shrine[if the number of activated Unperceived shrine rooms is not 1]s[end if].[roman type][run paragraph on][first time] The [voice type of the instructor-person] voice in the back of your mind isn't yours, but an echo left over from the exiled world. You don't know the name that goes with it. It's no real surprise; you can't remember anything here.[only][line break]"; if shadow-awareness is false: now the current person is the shadow self; say "Everything blurs and then doubles, causing you to blink. When you refocus, another person is present: a [zhoman] approximately your height and your weight. There is something extremely familiar about [zhim]"; now shadow-awareness is true; otherwise if the chealth of the player > 0: say "Everything blurs and then doubles, and then your shadow self is standing beside you"; otherwise: now the current person is the shadow self; say "Everything blurs and doubles, and you feel a strange, wrenching feeling, but your shadow self does not appear. The place where [zhe] should be aches like a wound."; move your shadow self to the next room; if your shadow self is in the location and your shadow self has a recent memento (called the target memento): now the current person is the shadow self; say ". You note that [zhe] is holding [a target memento]."; now the target memento is not recent; otherwise: say "."; otherwise: say "ACK! Nowhere corresponds to here! I can't send you back!". Volume 10 - Gameplay in the Blight Book 1 - Introduction Part 1 - Past Introduction To past introduction: now the current person is a random NPC; say "This, in the void:[paragraph break]You struggled to hold your thoughts together"; if the rationale of the player is personal desire: say " by sheer force of will, as if wanting life enough would keep you alive. "; otherwise if the rationale of the player is intelligence: say ", but you could feel everything breaking apart in your head like circuits caught in a power surge. "; otherwise if the rationale of the player is dexterity: say ", flexing your fingers against nothingness, but you couldn't stop the memories from tearing apart. "; otherwise if the rationale of the player is endurance: say " as long as you could, but they thinned like overwashed cloth and began to dissolve. "; otherwise if the rationale of the player is scientific skill: say ", clinging to the meditations that [nickname of the instructor-person] taught you so carefully, but it was no use. "; otherwise if the rationale of the player is blessing of the gods: say ", praying to the new gods with all your might, and praying to your old faith that [nickname of the instructor-person] was right about the gods' blessing upon you. "; otherwise if the rationale of the player is conviction of ideals: say " with all your might, knowing how much would be lost if you failed. "; otherwise if the rationale of the player is random chance: say " with a fool's desperate hope. "; say "Torn strands of memory snarled in your mind:[paragraph break]"; say "...the [random feature of the current person] of "; let K be a random number from 1 to 4; if K is 1: say "[given name of the current person] [surname of the current person] [feature conclusion of the current person]....[line break]"; otherwise if K is 2: say "your [gr of the current person] [feature conclusion of the current person]....[line break]"; otherwise if K is 3: say "[given name of the current person] [surname of the current person], your [gr of the current person], [feature conclusion of the current person]....[line break]"; otherwise if K is 4: say "your [gr of the current person], [given name of the current person] [surname of the current person], [feature conclusion of the current person]....[line break]"; now the secondary person is a random NPC; while the secondary person is the current person: now the secondary person is a random NPC; say "...the sound of your [one of]feet[or]sandals[or]shoes[or]boots[at random] sliding over [random terrain in the Blight]....[line break]"; say "...the [random feature of the secondary person] of "; let K be a random number from 1 to 4; if K is 1: say "[given name of the secondary person] [surname of the secondary person]....[line break]"; otherwise if K is 2: say "your [gr of the secondary person]....[line break]"; otherwise if K is 3: say "[given name of the secondary person] [surname of the secondary person], your [gr of the secondary person]....[line break]"; otherwise if K is 4: say "[given name of the secondary person] [surname of the secondary person], your [gr of the secondary person]....[line break]"; say "...[no line break][one of]seeing[or]glimpsing[or]recognizing[at random] the [one of]resentment[or]calm[or]fear[or]fury[or]resignation[at random] in a caged [one of]zebra[or]goat[or]boar[or]elk[or]stag[or]leopard[or]tiger[or]cheetah[or]lynx[at random]'s face as [one of]its trainer came through the gate[or]it paced from wall to wall[or]it paused to stare at you[or]a small child pounded on the glass[at random]....[line break]"; repeat with target NPC running through the NPCs: while the target NPC is not the current person and the target NPC is not the secondary person: now the current person is the target NPC; say "...the [random feature of the current person] of "; let K be a random number from 1 to 4; if K is 1: say "[given name of the current person] [surname of the current person] [feature conclusion of the current person]....[line break]"; otherwise if K is 2: say "your [gr of the current person] [feature conclusion of the current person]....[line break]"; otherwise if K is 3: say "[given name of the current person] [surname of the current person], your [gr of the current person], [feature conclusion of the current person]....[line break]"; otherwise if K is 4: say "your [gr of the current person], [given name of the current person] [surname of the current person], [feature conclusion of the current person]....[line break]"; say "...and your [random feature of the player] reflected from the surface of a mirror in a shadowed room. Your eyes closed slowly, the room darkening further and further through your lashes, as five people chanted and drew you down.[paragraph break]You tried to weave these strands back together - tried to remember the life of a [profession of the player], the smell of "; if the hobby of the player is antique collecting: say "antiques stores"; otherwise if the hobby of the player is birdwatching: say "a forest at dawn"; otherwise if the hobby of the player is dancing: say "a square dance hall"; otherwise if the hobby of the player is photography: say "a darkroom"; otherwise if the hobby of the player is sewing: say "your sewing room"; otherwise: say "[hobby of the player]"; say ", the flashes of hope and the promise of a future... even the color [color preference of the player]. You liked [color preference of the player].[paragraph break]And then you died. But not all the way." To say random feature of the current person: let L be a random number between 1 and 7; if L is 1: if the current person is blood-relation: say "familiar, "; say "[physical impression of the current person] [one of]smile[or]frown[or]gaze[or]features[or]face[at random]"; otherwise if L is 2: say "[color preference of the current person] [one of]shirt[or]jacket[or]coat[or]jeans[or]slacks[or]knapsack[or]sweater[at random]"; otherwise if L is 3: say "[build of the current person] "; if the current person is the victim: say "[one of]motionless body[or]corpse[at random]"; otherwise: say "[one of]body[or]frame[at random]"; otherwise if L is 4: say "[skin tone of the current person] [one of]skin[or]hand[or]cheek[or]brow[at random]"; otherwise if L is 5: say "[eye color of the current person] eyes"; otherwise if L is 6: say "[voice type of the current person] [one of]voice[or]explanations[or]sobbing[or]laughter[or]imprecations[or]complaints[or]compliments[at random]"; otherwise if L is 7: if the current person is male and the facial hair of the current person is not "" and a random chance of 1 in 2 succeeds: say "[facial hair of the current person]"; otherwise: if the hair texture of the current person is bald: say "bald [skin tone of the current person] head"; otherwise: say "[hair length of the current person]"; if the hair length of the current person is not very short: say ", [hair texture of the current person]"; say " [hair color of the current person] hair"; otherwise: say "ERROR WILL ROBINSON! This should not have happened!". To say feature conclusion of the current person: let L be a random number between 1 and 10; if L is 1: say "as [zhe] [one of]called to[or]waved to[or]beckoned to[at random] you from the [one of]escalator[or]stairs[or]ramp[or]walkway[or]sidewalk[or]street[at random]"; otherwise if L is 2: say "[one of]beside[or]across from[or]not far from[at random] you"; otherwise if L is 3: say "and the scent of [one of]coffee[or]roses[or]garlic[or]onion[or]allspice[or]pine needles[or]scotch[or]wine[at random] surrounding [zhim]"; otherwise if L is 4: if the current person likes the player: say "as [zhe] [one of]took your hand[or]kissed your cheek[or]touched your shoulder[at random]"; otherwise if the affection strength of the current person < 3: say " as [zhe] dropped your hand"; otherwise if the affection strength of the current person is 3: say " as [zhe] [one of]gravely[or]whimsically[or]elegantly[or]precisely[at random] shook hands with you"; otherwise if L is 5: say "as [zhe] glanced back at you"; otherwise if L is 6: say "as [zhe] chattered on about [hobby of the current person]"; otherwise if L is 7: say "as [zhe] focused [zher] breathing"; otherwise if L is 8: say "as [zhe] introduced [zhim]self"; otherwise if L is 9: say "as [zhe] walked [one of]down[or]up[at random] the [one of]escalator[or]stairs[or]ramp[or]walkway[or]sidewalk[or]street[at random]"; otherwise if L is 10: say "as [zhe] listened "; if the current person likes the player: say "[one of]raptly[or]devotedly[or]with a smile[at random] "; otherwise if the current person dislikes the player: say "[one of]irritably[or]impatiently[or]with a sneer[at random] "; otherwise if the affection strength of the current person is 3: say "[one of]thoughtfully[or]calmly[or]attentively[at random] "; say "to your explanation". To say random feature of the secondary person: let L be a random number between 1 and 7; if L is 1: if the secondary person is blood-relation: say "familiar, "; say "[physical impression of the secondary person] [one of]smile[or]frown[or]gaze[or]features[or]face[at random]"; otherwise if L is 2: say "[color preference of the secondary person] [one of]shirt[or]jacket[or]coat[or]jeans[or]slacks[or]knapsack[or]sweater[at random]"; otherwise if L is 3: say "[build of the secondary person] "; if the secondary person is the victim: say "[one of]motionless body[or]corpse[at random]"; otherwise: say "[one of]body[or]frame[at random]"; otherwise if L is 4: say "[skin tone of the secondary person] [one of]skin[or]hand[or]cheek[or]brow[at random]"; otherwise if L is 5: say "[eye color of the secondary person] eyes"; otherwise if L is 6: say "[voice type of the secondary person] [one of]voice[or]explanations[or]sobbing[or]laughter[or]imprecations[or]complaints[or]compliments[at random]"; otherwise if L is 7: if the secondary person is male and the facial hair of the secondary person is not "" and a random chance of 1 in 2 succeeds: say "[facial hair of the secondary person]"; otherwise: if the hair texture of the secondary person is bald: say "bald [skin tone of the secondary person] head"; otherwise: say "[hair length of the secondary person]"; if the hair length of the secondary person is not very short: say ", [hair texture of the secondary person]"; say " [hair color of the secondary person] hair"; otherwise: say "ERROR WILL ROBINSON! This should not have happened!". To say random feature of the player: let L be a random number between 1 and 6; if L is 1: if the player is blood-relation: say "familiar, "; say "[physical impression of the player] [one of]smile[or]frown[or]gaze[or]features[or]face[at random]"; otherwise if L is 2: say "[color preference of the player] [one of]shirt[or]jacket[or]coat[or]jeans[or]slacks[or]knapsack[or]sweater[at random]"; otherwise if L is 3: say "[build of the player] body"; otherwise if L is 4: say "[skin tone of the player] [one of]skin[or]hand[or]cheek[or]brow[at random]"; otherwise if L is 5: say "[eye color of the player] eyes"; otherwise if L is 6: if the player is male and the facial hair of the player is not "" and a random chance of 1 in 2 succeeds: say "[facial hair of the player]"; otherwise: if the hair texture of the player is bald: say "bald [skin tone of the player] head"; otherwise: say "[hair length of the player]"; if the hair length of the player is not very short: say ", [hair texture of the player]"; say " [hair color of the player] hair"; otherwise: say "ERROR WILL ROBINSON! This should not have happened!". Part 2 - Present Introduction To present introduction: say "[paragraph break][paragraph break]Once there was a world - but now it has been split in two. The first part is blighted and stricken for the lack of the second, and the second part is exiled into meaninglessness for the lack of the first.[paragraph break]Once you were a person - and now you are broken as well.[paragraph break]But the world can be restored. You get to your feet in the ruins. "; if the current weather is snowing: say "Through the snow, you see "; otherwise if the current weather is raining: say "Through the rain, you see "; otherwise: say "There is "; say "a glowing orb lying on the [random terrain in the location], and you pick it up." Book 2 - The Status Line Rule for printing the name of a Blight room while constructing the status line: say "[the display name of the location] (in the Blight)". Rule for printing the name of a shrine room while constructing the status line: say "[the display name of the location]". Book 3 - Traveling Before going a direction (called thataway) (this is the orb refusal rule): if the player encloses an orb: let the possible locale be the room thataway from the location; if the possible locale encloses an orb: say "Your orb flares with light, and a horrible prickling sensation flashes along your nerves. You are forced back and cannot go [thataway]." instead. The previously visited locale is a room that varies. Before going a direction: now the previously visited locale is the location. After going a compass direction (called thataway) in the Blight (this is the Blight terrain announcement rule): let terrain 1 be a random terrain in the previously visited locale; let terrain 2 be a random terrain in the location; if the terrain-type of terrain 1 is the terrain-type of terrain 2: if the terrain-type of terrain 1 is moss: say "The [terrain adjective of terrain 1] moss muffles your footsteps as you "; otherwise if the terrain-type of terrain 1 is fallen leaves: say "Fallen leaves slide underfoot as you "; otherwise if the terrain-type of terrain 1 is sand: say "Sand shifts underfoot as you "; otherwise if the terrain-type of terrain 1 is mud: say "Mud squelches quietly underfoot as you "; otherwise if the terrain-type of terrain 1 is pebbles: say "Pebbles crunch underfoot as you "; otherwise if the terrain-type of terrain 1 is slush: say "Sloshing through the slush, you "; otherwise if the terrain-type of terrain 1 is snow: if the current humidity is arid: say "Snow crunches underfoot as you "; otherwise: say "Snow drags at your feet as you "; otherwise if the terrain-type of terrain 1 is ice: say "Ice crunches underfoot as you "; otherwise: say "You "; say "head [thataway]"; if the current weather is raining: if the current temperature is hot: say " through the warm rain"; otherwise: say " through the rain"; otherwise if the current weather is snowing: say " through the snow"; otherwise if the current weather is misty: say " through the drifting mist"; otherwise if the terrain-type of terrain 1 is bare rock: say " across the bare rock"; otherwise: say "Underfoot, the terrain changes from [terrain 1] to [terrain 2]"; if the current weather is snowing: say ". You trudge on through the falling snow"; otherwise if the current weather is raining: say ". You slog on through the rain"; say "."; if the shadow self is in the previously visited locale: now the shadow self is in the location; say "Your shadow self "; if the rhealth of the player is the chealth of the player: say "follows you silently."; otherwise if the rhealth of the player is 1: say "staggers raggedly after you."; otherwise: say "limps after you."; continue the action. After going inside in a shrine room: let the temporary shrine entrance be a random shrine entrance in the previously visited locale; if the current weather is sunny: say "You step into the [if the current temperature is hot]cool [end if]shadows of [the temporary shrine entrance]"; otherwise if the current weather is raining: say "You step into the shelter of [the temporary shrine entrance], leaving the rain behind, though it echoes across the roof"; otherwise if the current weather is snowing: say "You step into the shelter of [the temporary shrine entrance], leaving the snow behind"; otherwise: say "You step into [the temporary shrine entrance]"; if the shadow self is in the previously visited locale: now the shadow self is in the location; say ". Your shadow self "; if the rhealth of the player is the chealth of the player: say "follows you silently."; otherwise if the rhealth of the player is 1: say "staggers raggedly after you."; otherwise: say "limps after you."; otherwise: say "."; continue the action. After going outside: if the shadow self is in the previously visited locale: now the shadow self is in the location; say "Your shadow self "; if the rhealth of the player is the chealth of the player: say "follows you silently."; otherwise if the rhealth of the player is 1: say "staggers raggedly after you."; otherwise: say "limps after you."; continue the action. Book 4 - Landmark Behavior Before entering the fallen stone bench: say "In its current position, the [noun] isn't particularly good for sitting." instead. Before entering the stairway to nowhere: try going down instead. Before going up when the stairway to nowhere is in the location: now the current terrain is a random terrain in the location; say "You ascend the few steps of the stairway and confirm that it goes nowhere. You descend again to the [current terrain]." instead. Before entering the empty stream bed: try going down instead. Before going down when the empty stream bed is in the location: say "The stream bed isn't terribly deep. You step down and walk along its empty curves for a moment before stepping up again." instead. Before entering the vacant grave: try going down instead. Before going down when the vacant grave is in the location: say "You look down into the vacant grave and balk. You may be dead already (or not - it's hard to know) but you're sure that you don't belong in there yet." instead. Volume 11 - Gameplay in the Exile Book 1 - Events The current danger level is a number that varies. The current event type is a number that varies. The current event number is a number that varies. The current event locale is some indexed text that varies. Part 1 - Core Memory Dumps To call a core memory dump: DM "(Calling a core memory dump.)"; if the news memory is untriggered: now the current memory is the news memory; otherwise if the meditation memory is untriggered: now the current memory is the meditation memory; otherwise if the selection memory is untriggered: now the current memory is the selection memory; otherwise if the grief memory is untriggered: now the current memory is the grief memory; otherwise: now the current memory is the responsibility memory; now the current memory is triggered; if a random chance of 1 in 2 succeeds: if the associated NPC of the current memory is in Z5: move the associated NPC of the current memory to the location; now the current person is the associated NPC of the current memory; otherwise: place a false lead; now the dead ringer of the current person is the associated NPC of the current memory; otherwise: place a false lead; now the dead ringer of the current person is the associated NPC of the current memory; DM "(The associated NPC of the current memory is [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory]. "; if the current person is a false lead: DM "The current person is a false lead named [given name of the current person] [surname of the current person].)"; otherwise if the current person is the associated NPC of the current memory: DM "[Zhe] is also the current person.)"; otherwise: DM "ERROR WILL ROBINSON!! WOOP WOOP WOOP"; if the location is transitional: now the height of the current person is the height of the associated NPC of the current memory; now the build of the current person is the build of the associated NPC of the current memory; say "A sense of extreme familarity washes over you as a [gr-age], [height of the current person] and [build of the current person], [one of]walks by[or]passes by[or]strides past[or]limps carefully past[at random] you. "; otherwise: now the height of the current person is the height of the associated NPC of the current memory; say "You spot a [if the height of the current person is not average height][height of the current person] [end if][gr-age] walking past outside. "; let M be a random number between 1 and 4; if M is 1: say "Something about [zhim] - maybe [zher] "; if the facial hair of the associated NPC of the current memory is not "" and the current person is male: now the facial hair of the current person is the facial hair of the associated NPC of the current memory; say "[facial hair of the current person], maybe [zher] "; now the hair length of the current person is the hair length of the associated NPC of the current memory; now the hair color of the current person is the hair color of the associated NPC of the current memory; now the hair texture of the current person is the hair texture of the associated NPC of the current memory; now the hairstyle of the current person is the hairstyle of the associated NPC of the current memory; say "[hair reference] - abruptly reminds you of"; otherwise if M is 2: if the location is focal: say "Something about the way [zhe] walks reminds you of"; otherwise: now the eye color of the current person is the eye color of the associated NPC of the current memory; say "As [zhe] passes by, you glimpse [zher] [eye color of the current person] eyes, and the hue reminds you of"; otherwise if M is 3: now the skin tone of the current person is the skin tone of the associated NPC of the current memory; say "The [skin tone of the current person] color of [zher] skin reminds you of"; otherwise: now the physical impression of the current person is the physical impression of the associated NPC of the current memory; now the style impression of the current person is the style impression of the associated NPC of the current memory; say "Glimpsed in profile, [zher] [physical impression of the current person] face and [color preference of the current person] attire remind you abruptly of"; say " [given name of the associated NPC of the current memory] [surname of the associated NPC of the current memory], your"; now the current person is the associated NPC of the current memory; say " [gr of the current person]. You remember:[paragraph break]"; remember the current memory; say "[line break]The memory fades, leaving you alone in the "; if the rationale of the player is personal desire: say "hungry "; otherwise if the rationale of the player is intelligence: say "smoking "; otherwise if the rationale of the player is dexterity: say "unraveling "; otherwise if the rationale of the player is endurance: say "stubborn "; otherwise if the rationale of the player is scientific skill: say "crippled "; otherwise if the rationale of the player is blessing of the gods: say "luminous "; otherwise if the rationale of the player is conviction of ideals: say "lonely "; otherwise: say "bewildered "; if the motivation of the player is familial love: say "embers "; otherwise if the motivation of the player is romantic love: say "ashes "; otherwise if the motivation of the player is duty: say "rhythms "; otherwise if the motivation of the player is idealism: say "patterns "; otherwise if the motivation of the player is revenge: say "shards "; otherwise if the motivation of the player is fear: say "ruins "; otherwise if the motivation of the player is ambition: say "fluttering "; otherwise if the motivation of the player is curiosity: say "labyrinth "; otherwise: say "web "; say "of your remaining consciousness." Part 2 - Transitional Events Table of Past Transitional Events event type event number 0 0 with 50 blank rows To call a transitional event: say "(Calling a transitional event: "; randomize the transitional event; verify the transitional event unique; if the current event type is 1: call a death-related transitional event; otherwise if the current event type is 2: call a blessings-related transitional event; otherwise if the current event type is 3: call a singing-related transitional event; otherwise if the current event type is 4: call a crowd-related transitional event. To randomize the transitional event: let L be a random number between 1 and 10; if L < 5: now the current event type is 1; now the current event number is 1; otherwise if L is 5: now the current event type is 2; now the current event number is a random number between 1 and 5; otherwise if L < 8: now the current event type is 3; now the current event number is a random number between 1 and 8; otherwise: now the current event type is 4; now the current event number is a random number between 1 and 5. To verify the transitional event unique: let M be 0; repeat through the Table of Past Transitional Events: if the current event type is the event type entry and the current event number is the event number entry: now M is 1; if M is 0: say " event type [current event type] and event number [current event number]. "; choose a blank row in the Table of Past Transitional Events; now the event type entry is the current event type; now the event number entry is the current event number; otherwise: say "...called a duplicate transitional event. Choosing a new transitional event... "; randomize the transitional event; verify the transitional event unique. Chapter 1 - Death-Related To call a death-related transitional event: say "Calling a death-related transitional event.)"; now the current person is the victim; if the age of the victim < 10: say "Someone walking through the [locale type of the location] calls out, '[one of]Hey there, m[or]Hi, there, m[or][apostrophe]Scuse me, m[or]M[at random][if the player is male]ister[otherwise]s.[end if] [surname of the player], but where's your [gr of the current person] gotten off to?'[paragraph break]'Oh, [given name of the victim][apostrophe]s just fine, [zhe]'s...'[paragraph break]But you stop, because memory [one of]rips[or]slashes[or]tears[or]stabs[at random] through you and stops your voice. You remember [zher] [given name of the victim][apostrophe]s [eye color of the current person] eyes and [zher] [hair reference] and [physical impression of the current person] little smile, and you remember the grip of [zher] [skin tone of the current person] on yours, but [zhe] won't ever be back. You remember that your [age of the victim in words]-year-old [gr of the current person] is dead.[paragraph break]"; otherwise: let M be a random number between 1 and 2; say "A [if M is 1]man[otherwise]woman[end if] walking [one of]down[or]through[or]past[at random] the [locale type of the location] pauses and calls out, "; if a random chance of 1 in 2 succeeds: say "'[one of]Hey there, M[or]Hi, there, M[or][apostrophe]Scuse me, M[or]M[at random][if the player is male]ister[otherwise]s.[run paragraph on][end if] [surname of the player], "; otherwise: say "'[one of]Hey,[or]Scuse me,[or]Pardon,[at random] [given name of the player], "; say "I've got a message for you. ' When you raise your eyebrows, the [if M is 1]man[otherwise]woman[end if] smiles at you and says, '[given name of the victim] is looking for you. Best catch up!'[paragraph break]You start to say 'Thank you' automatically, but the words die on your lips as memory suddenly [one of]curses[or]floods into[or]opens up inside[or]gapes open within[at random] you. [given name of the victim] [surname of the victim] - your [gr of the current person] - you remember [zhim]. You remember [zher] [eye color of the current person] eyes and [zher] [hair reference] and [zher] [physical impression of the current person] smile when [zhe] thought no one was looking, and you remember the grip of [zher] [skin tone of the current person] hand on yours, but [zhe] can't possibly be looking for you. [given name of the victim] is dead.[paragraph break]You start forward, calling to the [if M is 1]man[otherwise]woman[end if], but [if M is 1]he[otherwise]she[end if] has already vanished into the [one of]seething[or]streaming[or]shimmering[or]twisting[or]shifting[or]churning[at random], only half-real crowd.[paragraph break]". Chapter 2 - Blessings-Related To call a blessings-related transitional event: say "Calling a blessings-related transitional event.)"; Chapter 3 - Singing-Related The chorus cue is a truth state that varies. The chorus cue is true. To call a singing-related transitional event: say "As you walk, the rhythms of this world overtake you. The brilliant sky, the shifting people, the buildings - your mind sinks into them, and somewhere beyond them, into the grip of this world's gods. You hear a [one of]man[or]woman[at random]"; if a random chance of 1 in 2 succeeds: say "'s [one of]clear[or]deep[or]sweet[or]hoarse[or]low[or]nasal[or]raspy[or]soft[or]distant[or]nearby[or]drunken[or]slurring[at random] voice raised in [one of]bold[or]bright[or]breathless[or]curious[or]distracted[or]dreamy[at random] song:[paragraph break][italic type]"; otherwise: say " singing [one of]blithely[or]brightly[or]breathlessly[or]clearly[or]lightly[or]sweetly[or]softly[or]dreamily[or]distantly[or]longingly[at random]:[paragraph break][italic type]"; if the current event number is 1: say "'We will belong to the gods tonight,[line break]To the gods we've never known - [line break]To the distant gods who crafted us[line break]In blood and thought and bone....'"; otherwise if the current event number is 2: say "'We will discover the gods tonight,[line break]The gods we've never seen - [line break]The distant gods who crafted us[line break]And left us in between....'"; otherwise if the current event number is 3: say "'We will petition the gods tonight,[line break]The gods with no true name,[line break]The gods of breath enthroned in fear[line break]And Geiger-screaming flame....'"; otherwise if the current event number is 4: say "'We will believe in the gods tonight,[line break]The gods who heed no prayers,[line break]The gods beyond perception, who[line break]Brought us here unawares....'"; otherwise if the current event number is 5: say "'We will uncover the gods tonight,[line break]The gods of ancient ice,[line break]Whose sigils chance to break our minds[line break]With rare and brave device.'"; otherwise if the current event number is 6: say "'We will commune with the gods tonight,[line break]The gods of death and dreams[line break]Whose comprehension flees us all[line break]Amid benighted schemes....'"; otherwise if the current event number is 7: say "'We will commune with the gods tonight,[line break]The gods of death and dreams[line break]Whose comprehension flees us all[line break]Amid benighted schemes....'"; otherwise if the current event number is 8: say "'We will be lost in the gods tonight,[line break]The gods who feast on pain - [line break]Who drive off doubt and soothe our fears[line break]And slowly go insane.'"; if the chorus cue is true: say "[roman type][line break]The singer's voice rises in the chorus.[paragraph break][italic type]'And will we all be torn apart[line break]Amid the holy wrack?[line break]Five gods exiled will bring the fall.[line break]If death's broad flag should be unfurled - [line break]One hand unfisted, one hand curled - [line break]Cross undrawn lines, invoke lost shrines,[line break]One more death saves us all....'[roman type][paragraph break]Your breath catches in your throat, and you stop singing (but when did you start singing?) before the last line. That's a secret - no one should know that, no one should... but your mind stumbles over the gaps where memory should be, and you lose awareness.[paragraph break]"; now the chorus cue is false; otherwise: say "[paragraph break][roman type]You realize that you're singing the minor melody as well, and your mind falters away from the chorus before you lose awareness.[paragraph break]" Chapter 4 - Crowd-Related To call a crowd-related transitional event: now the current memory is a random untriggered contextual memory in Z1; say "(Calling a crowd-related transitional event.)". Part 3 - Focal Events Table of Past Focal Events locale type event type event number "Market" 0 0 with 50 blank rows To call a focal event: now the current person is a random shopkeeper in the location; randomize the focal event; if the locale type of the location is "Market": call a market event; otherwise if the locale type of the location is "Hospital": call a hospital event; otherwise if the locale type of the location is "Bridge": call a bridge event; otherwise if the locale type of the location is "Hall": call a hall event; otherwise if the locale type of the location is "Church": call a church event; otherwise if the locale type of the location is "Greenhouse": call a greenhouse event; otherwise if the locale type of the location is "Stadium": call a Stadium event; otherwise if the locale type of the location is "Arcanum": call an arcanum event; otherwise if the locale type of the location is "Tower": call a tower event; otherwise if the locale type of the location is "Cemetary": call a cemetary event; if the current memento is in Z1: move the current memento to the shadow self. To randomize the focal event: let L be a random number between 1 and 76; if L is 1: [Major reward without risk] now the current event type is 1; otherwise if L < 7: [Major reward with risk] now the current event type is 2; otherwise if L < 17: now the current event type is 3; [Standard reward without risk] otherwise if L < 67: now the current event type is 4; [Standard reward with risk] otherwise: now the current event type is 5. [Risk without reward]. To decide if the focal event is unique: let M be 0; repeat through the Table of Past Focal Events: if the current event type is the event type entry and the current event number is the event number entry and the locale type of the location is the locale type entry: now M is 1; if M is 0: decide yes; otherwise: decide no. Chapter 1 - Market To call a market event: now the current event number is a random number between 1 and 10; if the focal event is unique: say " event type [current event type] and event number [current event number] for the [locale type of the location]. "; say "Calling a market event. Here, have a memento.)"; generate a memento; otherwise: say "...called a duplicate focal event. Choosing a new focal event... "; call a focal event. Chapter 2 - Hospital To call a hospital event: now the current event number is a random number between 1 and 10; if the focal event is unique: say " event type [current event type] and event number [current event number] for the [locale type of the location]. "; say "Calling a hospital event. Here, have a memento.)"; generate a memento; otherwise: say "...called a duplicate focal event. Choosing a new focal event... "; call a focal event. Chapter 3 - Bridge To call a bridge event: now the current event number is a random number between 1 and 10; if the focal event is unique: say " event type [current event type] and event number [current event number] for the [locale type of the location]. "; say "Calling a bridge event. Here, have a memento.)"; generate a memento; otherwise: say "...called a duplicate focal event. Choosing a new focal event... "; call a focal event. Chapter 4 - Hall To call a hall event: now the current event number is a random number between 1 and 10; if the focal event is unique: say "A little girl walks along the row of chairs, calling: 'Here, puss. Puss-puss. Here, puss-puss.' as she bends robotically and checks around the bags and boots under each chair. She has the dead eyes of the god-taken, but her shoulders still slump sadly, and distinct sorrow fills her voice.[paragraph break]Glancing around, you spot the cat perching on top of a coat closet. Its tail lashes from side to side as it stares down at the dance floor, and its head looks longer and narrower than any cat's should be. You've had poor experiences with god-taken animals, but the little girl sounds so sad. Will you point the cat out to her? (y/n) >"; if the player consents: say "'There you are!' the girl cries gladly, and she runs over to the coat closet and reaches up her arms. The cat-creature leaps for them, but, instead of snuggling into her embrace, it rears back one wickedly taloned foot and slashes precisely through her neck before jumping down and weaving quickly away through the maze of ankles.[paragraph break]The girl's face reflects no pain; there is only a great and dark puzzlement as she collapses. Her lips are still moving, but she says nothing, and the blood runs out around her in a great, spreading pool to dampen the coats and bags under the nearby chairs. The dancers never notice.[paragraph break]You realize that the girl dropped something, and you reach to pick it up.[paragraph break](Here, have a memento.)"; generate a memento; otherwise: say "You say nothing. The cat-creature turns its head to look at you, and for a moment, all the intelligence lost in the little girl's eyes seems concentrated in the cat-creature's narrow slits. It can tell you're not god-taken - you're sure of it.[paragraph break]The little girl passes by, and the cat-creature turns and jumps off the coat closet. Landing on a chair, it slips a little and hits its shoulder against the back of the chair, but like any other cat, it immediately jumps back up with its best air of [italic type]I meant to do that[roman type] and runs away into the crowd.[paragraph break]You note that something fell from the chair, and you reach to pick it up.[paragraph break](Here, have a memento.)"; generate a memento; otherwise: say "...called a duplicate focal event. Choosing a new focal event... "; call a focal event. Chapter 5 - Church To call a Church event: now the current event number is a random number between 1 and 10; if the focal event is unique: say " event type [current event type] and event number [current event number] for the [locale type of the location]. "; say "A heavy hush falls on the air, and the scent of incense intensifies. As the scent grows stronger, your mind grows weaker, and the walls and floor begin to swim around you.[paragraph break]The [church windows] spin above you as you stagger and collapse to the [church floor]."; otherwise: say "...called a duplicate focal event. Choosing a new focal event... "; call a focal event. Chapter 6 - Greenhouse To call a greenhouse event: now the current event number is a random number between 1 and 10; if the focal event is unique: say " event type [current event type] and event number [current event number] for the [locale type of the location]. "; say "[The current person] abruptly notices you, and [zher] gaze sharpens. 'You look like someone who could bleed,' [zhe] says conversationally, and [zhe] brandishes a pair of [greenhouse shears]. 'Would you mind? It's for my butterflies....'[paragraph break]Permit [zhim] to cut you? (y/n)> "; if the player consents: say "[The current person] smiles brightly at you. 'That's so nice!' [zhe] chirps. As you hold out your hand, [zhe] makes a neat cut in the back of your hand with the [greenhouse shears]. The butterflies are immediately attracted to the scent of blood, and your hand is abruptly enveloped in a swirling haze of brilliantly hued wings.[paragraph break]The [current person] presses something into your hand. 'Here... for your help.'"; generate a memento; otherwise: say "[The current person]'s mien changes abruptly. 'I asked NICELY!' [zhe] snarls, and [zhe] lunges at you with the [greenhouse shears].[paragraph break]Fortunately, [zher] aim is pretty awful. You recoil as [zhe] shifts [zher] balance."; otherwise: say "...called a duplicate focal event. Choosing a new focal event... "; call a focal event. Chapter 7 - Stadium To call a Stadium event: now the current event number is a random number between 1 and 10; if the focal event is unique: say " event type [current event type] and event number [current event number] for the [locale type of the location]. "; say "Calling a Stadium event. Here, have a memento.)"; generate a memento; otherwise: say "...called a duplicate focal event. Choosing a new focal event... "; call a focal event. Chapter 8 - Arcanum To call an arcanum event: now the current event number is a random number between 1 and 10; if the focal event is unique: say " event type [current event type] and event number [current event number] for the [locale type of the location]. "; say "Calling an arcanum event. Here, have a memento.)"; generate a memento; otherwise: say "...called a duplicate focal event. Choosing a new focal event... "; call a focal event. Chapter 9 - Tower To call a tower event: now the current event number is a random number between 1 and 10; if the focal event is unique: say " event type [current event type] and event number [current event number] for the [locale type of the location]. "; say "Calling a tower event. Here, have a memento.)"; generate a memento; otherwise: say "...called a duplicate focal event. Choosing a new focal event... "; call a focal event. Chapter 10 - Cemetary To call a cemetary event: now the current event number is a random number between 1 and 10; if the focal event is unique: say " event type [current event type] and event number [current event number] for the [locale type of the location]. "; say "Calling a cemetary event. Here, have a memento.)"; generate a memento; otherwise: say "...called a duplicate focal event. Choosing a new focal event... "; call a focal event. Book 2 - Mementos Part 1 - All Mementos A memento is a kind of thing. A memento has a memory called the associated memory. The plural of memento is mementos. The description of a memento is usually "The [memento-type] blurs before your eyes, and your brain aches from looking at it[first time]. It isn't really a [memento-type] - it's a piece of the exiled world's energy, solidified and transferred into this world by your passage through the veil[only]." A memento can be recent. A memento is usually recent. 50 mementos are in Z1. The current memento is a memento that varies. Memento-type is a kind of value. Table of Defined Memento Types memento-type wear_at is_weapon is_shield is_gloves is_cloak is_boots is_specs is_jinx dagger 1 true false false false false false false shield 2 false true false false false false false glove 3 false false true false false false false cloak 4 false false false true false false false pair of boots 5 false false false false true false false pair of spectacles 6 false false false false false true false figurine 0 false false false false false false true [Jinxed things] statuette 0 false false false false false false true necklace 7 false false false false false false true powder 0 false false false false false false false [Consumables] elixir 0 false false false false false false false potion 0 false false false false false false false scroll 0 false false false false false false false parchment 0 false false false false false false false The memento-types are defined by the Table of Defined Memento Types. A memento has a memento-type. A memento usually has memento-type scarf. Understand the memento-type property as describing a memento. A memento has an adjective called the memento adjective. A memento usually has memento adjective nondescript. Understand the memento adjective property as describing a memento. A memento has a number called the attack boost. The attack boost of a memento is usually 0. A memento has a number called the speed boost. The speed boost of a memento is usually 0. A memento has a number called the defense boost. The defense boost of a memento is usually 0. A memento has a number called the movement boost. The movement boost of a memento is usually 0. A memento has a number called the awareness boost. The awareness boost of a memento is usually 0. A memento has a number called the stealth boost. The stealth boost of a memento is usually 0. A memento has a number called the wear_at. The wear_at of a memento is usually 0. Definition: A memento is wearable if the wear_at of it is not 0. Definition: A memento is automatic if it is not an intrinsic memento and it is not wearable. Definition: A memento is inactive if it is wearable and it is not worn. [Wear_at: 0 - unwearable 1 - weapon 2 - shield 3 - gloves 4 - cloak 5 - boots 6 - spectacles 7 - necklace (5 options) 8 - bracelets (6 options) 9 - rings (10 options) 10 - earrings (4 options)] Rule for printing the name of a memento (called target memento): say "[memento adjective of the target memento] [memento-type of the target memento]". Part 2 - Intrinsic Mementos Consumption style is a kind of value. The consumption styles are food-based, drink-based, and scroll-based. A consumption style has a list of memento-types called the potential name list. The potential name list of food-based is {powder}. The potential name list of drink-based is {elixir, potion}. The potential name list of scroll-based is {scroll, parchment}. A consumption style has a list of adjectives called the potential adjective list. The potential adjective list of food-based is {fine, gritty, smooth, crystalline, sparkling, translucent}. The potential adjective list of drink-based is {bubbling, fizzy, translucent, glimmering, shimmering, murky, shadowy}. The potential adjective list of scroll-based is {polished, elegant, small, torn, ragged, smudged, dirty}. An intrinsic memento is a kind of memento. An intrinsic memento has a consumption style. An intrinsic memento usually has consumption style food-based. An intrinsic memento has an adjective called the color. An intrinsic memento usually has color purple. Understand the color property as describing an intrinsic memento. An intrinsic memento usually has memento-type powder. An intrinsic memento has a number called the strength boost. The strength boost of an intrinsic memento is usually 0. An intrinsic memento has a number called the stamina boost. The stamina boost of an intrinsic memento is usually 0. An intrinsic memento has a number called the will boost. The will boost of an intrinsic memento is usually 0. An intrinsic memento has a number called the knowledge boost. The knowledge boost of an intrinsic memento is usually 0. Rule for printing the name of an intrinsic memento (called target imemento): if the consumption style of the target imemento is scroll-based: say "[memento adjective of the target imemento] [color of the target imemento]-inked [memento-type of the target imemento]"; otherwise: say "[memento adjective of the target imemento] [color of the target imemento] [memento-type of the target imemento]". The plural of intrinsic memento is intrinsic mementos. 50 intrinsic mementos are in Z1. The current imemento is an intrinsic memento that varies. Part 3 - Generating Mementos To generate a memento: now the current danger level is the number of activated Unperceived shrine rooms; say "(Memento generation started. Danger level is [current danger level]. "; if a random chance of 1 in 6 succeeds: now the current imemento is a random intrinsic memento in Z1; if a random chance of 1 in 3 succeeds and an untriggered alibi memory is in Z1: now the associated memory of the current imemento is a random untriggered alibi memory in Z1; otherwise: now the associated memory of the current imemento is a random untriggered contextual memory in Z1; now the associated memory of the current imemento is triggered; generate an intrinsic memento; now the current memento is the current imemento; otherwise: now the current memento is a random memento in Z1; if a random chance of 1 in 3 succeeds and an untriggered alibi memory is in Z1: now the associated memory of the current memento is a random untriggered alibi memory in Z1; otherwise: now the associated memory of the current memento is a random untriggered contextual memory in Z1; now the associated memory of the current memento is triggered; generate an enhancive memento. Table of Available Memento Types memento-type wear_at is_weapon is_shield is_gloves is_cloak is_boots is_specs pair of boots 0 false false false true false false with 50 blank rows Table_target is a number that varies. Table_origin is a number that varies. Chapter 1 - Generating Enhancive Mementos To generate an enhancive memento: say "Generating an enhancive memento. "; blank out the whole of the Table of Available Memento Types; let the temporary count be 1 + the current danger level; while the temporary count > 0: let K be a random number between 1 and 8; if K is 1: now the attack boost of the current memento is 1 + the attack boost of the current memento; otherwise if K is 2: now the speed boost of the current memento is 1 + the speed boost of the current memento; otherwise if K is 3: now the defense boost of the current memento is 1 + the defense boost of the current memento; otherwise if K is 4: now the movement boost of the current memento is 1 + the movement boost of the current memento; otherwise if K is 5: now the awareness boost of the current memento is 1 + the awareness boost of the current memento; otherwise if K is 6: now the stealth boost of the current memento is 1 + the stealth boost of the current memento; otherwise: let L be a random number between 1 and 7; if L is 1: now the attack boost of the current memento is the attack boost of the current memento - 1; otherwise if L is 2: now the speed boost of the current memento is the speed boost of the current memento - 1; otherwise if L is 3: now the defense boost of the current memento is the defense boost of the current memento - 1; otherwise if L is 4: now the movement boost of the current memento is the movement boost of the current memento - 1; otherwise if L is 5: now the awareness boost of the current memento is the awareness boost of the current memento - 1; otherwise if L is 6: now the stealth boost of the current memento is the stealth boost of the current memento - 1; otherwise: now the temporary count is the temporary count + 1; now the temporary count is the temporary count - 1; now the table_target is 1; repeat with Q running from 1 to the number of rows in the Table of Defined Memento Types: now the table_origin is Q; if the attack boost of the current memento > 0 and is_weapon in row table_origin of the Table of Defined Memento Types is true: copy the memento type tables entry; otherwise if the speed boost of the current memento > 0 and is_gloves in row table_origin of the Table of Defined Memento Types is true: copy the memento type tables entry; otherwise if the defense boost of the current memento > 0 and is_shield in row table_origin of the Table of Defined Memento Types is true: copy the memento type tables entry; otherwise if the stealth boost of the current memento > 0 and is_cloak in row table_origin of the Table of Defined Memento Types is true: copy the memento type tables entry; otherwise if the awareness boost of the current memento > 0 and is_boots in row table_origin of the Table of Defined Memento Types is true: copy the memento type tables entry; otherwise if the movement boost of the current memento > 0 and is_specs in row table_origin of the Table of Defined Memento Types is true: copy the memento type tables entry; repeat with R running from 1 to the number of rows in the Table of Available Memento Types: if the Table of Available Memento Types is not empty: if the attack boost of the current memento < 0 and is_weapon in row table_origin of the Table of Available Memento Types is true: say "...removing [memento-type in row R of the Table of Available Memento Types] from the table because this memento has an attack boost of [attack boost of the current memento]... "; choose row R in the Table of Available Memento Types; blank out the whole row; if the speed boost of the current memento < 0 and is_gloves in row table_origin of the Table of Available Memento Types is true: say "...removing [memento-type in row R of the Table of Available Memento Types] from the table because this memento has a speed boost of [speed boost of the current memento]... "; choose row R in the Table of Available Memento Types; blank out the whole row; if the defense boost of the current memento < 0 and is_shield in row table_origin of the Table of Available Memento Types is true: say "...removing [memento-type in row R of the Table of Available Memento Types] from the table because this memento has a defense boost of [defense boost of the current memento]... "; choose row R in the Table of Available Memento Types; blank out the whole row; if the stealth boost of the current memento < 0 and is_cloak in row table_origin of the Table of Available Memento Types is true: say "...removing [memento-type in row R of the Table of Available Memento Types] from the table because this memento has a stealth boost of [stealth boost of the current memento]... "; choose row R in the Table of Available Memento Types; blank out the whole row; if the awareness boost of the current memento < 0 and is_boots in row table_origin of the Table of Available Memento Types is true: say "...removing [memento-type in row R of the Table of Available Memento Types] from the table because this memento has an awareness boost of [awareness boost of the current memento]... "; choose row R in the Table of Available Memento Types; blank out the whole row; if the movement boost of the current memento < 0 and is_specs in row table_origin of the Table of Available Memento Types is true: say "...removing [memento-type in row R of the Table of Available Memento Types] from the table because this memento has a movement boost of [movement boost of the current memento]... "; choose row R in the Table of Available Memento Types; blank out the whole row; if the Table of Available Memento Types is empty: say "Adding jinx memento types. "; now the table_target is 1; repeat with Q running from 1 to the number of rows in the Table of Defined Memento Types: now the table_origin is Q; if is_jinx in row table_origin of the Table of Defined Memento Types is true: copy the memento type tables entry; choose a random row in the Table of Available Memento Types; now the memento-type of the current memento is the memento-type entry; now the wear_at of the current memento is the wear_at entry; if the wear_at of the current memento is not 0: now the current memento is wearable; say "... memento generation complete. The memento is a [current memento] with bonuses for [if the attack boost of the current memento is not 0] attack [attack boost of the current memento],[end if] speed [speed boost of the current memento], defense [defense boost of the current memento], stealth [stealth boost of the current memento], awareness [awareness boost of the current memento], and movement [movement boost of the current memento].)" To copy the memento type tables entry: say "...copying [memento-type in row table_origin of the Table of Defined Memento Types] into row [table_target] of the Table of Available Memento Types... "; now the memento-type in row table_target of the Table of Available Memento Types is the memento-type in row table_origin of the Table of Defined Memento Types; now the wear_at in row table_target of the Table of Available Memento Types is the wear_at in row table_origin of the Table of Defined Memento Types; now the is_weapon in row table_target of the Table of Available Memento Types is the is_weapon in row table_origin of the Table of Defined Memento Types; now the is_shield in row table_target of the Table of Available Memento Types is the is_shield in row table_origin of the Table of Defined Memento Types; now the is_gloves in row table_target of the Table of Available Memento Types is the is_gloves in row table_origin of the Table of Defined Memento Types; now the is_cloak in row table_target of the Table of Available Memento Types is the is_cloak in row table_origin of the Table of Defined Memento Types; now the is_boots in row table_target of the Table of Available Memento Types is the is_boots in row table_origin of the Table of Defined Memento Types; now the is_specs in row table_target of the Table of Available Memento Types is the is_specs in row table_origin of the Table of Defined Memento Types; now the wear_at in row table_target of the Table of Available Memento Types is the wear_at in row table_origin of the Table of Defined Memento Types; now the table_target is the table_target + 1. Chapter 2 - Generating Intrinsic Mementos To generate an intrinsic memento: say "(Generating an intrinsic memento. "; let the temporary count be 1 + the current danger level; while the temporary count > 0: let K be a random number between 1 and 12; if K is 1: now the attack boost of the current imemento is 1 + the attack boost of the current imemento; otherwise if K is 2: now the speed boost of the current imemento is 1 + the speed boost of the current imemento; otherwise if K is 3: now the defense boost of the current imemento is 1 + the defense boost of the current imemento; otherwise if K is 4: now the movement boost of the current imemento is 1 + the movement boost of the current imemento; otherwise if K is 5: now the awareness boost of the current imemento is 1 + the awareness boost of the current imemento; otherwise if K is 6: now the stealth boost of the current imemento is 1 + the stealth boost of the current imemento; otherwise if K is 7: now the strength boost of the current imemento is 1 + the strength boost of the current imemento; otherwise if K is 8: now the stamina boost of the current imemento is 1 + the stamina boost of the current imemento; otherwise if K is 9: now the will boost of the current imemento is 1 + the will boost of the current imemento; otherwise if K is 10: now the knowledge boost of the current imemento is 1 + the knowledge boost of the current imemento; otherwise: let L be a random number between 1 and 7; if L is 1: now the attack boost of the current imemento is the attack boost of the current imemento - 1; otherwise if L is 2: now the speed boost of the current imemento is the speed boost of the current imemento - 1; otherwise if L is 3: now the defense boost of the current imemento is the defense boost of the current imemento - 1; otherwise if L is 4: now the movement boost of the current imemento is the movement boost of the current imemento - 1; otherwise if L is 5: now the awareness boost of the current imemento is the awareness boost of the current imemento - 1; otherwise if L is 6: now the stealth boost of the current imemento is the stealth boost of the current imemento - 1; otherwise: now the temporary count is the temporary count + 1; now the temporary count is the temporary count - 1; let M be 0; while M is 0: let L be a random number between 1 and 3; if L is 1: now the consumption style of the current imemento is food-based; say "L is [L]. The current imemento is now [consumption style of the current imemento]. "; now the current imemento is edible; otherwise if L is 2: now the consumption style of the current imemento is drink-based; say "L is [L]. The current imemento is now [consumption style of the current imemento]. "; now the current imemento is edible; otherwise if L is 3: now the consumption style of the current imemento is scroll-based; say "L is [L]. The current imemento is now [consumption style of the current imemento]. "; let the temporary consumption style be the consumption style of the current imemento; sort the potential name list of the temporary consumption style in random order; say "The list of options for [temporary consumption style] is [the potential name list of the temporary consumption style]... "; now the memento-type of the current imemento is entry 1 of the potential name list of the temporary consumption style; say "Updating memento-type to [memento-type of the current imemento]. "; sort the potential adjective list of the temporary consumption style in random order; now the memento adjective of the current imemento is entry 1 of the potential adjective list of the temporary consumption style; say "Updating memento adjective to [memento adjective of the current imemento]. "; sort the color list in random order; now the color of the current imemento is entry 1 of the color list; say "Updating memento color to [color of the current imemento]. "; repeat with target imemento running through mementos: if the target imemento is not in Z1 and M is 0: if (the memento-type of the current imemento is the memento-type of the target imemento) and (the memento adjective of the current imemento is the memento adjective of the target imemento) and (the color of the current imemento is the color of the target imemento): say ". Rejecting [the current imemento] because it matches [the target imemento]; rebuilding the appearance...."; now M is 0; otherwise: now M is 1; say "[the current imemento] has been accepted.)". Part 4 - Handling Mementos Instead of doing something other than examining with a memento (called the target memento): now the current person is the shadow self; say "Your shadow retreats slightly and half-turns away, preventing you from touching [the target memento]. Do you insist? (y/n)>"; if the player consents: say "[Zhe] does not retreat again, and you touch the [target memento]. The contact triggers a memory.[paragraph break]"; now the current memory is the associated memory of the target memento; remember the current memory; say "[line break][The target memento] shimmers and then vanishes from existence."; remove the target memento from play. Part 5 - Consuming Intrinsic Mementos To consume the current imemento: now the current imemento is the noun; now the current person is the shadow self; if the consumption style of the current imemento is food-based or the consumption style of the current imemento is drink-based: say "[The shadow self] lifts the [current imemento] to [zher] lips and swallows it. Your mouth fills suddenly with a [one of]salty[or]coppery[or]acidic[or]bitter[or]sweet[or]spicy[or]metallic[at random] flavor. You"; otherwise: say "[The shadow self] unrolls the [current imemento] and lowers [zher] eyes to peruse the text. A moment passes while [zhe] reads, and then the world swims quite suddenly around you. As everything stabilizes, you "; say "realize that you feel "; let M be 0; if the attack boost of the current imemento is not 0: if the attack boost of the current imemento > 0: now M is the attack boost of the current imemento; otherwise if the attack boost of the current imemento < 0: now M is (0 - the attack boost of the current imemento); if M is 1: say "slightly "; otherwise if M is 2: say "somewhat "; otherwise if M is 3: say ""; otherwise if M is 4: say "significantly "; otherwise: say "very much "; if the attack boost of the current imemento > 0: say "more "; otherwise: say "less "; say "dangerous"; now the rattack of the player is the rattack of the player + the attack boost of the current imemento; if the speed boost of the current imemento is not 0: if the defense boost of the current imemento is not 0 or the movement boost of the current imemento is not 0 or the awareness boost of the current imemento is not 0 or the stealth boost of the current imemento is not 0 or the strength boost of the current imemento is not 0 or the stamina boost of the current imemento is not 0 or the will boost of the current imemento is not 0 or the knowledge boost of the current imemento is not 0: say ", "; otherwise: say " and "; if the speed boost of the current imemento > 0: now M is the speed boost of the current imemento; otherwise if the speed boost of the current imemento < 0: now M is (0 - the speed boost of the current imemento); if M is 1: say "slightly "; otherwise if M is 2: say "somewhat "; otherwise if M is 3: say ""; otherwise if M is 4: say "significantly "; otherwise: say "very much "; if the speed boost of the current imemento > 0: say "swifter "; otherwise: say "slower "; now the rspeed of the player is the rspeed of the player + the speed boost of the current imemento; if the defense boost of the current imemento is not 0: if the movement boost of the current imemento is not 0 or the awareness boost of the current imemento is not 0 or the stealth boost of the current imemento is not 0 or the strength boost of the current imemento is not 0 or the stamina boost of the current imemento is not 0 or the will boost of the current imemento is not 0 or the knowledge boost of the current imemento is not 0: say ", "; otherwise: say " and "; if the defense boost of the current imemento > 0: now M is the defense boost of the current imemento; otherwise if the defense boost of the current imemento < 0: now M is (0 - the defense boost of the current imemento); if M is 1: say "slightly "; otherwise if M is 2: say "somewhat "; otherwise if M is 3: say ""; otherwise if M is 4: say "significantly "; otherwise: say "very much "; if the defense boost of the current imemento > 0: say "less vulnerable"; otherwise: say "more vulnerable"; now the rdefense of the player is the rdefense of the player + the defense boost of the current imemento; if the movement boost of the current imemento is not 0: if the awareness boost of the current imemento is not 0 or the stealth boost of the current imemento is not 0 or the strength boost of the current imemento is not 0 or the stamina boost of the current imemento is not 0 or the will boost of the current imemento is not 0 or the knowledge boost of the current imemento is not 0: say ", "; otherwise: say " and "; if the movement boost of the current imemento > 0: now M is the movement boost of the current imemento; otherwise if the movement boost of the current imemento < 0: now M is (0 - the movement boost of the current imemento); if M is 1: say "slightly "; otherwise if M is 2: say "somewhat "; otherwise if M is 3: say ""; otherwise if M is 4: say "significantly "; otherwise: say "very much "; if the movement boost of the current imemento > 0: say "more "; otherwise: say "less "; say "capable of concentrating"; now the rmovement of the player is the rmovement of the player + the movement boost of the current imemento; if the awareness boost of the current imemento is not 0: if the stealth boost of the current imemento is not 0 or the strength boost of the current imemento is not 0 or the stamina boost of the current imemento is not 0 or the will boost of the current imemento is not 0 or the knowledge boost of the current imemento is not 0: say ", "; otherwise: say " and "; if the awareness boost of the current imemento > 0: now M is the awareness boost of the current imemento; otherwise if the awareness boost of the current imemento < 0: now M is (0 - the awareness boost of the current imemento); if M is 1: say "slightly "; otherwise if M is 2: say "somewhat "; otherwise if M is 3: say ""; otherwise if M is 4: say "significantly "; otherwise: say "very much "; if the movement boost of the current imemento > 0: say "more "; otherwise: say "less "; say "aware of your surroundings"; now the rawareness of the player is the rawareness of the player + the awareness boost of the current imemento; if the stealth boost of the current imemento is not 0: if the strength boost of the current imemento is not 0 or the stamina boost of the current imemento is not 0 or the will boost of the current imemento is not 0 or the knowledge boost of the current imemento is not 0: say ", "; otherwise: say " and "; if the stealth boost of the current imemento > 0: now M is the stealth boost of the current imemento; otherwise if the stealth boost of the current imemento < 0: now M is (0 - the stealth boost of the current imemento); if M is 1: say "slightly "; otherwise if M is 2: say "somewhat "; otherwise if M is 3: say ""; otherwise if M is 4: say "significantly "; otherwise: say "very much "; if the movement boost of the current imemento > 0: say "sneakier"; otherwise: say "less sneaky"; now the rstealth of the player is the rstealth of the player + the stealth boost of the current imemento; if the strength boost of the current imemento is not 0: if the stamina boost of the current imemento is not 0 or the will boost of the current imemento is not 0 or the knowledge boost of the current imemento is not 0: say ", "; otherwise: say " and "; if the strength boost of the current imemento > 0: now M is the strength boost of the current imemento; otherwise if the strength boost of the current imemento < 0: now M is (0 - the strength boost of the current imemento); if M is 1: say "slightly "; otherwise if M is 2: say "somewhat "; otherwise if M is 3: say ""; otherwise if M is 4: say "significantly "; otherwise: say "very much "; if the strength boost of the current imemento > 0: say "stronger"; otherwise: say "less strong"; now the strength of the player is the strength of the player + the strength boost of the current imemento; if the stamina boost of the current imemento is not 0: if the will boost of the current imemento is not 0 or the knowledge boost of the current imemento is not 0: say ", "; otherwise: say " and "; if the stamina boost of the current imemento > 0: now M is the stamina boost of the current imemento; otherwise if the stamina boost of the current imemento < 0: now M is (0 - the stamina boost of the current imemento); if M is 1: say "slightly "; otherwise if M is 2: say "somewhat "; otherwise if M is 3: say ""; otherwise if M is 4: say "significantly "; otherwise: say "very much "; if the strength boost of the current imemento > 0: say "more"; otherwise: say "less"; say " capable of enduring hardship"; now the stamina of the player is the stamina of the player + the stamina boost of the current imemento; if the will boost of the current imemento is not 0: if the knowledge boost of the current imemento is not 0: say "and "; if the will boost of the current imemento > 0: now M is the will boost of the current imemento; otherwise if the will boost of the current imemento < 0: now M is (0 - the will boost of the current imemento); if M is 1: say "slightly "; otherwise if M is 2: say "somewhat "; otherwise if M is 3: say ""; otherwise if M is 4: say "significantly "; otherwise: say "very much "; if the strength boost of the current imemento > 0: say "more"; otherwise: say "less"; say " strongwilled"; now the will of the player is the will of the player + the will boost of the current imemento; if the knowledge boost of the current imemento is not 0: if the knowledge boost of the current imemento > 0: now M is the knowledge boost of the current imemento; otherwise if the knowledge boost of the current imemento < 0: now M is (0 - the knowledge boost of the current imemento); if M is 1: say "slightly "; otherwise if M is 2: say "somewhat "; otherwise if M is 3: say ""; otherwise if M is 4: say "significantly "; otherwise: say "very much "; if the knowledge boost of the current imemento > 0: say "more"; otherwise: say "less"; say " cognizant of this world's nature"; now the knowledge of the player is the knowledge of the player + the knowledge boost of the current imemento; say "[if the consumption style of the current imemento is scroll-based].[paragraph break][The current imemento] has vanished from your shadow's hands[end if]."; calculate the player's enhanced stats. Book 3 - NPCs in the Exile Part 1 - Recognition Before examining an unknown NPC (called the target NPC): now the current person is the target NPC; say "You recognize [the target NPC]. This is your [gr of the current person], [given name of the target NPC] [surname of the target NPC] - [zher]"; let M be a random number between 1 and 4; if M is 1: say "[eye color of the target NPC] eyes"; otherwise if M is 2: if the facial hair of the target NPC is not "": say "[facial hair of the target NPC]"; otherwise: say "[height of the target NPC], [build of the target NPC] frame"; otherwise if M is 3: say "[skin tone of the target NPC] complexion"; otherwise if M is 4: say "[hair reference]"; otherwise if M is 5: say "[one of]contemplative[or]irritated[or]distracted[or]distant[or]sad[or][physical impression of the target NPC][at random] [one of]little laugh[or]smile[or]stride[or]way of biting [zher] lip in thought[at random]"; say " is too familiar to be denied."; now the target NPC is known. Part 2 - False Leads A false lead is a kind of person. 50 false leads are in Z1. A false lead is usually improper-named. A false lead can be unknown or known. A false lead is usually known. A false lead has a person called the dead ringer. Understand "woman" as a person when the item described is female. Understand "man" as a person when the item described is male. Understand the height property as describing a person. Understand the build property as describing a person. Rule for printing the name of a false lead (called the target lead): if the age of the target lead is less than 2: say "baby"; otherwise if the age of the target lead is less than 4: say "toddler"; otherwise if the age of the target lead is less than 13: say "[physical impression of the target lead] "; if the target lead is male: say "boy"; otherwise: say "girl"; otherwise if the age of the target lead is less than 18: say "[height of the target lead], [build of the target lead] "; if the target lead is male: say "teenage boy"; otherwise if the target lead is female: say "teenage girl"; otherwise: say "[height of the target lead], [build of the target lead] "; if the target lead is male: say "man"; otherwise: say "woman". To place a false lead: DM "(Placing a false lead. "; now the current person is a random false lead in Z1; if a random chance of 1 in 2 succeeds: now the current person is male; otherwise: now the current person is female; let the age minimum be 5; let the age maximum be 100; now the age of the current person is ((a random number between the age minimum and the age maximum) + (a random number between the age minimum and the age maximum)) / 2; determine the ethnicity; name the character; DM "The false lead's name is [given name of the current person] [surname of the current person]."; determine features; now the current person is in the location. Before examining a false lead (called the target lead): now the current person is the target lead; say "Looking at [the current person], you realize that [zhe] doesn't look all that much like "; now the current person is the dead ringer of the target lead; say "[given name of the current person] [surname of the current person], your [gr of the current person], after all." Book 4 - Limited Choices Giving is human interaction. Answering is human interaction. Instead of human interaction when the player is in the Exile: if the second noun is a person: now the noun is the second noun; say "You can't think clearly enough to interact with [the noun][first time]. You could wait and allow yourself to drift deeper into this world, but you may lose your connection with [currently invoked deity] if you do so[only].". Book 5 - Traveling After going a compass direction (called thataway) in the Exile (this is the Exile travel messaging rule): if the previously visited locale is a transitional room and the location is a transitional room: say "You walk generally [thataway] for some time"; if the display name of the previously visited locale is the display name of the location: say " through [display name of the location]"; otherwise: say " until you reach [display name of the location]"; if a random chance of 1 in 2 succeeds: say ", [one of]dodging[or]weaving around[or]slipping between[or]staying clear of[or]avoiding contact with[at random] the [one of]wandering[or]meandering[or]milling[or]rambling[or]roaming[at random] pedestrians"; say "."; otherwise if the previously visited locale is a transitional room and the location is a focal room: if the locale type of the location is "Market": say "A rising hubbub announces that you have reached [display name of the location]. Vendors hawk their wares loudly on all sides, chickens flutter past underfoot, and peculiar odors fill the air."; otherwise if the locale type of the location is "Hospital": say "You come to [display name of the location], a converted warehouse filled with patients, their caretakers, and their guardians. As you enter the hospital, a cold wave of air pushes against your face. It smells strongly of antiseptic and faintly of vomit."; otherwise if the locale type of the location is "Bridge": say "You walk along until you come to the broad stretch of [display name of the location]. Water thunders past underneath."; otherwise if the locale type of the location is "Hall": say "You enter [display name of the location], which is filled with the sound of a [hall music] and the thump of rhythmically moving feet."; otherwise if the locale type of the location is "Church": say "You climb a short flight of steps and enter the desecrated ruin of [display name of the location]."; otherwise if the locale type of the location is "Greenhouse": say "You come to a large, glass-topped greenhouse and step into the warm, plant-scented air inside."; otherwise if the locale type of the location is "Stadium": say "You arrive at [display name of the location]. There is a ticket taker, but [one of]he[or]she[at random] stares blindly ahead and marks on the counter with a red pen when you fail to present a ticket. You go inside without any difficulty."; otherwise if the locale type of the location is "Arcanum": say "You come to the door of [display name of the location]. The light inside is dim, but steady."; otherwise if the locale type of the location is "Tower": say "You come to a towering building surrounded by empty parking lots and elegantly trimmed greenery. A security camera tracks your motion as you go inside."; otherwise if the locale type of the location is "Cemetary": say "The buildings and pedestrians fade behind you as you step into the somber calm of [display name of the location]."; otherwise if the previously visited locale is a focal room and the location is a transitional room: if the locale type of the previously visited locale is "Market": say "[one of]Dodging between[or]Weaving around[or]Slipping between[at random] the members of the noisy, pressing crowd, you escape [display name of the previously visited locale] on the [thataway]ern edge and find yourself at [display name of the location]."; otherwise if the locale type of the previously visited locale is "Hospital": say "You walk down one of the canvas-lined corridors to an exit on the [thataway] side. Outside [display name of the previously visited locale], you find yourself at [display name of the location]."; otherwise if the locale type of the previously visited locale is "Bridge": say "You go [thataway] from [display name of the previously visited locale] and find yourself at [display name of the location]."; otherwise if the locale type of the previously visited locale is "Hall": say "You exit [display name of the previously visited locale] on the [thataway] side, only then realizing how warm it was inside as you descend the short flight of steps. After walking a ways, you find yourself at [display name of the location], which seems quiet by comparison."; otherwise if the locale type of the previously visited locale is "Church": say "Picking your way across the [church floor], you exit [display name of the previously visited locale] to the [thataway]."; otherwise if the locale type of the previously visited locale is "Greenhouse": say "You leave [display name of the previously visited locale] through the [thataway]ern door."; otherwise if the locale type of the previously visited locale is "Stadium": say "You navigate the press of shouting spectators and make your way to the [thataway] exit of [display name of the previously visited locale], which exits onto [display name of the location]."; otherwise if the locale type of the previously visited locale is "Arcanum": say "You leave [display name of the previously visited locale] through the [thataway]ern exit and find yourself at [display name of the location]"; otherwise if the locale type of the previously visited locale is "Tower": say "A security camera tracks your motion as you wind your way across to the [thataway]ern exit and leave the towering building."; otherwise if the locale type of the previously visited locale is "Cemetary": say "Leaving [display name of the previously visited locale], you find yourself again confronted with the noise and bustle of the city."; otherwise: say "After leaving [display name of the previously visited locale], you walk a short way before coming to [display name of the location]."; continue the action. Volume 12 - Monsters Book 1 - The Essence of Monsters There are 50 monsters in Z1. A monster has a deity called the associated deity. A monster usually has associated deity Inho. A monster has a number called rattack. A monster has a number called eattack. A monster has a number called rspeed. A monster has a number called espeed. A monster has a number called rdefense. A monster has a number called edefense. A monster has a number called rhealth. A monster has a number called chealth. A monster has a number called rawareness. A monster has a number called eawareness. A monster has a number called rstealth. A monster has a number called estealth. A monster has a number called the rmattack. A monster has a number called the emattack. The current monster is a monster that varies. The current deity is a deity that varies. Book 2 - Building Monster Templates The temporary physical attack is a number that varies. The temporary mental attack is a number that varies. The temporary hit point is a number that varies. The temporary awareness is a number that varies. The temporary stealth is a number that varies. The temporary speed is a number that varies. Chapter 1 - Building Templates To build monster templates: choose row 1 in the Table of Monster Templates; blank out the whole row; repeat with temporary statue running through Unperceived shrine statues: now the current statue is the temporary statue; DM "The current statue is [current statue]. "; let DL be 1; now the current deity is the shrine deity of the current statue; DM "The current deity is [current deity]."; initialize the monster name list; carry out deity monster name additions; initialize the monster adjective list; carry out deity monster adjective additions; describe the shrine statue; [As long as I'm here....] while DL is less than 6: now the current danger level is DL; carry out danger level monster name adjustments; now the current shape is a random monster shape; let potential danger level be (the min danger corresponding to a monster shape of the current shape in the Table of Potential Monster Shapes); DM "The current shape is [current shape]. The current DL is [DL]. The potential danger level of this shape is [potential danger level]."; while potential danger level > DL: now the current shape is a random monster shape; DM "Picking a new shape.... "; let potential danger level be (the min danger corresponding to a monster shape of the current shape in the Table of Potential Monster Shapes); DM "The current shape is [current shape]. The current DL is [DL]. The potential danger level of this shape is [potential danger level]."; now the temporary physical attack is 1 + the PA mod corresponding to a deity of the current deity in the Table of Deity Stat Adjustments; now the temporary mental attack is 1 + the MA mod corresponding to a deity of the current deity in the Table of Deity Stat Adjustments; now the temporary hit point is 4 + the HP mod corresponding to a deity of the current deity in the Table of Deity Stat Adjustments; now the temporary awareness is 1 + the awareness mod corresponding to a deity of the current deity in the Table of Deity Stat Adjustments; now the temporary stealth is 0 + the stealth mod corresponding to a deity of the current deity in the Table of Deity Stat Adjustments; now the temporary speed is a random number between (the fastest speed corresponding to a monster shape of the current shape in the Table of Potential Monster Shapes) and (the slowest speed corresponding to a monster shape of the current shape in the Table of Potential Monster Shapes); now the temporary speed is the temporary speed + the speed mod corresponding to a deity of the current deity in the Table of Deity Stat Adjustments; let the temporary stat counter be 5 + (5 * DL); while the temporary stat counter > 0: let K be a random number between 1 and 5; if K is 1: now the temporary physical attack is 1 + the temporary physical attack; otherwise if K is 2: now the temporary mental attack is 1 + the temporary mental attack; otherwise if K is 3: now the temporary hit point is 1 + the temporary hit point; otherwise if K is 4: now the temporary awareness is 1 + the temporary awareness; otherwise if K is 5: now the temporary stealth is 1 + the temporary stealth; now the temporary stat counter is the temporary stat counter - 1; choose a blank row in the Table of Monster Templates; now associated deity entry is the current deity; now danger level entry is DL; now the monster shape entry is the current shape; sort the appropriate monster name list of the current shape in random order; now the monster name entry is entry 1 of the appropriate monster name list of the current shape; now the current monster name is the monster name entry; now the physical attack entry is the temporary physical attack; now the mental attack entry is the temporary mental attack; now the hit point entry is the temporary hit point; now the awareness entry is the temporary awareness; now the stealth entry is the temporary stealth; now the the speed entry is the temporary speed; carry out stat-based monster adjective adjustments; sort the appropriate monster adjective list of the monster name entry in random order; now the monster adjective entry is entry 1 of the appropriate monster adjective list of the monster name entry; DM "[line break]I built a monster for [current deity]. It's a [current shape] ([monster adjective entry] [monster name entry]) corresponding with danger level [DL]: PA [physical attack entry], MA [mental attack entry], HP [hit point entry], Awareness [awareness entry], Stealth [stealth entry], Speed [speed entry]."; let DL be DL + 1; repeat with temporary statue running through Perceived shrine statues: [Perceived statues need love too.] now the current statue is the temporary statue; describe the shrine statue. Chapter 2 - Templated Stats Monster shape is a kind of value. The monster shapes are defined by the Table of Potential Monster Shapes. A monster has a monster shape. The current shape is a monster shape that varies. Table of Potential Monster Shapes monster shape slowest speed fastest speed min danger ungulate-shape 4 8 1 feline-shape 4 8 1 winged-shape 4 8 1 starfish-shape 1 1 1 ghost-shape 1 4 2 humanoid-shape 2 4 3 Table of Monster Templates associated deity danger level monster shape monster name monster adjective speed physical attack mental attack hit point awareness stealth active Inho 1 feline-shape leopard nondescript 1 1 1 1 1 1 false with 25 blank rows. Table of Deity Stat Adjustments deity PA mod MA mod HP mod Awareness mod Stealth mod Speed mod Inho 0 0 0 0 0 0 Muisti 0 0 0 0 0 0 Apuraha 0 0 0 0 0 0 Ennakointi 0 0 0 0 0 0 Kauhusta 0 0 0 0 0 0 Yhtenaisyys 0 0 0 0 0 0 Arkuus 0 0 0 0 0 0 Innostus 0 0 0 0 0 0 Taiteellisuus 0 0 0 0 0 0 Kohtelias 0 0 0 0 0 0 Ylpea 0 0 0 0 0 0 Peloton 0 0 0 0 0 0 Holtiton 0 0 0 0 0 0 Huolellinen 0 0 0 0 0 0 Laakari 0 0 0 0 0 0 Chapter 3 - Templated Appearance The monster names are zebra, goat, boar, elk, stag, leopard, tiger, cheetah, lynx, heron, bat, crow, raptor, ibis, starfish, sea star, dybbuk, wraith, ghost, spectre, humanoid, revenant, goblin, and kobold. A monster has a monster name. Understand the monster name property as describing a monster. The current monster name is a monster name that varies. A monster shape has a list of monster names called the appropriate monster name list. To initialize the monster name list: now the appropriate monster name list of the ungulate-shape is {zebra, goat, boar, elk, stag}; now the appropriate monster name list of the feline-shape is {leopard, tiger, cheetah, lynx}; now the appropriate monster name list of the winged-shape is {heron, bat, crow, raptor, ibis}; now the appropriate monster name list of the starfish-shape is {starfish, sea star}; now the appropriate monster name list of the humanoid-shape is {humanoid, revenant, goblin, kobold}; now the appropriate monster name list of the ghost-shape is {dybbuk, wraith, ghost, spectre}. To carry out deity monster name additions: DM "If there were any name adjustments for [current deity], I'd be adding them in here, but there aren't right now, so I won't." To carry out danger level monster name adjustments: DM "If there were any danger level adjustments for DL:[current danger level], I'd be adding them in here, but there aren't right now, so I won't." A monster has an adjective called the core adjective. Understand the core adjective property as describing a monster. The core adjective of a monster is usually nondescript. A monster name has a list of adjectives called the appropriate monster adjective list. To initialize the monster adjective list: repeat with current monster name running through monster names: now the appropriate monster adjective list of the current monster name is {white, gray, black, brown}; add {striped} to the appropriate monster adjective list of zebra; add {great-tusked} to the appropriate monster adjective list of boar; add {broad-horned} to the appropriate monster adjective list of elk; add {broad-horned} to the appropriate monster adjective list of stag; add {spotted} to the appropriate monster adjective list of leopard; add {striped} to the appropriate monster adjective list of tiger; add {spotted} to the appropriate monster adjective list of cheetah; add {striped, spotted} to the appropriate monster adjective list of cheetah; add {striped, spotted} to the appropriate monster adjective list of raptor; add {spiny} to the appropriate monster adjective list of starfish; add {spiny} to the appropriate monster adjective list of sea star. To carry out deity monster adjective additions: DM "If there were any adjective adjustments for [current deity], I'd be adding them in here, but there aren't right now, so I won't." To carry out stat-based monster adjective adjustments: DM "Searching for stat-based monster adjective adjustments. "; if the temporary physical attack is greater than 5: DM "Adjusting for high physical attack. "; add {muscular} to the appropriate monster adjective list of the current monster name; if the temporary hit point is less than 2: DM "Adjusting for low hit point. "; add {spindly, skeletal, scrawny} to the appropriate monster adjective list of the current monster name; if the temporary hit point is greater than 8: DM "Adjusting for high hit point. "; add {giant, enormous, colossal} to the appropriate monster adjective list of the current monster name; if the temporary stealth is less than 1: DM "Adjusting for low stealth. "; add {blundering, lumbering} to the appropriate monster adjective list of the current monster name; if the temporary stealth is greater than 2: DM "Adjusting for high stealth. "; add {translucent, shadowy, half-transparent} to the appropriate monster adjective list of the current monster name; if the temporary awareness is less than 2: DM "Adjusting for low awareness. "; add {blind, eyeless} to the appropriate monster adjective list of the current monster name; if the temporary speed is less than 1: DM "Adjusting for a lack of speed. "; add {sessile} to the appropriate monster adjective list of the current monster name; if the temporary speed is greater than 5: DM "Adjusting for high speed. "; add {lithe} to the appropriate monster adjective list of the current monster name; DM "No more adjustments." A monster has an adjective called the supplemental adjective. Understand the supplemental adjective property as describing a monster. A monster usually has supplemental adjective nondescript. The printed name of a monster is usually "[supplemental adjective] [core adjective] [monster name]". Chapter 4 - Templated Movement A monster has some text called the aware arrival text. The aware arrival text of a monster is usually "[A current monster] arrives, watching you intently.[line break]". A monster has some text called the unaware arrival text. The unaware arrival text of a monster is usually "[A current monster] wanders in.[line break]". A monster has some text called the unaware departure text. The unaware departure text of a monster is usually "[A current monster] wanders out.[line break]". A monster has some text called the fleeing departure text. The fleeing departure text of a monster is usually "[A current monster] turns tail and flees.[line break]". A monster has some text called the quick attack text. The quick attack text of a monster is usually "[A current monster] charges you! ". A monster has some text called the approach text. The approach text of a monster is usually "[A current monster] approaches, ready to attack![line break]". A monster has some text called the attack text. The attack text of a monster is usually "[A current monster] attacks![line break]". A monster has some text called the successful search text. The successful search text of a monster is usually "[A current monster] spots you![line break]". A monster has some text called the unsuccessful search text. The unsuccessful search text of a monster is usually "[A current monster] glances around, but doesn't spot you.[line break]". A monster has some text called the death text. The death text of a monster is usually "[A current monster] collapses dead onto the [random terrain in the location]. There is a peculiar shimmer, and then the [current monster]'s corpse vanishes." To describe monster movement: if the monster shape of the current monster is feline-shape: now the aware arrival text of the current monster is "[A current monster] slinks in, watching you intently.[line break]"; now the unaware arrival text of the current monster is "[A current monster] prowls in, glancing about on all sides.[line break]"; now the unaware departure text of the current monster is "[The current monster] prowls away.[line break]"; now the fleeing departure text of the current monster is "Hissing and spitting, the [current monster] turns tail and flees.[line break]"; now the quick attack text of the current monster is "Swift as a striking snake, the [current monster] lunges at you. "; now the approach text of the current monster is "[The current monster] crouches down, flicking the tip of its tail left and right as it watches you.[line break]"; now the attack text of the current monster is "[The current monster] leaps at you![line break]"; now the unsuccessful search text of the current monster is "[The current monster] halts, lifts its head, and sniffs the air warily."; if the monster shape of the current monster is ungulate-shape: now the aware arrival text of the current monster is "[A current monster] trots in, staring at you in a distinctly hostile fashion.[line break]"; now the unaware arrival text of the current monster is "[A current monster] prances in, glancing about on all sides.[line break]"; now the unaware departure text of the current monster is "[The current monster] prances away.[line break]"; now the fleeing departure text of the current monster is "Frightened, the [current monster] bounds away.[line break]"; now the quick attack text of the current monster is "The [current monster] tosses its head and then charges you. "; now the approach text of the current monster is "[The current monster] rolls an eye in your direction and then sidles toward you in an unfriendly fashion.[line break]"; now the attack text of the current monster is "[The current monster] rears up and lashes out with its [one of]forehooves[or]hind hooves[at random].[line break]"; now the unsuccessful search text of the current monster is "[The current monster] halts, pricks its ears, and snorts uncertainly."; if the monster shape of the current monster is winged-shape: now the aware arrival text of the current monster is "[A current monster] flaps into view overhead and circles above you.[line break]"; now the unaware arrival text of the current monster is "[A current monster] flaps into view overhead.[line break]"; now the unaware departure text of the current monster is "[The current monster] circles and then flies away.[line break]"; now the fleeing departure text of the current monster is "The [current monster] flaps rapidly for altitude and then flies away.[line break]"; now the quick attack text of the current monster is "The [current monster] swoops down on you. "; now the approach text of the current monster is "[The current monster] drops toward you, talons extended.[line break]"; now the attack text of the current monster is "Fluttering wildly, [the current monster] lashes out at you.[line break]"; now the unsuccessful search text of the current monster is "[The current monster] scans the terrain below as it circles overhead."; if the monster shape of the current monster is starfish-shape: now the aware arrival text of the current monster is "[A current monster] pulls itself laboriously over the [random terrain in the location].[line break]"; now the unaware arrival text of the current monster is "[A current monster] pulls itself laboriously over the [random terrain in the location].[line break]"; now the unaware departure text of the current monster is "[The current monster] wriggles slowly away.[line break]"; now the fleeing departure text of the current monster is "The [current monster] writhes in misery and wriggles away.[line break]"; now the quick attack text of the current monster is "Your sight wavers, and abruptly the [current monster] is right in front of you. "; now the approach text of the current monster is "[The current monster] gropes its way toward you.[line break]"; now the attack text of the current monster is "[The current monster] flails at you.[line break]"; now the unsuccessful search text of the current monster is "[The current monster] gropes its way across the [random terrain in the location]." Book 3 - Summoning Monsters The danger increment is a number that varies. The danger increment is 0. [Every time a shrine is reopened, the danger increment increments.] At the time when monsters are summoned: summon monsters. A monster can be newly materialized. A monster is usually not newly materialized. To summon monsters: now the current danger level is the number of activated Unperceived shrine rooms; repeat through the Table of Monster Templates: now the active entry is false; if (the danger level entry <= the current danger level): repeat with temporary statue running through Unperceived shrine statues: if the shrine deity of the temporary statue is the associated deity entry and the temporary statue is activated: now the active entry is true; DM "[Associated deity entry]/[danger level entry] is active."; repeat with temporary locale running through activated Unperceived shrine rooms: now the current deity is the shrine deity of a random shrine statue in temporary locale; initialize the current monster; now the current room is the room outside from the temporary locale; move the current monster to the current room; DM "(Summoning [the current monster] to [the current room] under the auspice of [current deity].)"; report monster materialization; repeat with temporary monster running through newly materialized monsters: now the temporary monster is not newly materialized. To initialize the current monster: now the current monster is a random monster in Z1; choose a random row from the Table of Monster Templates; while the active entry is false: choose a random row from the Table of Monster Templates; if the active entry is true: if a random chance of danger level entry in 10 succeeds: choose a random row from the Table of Monster Templates; let the temporary stat counter be the danger increment; DM "Danger increment of [danger increment]."; while the temporary stat counter > 0: let K be a random number between 1 and 2; if K is 1: now the physical attack entry is 1 + the physical attack entry; DM "Increasing physical attack due to the danger increment."; otherwise if K is 2: now the mental attack entry is 1 + the mental attack entry; DM "Increasing mental attack due to the danger increment."; now the temporary stat counter is the temporary stat counter - 1; now the associated deity of the current monster is the associated deity entry; now the rattack of the current monster is the physical attack entry; now the rmattack of the current monster is the mental attack entry; now the rhealth of the current monster is the hit point entry; now the chealth of the current monster is the hit point entry; now the rawareness of the current monster is the awareness entry; now the rstealth of the current monster is the stealth entry; now the rspeed of the current monster is the speed entry; now the monster shape of the current monster is the monster shape entry; now the monster name of the current monster is the monster name entry; now the core adjective of the current monster is the monster adjective entry; initialize the supplemental adjective list; sort the supplemental adjective list in random order; now the supplemental adjective of the current monster is entry 1 of the supplemental adjective list; describe monster movement; now the current monster is newly materialized; DM "Monster initialized: [associated deity of the current monster]/[danger level entry], a [printed name of the current monster]. Stats: PA [rattack of the current monster], MA [rmattack of the current monster], HP [chealth of the current monster], Awareness [rawareness of the current monster], Stealth [rstealth of the current monster], Speed [rspeed of the current monster]. ". The supplemental adjective list is a list of adjectives that varies. [I may want to add something more intense to the supplemental adjective list, but this will do for now...] To initialize the supplemental adjective list: now the supplemental adjective list is {deformed, twisted, gnarled, crazed, maddened, mutated, monstrous, hideous, ravening, freakish}; repeat with temporary locale running through Blight rooms: repeat with temporary monster running through monsters in the temporary locale: if the monster name of the current monster is the monster name of the temporary monster: if the core adjective of the current monster is the core adjective of the temporary monster: remove the supplemental adjective of the temporary monster from the supplemental adjective list. To report monster materialization: if a newly materialized monster is in the location: say "Reality twists, and [a list of newly materialized monsters in the location] appears before you."; otherwise: say "You feel an unpleasant sensation, as if the ground had dropped a few inches beneath your feet." Book 4 - Enhanced Monster Stats To calculate the current monster's enhanced stats: now the eattack of the current monster is the rattack of the current monster; now the emattack of the current monster is the rmattack of the current monster; now the espeed of the current monster is the rspeed of the current monster; now the edefense of the current monster is the rdefense of the current monster; now the eawareness of the current monster is the rawareness of the current monster; now the estealth of the current monster is the rstealth of the current monster. Book 5 - Gawking At Monsters Player delay is a number that varies. Player delay is 0. The delaying monster is a monster that varies. Instead of examining a monster (called the temporary monster): now the current monster is the temporary monster; calculate the current monster's enhanced stats; say "Looking at the [monster name]"; if the rmattack of the temporary monster is less than 2: say " produces an odd twinge somewhere in the back of your mind. "; otherwise if the rmattack of the temporary monster is 2: say " makes your eyes hurt. "; otherwise if the rmattack of the temporary monster is 3: say " makes your head ache and your senses swim. "; otherwise if the rmattack of the temporary monster is 4: say ", you feel distinctly nauseous as its edges blend in and out of the scenery. You hear voices whispering all around you, though you can make out nothing of what they say. "; otherwise if the rmattack of the temporary monster is 5: say " sends strange auras through your vision, and you hear discordant voices wailing all around you. The ground shakes slightly. "; otherwise: say ", you feel something twist out of kilter deep inside your mind. Your universe reels in nausated, dazed misery, and it is all you can do to recover without collapsing. "; now player delay is 1; now the delaying monster is the temporary monster; say " The [monster name] is a projection of [associated deity]'s power into the blighted world, and its very presence damages your reality"; say ".[paragraph break]The [monster name] seems to be "; if the chealth of the temporary monster >= the rhealth of the temporary monster: if the chealth of the temporary monster < 5: say "frail, but uninjured, "; otherwise if the chealth of the temporary monster > 9: say "robust and flourishing, "; otherwise: say "in good health, "; otherwise if (the chealth of the temporary monster * 2) >= the rhealth of the temporary monster: if the chealth of the temporary monster < 5: say "infirm, suffering both from a general weakness of constitution and from current injury, "; otherwise if the chealth of the temporary monster > 9: say "hale and strong despite current injury, "; otherwise: say "suffering somewhat from an injury, "; otherwise: if the chealth of the temporary monster < 5: say "sick and mortally wounded "; otherwise if the chealth of the temporary monster > 9: say "grievously wounded"; otherwise: say "seriously wounded"; say "though it's hard to be sure. It appears "; if the eattack of the temporary monster is less than 2: say "virtually incapable of harming you, "; otherwise if the eattack of the temporary monster is 2: say "physically manageable enough, "; otherwise if the eattack of the temporary monster is 3: say "threatening, "; otherwise if the eattack of the temporary monster is 4: say "very dangerous, "; otherwise if the eattack of the temporary monster is 5: say "downright deadly, "; otherwise: say "capable of incredible savagery, "; if the espeed of the temporary monster is less than 1: say "virtually incapable of movement,"; otherwise if the espeed of the temporary monster is 1: say "sluggish, "; otherwise if the espeed of the temporary monster is 2: say "a touch slow, "; otherwise if the espeed of the temporary monster is 3: say "nimble enough, "; otherwise if the espeed of the temporary monster is 4: say "lithe and agile, "; otherwise if the espeed of the temporary monster is 5: say "dizzyingly fast, "; otherwise: say "capable of lightning-fast motion, "; say "and "; if the eawareness of the temporary monster is less than 1: say "downright oblivious to its surroundings"; otherwise if the eawareness of the temporary monster is 1: say "rather inattentive to its surroundings"; otherwise if the eawareness of the temporary monster is 2: say "reasonably alert"; otherwise if the eawareness of the temporary monster is 3: say "fairly perceptive"; otherwise if the eawareness of the temporary monster is 4: say "watchful and wary"; otherwise if the eawareness of the temporary monster is 5: say "extraordinarily alert"; otherwise: say "dangerously observant"; now the current monster is the temporary monster; if the current monster is aware of the player: say ". You're pretty sure it is aware of your presence"; otherwise: say ". You don't think the [monster name] has noticed you yet"; say "." Before doing something when player delay is greater than 0: now player delay is player delay - 1; say "Your intention forms in your mind, but the world swims and you stagger.[paragraph break]The aftereffects of gazing at [the delaying monster] fade, and you start to feel normal again." Volume 13 - Shrines (Part 2) Book 1 - Describing Shrine Interiors Part 1 - Shrine Statues (Revisited) The monster-head list is a list of monster names that varies. The monster-head list is {}. The jewel-type list is a list of adjectives that varies. The jewel-type list is {amethyst, aquamarine, obsidian, ruby, garnet, emerald, sapphire, diamond, opal, topaz}. A hand is a kind of container. A hand is part of every shrine statue. Understand "marble" as a hand. Understand "man" as a hand when the item described is male. Understand "woman" as a hand when the item described is female. Understand "gem", "gems", "jewel", "jewels", "eye", and "eyes" as a hand when a shrine statue in the location encloses an orb. [For reasons I completely don't understand, I can't stick all this to the statue itself.] Before doing something when the noun is a hand: now the noun is a random shrine statue in the location; try the current action instead. Before doing something when the second noun is a hand: now the second noun is a random shrine statue in the location; try the current action instead. A shrine statue has an adjective called the statue adjective. Understand the statue adjective property as describing a shrine statue. A shrine statue has an adjective called the color. Understand the color property as describing a shrine statue. A shrine statue has an adjective called the jewel-type. Understand the jewel-type property as describing a shrine statue when the item described encloses an orb. A shrine statue has a monster name called the statue-head. Understand the statue-head property as describing a shrine statue. A shrine statue can be male or female. A shrine statue is usually male. Rule for printing the name of a shrine statue (called the target statue): if the target statue is known: say "statue of [shrine deity of the target statue]"; otherwise if the target statue is Perceived: say "[color of the target statue] marble statue"; otherwise: say "[statue-head]-headed statue". The Perceived adjective list is a list of adjectives that varies. The Perceived adjective list is {stately, graceful, lithe, colossal, huge, immense, exquisite, artistic}. The Unperceived adjective list is a list of adjectives that varies. The Unperceived adjective list is {crude, unsettling, sinister, unpleasant, baleful, disquieting, malevolent}. The statue color list is a list of adjectives that varies. The statue color list is {pure white, ivory, white, pink, grey, blue-grey, greyish white, yellowish, brownish, yellowish-white, green, blue, black, spotted, striated, striped}. Instead of examining a shrine statue: if the location is Perceived: say "This [statue adjective of the noun] [if the noun is male]man[otherwise]woman[end if] has been carved from [color of the noun] marble. "; otherwise: say "This [statue adjective of the noun] [statue-head of the noun]-headed [if the noun is male]man[otherwise]woman[end if] has been carved from [color of the noun] marble. "; if an orb is in the noun: say "The [statue-head of the noun]'s eyes are twin pieces of [jewel-type of the noun].[paragraph break]"; otherwise: say "The [if the noun is male]man[otherwise]woman[end if]'s eyes are closed.[paragraph break]"; if the noun contains an orb (called the target orb): say "In one hand, the statue holds [a target orb]."; otherwise: say "One of the statue's hands is outstretched and empty[first time][if the player has an orb]. The orb in your hand flashes faintly, drawing your attention[end if][only]."; To describe the shrine statue: [This doesn't actually get called until the monsters are over.] add the appropriate monster name list of the ungulate-shape to the monster-head list; add the appropriate monster name list of the feline-shape to the monster-head list; add the appropriate monster name list of the winged-shape to the monster-head list; sort the monster-head list in random order; now the statue-head of the current statue is entry 1 of the monster-head list; sort the jewel-type list in random order; now the jewel-type of the current statue is entry 1 of the jewel-type list; if a random chance of 1 in 2 succeeds: now the current statue is female; otherwise: now the current statue is male; if the current statue is Perceived: sort the Perceived adjective list in random order; now the statue adjective of the current statue is entry 1 of the Perceived adjective list; otherwise: sort the Unperceived adjective list in random order; now the statue adjective of the current statue is entry 1 of the Unperceived adjective list; sort the statue color list in random order; now the color of the current statue is entry 1 of the statue color list; DM "Now the statue of [shrine deity of the current statue] is a [statue adjective of the current statue] [statue-head of the current statue]-headed [if the current statue is male]man[otherwise]woman[end if] carved from [color of the current statue] marble." Rule for writing a paragraph about a shrine statue (called the target statue): say "At the center of the shrine, there stands a "; if the location is Perceived: if the target statue is known: say "[statue adjective of the target statue] statue of [shrine deity of the target statue]"; otherwise: say "[statue adjective of the target statue] [color of the target statue] marble statue"; otherwise: if the target statue is known: say "[statue adjective of the target statue] statue of [shrine deity of the target statue], represented in the form of a [statue-head of the target statue]-headed [if the target statue is male]man[otherwise]woman[end if]"; otherwise: say "[statue adjective of the target statue] [statue-head of the target statue]-headed statue"; if the target statue encloses an orb (called the target orb): say ".[paragraph break]The statue holds a shining [target orb] in one hand"; if the location encloses a lit candle set: say "."; otherwise: say ", but the orb's light isn't strong enough to illuminate the shrine's interior."; otherwise: say ".". Part 2 - Shrine Names To name shrine rooms: repeat with temporary shrine room running through shrine rooms: let the temporary exterior room be the room outside from the temporary shrine room; let the temporary shrine be a random shrine entrance in the temporary exterior room; now the display name of the temporary shrine room is "Inside the [temporary shrine]". Part 3 - Shrine Props Chapter 1 - Candles A candle set is a kind of thing. A candle set has an adjective called the color. Understand the color property as describing a candle set. A candle set has an adjective called the candle type. Understand the candle type property as describing a candle set. A candle set has a number called the candle number. The candle number of a candle set is usually 0. Understand "ring", "of", "candle", "candles", and "flame" as a candle set. A candle set is usually unlit. A candle set has an adjective called the flame type. Understand the flame type property as describing a candle set. Instead of examining a candle set (called the target candle): let the temporary shrine statue be a random shrine statue in the location; let the temporary exterior room be the room outside from the location; let the temporary shrine entrance be a random shrine entrance in the temporary exterior room; say "These [color of the target candle] candles are arranged in a rough ring around the interior of [the temporary shrine entrance]. "; if the target candle is lit: say "They burn with a [flame type of the target candle] light that "; if the statue is Perceived: say "illuminates the statue's face."; otherwise: say "casts strange shadows across the [color of the temporary shrine statue] marble of the statue."; otherwise: say "The candles are not burning." The printed name of a candle set is usually "ring of [candle type] candles". Instead of taking a candle set (called the target candle): say "You reach out and close your fingers about a candle, but in the moment when you try to pick it up, a severe cramp twists through the muscles of your hand[first time]. Shocked by the pain, you pull away[only]."; Instead of burning: say "You have no way to light [the noun]." Snuffing is an action applying to one thing. Understand "snuff [something]" and "extinguish [something]" and "put out [something]" as snuffing. Check snuffing: if the noun is not a candle set: say "[The noun] is not burning."; otherwise if the noun is not lit: say "[The noun] is not burning." Carry out snuffing: now the noun is unlit; now the current room is the location; describe the current shrine interior. Report snuffing: say "You go from candle to candle and pinch out the [flame type of the noun] flame, leaving the room dark." 10 candle sets are in Z1. Chapter 2 - Tapestries A tapestry is a kind of thing. A tapestry has an adjective called the tapestry adjective. Understand the tapestry adjective property as describing a tapestry. A tapestry has an adjective called the color. Understand the color property as describing a tapestry. A tapestry has a deity called the tapestry deity. 10 tapestries are in Z1. The printed name of a tapestry is usually "[tapestry adjective] tapestry". Instead of examining a tapestry (called the target tapestry): let the temporary candle be a random candle set in the location; if the temporary candle is unlit: say "It's too dark to make out the images in the tapestry."; otherwise: say "You examine [the target tapestry] at length." Chapter 3 - Terrain-Overflow A terrain-overflow is a kind of thing. A terrain-overflow has a terrain-type. Understand the terrain-type property as describing a terrain-overflow. A terrain-overflow has an adjective called the terrain adjective. Understand the terrain adjective property as describing a terrain-overflow. The indefinite article of a terrain-overflow is usually "some". The printed name of a terrain-overflow is usually "[terrain adjective] [terrain-type]". The description of a terrain-overflow is usually "Through the door of the shrine, you can see a landscape of [terrain adjective] [terrain-type]." 10 terrain-overflows are in Z1. Chapter 4 - Placing Shrine Props To place shrine props: repeat with temporary shrine room running through shrine rooms: now the current shrine statue is a random shrine statue in the temporary shrine room; now the current deity is the shrine deity of the current shrine statue; let the temporary exterior room be the room outside from the temporary shrine room; let the temporary terrain be a random terrain in the temporary exterior room; let the temporary overflow be a random terrain-overflow in Z1; now the temporary overflow is in the temporary shrine room; now the terrain-type of the temporary overflow is the terrain-type of the temporary terrain; now the terrain adjective of the temporary overflow is the terrain adjective of the temporary terrain; let the temporary candle set be a random candle set in Z1; sort the color list in random order; now the color of the temporary candle set is entry 1 of the color list; let the candle type possibilities list be a list of adjectives; now the candle type possibilities list is {tall, short, stout, narrow, dripping}; sort the candle type possibilities list in random order; now the candle type of the temporary candle set is entry 1 of the candle type possibilities list; let the flame type possibilities list be a list of adjectives; if the current shrine statue is Perceived: now the flame type possibilities list is {pure, golden, yellow, sharp, clear, strong}; otherwise: now the flame type possibilities list is {flickering, weak, uneven, uncertain, faltering, frail, shivering, writhing, trembling, wavering, shaky}; sort the flame type possibilities list in random order; now the flame type of the temporary candle set is entry 1 of the flame type possibilities list; now the temporary candle set is in the temporary shrine room; let the temporary tapestry be a random tapestry in Z1; now the temporary tapestry is in the temporary shrine room; now the tapestry deity of the temporary tapestry is the current deity; now the color of the temporary tapestry is the color of the tapestry deity of the temporary tapestry. Part 4 - Shrine Descriptions To describe shrine interiors: repeat with temporary shrine room running through shrine rooms: now the current room is the temporary shrine room; describe the current shrine interior. The candle sentence is some indexed text that varies. The tapestry sentence is some indexed text that varies. The shrine exterior sentence is some indexed text that varies. The current candle is a candle set that varies. The current tapestry is a tapestry that varies. The current shrine entrance is a shrine entrance that varies. The current terrain-overflow is a terrain-overflow that varies. To describe the current shrine interior: [ say "Describing the interior of [current room], which is a shrine room. ";] now the current candle is a random candle set in the current room; now the current shrine statue is a random shrine statue in the current room; now the current tapestry is a random tapestry in the current room; now the current terrain-overflow is a random terrain-overflow in the current room; let the temporary exterior room be the room outside from the current room; now the current shrine entrance is a random shrine entrance in the temporary exterior room; [ say "Current candle - [current candle]. Current shrine statue - [current shrine statue]. Current tapestry - [current tapestry]. Current terrain-overflow - [current terrain-overflow]. Current shrine entrance - [current shrine entrance].";] now the current candle is scenery; if the current candle is not lit: if the current temperature is cold: now the candle sentence is "[Candle type of the current candle] candles have been arranged around the [current shrine entrance]. They are unlit, providing neither light nor heat to warm the [current shrine entrance]."; otherwise: if the current weather is sunny: now the candle sentence is "[Candle type of the current candle] candles have been arranged around the [current shrine entrance]. The candles are unlit, and the sunlight outside does not penetrate the windowless room, leaving the shrine dark and gloomy."; otherwise: now the candle sentence is "[Candle type of the current candle] candles have been arranged around the [current shrine entrance]. They are unlit, leaving the shrine dark and gloomy."; otherwise: if the current weather is sunny: now the candle sentence is "[Candle type of the current candle] candles have been arranged around the [current shrine entrance]. They burn with a [flame type of the current candle] flame that does little to compete with the sharp sunlight marking the shrine's entrance."; otherwise if the current shrine statue is Perceived: if the current temperature is cold: now the candle sentence is "[Candle type of the current candle] candles have been arranged around the [current shrine entrance]. They burn with a [flame type of the current candle] flame that lends a little warmth to combat the chill from outside."; otherwise: now the candle sentence is "[Candle type of the current candle] candles have been arranged around the [current shrine entrance]. They burn with a [flame type of the current candle] flame that illuminates the face of a [current shrine statue] standing here."; otherwise: now the candle sentence is "[Candle type of the current candle] candles have been arranged around the [current shrine entrance]. They burn with a [flame type of the current candle] flame that only makes the shrine's shadows seem deeper."; now the current tapestry is scenery; if the current candle is not lit: now the tapestry sentence is "Almost invisible in shadow, [a current tapestry] hangs on the back wall."; otherwise: now the tapestry sentence is "Illuminated by candlelight, [a current tapestry] hangs on the back wall."; now the current terrain-overflow is scenery; if the current weather is sunny: if the current temperature is cold: now the shrine exterior sentence is "Outside, the piercing winter sunlight displays a landscape of [current terrain-overflow]."; otherwise if the current temperature is hot: now the shrine exterior sentence is "Outside, the hot sun blazes over a landscape of [current terrain-overflow]."; otherwise: now the shrine exterior sentence is "Outside, the sharp sunlight paints a landscape of [current terrain-overflow]."; otherwise if the current weather is raining: now the shrine exterior sentence is "Rain beats down on the [current shrine entrance]'s roof in a steady, monotonous rhythm. Looking out, you can see sheets of rain obscuring the [current terrain-overflow] beyond."; otherwise if the current weather is snowing: if the terrain-type of the current terrain-overflow is snow: now the shrine exterior sentence is "Outside, the snow falls silently and ceaselessly."; otherwise: now the shrine exterior sentence is "Outside, the snow falls silently and ceaselessly, obscuring the [current terrain-overflow] beneath its feathery weight."; otherwise if the current weather is misty: now the shrine exterior sentence is "Looking out, you see a hazy landscape of [current terrain-overflow] before everything vanishes in curtains of obscuring mist."; otherwise: now the shrine exterior sentence is "Looking out, you see an unpromising landscape of [current terrain-overflow] beneath a low sky filled with heavy clouds."; now the desc of the current room is "[candle sentence] [tapestry sentence] [shrine exterior sentence]" in sentence case. Book 2 - Player Memory About Shrines First shrine glance is a truth state that varies. First shrine glance is true. Rule for writing a paragraph about a shrine entrance (called the target entrance): if the target entrance is unattempted: if no shrine entrance is attempted: say "The entrance to the [target entrance] catches your attention"; if first shrine glance is true: say ". There's something very important about shrines - you must... something. But you can't be sure what it is. The only thing you're sure of, in the "; if the rationale of the player is personal desire: say "hungry "; otherwise if the rationale of the player is intelligence: say "smoking "; otherwise if the rationale of the player is dexterity: say "unraveling "; otherwise if the rationale of the player is endurance: say "stubborn "; otherwise if the rationale of the player is scientific skill: say "crippled "; otherwise if the rationale of the player is blessing of the gods: say "luminous "; otherwise if the rationale of the player is conviction of ideals: say "lonely "; otherwise: say "bewildered "; if the motivation of the player is familial love: say "embers "; otherwise if the motivation of the player is romantic love: say "ashes "; otherwise if the motivation of the player is duty: say "rhythms "; otherwise if the motivation of the player is idealism: say "patterns "; otherwise if the motivation of the player is revenge: say "shards "; otherwise if the motivation of the player is fear: say "ruins "; otherwise if the motivation of the player is ambition: say "fluttering "; otherwise if the motivation of the player is curiosity: say "labyrinth "; otherwise: say "web "; say "of your remaining consciousness, that it is important."; now first shrine glance is false; otherwise: say "."; otherwise: say "You haven't entered the [target entrance] here."; otherwise: if the target entrance admits to a room (called the temporary room): if the temporary room is not visited: say "You attempted to visit this [target entrance] earlier, but a strange force from the orb you were carrying drove you back."; otherwise: let the temporary statue be a random shrine statue in the temporary room; if the temporary statue is known: say "You remember that the [target entrance] is a shrine to [shrine deity of the temporary statue]. The statue"; otherwise: say "You remember that there is [a temporary statue] in the [target entrance]. The statue"; if the temporary statue is activated: say " contained an orb "; otherwise: say "[apostrophe]s hand was empty "; say "when you left"; if the temporary statue is previously invoked: if the shrine deity of the temporary statue is the health restorer: say ". This shrine has the power to rejuvenate and heal."; otherwise if the shrine deity of the temporary statue is the attunement restorer: say ". This shrine has the power to cleanse your mind."; otherwise if the shrine deity of the temporary statue is the debuff remover: say ". This shrine has the power to remove foul influences."; otherwise if the shrine deity of the temporary statue is the IDer: say ". This shrine has the power to perceive your strengths and weaknesses."; otherwise if the shrine deity of the temporary statue is the monster locator: say ". This shrine has the power to locate intrusions of the exiled world upon the blighted world."; otherwise: say ". The deity of this shrine was exiled, and invoking the shrine's power will transport you into the exiled world."; otherwise: say "." Book 3 - Orb Manipulation Messaging After inserting an orb (called the target orb) into a shrine statue (called the target statue): if the location is Perceived: say "The statue's hand closes gently about the [target orb]."; otherwise: say "The statue's hand closes about the [target orb], and the statue opens its eyes. Its eyes are [one of]scintillating[or]glittering[or]blazing[or]brilliant[or]bright[or]sparkling[at random] pieces of [jewel-type of the target statue][first time]. A peculiar hush settles in your mind, accompanied by a strong sense of expectation[only]."; Instead of taking an orb (called the target orb): if the target orb is inside a shrine statue (called the target statue): if the location is Perceived: say "You grasp [the noun]. For a moment, it seems that the [color of the target statue] marble fingers will not relax their grip, but then the [target statue] releases the orb into your possession"; otherwise: say "You grasp [the noun]. For a moment, it seems that the [color of the target statue] marble fingers will not relax their grip, but then the [statue-head of the target statue]-headed statue releases the orb into your possession.[paragraph break]The [statue-head of the target statue]-headed statue closes its eyes[first time], and your sense of expectation fades[only]"; now the player has the noun; if a candle set (called the target candle) is in the location: if the target candle is lit: if the location is Perceived: say ".[paragraph break]The candle flames dim slowly and then go out"; otherwise: say ".[paragraph break]The candle flames gutter wildly and then go out"; now the target candle is unlit; now the current room is the location; describe the current shrine interior; say "."; otherwise: continue the action. Volume 13 - Book of the Shadow Your shadow self is a person. Understand "my" as your shadow self. Your shadow self is in Z5. Part 1- Appearance of the Shadow To prepare the shadow self: if the player is male: now the shadow self is male; otherwise: now the shadow self is female. Understand "man" as the shadow self when the shadow self is male. Understand "woman" as the shadow self when the shadow self is female. Instead of examining the shadow self: now the current person is the player; say "You gaze at the [zhoman] for a long moment, taking in [zher] [build of the current person] frame, [zher] [skin tone of the current person] skin, [zher] [eye color of the current person] eyes, and [zher] [hair reference]. [Zhe] is "; if the age of the player < 20: say "teenage ([age of the player in words]? "; otherwise if the age of the player >= 20 and the age of the player < 24: say "young (in [zher] early twenties? "; otherwise if the age of the player >= 24 and the age of the player < 26: say "young (in [zher] mid-twenties? "; otherwise if the age of the player >= 26 and the age of the player < 30: say "young (in [zher] late twenties? "; otherwise if the age of the player >= 30 and the age of the player < 34: say "young (in [zher] early thirties? "; otherwise if the age of the player >= 34 and the age of the player < 36: say "young (in [zher] mid-thirties? "; otherwise if the age of the player >= 36 and the age of the player < 40: say "young (in [zher] late thirties? "; otherwise if the age of the player >= 40 and the age of the player < 44: say "middle-aged (in [zher] early forties? "; otherwise if the age of the player >= 44 and the age of the player < 46: say "middle-aged (in [zher] mid-forties? "; otherwise if the age of the player >= 46 and the age of the player < 50: say "middle-aged (in [zher] late forties? "; otherwise if the age of the player >= 50 and the age of the player < 54: say "middle-aged (in [zher] early fifties? "; otherwise if the age of the player >= 54 and the age of the player < 56: say "middle-aged (in [zher] mid-fifties? "; otherwise if the age of the player >= 56 and the age of the player < 60: say "middle-aged (in [zher] late fifties? "; otherwise if the age of the player >= 60: say "an older [zhoman] (over sixty, at least? "; if the will of the player > 8: say "You're almost positive) "; otherwise if the will of the player > 5: say "You're pretty sure) "; otherwise if the will of the player > 3: say "You think so) "; otherwise: say "You're not really sure at all, though [zher] age is yours) "; say "but there is still a peculiar agelessness to [zhim]"; say ".[paragraph break][first time]This person does not belong here - there's a distinct wrongness that accompanies [zher] presence. But at the same time, there's a great relief to seeing [zhim], because [zhe] is you. The way [zhe] holds [zher] body, the way [zhe] meets your eyes as you look at [zhim], the shape of [zher] mouth in silence - it's all as familiar as a mirror.[paragraph break][only]This [zhoman] is a projection of your exiled self upon the blighted world, familiar and comforting only because [zhe] is part of you.[paragraph break][Zhe] "; if (rhealth of the player - chealth of the player) is 0: say "gazes calmly back at you"; otherwise if chealth of the player is 1: say "trembles uncontrollably, and [zher] form flickers as if [zhe] were not entirely here. [Zher] eyes dart madly about, but rest on nothing"; otherwise: say "seems to be in pain - [zhe] breathes shallowly through [zher] mouth as [zhe] scans the horizon with [zher] gaze"; if the shadow self is carrying a memento: now all mementos carried by the shadow self are marked for listing; say ".[paragraph break]Your shadow is"; if the shadow self is wearing a memento: say " wearing [a list of mementos worn by the shadow self]"; now all mementos worn by the shadow self are unmarked for listing; if the shadow self is carrying a memento that is marked for listing: say " and"; if the shadow self is carrying a memento that is marked for listing: say " carrying [a list of mementos carried by the shadow self]"; say "."; otherwise: say "." Part 2 - Ordering the Shadow Chapter 1 - Persuading Persuasion rule for asking the shadow self to try doing something: now the current person is the shadow self; persuasion succeeds. Chapter 2 - Moving Alone After the shadow self going a direction (called thataway): say "Your shadow self heads [thataway]"; if the current weather is raining: say " through the rain"; otherwise if the current weather is snowing: say " through the snow"; otherwise if the current weather is misty: say " through the drifting mist"; say "." Unsuccessful attempt by the shadow self going a direction (called thataway): if thataway is up: say "Your shadow self glances briefly "; if the current weather is sunny: say "up at the sunny sky. "; otherwise if the current weather is cloudy: say "up at the cloudy sky. "; otherwise if the current weather is misty: say "into the fog-filled sky. "; otherwise if the current weather is raining: say "up at the falling rain. "; otherwise if the current weather is snowing: say "up at the falling snow. "; otherwise if thataway is down: say "Your shadow self glances briefly down at the [random terrain in the location]. "; otherwise: repeat with temporary barrier running through barriers in the location: if the temporary barrier prevents thataway: now the second noun is the temporary barrier; say "Your shadow self looks at [the second noun] to the [thataway]. "; say "Then, [zhe] looks back at you without moving." Chapter 3 - Contact Avoidance Touching something is physical contact. Kissing something is physical contact. Taking something is physical contact. Persuasion rule for asking the shadow to try physical contact: now the current person is the shadow self; if the noun is the player: say "Your shadow self meets your gaze with [zhis]. Reality wavers dizzyingly around [zhim], and you break eye contact. When you look back, [zhe] is no longer looking at you."; otherwise: say "Your shadow self lifts a hand. Reality wavers dizzyingly around [zher] hand as [zhe] looks from [zher] hand to the [noun]. Then, [zhe] lowers [zher] hand again without attempting contact."; persuasion fails. Chapter 4 - Examining Persuasion rule for asking the shadow to try examining: if the noun is the player: say "Your shadow self meets your gaze with [zhis]. Reality wavers dizzyingly around [zhim], and you break eye contact. When you look back, [zhe] is no longer looking at you."; otherwise: say "Your shadow self silently inspects the [noun]."; persuasion fails. Chapter 5 - Handling Mementos Section 1 - Enhancive Mementos Understand "wield [something]", "grip [something]", and "ready [something]" as wearing. The location-occupied list is a list of things that varies. Persuasion rule for asking the shadow self to try wearing: persuasion succeeds. Check the shadow self wearing something: now the current person is the shadow self; if the noun is not wearable: say "Your shadow inspects [the noun] for a moment, but makes no attempt to wear it." instead; otherwise if the noun is worn by the shadow self: say "Your shadow is already wearing [the noun]." instead; let L be 0; let M be 0; now the location-occupied list is {}; if the wear_at of the noun is 1: [weapons] let M be 2; [2 weapons max] otherwise if the wear_at of the noun is 2: [shields] let M be 1; [1 shield max] otherwise if the wear_at of the noun is 3: [glove] let M be 2; [2 gloves max] otherwise if the wear_at of the noun is 4: [cloak] let M be 1; otherwise if the wear_at of the noun is 5: [boots] let M be 1; otherwise if the wear_at of the noun is 6: [spectacles] let M be 1; otherwise if the wear_at of the noun is 7: [necklace] let M be 5; [5 necklaces max] otherwise if the wear_at of the noun is 8: [bracelet] let M be 6; [6 bracelets max] otherwise if the wear_at of the noun is 9: [ring] let M be 10; [10 rings max] otherwise if the wear_at of the noun is 10: [earring] let M be 4; [4 earrings max] repeat with target memento running through mementos enclosed by the shadow self: if (the shadow self is wearing the target memento) and (the wear_at of the target memento is the wear_at of the noun) and (the target memento is not the noun): now L is L + 1; if L >= M: try the shadow self taking off the target memento; if the shadow self is wearing the target memento: add the target memento to the location-occupied list; otherwise: now L is L - 1; if (the shadow self is wearing the target memento) and (the wear_at of the target memento is 1) and (the wear_at of the noun is 2) and (the target memento is not the noun): [Checking weapons against shields] now L is L + 1; if L >= M: try the shadow self taking off the target memento; if the shadow self is wearing the target memento: add the target memento to the location-occupied list; otherwise: now L is L - 1; if (the shadow self is wearing the target memento) and (the wear_at of the target memento is 2) and (the wear_at of the noun is 1) and (the target memento is not the noun): [Checking shields against weapons] now L is L + 1; if L >= M: try the shadow self taking off the target memento; if the shadow self is wearing the target memento: add the target memento to the location-occupied list; otherwise: now L is L - 1; if L >= M: if the wear_at of the noun is 1: say "Your shadow's hands are too full with [the location-occupied list] to wield [the noun]." instead; otherwise if the wear_at of the noun is 2: say "Your shadow's hands are too full with [the location-occupied list] to protect [zhim]self with [the noun]." instead; otherwise: say "Your shadow inspects [the noun] and makes an abortive movement as if to put it on before halting. As [zhe] is already wearing [the location-occupied list], [zher] reluctance is not unreasonable." instead. Report the shadow self wearing something: if the wear_at of the noun is 1: say "Your shadow self grips [the noun] aggressively. "; otherwise if the wear_at of the noun is 2: say "Your shadow self raises [the noun] defensively. "; otherwise if the wear_at of the noun is 3: say "Your shadow self pulls on [the noun][if the location-occupied list is not {}]. It makes an odd fashion statement beside [the location-occupied list][end if]. "; otherwise if the wear_at of the noun is 4: say "Your shadow self swirls [the noun] about [zher] shoulders and clasps it in place. "; otherwise if the wear_at of the noun is 5: say "Your shadow self pulls on [the noun]. "; otherwise if the wear_at of the noun is 6: say "Your shadow self perches [the noun] on [zher] nose. "; otherwise if the wear_at of the noun is 7: say "Your shadow self puts on [the noun]. "; otherwise if the wear_at of the noun is 8: say "Your shadow self clasps [the noun] about [zher] wrist. "; otherwise if the wear_at of the noun is 9: say "Your shadow self slides [the noun] onto one of [zher] fingers. "; otherwise if the wear_at of the noun is 10: say "Your shadow self attaches [the noun] to one of [zher] earlobes. "; say "You feel a peculiar shiver, and you know that something about you has changed, but you're not quite sure what." instead. Persuasion rule for asking the shadow self to try taking off: persuasion succeeds. Report the shadow self taking off something: if the wear_at of the noun is 1: say "Your shadow self is no longer wielding [zher] [noun]." instead; otherwise if the wear_at of the noun is 2: say "Your shadow self lowers [zher] [noun]." instead; otherwise if the wear_at of the noun is 3: say "Your shadow self pulls off [zher] [noun]." instead; otherwise if the wear_at of the noun is 4: say "Your shadow self unclasps [zher] [noun] and drapes it over one arm." instead; otherwise if the wear_at of the noun is 5: say "Your shadow self pulls off [zher] [noun]." instead; otherwise if the wear_at of the noun is 6: say "Your shadow self removes [zher] [noun] and folds them carefully." instead; otherwise if the wear_at of the noun is 7: say "Your shadow self removes [a noun] from about [zher] throat." instead; otherwise if the wear_at of the noun is 8: say "Your shadow self removes [a noun] from about [zher] wrist." instead; otherwise if the wear_at of the noun is 9: say "Your shadow self slides [a noun] off one of [zher] fingers." instead; otherwise if the wear_at of the noun is 10: say "Your shadow self removes [a noun] from one of [zher] earlobes." instead. Section 2 - Intrinsic Mementos Persuasion rule for asking the shadow self to try drinking: persuasion succeeds. Check the shadow self drinking something: if the noun is a drink-based intrinsic memento (called the target imemento): now the current imemento is the target imemento; otherwise: say "Your shadow inspects [the noun] for a moment, but makes no attempt to drink it." instead. Carry out the shadow self drinking something: consume the current imemento. Persuasion rule for asking the shadow self to try eating: persuasion succeeds. Check the shadow self eating something: if the noun is a food-based intrinsic memento (called the target imemento): now the current imemento is the target imemento; otherwise: say "Your shadow inspects [the noun] for a moment, but makes no attempt to eat it." instead. Carry out the shadow self drinking something: consume the current imemento. Persuasion rule for asking the shadow self to try examining an intrinsic memento (called the target imemento): persuasion succeeds. Carry out the shadow self examining a scroll-based intrinsic memento (called the target imemento): now the current imemento is the target imemento; consume the current imemento. Volume 14 - Combat Book 1 - Monster Movement and Engagement A monster has a number called the timestamp. The timestamp of a monster is usually 0. A monster has a number called the presence count. The presence count of a monster is usually 0. Definition: A monster (called the considered monster) is active rather than inactive if the timestamp of the considered monster >= the espeed of the player. Part 1 - Overview Every turn when (the player is in a Blight room or the player is in a shrine room) and (a monster is in a Blight room): repeat with temporary monster running through monsters in the Blight: now the current monster is the temporary monster; calculate the current monster's enhanced stats; now the timestamp of the current monster is (the timestamp of the current monster + the espeed of the current monster); DM "(Speed of [a current monster] is [espeed of the current monster]; speed of the player is [espeed of the player]; timestamp on [the current monster] is now [timestamp of the current monster]. "; if the current monster is active: DM "The [current monster] is active this turn.)[line break]"; otherwise: DM "The [current monster] is inactive this turn.)[line break]"; check monster engagement; carry out monster attacks; carry out monster engagement; carry out monster movement; repeat with temporary monster running through monsters in the Blight: let K be the number of moves from the location of the temporary monster to the location of the player; if the eawareness of the temporary monster is greater than K: now the presence count of the temporary monster is the presence count of the current monster + 1; otherwise: now the presence count of the temporary monster is 0; repeat with temporary monster running through active monsters: now the timestamp of the temporary monster is 0. Part 2 - Monster Attacks A monster can be engaged or unengaged. A monster is usually unengaged. To check monster engagement: repeat with temporary monster running through active engaged monsters: if the location of the temporary monster is not the location of the player: now the temporary monster is unengaged; say "([The temporary monster] is no longer engaged with the player.)"; repeat with temporary monster running through monsters in the location: now the current monster is the temporary monster; if the espeed of the temporary monster is greater than the espeed of the player: if the current monster is aware of the player: say the quick attack text of the temporary monster; now the temporary monster is engaged. To carry out monster attacks: repeat with temporary monster running through active engaged monsters: now the current monster is the temporary monster; [ say "([The temporary monster] is engaged and present in the room.)";] say the attack text of the temporary monster; if the shadow self is in the location: let K be 1; while ((K * (eattack of the temporary monster - edefense of the player)) < chealth of the player) and ((K * (eattack of the player - edefense of the temporary monster)) < chealth of the temporary monster): now K is (K + 1); [ say "The multiplication K here is [K].";] say "Your shadow steps forward to intervene. Assessing the situation, you perceive that"; if (eattack of the temporary monster - edefense of the player) * K >= chealth of the player: say " your shadow will be destroyed"; otherwise if (eattack of the temporary monster - edefense of the player) * K >= (chealth of the player) / 2: say " your shadow will be gravely injured"; otherwise if (eattack of the temporary monster - edefense of the player) * K is 1: say " your shadow will be slightly injured"; otherwise if (eattack of the temporary monster - edefense of the player) * K > 0: say " your shadow will be injured"; otherwise if (eattack of the temporary monster - edefense of the player) * K <= 0: say " there is no risk to your shadow"; say " in fighting the monster, and "; if (eattack of the player - edefense of the temporary monster) * K >= chealth of the temporary monster: say " the monster will be killed"; otherwise if (eattack of the player - edefense of the temporary monster) * K > (chealth of the temporary monster) / 2: say " the monster will be gravely injured"; otherwise if (eattack of the player - edefense of the temporary monster) * K is 1: say " the monster will be slightly injured"; otherwise if (eattack of the player - edefense of the temporary monster) * K > 0: say " the monster will be injured"; otherwise if (eattack of the player - edefense of the temporary monster) * K <= 0: say " there is no risk to the monster"; say " if you permit the shadow to defend you. Allowing the monster to reach you is "; if emattack of the temporary monster >= cattunement of the player: say "a prospect terrifying enough to shake your sanity. "; otherwise if emattack of the temporary monster >= (cattunement of the player) / 2: say "an extremely frightening prospect. "; otherwise if emattack of the temporary monster > 0: say "a scary but survivable prospect. "; otherwise if emattack of the temporary monster <= 0: say "actually a prospect that doesn't bother you all that much. "; say "[paragraph break]Allow the shadow to defend you? (y/n)> "; if player consents: say "[line break]Your shadow steps in to protect you. [The temporary monster] attacks. Your eyes tear and your stomach twists as you try to watch, and you can't properly follow what happens next....[paragraph break]"; [ say "(Monster attack [eattack of the temporary monster] - player defense [edefense of the player] results in [eattack of the temporary monster - edefense of the player] damage to health. Repeating [K] times.)";] if eattack of the temporary monster > edefense of the player: now the chealth of the player is the chealth of the player - ((eattack of the temporary monster - edefense of the player) * K); [ say "Player now at [chealth of the player] health out of a maximum of [rhealth of the player].";] now the chealth of the temporary monster is the chealth of the temporary monster - ((eattack of the player - edefense of the temporary monster) * K); [ say "[Temporary monster] now at [chealth of the temporary monster] health out of a maximum of [rhealth of the temporary monster].";] otherwise: say "[line break]Your shadow stands back at your wish. [The temporary monster] surges into you, and its unavoidable wrongness batters at the walls of your consciousness."; [ say "(Monster attack [emattack of the temporary monster] results in [emattack of the temporary monster] damage to attunement. ";] now the cattunement of the player is the cattunement of the player - (eattack of the temporary monster - edefense of the player); [ say "Player now at [cattunement of the player] attunement out of a maximum of [rattunement of the player]. ";] now the chealth of the temporary monster is the chealth of the temporary monster - (eattack of the player - edefense of the temporary monster); [ say "[Temporary monster] now at [chealth of the temporary monster] health out of a maximum of [rhealth of the temporary monster].)";] otherwise: say "Without your shadow self, you have no protection as [the temporary monster] attacks. The [temporary monster] surges into you, and its unavoidable wrongness batters at the walls of your consciousness. Your mind blots out what happens next...."; now the cattunement of the player is the cattunement of the player - (eattack of the temporary monster - edefense of the player); [ say "Player now at [cattunement of the player] attunement out of a maximum of [rattunement of the player]. ";] now the chealth of the temporary monster is the chealth of the temporary monster - (eattack of the player - edefense of the temporary monster); [ say "[Temporary monster] now at [chealth of the temporary monster] health out of a maximum of [rhealth of the temporary monster].)";] if the chealth of the temporary monster is the rhealth of the temporary monster: say "[The temporary monster] withdraws, completely uninjured so far as you can tell."; otherwise if the chealth of the temporary monster > 0: say "[The temporary monster] withdraws, hurt but alive."; repeat with temporary monster running through monsters in the Blight: now the current monster is the temporary monster; if the chealth of the current monster <= 0: if the current monster is in the location: say "[the death text of the current monster][line break]"; move the temporary monster to Z1. [ if the cattunement of the player <= 0: say "You have lost your attunement to the blighted world. The universe flickers wildly around you - one moment the Exile, the next moment the Blight, back and forth until the two combine. Your mind rings with the triumphant fury of the gods. You twist in on yourself, trying to protect against madness, but there is no escape...."; end the story saying "Everything is lost."; repeat with temporary monster running through monsters in the Blight: now the current monster is the temporary monster; if the chealth of the current monster <= 0: if the current monster is in the location: say "[the death text of the current monster][line break]"; move the temporary monster to Z1; if the chealth of the player <= 0 and the shadow self is in the location: now the current person is the shadow self; say "Fatally wounded, your shadow self crumples to the ground. Waves of stomach-twisting light course over [zher] form, forcing you to look away. When you master yourself and look back, [zhe] is gone."; move the shadow self to Z1.] An every turn rule (this is the survival verification rule): if the cattunement of the player <= 0: say "You have lost your attunement to the blighted world. The universe flickers wildly around you - one moment the Exile, the next moment the Blight, back and forth until the two combine. Your mind rings with the triumphant fury of the gods. You twist in on yourself, trying to protect against madness, but there is no escape...."; end the story saying "Everything is lost."; if the chealth of the player <= 0 and the shadow self is in the location: now the current person is the shadow self; say "Fatally wounded, your shadow self crumples to the ground. Waves of stomach-twisting light course over [zher] form, forcing you to look away. When you master yourself and look back, [zhe] is gone."; move the shadow self to Z1. Part 3 - Monster Engagement To carry out monster engagement: repeat with temporary monster running through active monsters in the location: now the current monster is the temporary monster; if the current monster is not engaged: if the current monster is aware of the player: say the approach text of the current monster; now the current monster is engaged; otherwise: DM "([The current monster] can't attack because it hasn't noticed the player yet.)" Part 4 - Monster Movement Definition: a direction (called thataway) is monster-viable if the room thataway from the location of the current monster is a room. To carry out monster movement: repeat with temporary monster running through active monsters in Blight rooms: now the current monster is the temporary monster; if the temporary monster is not in the location: if a carving (called the temporary carving) is in the location of the current monster: DM "(Updating [a temporary carving] to represent [the current monster].)"; now the carving-shape of the temporary carving is the monster name of the current monster; if the current monster is aware of the player: let the right direction be the best route from the location of the current monster to the location of the player; if the right direction is a compass direction: [ say "[The current monster] is going to move [right direction] (moving towards the player).";] try the current monster going the right direction; otherwise: let the right direction be a random monster-viable compass direction; [ say "[The current monster] is going to move [right direction] (moving randomly).";] try the current monster going the right direction. To decide whether the current monster is aware of the player: let K be the number of moves from the location of the current monster to the location of the player; DM "(Checking awareness of [a current monster]. Comparing monster awareness of [eawareness of the current monster] to player stealth of [estealth of the player] with [K] moves between them and a presence count of [presence count of the current monster]. "; if the eawareness of the current monster is greater than K: if (the eawareness of the current monster - the estealth of the player + presence count of the current monster) is greater than K: DM "[The current monster] is aware of the player.)"; decide yes; otherwise: DM "[The current monster] is unaware of the player.)"; decide no; otherwise: now the presence count of the current monster is 0; DM "[The current monster] is unaware of the player.)"; decide no. To decide whether the player is aware of the current monster: if (the location of the current monster is the location of the player) or (the location of the current monster is adjacent to the location of the player): let K be the number of moves from the location of the current monster to the location of the player; if the estealth of the current monster - (the eawareness of the player + presence count of the current monster) > K: decide no; otherwise: decide yes. Report a monster (called the temporary monster) going a direction (called thataway): now the current monster is the temporary monster; if the player is aware of the current monster: if the location of the temporary monster is the location of the player: if the current monster is aware of the player: say the aware arrival text of the current monster instead; otherwise: say the unaware arrival text of the current monster instead; otherwise: if the current monster is aware of the player: say the fleeing departure text of the current monster instead; otherwise: say the unaware departure text of the current monster instead; otherwise: DM "([The current monster] just moved [thataway], but the player is unaware.)" Volume 15 - Endgame Part 1 - Between Worlds Between Worlds is a room. Outside from Between Worlds is R1. Inside from R1 is nowhere. Part 2 - The Portal A portal is a fixed in place thing. A portal is in Between Worlds. Before entering the portal: try going inside instead. Before going inside from R1 when the portal is in R1: say "Blah blah blah teleport to Between Worlds."; move the player to Between Worlds instead. Part 3 - The Talisman A talisman is a thing. A talisman is in Between Worlds. After taking the talisman: say "The talisman is part of you now." Before dropping the talisman: say "You can't. The talisman is part of you now." Part 4 - The Instructor-Ghost The instructor-ghost is a person in Between Worlds. Part 5 - Triggering the Portal To trigger the portal: move the portal to R1; change the inside exit of R1 to Between Worlds. Part 6 - Endgame Before going outside from R1 when the player has the talisman: say "Blah blah blah you can never return here and now you are slowly leaking sanity."; remove the portal from play; move the player to R1 instead. Every turn when the player has the talisman and the player is not in Between Worlds: if the player is in the Blight or the player is in a shrine room: now the cattunement of the player is the cattunement of the player - 1; DM "Current attunement: [cattunement of the player] out of [rattunement of the player]."; otherwise if the player is in the Exile: now the chealth of the player is the chealth of the player - 1; DM "Current health: [chealth of the player] out of [rhealth of the player]."