Chapter - Plaza
Section - Moving
Table of Cardinal Directions
dir | street | fullstreet | flag |
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
dir | depth | room |
a direction | a number | an 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.