Blue Lacuna — 453 of 475

Aaron A. Reed

Release 4

Chapter - Plaza

Section - Moving

Table of Cardinal Directions

dirstreetfullstreetflag
a direction
north"Planter""Planter Avenue"0
south"Teacher""Teacher Avenue"0
east"Builder""Builder Avenue"0
west"Mother""Mother Avenue"0

Table of Rebworld Map

dirdepthroom
a directiona numberan objects
with six blank rows.

The list of rebstreet rooms is a list of objects that varies. The list of rebstreet rooms is {Room1, Room2, Room3, Room4, Room5}.

The rebstreet depth is a number that varies. The rebstreet cardinality is a direction that varies. The rebstreet cardinality is down.

Before going a direction (called way) when location is Plaza or location is a rebelcity-room or location is Room6 (this is the going on rebel streets rule):

if way is northeast or way is northwest or way is southeast or way is southwest or way is inside or way is up or way is down, continue the action; [ only dealing with cardinals here. ]

if the drama manager is being debugged:

repeat through Table of Rebworld Map:

say "dir: [dir entry]; depth: [depth entry]; room: [room entry][line break]";

[going back to plaza]

if rebstreet depth is 1 and way is the opposite of rebstreet cardinality:

now rebstreet cardinality is down;

now rebstreet depth is 0;

rebmove player to Plaza;

stop the action;

[If the direction we're trying to move is at angles to the street we're on, prevent.]

if location is a rebelcity-room and moving at angles:

say "The path that direction is blocked by buildings." instead;

[If we've already assigned this room, move there.]

repeat through Table of Rebworld Map:

if ( rebstreet cardinality is dir entry or location is not a rebelcity-room ) and dir entry is way and depth entry is ( rebstreet depth + 1 ) :

now rebstreet cardinality is way;

increase rebstreet depth by 1;

rebmove player to room entry;

stop the action;

if ( rebstreet cardinality is the opposite of way or location is not a rebelcity-room ) and dir entry is the opposite of way and depth entry is ( rebstreet depth - 1 ) :

now rebstreet cardinality is the opposite of way;

decrease rebstreet depth by 1;

rebmove player to room entry;

stop the action;

[otherwise, assign.]

if the number of entries in the list of rebstreet rooms is 0: [bombing]

if Islander Bombing is happening:[aar]

if location is crime scene, say "The smoking crater completely blocks further progress down the avenue." instead;

else say "Heavy barricades block access to that avenue." instead;

else:

say "ERROR: no more rooms to assign." instead;

choose a blank row in Table of Rebworld Map;

change dir entry to way;

change depth entry to rebstreet depth + 1;

change room entry to entry 1 of list of rebstreet rooms;

remove entry 1 from list of rebstreet rooms;

let newroom be room entry;

choose row with a dir of way in Table of Cardinal Directions;

now the printed name of newroom is fullstreet entry;

now rebstreet cardinality is way;

now rebstreet depth is rebstreet depth + 1;

rebmove player to newroom;

stop the action.

To decide whether moving at angles:

if the drama manager is being debugged, say "**rc: [rebstreet cardinality]; n: [noun]**";

if ( rebstreet cardinality is north or rebstreet cardinality is south ) and ( noun is east or noun is west ) , decide yes;

if ( rebstreet cardinality is east or rebstreet cardinality is west ) and ( noun is north or noun is south ) , decide yes;

decide no.

To rebmove player to (loc - a room):

if loc is Plaza begin;

say "You return to the [if Islander Bombing is happening]plaza, now eerily deserted, distant wailing sirens echoing around the urban canyon[otherwise]noise and bustle of the City Plaza[end if].";

otherwise if location is Plaza and Islander Bombing is not happening;

say "[if Islander Bombing has happened]Walking quickly across the mostly deserted streets[otherwise]Carefully crossing a busy street with a cluster of other pedestrians[end if], you leave the plaza behind and head down the broad avenue.";

otherwise;

say "[one of]You continue down the avenue[or]You keep walking along the broad avenue[or]You walk another block down the avenue[or]You keep moving down the street[or]You pass by a dense cluster of squat brown buildings into another block of the avenue[in random order]";

if a random chance of 2 in 3 succeeds begin;

if Islander Bombing is happening, say "[one of], the streets empty save for a few figures running into houses and pulling doors tight behind them[or], footsteps strangely loud in the sudden silence[or], passing a smoking piece of concrete incongruously in the middle of the street[in random order]";

otherwise say "[one of], trailing a clump of shoppers with heavy brown bags[or] under the shadowless light of the overcast sky[or], crossing a small side street after carefully checking for vehicles[or], stepping carefully around a cluster of children playing some complicated game on the sidewalk[or], dodging a stinking pile of garbage overflowing from a wire-mesh cage[or], eyes wide open[or] slowly, stuck behind two men pushing a huge metal box on a tiny wheeled cart[or], after narrowly avoiding one of the boxy cars making a sharp turn into a tiny side street[or], passing a half-block of cobblestone sidewalk that abruptly returns to grey-smeared cement[or], moving faster than the boxy cars on the road which seem to be backed up before some indefinable accident[in random order]";

end if;

say ".";

end if;

move player to loc.

After printing the name of a rebelcity-room, say "[if Room1], At the Oratorium[otherwise if Room2], At the Library[otherwise if Room3], At the Market[otherwise if Room4], Near the Street Art[otherwise if Room5], Residential District[end if]". After printing the name of Room6, say ", Warehouse District".

The pseudo-plaza is a backdrop. It is in Room1, Room2, Room3, Room4, Room5, Room6, and Room7. Understand "plaza" as the pseudo-plaza. Instead of examining or entering the pseudo-plaza: try going the opposite of rebstreet cardinality.