Blue Lacuna — 276 of 467

Aaron A. Reed

Release 4

Section - Describing Progue's Movement

[ Sightlines depend less on map connections than on geography, which is invisible to the parser. We decide by hand whether the player can see Progue from any given location. ]

To decide whether (area - a room) is Proguevisible:

if Progue is being debugged, say "// Progue: decide whether [area] is Proguevisible.";

if location is Among the Boulders, decide no; [ no good sightlines from here ]

if location is in Tiderooms and ( area is in Beachfront or area is Lower Beach or area is in Tiderooms or area is Rise or area is Tidepools ) , decide yes;

if location is in Beachfront and ( area is in Tiderooms or area is Lower Beach or area is in Beachfront or area is Rise or area is Tidepools ) , decide yes;

if location is Ocean Waters and ( area is in Tiderooms or area is Lower Beach or area is in Beachfront or area is Rise or area is Tidepools ) , decide yes;

if location is in Beachfront and current episode is Word Day, decide yes;

if location is Tidepools and ( area is in Tiderooms or area is in Beachfront or area is Lower Beach or area is Rise ) , decide yes;

if location is Rise and ( area is in Tiderooms or area is Lower Beach or area is in Beachfront or area is in Marshlands or area is Stumps ) , decide yes;

if location is Stumps and ( area is Rise or area is Chairlift Base or area is West-Marsh ) , decide yes;

if location is in Marshlands and area is in Marshlands, decide yes;

if location is Chairlift Base and area is Stumps or area is West-Marsh or area is Rise, decide yes;

if location is Ledge and ( area is in Marshlands or area is Stumps or area is Rise ) , decide yes;

decide no.

[ Descriptions of Progue moving can vary based on the kind of terrain he is moving through, whether the origin, destination or both are visible to the player, whether one of those rooms is the one the player currently occupies or Progue's initial or final destination, and other factors. In addition, we might have set the dont_describe_Progue variable to true if we've already mentioned him moving and want to override the automatic mechanism, perhaps for a dramatic entrance or exit.]

dont_describe_Progue is a truth state that varies. dont_describe_Progue is false.

The last every turn rule (this is the clean up Progue's business rule): now dont_describe_Progue is false; if Progue is being debugged, say "//Progue: clean up: Progue is now in [location of Progue] and [psyche of Progue] and [Progue-animus] and [if Progue is attentive]attentive[otherwise]idle[end if] and [if Progue is wishing]wishing[otherwise]fulfilling[end if]; activity counter is [activity counter of Progue].".

To describe Progue moving from (origin - a room) to (destination - a room):

if Progue is being debugged, say "// Progue: describe Progue moving from [origin] to [destination][if dont_describe_Progue is true] (skipping since dont_describe_Progue is true)[end if].";

note position of Progue;

if dont_describe_Progue is false and the player is awake:

if origin is location:

move distant-Progue to location;

say "[The Progue]";

if destination is Ocean Waters:

say " wades into the surf, dives lithely into a rolling wave, and surfaces beyond it, kicking out into the ocean";

else if location is Ocean Waters:

say " swims off towards [the prose version of destination]";

else if destination is Ledge:

say " climbs up the cliff face at an astounding speed";

else if destination is North Marsh and location is Ledge:

say " kneels on the edge of the ledge and flips himself off it, spinning around in midair to grab the crack and start shimmying down it";

else:

if the animus of Progue is fishing:

say " [one of]grasps the fishing pole loosely slung over his shoulder[or]bounces his fishing pole cheerfully against his shoulder[in random order]";

else if the animus of Progue is swimming:

say " [one of]strips out of his threadbare rags unselfconsciously[or]stretches one arm then the other[at random]";

else if the animus of Progue is mending:

say " [one of]rubs his threadbare clothes absently[or]glances down at his threadbare clothes and mutters disapprovingly to himself[or]rummages through his pockets for something[in random order]";

else if the animus of Progue is hand-standing:

say " [one of]rolls up his sleeves[or]half-dances as he hops lightly from foot to foot[or]holds out his hands and twirls his fingers in excitement[in random order]";

else if the animus of Progue is cleaning:

say " clutches a handful of dirty rags";

else if the animus of Progue is paint-making:

say " balances a jumble of baskets, pots, and crude implements";

else if the animus of Progue is frog-catching:

say " [one of]has a wistful, eager look in his eyes[or]mutters something about 'little ones'[or]whistles quietly to himself[in random order]";

else if the animus of Progue is player-seeking:

say " waves a hand in your direction";

else if the animus of Progue is ruminating or the animus of Progue is scrapbooking:

say " [one of]has a pensive expression[or]thoughtfully plucks one ear[in random order]";

else if the animus of Progue is resting:

say " [one of]stifles a yawn[or]looks exhausted[or]stretches his arms[in random order],";

else if the animus of Progue is beach-combing and ( location is Rise or location is regionally in Beachfront or location is Tidepools or location is Lower Beach ) :

say " [one of]studies the beach intently[or]eyes the tideline critically[or]keeps his eyes on something terribly important just in front of his feet[in random order],";

else:

say " [one of]scratches his nose[or]clears his throat with vigor[or]coughs once[or]itches his arm[or]glances up at the sky[or]tugs on his beard[in random order]";

if the psyche of Progue is not denial and the psyche of Progue is not fear:

if romance of Progue > 2 and a random chance of 2 in 3 succeeds:

say " and [one of]winks slyly at you[or]tickles you in the ribs[or]grins at you with one raised eyebrow[in random order]";

else if paternalism of Progue > 2 and a random chance of 1 in 2 succeeds:

say " and [one of]regards you fondly[or]claps a hand to your shoulder[or]nods approvingly[in random order]";

else if the affinity of Progue < 0:

if submission of Progue > 0, say " and [one of]gives you a wide berth[or]fails to meet your eye[or]hurries past you nervously[in random order]";

else say " and [one of]quickly brushes past you[or]strides by, ignoring you[or]marches past without even glancing at you[in random order]";

else: [ affinity >= 0]

if submission of Progue > 0, say " and [one of]smiles and nods deferentially[or]slips by with a smile and a wave, not getting in your way[in random order]";

otherwise say " and [one of]strides by with a smile and a wave[or]jovially punches you in the arm[or]claps you strongly on the shoulder[in random order]";

say " as he heads towards [the prose version of destination], [one of]leaving the vicinity[or]soon passing out of earshot[or]leaving the area[in random order]";

say ".";

else if destination is location:

move distant-Progue to location;

say "[The Progue] ";

if location is Ocean Waters:

say "swims up to your vicinity from the shore";

else if location is Ledge:

say "suddenly pops into view, pulling himself up onto the ledge from the crack, fingers and hands flexing like two lithe spiders as he stands to his feet";

else if location is North Marsh and origin is Ledge:

say "shimmies lithely down the crack, using hands and feet more to deflect his course than anything else, and finally jumps onto the springy marsh nearby with a satisfied grunt";

else:

say "[one of]arrives in the vicinity[or]approaches[or]comes within speaking distance[or]walks by[in random order] from [the prose version of origin]";

if the psyche of Progue is fear:

say ". He catches sight of you and freezes, then dodges back out of sight";

now Progue is fulfilling;

Progue starts hiding;

if location is Ledge, move Progue to Tidepools;

otherwise move Progue to Ledge;

say ".";

if location of Progue is location and the animus of Progue is player-seeking, follow the Progue's motivation rule; [ So he starts talking immediately.]

else if origin is Proguevisible and destination is Proguevisible:

move distant-Progue to location;

say "[inthedistance], you [glimpse] [the Progue] ";

if destination is Ocean Waters:

say "dive into the water and swim ";

else:

if the psyche of Progue is fear, say "fleeing ";

else say "[one of]moving[or]heading[or]ambling[or]walking[or]making his way[in random order] ";

if the prose name of origin is the prose name of destination, say "[one of]along[or]across[or]through[in random order] [the prose version of origin].";

else say "from [the prose version of origin] to [the prose version of destination].";

else if origin is Proguevisible:

move distant-Progue to location;

say "[inthedistance] [one of]near[or]by[at random] [the prose version of origin], you [glimpse] [the Progue] [if destination is Hut]step into the cabin[else if destination is Studio]step into the studio[else]moving out of sight[end if].";

now distant-Progue is out-of-sight;

else if destination is Proguevisible:

move distant-Progue to location;

say "[inthedistance], you [glimpse] [the Progue] [if origin is Studio]step out from the studio[else if origin is Hut]step out from the cabin[else]move into sight near [the prose version of origin][end if]";

if the psyche of Progue is fear:

say ". He catches sight of you and freezes, then dodges back out of sight";

now Progue is fulfilling;

Progue starts hiding;

if location is Ledge, move Progue to Tidepools;

otherwise move Progue to Ledge;

say ".".

To say inthedistance: say "[one of]In the distance[or]Some distance away[in random order]". To say glimpse: say "[one of]see[or]spot[or]notice[or]glimpse[in random order]".

To say the prose version of (place - a room): if the prose name of place is "NULL", say "[printed name of place]"; otherwise say "[prose name of place]".

[ Normally, Progue is only described at a distance when he's in motion. If the player arrives in Progue's territory after being away, we break this rule to describe where Progue is and what he's doing, since this would be a highly noticeable part of the scenery.]

To decide whether arriving at a new vantage point:

if location is Rise, decide yes;

if location is Center Beach and former location is Hut, decide yes;

if location is South Beach and ( former location is Fork or former location is Among the Boulders ) , decide yes;

decide no.

Every turn when ( we are going or we are landmark-going ) and arriving at a new vantage point and Progue is not enclosed by the location and Progue is on-stage and nothing dramatic is up and dont_describe_Progue is false and Progue is fulfilling (this is the noticing what Progue is doing rule):

if Progue is being debugged, say "// Progue: noticing what Progue is doing rule (because we are going and arriving at a new vantage point).";

if the location of Progue is Proguevisible, say "[inthedistance], [if location of Progue is Ocean Waters]in[otherwise]by[end if] [the prose version of location of Progue], you [if current episode is not Word Day and spotted-Progue is false]see a [o]figure[x] dressed in rags. He appears to be[otherwise][glimpse] [the Progue],[end if] [Progue-animus].";[aardist]

now spotted-Progue is true;

move distant-Progue to location;

note position of Progue.

The noticing what Progue is doing rule is listed after the check episodes rule in the every turn rules. [ Since the start of an episode might drastically change what Progue is up to, we don't want to describe him doing anything until we're sure that's what he's actually doing.]

To note position of Progue: [ This is the interface with Remembering.]

if there is a character of Progue in Table of Remembered NPC Locations:

choose row with a character of Progue in Table of Remembered NPC Locations;

change area entry to location of Progue;

otherwise:

if the number of blank rows in Table of Remembered NPC Locations is at least 1:

choose a blank row in Table of Remembered NPC Locations;

change character entry to Progue;

change area entry to location of Progue.