Blue Lacuna — 271 of 467

Aaron A. Reed

Release 4

Part - Progue's Behavior

Chapter - Movement & Occupations

Section - Progue's Motivation Rule

[ When Progue is fulfilling (i.e. doing something), we don't have much to do; he just keeps doing it until his activity counter runs over. When he's wishing, we follow the Progue's motivation rule, which deals with choosing a new activity, determining where it should be done, moving Progue there, beginning the new activity, and describing any part of this process that should happen to be visible to the player. ]

Every turn when Progue is wishing and Progue is idle and the player is regionally in Lacuna and Progue is on-stage and the psyche of Progue is not fugue and the psyche of Progue is not resolved (this is the trigger Progue's motivation rule):

if Progue is being debugged, say "// Progue: trigger Progue's motivation rule (because Progue is wishing and Progue is idle and etc.).";

follow the Progue's motivation rule.

This is the Progue's motivation rule:

if Progue is being debugged, say "// Progue: motivation rule (animus: [Progue-animus]).";

if animus of Progue is player-seeking, now progue-venue is location of player;

if progue-venue is UnRoom begin; [ we need to pick a place to go ]

now progue-venue is location;

let counter be 0;

while progue-venue is location and counter < 5 begin;

select a progue-venue for Progue;

increase counter by 1;

end while;

if Progue is being debugged begin;

if counter >= 5, say "// Progue: trying to pick a fresh progue-venue but keep selecting present location ([location of Progue]); giving up.";

otherwise say "// Progue: picked a fresh progue-venue for Progue ([progue-venue]).";

end if;

end if;

if progue-venue is not the location of Progue begin; [ we've been assigned a place to go but we aren't there ]

if progue-venue is Lower Beach and tidein, now progue-venue is North Beach;

if progue-venue is off limits to Progue begin;

do nothing; [ stays put]

otherwise if exploring Progue's turf;

let aim be the Lacuna route from the location of Progue to progue-venue;

if aim is not a direction begin;

if Progue is being debugged, say "// Progue ERROR: [aim] is not a direction. ";

do nothing instead;

end if;

if the room aim from the location of Progue is not a room begin;

if Progue is being debugged, say "// Progue ERROR: the room [aim] from the location of Progue ([location of Progue]) is not a room.";

do nothing instead;

end if;

if the room aim from the location of Progue is off limits to Progue begin;

if Progue is being debugged, say "// Progue (in [location of Progue]) hesitates instead of going [aim] to reach destination [progue-venue].";

do nothing instead;

end if;

if Progue is being debugged, say "// Progue (in [location of Progue]) tries going [aim] to reach destination [progue-venue].";

let frmrl be location of Progue;

move Progue to the room aim from frmrl;

describe Progue moving from frmrl to the location of Progue;

if distant-Progue is in location of Progue, remove distant-Progue from play; [ so if Progue arrives somewhere, we get rid of the far off version of him. ]

otherwise; [ not nearby ]

if Progue is being debugged, say "// Progue (in [location of Progue]) teleports to [progue-venue] (because not exploring Progue's turf).";

move Progue to progue-venue;

end if;

otherwise; [ we've arrived and are ready to go. ]

if Progue is being debugged, say "// Progue: arrived at progue-venue ([progue-venue]); setting to fulfilling.";

now Progue is fulfilling;

if the animus of Progue is ruminating begin;

if Progue is enclosed by location and dont_describe_progue is false, say "[The Progue] sits on [Progue's perch], puts his chin in his hands, and stares into the distance moodily.";

now Progue's animus table is Table of Progue Ruminating;

otherwise if the animus of Progue is scrapbooking;

if Progue is enclosed by location and dont_describe_progue is false, say "Progue sits down and begins rummaging through his strange assembly of possessions in a listless, sad manner.";

now Progue's animus table is Table of Progue Scrapbooking;

otherwise if the animus of Progue is resting;

if Progue is enclosed by location and dont_describe_progue is false, say "[The Progue] [if psyche of Progue is emotional]drifts off into an uneasy, labored sleep[otherwise]falls lightly to the ground, curls up, and shuts his eyes tightly[end if].";

now Progue's animus table is Table of Progue Sleeping;

now the animus of Progue is resting;

otherwise if the animus of Progue is fishing;

if Progue is enclosed by location and dont_describe_progue is false, say "[The Progue] wades into the surf, fiddles for a few moments with his fishing pole, then casts it into the water.";

now Progue's animus table is Table of Progue Fishing;

otherwise if the animus of Progue is mending;

if Progue is enclosed by location and dont_describe_progue is false, say "[The Progue] perches on [Progue's perch], pulls out a bone needle and a bundle of brown fibers, and begins mending his patchy pants.";

now Progue's animus table is Table of Progue Mending;

otherwise if the animus of Progue is hand-standing;

if Progue is enclosed by location and dont_describe_progue is false, say "[The Progue] flexes his hands, then dives forward onto the [surface-material] and ends up standing on them, tanned feet flailing in midair.";

now Progue's animus table is Table of Progue Hand-Standing;

otherwise if the animus of Progue is paint-making;

if Progue is enclosed by location and dont_describe_progue is false, say "Progue takes the basket out, grabs some implements, a few pots filled with various other materials, and begins to mix.";

now Progue's animus table is Table of Progue Paint-Making;

otherwise if the animus of Progue is cleaning;

if Progue is enclosed by location and dont_describe_progue is false, say "Progue studies the mess on the workbench sadly, then rolls up his sleeves and gets to work cleaning it off.";

mark workbench cleaned;

now Progue's animus table is Table of Progue Cleaning;

otherwise if the animus of Progue is frog-catching;

if Progue is enclosed by location and dont_describe_progue is false, say "[The Progue] crouches on his knees in the muck and begins slowly waddling around, peering in clumps of grass, under rocks, and letting a quiet, low whistle out from between his teeth.";

now Progue's animus table is Table of Progue Frog-Catching;

otherwise if the animus of Progue is conch-blowing;

if Progue is enclosed by location and dont_describe_progue is false, say "Progue spies something on the ground and bends down. He digs a little in the sand and pulls up an enormous conch shell. Grinning, he cleans the wet sand from it and admires it.";

now Progue's animus table is Table of Progue Conch-Blowing;

otherwise if the animus of Progue is hiding;

now Progue's animus table is Table of Progue Hiding;

otherwise if the animus of Progue is swimming;

if Progue is enclosed by location and dont_describe_progue is false, say "[The Progue] swims up to within a few swells of you, then kicks back and floats on the surface of the water, hands folded behind his head.";

now Progue's animus table is Table of Progue Swimming;

otherwise if the animus of Progue is beach-combing;

if Progue is enclosed by location and dont_describe_progue is false, say "[The Progue] begins gathering up pieces of seaweed, shells, and other debris, cupping them in his hands.";

now Progue's animus table is Table of Progue Beach-Combing;

otherwise if the animus of Progue is hottubbing;

if Progue is enclosed by location and dont_describe_progue is false, say "[The Progue] [one of]cannonballs into the water with a little whoop[or]dives lithely into the center of the pool[in random order], before surfacing and swimming to a good sitting spot near one side to relax.";

now Progue's animus table is Table of Progue Hottubbing;

otherwise if the animus of Progue is convalescing;

if Progue is enclosed by location and dont_describe_progue is false, say "Progue stirs, then coughs suddenly and opens his eyes. Blinking at you blearily, he sits up and rests against the wall of the cabin weakly.";

now Progue's animus table is Table of Progue Convalescing;

otherwise;

if Progue is being debugged and Progue is enclosed by location, say "// Progue: begins [the animus of Progue] (for which there is no initial msg or animus table).";

now Progue's animus table is Table of Progue Default;

end if;

end if.