Invisible Parties — 8 of 31

Sam Kabo Ashwell

Release 3

Book - Plot Mechanics

Puzzlecount is a number that varies. Puzzlecount is 0.

A room has a number called threshold. The threshold of a room is usually 0.

A party is a kind of room.

A party has some text called rivcostume.

a party has some text called rivweapon.

A room can be destroyed or undestroyed. A room is usually undestroyed.

An exit obviousness rule for a room (called place):

if place is destroyed, rule fails.

Definition: a room (called foo) is available if the threshold of foo <= puzzlecount.

A room can be doomed or safe. A room is usually safe.

Definition: a room is suitable if it is undestroyed and it is available and it is safe.

Definition: a room is escapable if there is a safe available party adjacent to it.

Definition: a room is playerless if it is not the location of the player.

[Jave will only go to rooms presently accessible, undestroyed and not about to be, where the player isn't.

If possible, she will avoid rooms which are about to become dead-ends - unless they are the only rooms available. This makes it considerably less likely - though certainly not impossible - that she will end up on the wrong side of a bisected map.]

Definition: a room (called foo) is desirable:

if it is suitable begin;

if it is escapable begin;

if it is playerless, yes;

no;

otherwise;

if there is an escapable suitable party adjacent to the location of Jave begin;

[say "[foo] is inescapable, and there are better options. NO.";

say "([a random escapable suitable party adjacent to the location of Jave] is escapable.)";]

no;

otherwise; [say "[foo] is inescapable, but there are no good options. YES.";]

yes;

end if;

end if;

otherwise; [say "[foo] is unsuitable. NO.";]

no;

end if;

Check going to a party (called foo):

if the threshold of foo > puzzlecount begin;

say "[one of]You're unable to pass. But this is a completely different feeling to reaching the [i]edge[/i] of a space. The tangle extends further in that direction, and its makers certainly traversed here[or]Even though this clearly leads to other parts of the tangle, you can't make it through. Yet[stopping].";

stop the action;

end if;

Instead of going nowhere:

say "The sharp, scraping-bone feel of an edge sends crawly feelings up your spine[one of]. Ugh, tangles are horrible things. Though you can see how you might feel differently if you could make them yourself[or]. There's no way through there[stopping]."

Going northeast is diagonalism. Going northwest is diagonalism. Going southeast is diagonalism. Going southwest is diagonalism.

Instead of diagonalism in a party: say "Traversing along two axes at once is a reasonable approach in the true ways, but within the artificial structure of a tangle it's near-impossible."

Instead of exiting: try going outside.

movecount is a number that varies. movecount is 3.

To make the lady run:

if puzzlecount < 4 begin;

let N be the location;

repeat with F running through clues begin;

remove F from play;

end repeat;

let Q be 0;

let Z be a random number from 1 to movecount;

while Q < Z begin;

now Q is Q + 1;

if Jave is in a party (called the current space) and there is a desirable party which is adjacent to the current space begin;

let next space be a random desirable party which is adjacent to the current space;

if the player is in current space, move shadow Jave to current space;

move Jave to next space;

let X be the javeclue of next space;

move X to next space;

end if;

end while;

let NPQ be the location of Jave;

now the initial appearance of Jave is the javeinit of NPQ;

if there is a clue (called foo) in NPQ begin;

remove foo from play;

end if;

if NPQ is meadhall begin;

now Orvar is in meadhall;

otherwise;

remove Orvar from play;

end if;

end if;

shadow Jave is a woman. shadow Jave is scenery. The printed name of shadow Jave is "Jave".

Instead of doing something to shadow Jave: say "She's gone."

Before doing something when shadow Jave is the second noun and the current action is not asking:

say "She's gone.";

stop the action.

[In the first release, Jave always moved two rooms. Given that all directions are cardinal, this meant that she could never be in half the rooms on the map, so a great deal of work went unseen. This is the sort of utter design failure one makes when crunching.]

When play begins:

now Jave is in startroom;

make the lady run.

Second-destruction is a truth-state that varies. Second-destruction is false.

To ruin everything:

now puzzlecount is puzzlecount + 1;

if puzzlecount is 2, now movecount is 4;

if puzzlecount is 3, now movecount is 5;

wait for any key;

bring down doom;

now second-destruction is true;

if there is a promissory gift begin;

gift-expansion happens in four turns from now;

end if;

[We want there to be an indication that Jave's gifts have been revealed, but not to get it all tangled up with the apocalypse text. I'm also keeping it out of situations where Jave is, to cut down on the noise.]

At the time when gift-expansion happens:

if Jave is not in the location and the location is not doomed and doublespeak is false begin;

let N be a random promissory gift;

now Jave carries N;

now N is not promissory;

say "[the introduction of N][br]";

otherwise;

gift-expansion happens in two turns from now;

end if;

murdercount is a number that varies. murdercount is 0.

dressfix is a number that varies. dressfix is 0.

To bring down doom:

now murdercount is 0;

say "[if second-destruction is false][br][end if][the desolation of the location][br]"; [Oh, I7 line breaks, so fickle.]

now the location is doomed;

if there is an suitable room adjacent to the location begin;

if Jave is in the location begin;

if puzzlecount is 4 begin;

say "[br][one of]You're aware of Jave at your elbow. A hand brushes lightly up your forearm, and it takes you a minute to recognise your old signal: [i]this is your bailiwick, take lead.[/i] Not strictly part of the code, but implicit: [i]I trust you[/i][or]Jave has made it through after you[or]Jave's still with you[stopping].";

repeat with F running through clues begin;

remove F from play;

end repeat;

if dressfix is 0, now the description of Jave is the substituted form of "[javecostume of the location]";

now dressfix is 1;

otherwise;

make the lady run;

if Jave is in the location of the player begin;

[A special case: the player may be able to herd Jave out of the tangle in only three attempts. I thought about making this a different ending, but decided that enough was enough.]

try silently Jave going outside;

if Jave is in an egress begin;

now puzzlecount is 4;

now the initial appearance of Jave is the substituted form of "[javeapp of the location].";

end if;

end if;

end if;

end if;

otherwise;

if Jave is in the location begin;

wait for any key;

say "[br]The dread and panic, oddly, go away entirely when you confirm the unsettling hunch: there is no way out of here any more.[p]Jave takes your hand. 'Shit.'[p]'Yeah. It'd be one thing if there was [i]time[/i]...'[p]'Yeah. Look, I love you.'[p]'I -'[p]";

otherwise;

wait for any key;

say "[br]The dread and panic, oddly, go away entirely when you confirm the unsettling hunch: there is no way out of here any more.[p]You don't age in normal ways, but you're not immortal. Like most wayfarers, you'd made your peace with the likelihood that, when the time came, it'd be a lonely death. It's unusual, among the clades, for a lost friend's fate to be confirmed; when they recovered Hoff-Owen's bones, it was such an unusual event that you had to make it all up as you went along. Fine. That's the walk. You make your peace.[p]But this, this is bullshit. Utter fucking bullshit.";

end if;

end the story;

end if;

[For some in explicable reason, this prints an extra line break, when the first destruction does not do so. I have been unable to diagnose this.]

Every turn:

if second-destruction is true and the player is not in a doomed room and player is not in an egress begin;

bring down doom;

if puzzlecount < 4 and player is not in an egress, now second-destruction is false;

end if;

Before going from a doomed party:

if the room gone to is a party, move Rivka to the room gone to;

continue the action;

Carry out going from a doomed party:

now the room gone from is destroyed;

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

After going:

try looking; [After would normally prevent this; 'continue the action' would get it, but would put the following message *before* looking, which we don't want.]

if the room gone from is destroyed and second-destruction is false begin;

say "[one of]Your waysense is still lurching around, making you a little nauseous. The tangle's temporary structure isn't robust enough to cope with this - it was probably designed to fail, like luring someone inside a condemned building and encouraging them to lean against a joist. Your very passage may be disrupting it.[p]There might be an up side, though. When the walls are coming down, it's hard to keep doors locked[or]Your guts do some zero-gravity acrobatics. A lot worse this time. A tangle's a big lie, a trompe l'oeil, a cloth woven from borrowed threads. Usually they're static dioramas, set-dressing, sometimes a den made for a single occupant. Using one for this is... excessive[or]The nausea has been at a low background level for a while; you expected it to come back, but this is like being in a car-crash. Holding up fine one moment, then [i]snap[/i], knocked reeling. You're throwing up before you realise it's coming, almost breathe it in, undergo some truly revolting coughing and spluttering for a few moments. By the time you've spat out the last of it, though, the adrenalin has kicked in and you feel vastly better. Bile mouth, watering eyes, still kind of dizzy, but solid and alive[or]The gut plunge doesn't come. This makes you a lot more nervous, somehow, though you're all out of theories why[stopping].";

now doublespeak is true;

end if;

if the puzzlecount is 4 and Jave is in the room gone from begin;

move Jave to the location;

if the location is an egress begin;

now the initial appearance of Jave is the substituted form of "[javeapp of the location].";

say "[the initial appearance of Jave][br]";

end if;

end if;

remove shadow Jave from play.

[This prevents this message from doubling up with memories of Jave's gifts, if e.g. the player didn't flee immediately.]

Before reading a command:

if doublespeak is true, now doublespeak is false;

Instead of going:

if the room gone to is a destroyed party begin;

if Jave is not in the location and the best route from the location of Jave to the location of the player through undestroyed rooms is nothing begin;

say "[one of]It dawns on you: she's not here. You've cut her off. She's on the other side[or]Somehow you've torn the tangle right across, with you in one half and Jave in the other. You've failed[or]Nothing remains but to get the hell out of here[stopping].";

otherwise;

say "[one of]You flinch away, a plummeting sensation in your gut. You can feel how the substance of the tangle is torn there: if you pushed harder at it, you'd shred yourself to pieces[or]Seriously, you'd be obliterated if you tried to go through there[or]The nasty thought surfaces that perhaps the Three have somehow gotten hold of some therapist's notes from a decade or so back, are trying to tempt you with a simple, mess-free way out.[p]If so, they got the notes from one of the [i]stupid[/i] therapists. Not that way, not ever[or]No. So very no[stopping].";

end if;

otherwise;

continue the action;

end if;

Instead of going when the puzzlecount is 0:

if the room gone to is an egress begin;

say "You try and walk outwards, and - oh, [i]unpleasant[/i]. There's a way out there, no question, the ways are the loom-strings that hold the weave in place - but the whole thing's wound so tightly that they're constricted[one of].[p]A really strong wayfarer, on a familiar way, might be able to squeeze out. But the Rebeccas, for all their other gifts, are in your estimation rather unexceptional walkers. So, there needs to be a trick to loosing them, or another exit[or][stopping].";

otherwise;

continue the action;

end if;

Instead of doing something other than going or exiting when the location is a doomed party:

now murdercount is murdercount + 1;

if murdercount > 2 begin;

say the demise of the location;

end the story;

otherwise if the current action is looking;

say "[one of]No time for sightseeing. [or][stopping]You confine your attention to avenues of escape: [list of exit-listable directions].";

otherwise;

say "No time. You should really be getting the hell out of here.";

end if;

Last after printing the name of a direction (called way) when the location is a doomed party (this is the doomed exit rule):

let place be the room way from the location;

if place is visited and room memory is true, say " to [the place]".

chequerhint is a number that varies. chequerhint is 0.

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

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

To say weavewin:

now weave1 is true;

if weave2 is true, explain the chequerboard;

To say weaveloss:

now weave2 is true;

if weave1 is true, explain the chequerboard;

To explain the chequerboard:

if chequerhint is 0 begin;

say "[br]So why [if the location is challenging]did[otherwise]didn't[end if] that work, when before... okay, right. The tangle is strong in some places, fragile in others. It's strongest at the anchor-points, the exits and entrances, where the ways feed into it. In between, the weave is looser, more negotiable. Still too strong to tear through alone, perhaps, but with two...";

now chequerhint is 1;

end if;