Update to start to generalize the maps

This commit is contained in:
William Moore 2022-09-20 04:31:45 -05:00
parent 4fecfb794c
commit c26240e90c
5 changed files with 601 additions and 89 deletions

1
.gitignore vendored
View File

@ -11,4 +11,5 @@ Index/
*.blurb
*.iFiction
*.log
*.glksave
gametext.txt

View File

@ -12,11 +12,12 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. ]
"Buttered Toast: Final Battle" by "Masterful Interactions".
The story description is "Who will win in the epic battle: Good Person or Bad Person? Choose one and determine the fates.".
The story headline is "An interactive fiction determining the fates of at least two individuals".
"Buttered Toast: Beside the Old Oak Tree" by "Masterful Interactions".
The story description is "".
The story headline is "An interactive fiction officially sponsored by Pepso".
Release along with cover art, an interpreter, library card, and the source text.
Include Menus by Emily Short. Include Basic Help Menu by Emily Short.
Include Buttered Toast Rules by William Moore.
Include Buttered Toast Basics by William Moore.
The release number is 1.
The player has a number called current score.
@ -38,16 +39,12 @@ A thing has significance. The significance of a thing is usually insignificant.
When play begins:
now the right hand status line is "Score: [current score of the player]".
[
FIGURES
]
Chapter 1 - Setting Up the Figures
Figure of Melkior is the file "melkior.jpg".
Figure of Buckethead is the file "buckethead.jpg".
[
TABLES
]
Chapter 2 - Setting Up the Tables
Table of Melkior Responses
Response
@ -71,53 +68,19 @@ Saying
"Mr Linendot frowns and says 'I'm legally required to use air quotes so as not to be sued by Pepso...again..."
"Mr Linendot says 'Hi, kids! I'm Mr. Linendot here to tell you about the delicious beverage Pepso. The only drink made with real pepsin and now comes in a new refreshing flavor of 'vanilla'. And remember kids, I can no longer say they are the official sponsor of the show as that has never been the case.' He drinks a Pepso 'And here comes my lunch...'"
[
ROOMS AND DOORS
]
Chapter 3 - Setting Up Non-Standard Rooms and Doors
[ Plaza ]
Summit & Jefferson is a room. The description is "The westernmost city block on the Plaza contains parking and is surrounded by Summit, 47th, Jefferson, and 48th streets. There are two blocks: one to the east and one to the southeast.".
Jefferson & Nichols North is a room. It is east of Summit & Jefferson. The description is "The city block of the Plaza contains several shops and is surrounded by Jefferson, 47th, Pennsylvania, and Nichols. There are blocks to the northeast, east, southeast, south, and west.".
Jefferson & Nichols South is a room. It is southeast of Summit & Jefferson. It is south of Jefferson & Nichols North. The description is "The city block of the Plaza contains several shops and is surrounded by Jefferson, Nichols, Pennsylvania, and 48th. There are blocks to the north, northeast, east, south, and northwest.".
Jefferson & 48th is a room. It is south of Jefferson & Nichols South. The description is "The city block of the Plaza contains several shops and is surrounded by Jefferson, 48th, Pennsylvania, and Ward Parkway. There are blocks to the north and northeast.".
Pennsylvania & West 46th Terrace is a room. It is northeast of Jefferson & Nichols North. The description is "The city block of the Plaza contains several shops and is surrounded by Pennsylvania, West West 46th Terrace, Broadway, and 47th. There are blocks to the southwest, south, southeast and east.".
Pennsylvania & 47th is a room. It is east of Jefferson & Nichols North. It is northeast of Jefferson & Nichols South. It is south of Pennsylvania & West 46th Terrace. The description is "The city block of the Plaza contains several shops and is surrounded by Pennsylvania, 47th, Broadway, and Nichols. There are blocks to the north, northeast, east, southeast, south, southwest, and west.".
Pennsylvania & Nichols is a room. It is east of Jefferson & Nichols South. It is southeast of Jefferson & Nichols North. It is south of Pennsylvania & 47th. It is northeast of Jefferson & 48th. The description is "The city block of the Plaza contains several shops and is surrounded by Pennsylvania, Nichols, Broadway, and Ward Parkway. There are blocks to the north, northeast, east, west, and northwest.".
Broadway & West 46th Terrace is a room. It is east of Pennsylvania & West 46th Terrace. It is northeast of Pennsylvania & 47th. The description is "The city block of the Plaza contains several shops and is surrounded by Broadway, West West 46th Terrace, Wornall, and 47th. There are blocks to the east, southeast, south, southwest, and west.".
Broadway & 47th is a room. It is south of Broadway & West 46th Terrace. It is southeast of Pennsylvania & West 46th Terrace. It is east of Pennsylvania & 47th. It is northeast of Pennsylvania & Nichols. The description is "The city block of the Plaza contains several shops and is surrounded by Broadway, 47th, Central, and Nichols. There are blocks to the north, northeast, east, southeast, south, southwest, west, and northwest.".
Broadway & Nichols is a room. It is southeast of Pennsylvania & 47th. It is south of Broadway & Pennsylvania. It is east of Pennsylvania & Nichols. The description is "The city block of the Plaza contains several shops and is surrounded by Broadway, Nichols, Central, and Ward Parkway. There are blocks to the north, northeast, east, west, and northwest.".
47th & Wornall is a room. It is east of Broadway & West 46th Terrace. It is northeast of Broadway & 47th. The description is "The city block of the Plaza contains several shops and is surrounded by Wornall, Wyandotte, and 47th. There are blocks to the east, southeast, south, southwest, and west.".
Central & 47th is a room. It is south of 47th & Wornall. It is southeast of Broadway & West 46th Terrace. It is east of Broadway & 47th. It is northeast of Broadway & Nichols. The description is "The city block of the Plaza contains several shops and is surrounded by Central, 47th, Wyandotte, and Nichols. There are blocks to the north, northeast, east, south, southwest, west, and northwest.".
Central & Nichols is a room. It is southeast of Broadway & 47th. It is south of Central & 47th. It is east of Broadway & Nichols. The description is "The city block of the Plaza contains several shops and is surrounded by Central, Nichols, Wyandotte, and Ward Parkway. There are blocks to the north, east, west, and northwest.".
Wyandotte & West 46th Terrace is a room. It is east of 47th & Wornall. It is northeast of Central & 47th. The description is "The city block of the Plaza contains several shops and is surrounded by Wyandotte, West 46th Terrace, Mill Creek Parkway, and Emanuel Cleaver II Blvd. There are blocks to the south, southwest, and west. The Nelson-Atkins Museum of Art is to the northeast.".
Wyandotte & Emanuel Cleaver II Blvd is a room. It is southeast of Central & 47th. It is south of Wyandotte & West 46th Terrace. It is east of Central & Nichols. The description is "The city block of the Plaza contains several shops and is surrounded by Wyandotte, Emanuel Cleaver II Blvd, Mill Creek Parkway, and Ward Parkway. There are blocks to the northwest, north, and west. The University of Missouri - Kansas City campus is southeast.".
[ Other Places ]
Poorly Lit Room is a room. The description of Poorly Lit Room is "You are in a poorly lit room and it is difficult to see most features. Those that are visible are blurry.".
Nelson-Atkins Museum of Art is a room. It is northeast of Wyandotte & West 46th Terrace. The description is "A large property containing multiple external sculptures, including the famous Shuttlecock, with a large, stonework mansion used to house a museum of various styles and eras of artwork. It is surrounded by Oak, 45th, Rockhill Road, and Emanuel Cleaver II Blvd.".
UMKC is a room. It is southeast of Wyandotte & Emanuel Cleaver II Blvd. The description is "The vast campus surrounded by Brookside Blvd, Dr Martin Luther King, Jr. Blvd, Troost Ave, and 54th Street houses UMKC."
[
ACTORS
]
Chapter 4 - Setting Up Actors
The Narrator is a person. They are in Poorly Lit Room. The significance of the Narrator is significant. The description is "The narrator is well-dressed and young looking. However, what their true form is beguiling. They look like they urgently want to speak with you.".
Amelia is a person. The description of Amelia is "Amelia is a slender woman wearing ruined aviator clothes. She has sandy blonde hair. She is totally drunk and appears to almost always be that way.".
Darcon is a person. The description is "He looks like a typical retail worker wearing a blue vest, white shirt, and blue pants. He is quietly muttering obscenities into his drink."
Buckethead is a person. The description is "That's right. THE Buckethead! He appears to be staring at his chickens, which are aimlessly pecking at and scratching the floor.".
Mr Linendot is a person. They are in UMKC. The description is "He has lines for limbs and dots for joints. His perfectly circular head only has dots for eyes and a line for a mouth.".
Melkior is a person. They are in Broadway & 4th. The description is "He is an Eldarim turned undead after pledging his life to Death himself. He is currently held together it would seem by just simple rags. There are severely damaged parts on his body from previous battles.".
Melkior is a person. They are in Broadway & 47th. The description is "He is an Eldarim turned undead after pledging his life to Death himself. He is currently held together it would seem by just simple rags. There are severely damaged parts on his body from previous battles.".
Hank the Wino King is a person. They are in Central & 4th. The description is "A dishevelled man stands before you with long, matted, brown hair. The odor that eminates from them is an assault on the senses. Their long coat is greasy and grimey."
[
THINGS
]
Chapter 5 - Setting Up Things
[ Key Things ]
The amulet of destiny is a thing. It is wearable. The description is "A bright and shiny amulet that weighs a bunch.".
@ -132,17 +95,7 @@ The platform shoes of righteousness is a thing. It is wearable. The description
Can of Vanilla Pepso is a thing. The description is "A can of 'delicious', 'refreshing', 'vanilla' Pepso.".
ye flask is a thing. The description is "It is a flask containing some unknown liquid.".
[
ACTIONS
]
Understand "slap [something]" as slapping. Slapping is an action applying to one visible thing.
After slapping when the noun is a person:
say "You viciously slap [the noun]!".
Understand "poke [something]" as poking. Poking is an action applying to one visible thing.
After poking when the noun is a person:
say "You poke [the noun]."
Chapter 6 - Setting Up the Actions
Before taking something when the noun is a thing and the significance of the noun is significant:
increase the current score of the player by 5.
@ -179,46 +132,22 @@ After examining Melkior:
After examining Buckethead:
display the Figure of Buckethead.
[
SCENES
]
Chapter 7 - The Gameß
[ The Beginning scene ]
The Beginning is a scene. The Beginning begins when play begins. The Beginning ends when the player is wearing the ring of awesomeness. The description of the Beginning is "Welcome to Buttered Toast: Final Battle.[line break][line break]We want to claim this is full of action, adventure, mystery, and love![line break][line break]In loving memory of Johnny von Soundstation."
After speech when the noun is Narrator and The Beginning is happening:
say "The Narrator says 'Hello, Billy Davis! What you are about to see is Buttered Toast: Final Battle. If you have not played any of the others, do not fret! This is unrelated.";
say "Here, have [the amulet of destiny]! Wear it with strength and honor!";
say "Here, have [the ring of awesomeness]! Wear it with strength and honor!";
say "Here, have [the wide-brimmed hat of irregularity]! Wear it with strength and honor!";
say "Here, have [the fluffy cape of the damned]! Wear it with strength and honor!";
say "Here, have [the diamond topped cane of justice]! Wear it with strength and honor!";
say "Here, have [the platform shoes of righteousness]! Wear it with strength and honor!";
say "Enjoy the show and don't forget to examine people and thing or to say 'hi' to people!'";
now the amulet of destiny is in Poorly Lit Room;
now the ring of awesomeness is in Poorly Lit Room;
now the wide-brimmed hat of irregularity is in Poorly Lit Room;
now the fluffy cape of the damned is in Poorly Lit Room;
now the diamond topped cane of justice is in Poorly Lit Room;
now the platform shoes of righteousness is in Poorly Lit Room;
silently try taking the amulet of destiny;
silently try taking the ring of awesomeness;
silently try taking the wide-brimmed hat of irregularity;
silently try taking the fluffy cape of the damned;
silently try taking the diamond topped cane of justice;
silently try taking the platform shoes of righteousness;
now the player is wearing the amulet of destiny;
now the player is wearing the ring of awesomeness;
now the player is wearing the wide-brimmed hat of irregularity;
now the player is wearing the fluffy cape of the damned;
now the player is wearing the diamond topped cane of justice;
now the player is wearing the shoes of righteousness;
move the ring of awesomeness to the location of the player;
try silently taking ring of awesomeness;
now the player is wearing ring of awesomeness;
increase the current score of the player by 10.
The player is in Poorly Lit Room.
[ Act I ]
Act I is a scene. Act I begins when The Beginning ends.
When Act I begins:
move the player to Summit & Jefferson.
move the player to the Plaza.

View File

@ -0,0 +1,422 @@
Version 2/150510 of Easy Doors by Hanon Ondricek begins here.
"Easy Doors provides a new kind of door which does not use map connections, and may be manipulated via rules more flexibly than the standard doors provided in Inform 7."
To say perform/@ (ph - phrase): (- if (0==0) {ph} -).
An easydoor is a kind of thing.
An easydoor is usually fixed in place.
An easydoor can be enterable. An easydoor is usually enterable.
An easydoor can be scenery.
An easydoor can be openable or unopenable. An easydoor can be open or closed. An easydoor is usually openable.
An easydoor can be lockable. An easydoor can be locked or unlocked.
An easydoor has a text called dooraction. The dooraction of an easydoor is usually "".
The description of an easydoor is usually "[The noun] [are] [if open]open[otherwise]closed[end if]."
Understand "[easydoor]" as entering.
Roomconnecting relates one room (called the outpoint) to various things.
The verb to lead to implies the reversed roomconnecting relation.
Portalling relates one easydoor (called the doorfriend) to another.
The verb to portal implies the portalling relation.
Understand "door/doorway" as an easydoor.
Before an actor entering an easydoor (called D) (this is the implicitly open easydoors rule):
if D is closed:
try the person asked opening D.
Check an actor entering an easydoor (this is the can't enter a locked easydoor rule):
if the noun is locked:
stop the action.
After entering an easydoor (this is the say dooraction and move the player rule):
if dooraction of noun is "":
say "[dooraction of noun][run paragraph on]" (A);
otherwise:
say "[dooraction of the noun][line break]" (B);
now the player is in the outpoint of the noun.
After someone entering an easydoor (called D) (this is the NPC uses easydoor rule):
say "[The person asked] [go] through [the D]." (A);
now the person asked is in the outpoint of the noun.
Check an actor entering a portable easydoor (called D) (this is the we are not MC Escher rule):
if the the person asked carries D:
say "[The person asked] [can't] enter [the D] while holding it." (A);
stop the action.
Check entering an easydoor (this is the disallow entering easydoors with no outpoint rule):
if the outpoint of the noun is nothing:
if the dooraction of the noun is "":
say "[The noun] [don't] lead anywhere." (A);
otherwise:
say "[dooraction of the noun][line break]" (B);
stop the action.
Check someone entering an easydoor (this is the disallow npc entering easydoors with no outpoint rule):
if the outpoint of the noun is nothing:
say "[The noun] [don't] seem to lead anywhere." (A);
stop the action.
Carry out an actor opening an easydoor (called D) (this is the open doorfriend rule):
now the doorfriend of D is open.
Carry out an actor closing an easydoor (called D) (this is the close doorfriend rule):
now the doorfriend of D is closed.
Carry out an actor unlocking an easydoor (called D) with something (this is the unlock doorfriend rule):
now the doorfriend of D is unlocked.
Carry out an actor locking an easydoor (called D) with something (this is the lock doorfriend rule):
now the doorfriend of D is locked.
Before an actor unlocking an easydoor with something (called K):
If K unlocks the doorfriend of the noun:
now K unlocks the noun.
Before an actor locking an easydoor with something (called K):
If K unlocks the doorfriend of the noun:
now K unlocks the noun.
Volume 1 - Not for release
When play begins:
repeat with D running through easydoors:
if D leads to nothing:
say "*** CAUTION - [bold type][The D][roman type] in [bold type][the location of D][roman type] does not lead anywhere!!! ***[paragraph break]"
Easy Doors ends here.
---- DOCUMENTATION ----
Chapter : Introduction
Doors as implemented in Inform 7 are limited and sometimes frustrating to use since they must connect two rooms using map directions. They can thwart some architectural and magical realism: they cannot be moved during play, and they cannot change their destination. We cannot have an enterable broom closet on the same wall as a map direction. Doors cannot be part of an object, or inside an enterable container.
Easy Doors is a small extension that provides a new kind called "easydoor". These behave like normal doors and can be placed anywhere, providing one-way, directionless transport to any location in the game world. Easydoors can be moved around the map, on and off-stage, and can change what location they lead to at the author's whim using normal rules. Since easydoors do not require directional hookups on the map, they are very simple to implement.
Section : Acknowledgements
Thanks to Carolyn VanEseltine and Jason Lautzenheimer for suggestions about door behaviors. Also to Daniel Stelzer and Andrew Schultz for assistance and advice and testing.
Please feel free to email hanon.ondricek@gmail.com with any feedback, questions, or bug reports.
Chapter : Creating Easydoors
Easydoors can be created and placed wherever we want. They behave in the expected way a door would, by default fixed in place, openable and closed. We can declare them also lockable and locked or unlocked (unlocked is default) and create keys to unlock them. We can make them open and unopenable to simulate stairs or an open passage. We also specify where an easydoor leads to when a player enters one.
Section : One-Way Easydoors
The front door is an easydoor in Porch. It leads to Foyer.
This is the minimum code for a working easydoor. We can of course give our easydoor an initial appearance, a description (the default just says whether the door is closed or open) and use all of the normal rules for opening and closing and locking. (The exception to be careful with is AFTER ENTERING - see the section later for details.)
An iron grating is an easydoor in Dungeon Mouth. It leads to Dungeon Throat. It is lockable and locked.
The dungeon key unlocks iron grating. Dungeon key is carried by the fearsome ogre.
A windy passage is an easydoor in Dungeon Throat. "A windy passage leads deeper into the dungeon." It is unopenable and open. It leads to Dungeon Lungs.
Notice none of these specify compass directions. We can place as many doors in a location as we wish. The player can enter an easydoor and be transported to the location it leads to by using any synonym of the entering action, or by typing the name of an easydoor as if it were a direction.
>ENTER FRONT DOOR
>GRATING
>GO THROUGH WINDY PASSAGE
If the easydoor is closed and not locked, the parser will open it implicitly. If it is locked, the player will be informed and not allowed to open it until they find a key.
We can simulate that an easydoor leads in a direction by redirecting the player's input to the entering action.
A revolving door is an easydoor in Plaza. "The department store's revolving door slices and dices holiday shoppers to the north." It is unopenable and open. It leads to Women's Shoes. The description of revolving door is "It makes you sort of ill to watch it for too long."
Instead of going north in Plaza: try entering revolving door.
Section : Two-Way Doors
Since easydoors traverse only one way, we might wish to provide the other half of the door so there is a two-way connection.
some automatic doors are an easydoor in Women's Shoes. "You note some automatic doors to the south that lead back out into the street." It leads to Plaza. The dooraction is "At least you don't have to contend with the revolving door this time as glass panels are whisked aside automatically for you."
Instead of going south in Women's Shoes:
try entering automatic doors.
Section : Portalling Two Easydoors as One
When we are simulating both sides of a door with two separate easydoors, we would like them to stay in sync with regard to locking, unlocking, opening and closing. We do that by connecting them with the portalling relation, which is reciprocal and only needs to be declared on one of the matching portals.
The coaster security gate is an easydoor in Midway. It is lockable and locked. It leads to Roller Coaster. The description is "Through the chain link, you can see the wooden supports of the roller coaster." Understand "chain/link" as security gate.
The gate back to the midway is an easydoor in Roller Coaster. "A gate here appears to lead back to the midway." The description is "It's the back side of that security gate you saw earlier." It leads to midway. It portals coaster security gate. Understand "security" as gate back to midway.
The passkey unlocks coaster security gate. Passkey is on security guard's corpse.
This will ensure that if we unlock the security gate from one side but slip into the Roller Coaster grounds by other means, when we encounter the allegedly same gate from the other side that it will also be unlocked. It also allows the same key to lock and unlock the other half of the portalled door.
Section : Dooraction
Every easydoor contains a text called "dooraction" which can optionally be used to provide some descriptive text when the player moves through the door.
a spiral staircase is an open, unopenable easydoor in Minimalistic Apartment. It leads to Loft. the dooraction of spiral staircase is "Your knees complain as you climb the wrought iron twists of this contraption."
a time machine is an open, unopenable easydoor in Laboratory. "A humming time machine sits in the corner, the passage into it glowing expectantly." It leads to Swirly Void. The dooraction of time machine is "All right. Here goes."
The dooraction should encompass the actual traversal of the door. The opening and closing are separate actions and shouldn't necessarily be included in the dooraction.
a crypt door is an openable easydoor in Graveyard. It leads to Inner Tomb. The dooraction is "As you cross the threshold, a cold wind ruffles your hair.".
After an actor opening crypt door, say "The door of the crypt creaks open."
After an actor closing crypt door, say "The crypt door bangs shut."
Section: After Entering an Easydoor
In most cases, we should not override the AFTER ENTERING rules affecting an easydoor, as this is where the player is moved to the location that the door leads to (called an "outpoint" in code). Should you need to do anything fancy after an easydoor is traversed, The best place to work it out is in the dooraction text using the handy "perform" function.
A revolving door is an easydoor in Plaza. "The department store's revolving door slices and dices holiday shoppers to the north." It is unopenable and open. It leads to Women's Shoes. The description of revolving door is "It makes you sort of ill to watch it for too long." The dooraction of revolving door is "You are whirled for several minutes, losing a mitten [perform now a random mitten carried by the player is off-stage][first time][perform increase the score by 1][only]in the process. Finally you are through and your shopping can begin!"
If you decide you need to use the after rules, you should ensure that you move the player to the outpoint of the easydoor as well.
Easy Doors usually lead to a room. Altering the AFTER ENTERING rules would be one way to, for whatever reason, have a door lead to the inside of an enterable container or onto a supporter. Take care with this, as getting your player stuck inside an object or in a backdrop might have strange consequences. An example is provided below.
Section : Portable Doors
Easydoors are usually immobile as far as the player is concerned, although the author can move them as part of gameplay using rules. An easydoor can be declared portable, leading to wild effects.
A round black hole is an easydoor carried by the player. It is portable. It leads to Phobos.
A portable door must be dropped before it can be entered, of course, because carrying a door through itself would break even imaginary laws of physics and cause your game to collapse into itself and wink out of existence.
Carry out turning the Infinite Improbability dial:
now round black hole leads to Magrathea.
Chapter : Debug
An easydoor without a destination (in code, an "outpoint") would transport the player off-stage, which could cause all kinds of nasty effects. When a game is run in the Inform IDE, easydoors without outpoints will be flagged when play begins.
We may have good reason to have a destination-less door (as shown in the example below) and can ignore these warnings which will not appear in a published game. This is provided to notify the author in case of inadvertently forgetting to include a destination for an easydoor. Instead of recklessly transporting the player offstage, the extension will inform the player that the door leads nowhere, and change the outpoint of the easydoor to its own location should the player try again.
Chapter : NPCs, and Pathfinding
Easy Doors can handle an NPC character manipulating and entering an easydoor if manually told to in rules by the author, or by a player if persuasion succeeds. Unfortunately Inform's automatic pathfinding ("The best route from A to B") will not take easydoors into account. Any route to a location will detour around an easydoor if there is another way using regular map connections and doors, or will fail as "nothing" if an easydoor is the only route.
If our game relies on routefinding and autonomous NPCs, some suggestions are:
A: Create the world with map connections and regular doors where we need NPCs to travel, reserving easydoors for special cases. (In TRANSPARENT, there is a map connection between the study and the library that ghosts can use, but the player is directed from the map connection through an easydoor, which might be locked.)
B: Divide the map into regions that easydoors connect, and have Inform find "The best route from A to (an easydoor)." Once arrived, have the NPC try entering the easydoor and continue their route to a destination.
C: Find plot reasons to teleport the NPCs.
Hopefully if our game involves traveling NPCs and extended logic to move them, we are skilled enough to manage within the limitations of this extension, or modify it to suit.
A vague caution: This extension is designed to help authors solve some door problems, and create special effects. While it can be used to make an entire game full of non-traditional map traversal, it has not been stress-tested with hundreds of portaling doors in a game. Some memory limitations and weirdness might be encountered if we are using this extension to write a game called "Maze of a Million Doors".
Example: ** And I Want to Paint It - Easy Doors in action, hopefully demonstrating the entire range of use, including debug messages.
*: "And I Want to Paint It"
Include Easy Doors by Hanon Ondricek.
Hub is a room.
Room1 is a room.
Room2 is a room.
Room3 is a room.
Alice is a woman in Hub. "Alice is here, looking rather lost."
Before Alice entering an easydoor:
say "'Aha!' Alice exclaims."
A persuasion rule: persuasion succeeds.
An easydoor called the first door is an easydoor in Hub. It leads to room1.
A green door is a lockable, locked easydoor in Hub. It leads to room2.
A blue door is a lockable, locked easydoor in Hub. It leads to room3.
The player carries a green key. Green key unlocks green door.
A blue key is in Room2. It unlocks blue door.
An incorrectly-made door is an easydoor in Hub.
a return door is a kind of easydoor.
One return door is in room1. It leads to Hub. It portals first door.
One return door is in room2. It leads to Hub. It is lockable and locked. It portals green door.
One return door is in room3. It leads to Hub. It is lockable and locked. It portals blue door.
A false door is an easydoor in Hub.
After opening false door:
say "Hunh. This door opens onto a solid brick wall. You're not going anywhere through this."
Yourself can be injured.
The dooraction of false door is "Ow. [perform now the player is injured]Bricks meet nose."
A red herring door is an easydoor in hub. It is lockable and locked.
a time machine is an open, unopenable easydoor in Room3. "A humming time machine sits in the corner, the passage into it glowing expectantly." It leads to Swirly Void. The dooraction of time machine is "All right. Here goes."
Swirly Void is a room. "How temporally disorienting!".
A rapidly approaching light is an open, unopenable easydoor in Swirly Void. The description is "It's approaching fast." It leads to Drawing Room. The dooraction of rapidly approaching light is "You fall for a long time, afraid of meeting the ground at rapid pace. Luckily the next time you blink, you find yourself somewhere else...and there seems to be no way back."
Drawing Room is a room. "You've arrived in Victorian London, it seems, from the look of this place."
The parlour door is an easydoor in Drawing Room. "The Parlour is west." It leads to The Parlor.
Instead of going west in Drawing Room: try entering parlour door.
The Parlor is a room. "The Parlour. How boring.". The printed name of parlor is "The Parlour"
The drawing room door is an easydoor in Parlor. "The drawing room door leads back to the east.". It leads to Drawing Room. It portals parlour door.
Instead of going east in parlor: try entering the drawing room door.
A magic mushroom is an edible thing in Drawing Room.
Carry out eating magic mushroom:
say "The parlour door seems to ripple strangely.";
now the parlour door leads to Wonderland;
now the dooraction of parlour door is "As you cross the threshold of the parlour door, there is a liquid ripple and your surroundings melt away, leading you somewhere else...".
Wonderland is a room. "Oh no. Not this again. Your croquet skills are rusty. You feel like jumping in frustration."
some very damp clothing is a wearable thing.
The pool of tears is a fixed in place, enterable, transparent container in wonderland.
Carry out entering pool of tears:
now the player wears damp clothing.
hundreds of gallons of tears is a fixed in place thing in pool of tears.
Yourself can be wet.
A whirlpool is an open, unopenable easydoor. It leads to Hub. The dooraction is "Down...down...down...whirling...you hold your breath until finally you end up in... Well, foo. That was all for naught.[perform now the player wears damp clothing]"
Instead of jumping:
say "You stamp your foot angrily.";
if the location is Wonderland:
say "[line break]The rumbling of your frustration seems to have caused a crack in the earth to open up, and the pool of tears begins to circle, draining away.";
now whirlpool is in pool of tears;
rule succeeds.
test me with "open green door/alice, open blue door/alice, enter red herring door/enter false door/unlock green door with green key/alice, go through green door/enter green door/alice, take blue key/alice, go return door/return/alice, unlock blue door/alice, open blue door/enter blue door/get in time machine/enter light/take mushroom/w/e/eat mushroom/w/x pool/jump/enter pool/enter whirlpool"
Example: **** His Lovely Assistant - Using Easy Doors to transport the player into an enterable container.
*: "His Lovely Assistant"
Include Easy Doors by Hanon Ondricek.
Use scoring.
The Wicked Stage is a room. "[one of]Here, elevated on the boards before a sold-out audience, Mumford the Magician has but one astounding trick left to perform.[or]The audience watches raptly, each member perched on the edge of their respective seat.[stopping]"
a magic trunk is a fixed in place, enterable, openable, closed, lit container in Wicked Stage. The description is "It's big enough for a person to get into, but exceedingly heavy to carry around as you well know." Understand "disappearing/box" as trunk.
a trap door is an easydoor in magic trunk. It leads to Understage. It is openable. The dooraction is "You contort your body through the narrow square trap in the bottom of the trunk and the hole cut underneath it down through the stage floor."
After opening trap door:
say "You quietly open the trap door."
Instead of going down when the player is in magic trunk:
try entering trap door.
a concealed panel is an easydoor in Understage. "Above your head you can see the concealed panel through the trap cut into the stage that the trunk is sitting on top of." It leads to Wicked Stage. It portals trap door. Understand "trap" as concealed panel.
The printed name of Understage is "Beneath the Stage".
a scrap of newspaper clipping is in understage. The description is "Hmn. It's a slightly-charred newspaper article detailing the rash of stage magician's assistant murders that has been ravaging the community! This looks like an important clue to the mystery![first time][perform increase the score by 1][only]"
After closing concealed panel:
say "You close the panel with the slightly audible 'thunk' that Mumford is listening for."
After entering concealed panel:
now the player is in magic trunk;
say "You twist your way flexibly back up through the stage into the trunk."
Instead of going up in understage: try entering concealed panel.
To say response:
say "[line break]'[one of]Ooooooooh[or]Ahhhhhh[or]Ooh! Ahh[cycling]!' goes the audience."
To say murmur:
say "The audience murmurs, perhaps a bit less astounded than they were before."
The audience is scenery in Wicked Stage. The description is "There are hundreds of people out there, even if you can't make out anyone specifically. Any one of them could be the Magician's Assistant Murderer! You hope you catch him soon so you can stop this whole undercover gig for Mumford."
Pre Magic is a scene. Pre Magic begins when the turn count is 2. Pre Magic ends when the player is in magic trunk.
When Pre Magic Begins:
say "Mumford holds up his hands, cutting off the applause from the previous trick. 'And now, for our spectacular finale. I give you THE MAGIC DISAPPEARING BOX!'[if magic trunk is closed]He flourishes his cape, and opens the trunk.[perform now magic trunk is open][end if][response]".
Every turn during Pre Magic:
say "[one of]Mumford offers a hand to assist you. 'And now, my lovely assistant will enter the mysterious mystery of THE DISAPPEARING BOX!'[response][or]'That's it, my lovely assistant,' Mumford says. 'Just step into THE MAGIC DISAPPEARING BOX!'[response][or]'Ha ha! My lovely assistant fears THE MAGIC DISAPPEARING BOX!'[response][or]Mumford mutters under his breath, 'Just get in the box like we rehearsed it, okay?' He flourishes and smiles for the audience to stall for you.[stopping][murmur]".
Switcheroo is a scene. Switcheroo begins when Pre Magic Ends. Switcheroo ends when the player is in understage and concealed panel is closed.
To say magicwords:
say "'And now for [one of]some[or]some more[stopping] magic words!' Mumford bellows above. '[one of]ABRACADABRA[OR]ALAKHAZAM[OR]HOCUS POCUS[OR]...erm MACARONI AND CHEESE[or]...and you will be AMAZED when you CANNOT SEE my LOVELY ASSISTANT! Who [italic type]WILL HAVE VANISHED[roman type] from the MAGIC DISAPPEARING BOX[or]...UT-SHAY THE AGIC-MAY ANEL-PAY[or]I'm thinking I'll be in the market for a new Lovely Assistant soon,' Mumford ad-libs, no doubt waggling his eyebrows at the audience who chuckle appreciatively. 'BIBBITY BOBBITY[or]...um HAVA NAGILA[cycling]!'[response]"
When Switcheroo begins:
say "Mumford swirls his cape. 'And we say goodbye to my lovely assistant as we explore the mysteries of THE MAGICAL DISAPPEARING BOX!' he says, wiggling his fingers as you duck down in the trunk.[response]He closes the trunk lid[perform now magic trunk is closed] and you hear him making a big show with the locks on the outside."
Every turn during switcheroo:
if magic trunk is open:
now magic trunk is closed;
say "Mumford [one of]pushes the trunk closed again.[or]slams the trunk, almost taking one of your fingers with it.[or]resolutely pushes the trunk closed and holds it for a moment.[cycling]";
say "[magicwords]".
When switcheroo ends:
say "'And now...WATCH and be ASTOUNDED!' hollers Mumford from above."
The audience can be amazed.
The Show is a scene. The Show begins when switcheroo ends. The show ends when audience is amazed.
Instead of entering concealed panel during The Show:
say "You really not supposed to be in the box while Mumford is doing his stuff.";
stop the action.
some fake scorpions are a thing.
Every turn during The Show:
say "[one of]'You all saw my Lovely Assistant locked securely inside THE DISAPPEARING BOX!' he announces. But things ARE NOT ALWAYS WHAT THEY APPEAR!'[or]'If my Lovely Assistant were in the MAGICAL DISAPPEARING BOX, would I consider STABBING IT REPEATEDLY WITH THESE RAZOR SHARP SWORDS?' (You hear metal clashing above.)[response][or]'Or would I pour this bucket of LIVE DEADLY SCORPIONS DIRECTLY INTO THE MAGICAL DISAPPEARING BOX?' (You hear a pattering above.)[perform now fake scorpions are in magic trunk][response][or]'Would I even consider SETTING THE MAGICAL DISAPPEARING BOX ON FIRE???' (You hear a crackling whoosh of flash powder.)[response][or]I wouldn't do these things unless my Lovely Assistant HAD ACTUALLY DISAPPEARED!' The audience applauds enthusiastically[perform now the audience is amazed] as he drops the front of the trunk to reveal that you are, indeed, not inside it.[stopping]".
When The Show ends:
say "You hear the trunk being hastily reassembled above, and Mumford continues. 'But THE MAGICAL DISAPPEARING BOX has a secret! With more magic words...the mystery can be solved! DUCK A LA RAHNGE!' he calls, which is your cue."
The Reveal is a scene. The reveal begins when The Show ends. The reveal ends when the player is in magic trunk and magic trunk is open.
Every turn during the Reveal:
say "[one of]'I said DUCKALARAAAANGE!'[or]'Could my Lovely Assistant have suffered some type of TERRIBLE PERIL?' Mumford yells, and you can hear his foot tapping the trunk above.[or]'Hey!' he whispers harshly above.[or]'More magic words!' he cheefully announces. 'ET-GAY OR-YAY UTT-BAY ACK-BAY IN THE OX-BAY!'[cycling]"
When the Reveal ends:
say "Mumford drinks in the deafening applause for a minute, before deferring some to you. 'MY LOVELY ASSISTANT, LADIES AND GENTLEMAN!!!' You take a graceful bow, understanding finally what it's like to be adored by hundreds of people. But it is short-lived as there's a 'thoop' sound and a simultaneous gasp in the audience. Mumford's eyes are wide as he realizes he's been shot with a poison crossbow! The Killer is in the audience! You yell for nobody to move as you retrieve your sidearm from where it was uncomfortably concealed in your skimpy outfit...";
end the story saying "You vow to avenge the Mystical Mumford the Magician!"
The player wears a skimpy outfit. The description of skimpy outfit is "It's a bit tighter and feathery-er than your normal uniform."
Instead of taking off skimpy outfit, say "Like this isn't humiliating enough."
The description of the player is "Yes, you are actually wearing feathers. It's going to be a good long time before your cohorts stop giving you hell for this back at the station."
A person called The Amazing Mumford is in wicked stage. The description is "He's been around the block a few times, and probably in his younger days was quite dashing in his cape and top hat."
test me with "z/enter box/open box/z/open trap/d/shut panel/x newspaper/take newspaper/up/z/enter panel/open box"

View File

@ -0,0 +1,65 @@
Version 1.0.0 of Buttered Toast Basics by William Moore begins here.
Include Easy Doors by Hanon Ondricek.
Chapter 1 - The Map
The Plaza is a room. The description is "The Plaza is a shopping area using a Moorish-style architecture similar to the Alhambra. There are roads to the north, northeast, east, and southeast.".
The Ewing & Muriel Kaufman Memorial Garden is a room. It is north of UMKC. It is east of the Plaza. The description is "A wonderful garden containing the burial sites for the individuals the garden is named after and containing wonderful floral arrangments and fountains.".
Nelson-Atkins Museum of Art is a room. It is northeast of the Plaza. It is north of the Ewing & Muriel Kaufman Memorial Garden. The description is "A large property containing multiple external sculptures, including the famous Shuttlecock, with a large, stonework mansion used to house a museum of various styles and eras of artwork. It is surrounded by Oak, 45th, Rockhill Road, and Emanuel Cleaver II Blvd. The Plaza is southwest of here.".
UMKC is a room. It is southeast of the Plaza. It is south of Nelson-Atkins Museum of Art. The description is "The vast campus surrounded by Brookside Blvd, Dr Martin Luther King, Jr. Blvd, Troost Ave, and 54th Street houses UMKC. The Plaza is northwest of here."
Westport is a room. It is north of the Plaza. The description is "Westport is a small district located in midtown Kansas City, MO and known for entertainment and its night life. There are roads to the north and south.".
Downtown Kansas City is a room. It is north of Westport. The description is "Downtown Kansas City, MO is a vibrant area full of shops, restaurants, and entertainment. There is a road to the south."
Poorly Lit Room is a room. The description of Poorly Lit Room is "You are in a poorly lit room and it is difficult to see most features. Those that are visible are blurry.".
Entrance to the Plaza is an easydoor in the Plaza. It is unopenable and open. It leads to Summit & Jefferson.
Overview of the Plaza is an easydoor in Summit & Jefferson. It is unopenable and open. It leads to the Plaza.
Entrance to Downtown is an easydoor in Downtown Kansas City. It is unopenable and open. It leads to Union Station.
Overview of Downtown is an easydoor in Union Station. It is unopenable and open. It leads to Downtown Kansas City.
Penn Valley Park is a room. It is south of Union Station. The description is "Penn Valley Park is a wonderful park containing many features, including the famous and national WW I museum. There are roads to the north and northeast.".
Crown Center is a room. It is northeast of Penn Valley Park. The description is "Crown Center is a shopping area containing several amenities. There are roads to the southwest and northwest.".
Union Station is a room. It is north of Penn Valley Park. It is northwest of Crown Center. The description is "Union Station is a functional Amtrak station containing restaurants, Science City, and other features. There are a roads to the north, south, and southeast".
Bartle Hall is a room. It is north of Crossroads. The description is "Bartle Hall is the largest convention center for Kansas City, MO. There is a road to the south.".
Crossroads is a room. It is north of Union Station. The description is "The Crossroads is a quaint art district located in downtown Kansas City, MO. There is a road to the south.".
Power & Light District is a room. It is northeast of Crossroads. The description is "The Power and Light District is an upscale shopping area located in downtown. There is a road the southwest."
Summit & Jefferson is a room. Outside from Summit & Jefferson is the Plaza. The description is "The westernmost city block on the Plaza contains parking and is surrounded by Summit, 47th, Jefferson, and 48th streets. There are two blocks: one to the east and one to the southeast.".
Jefferson & Nichols North is a room. It is east of Summit & Jefferson. The description is "The city block of the Plaza contains several shops and is surrounded by Jefferson, 47th, Pennsylvania, and Nichols. There are blocks to the northeast, east, southeast, south, and west.".
Jefferson & Nichols South is a room. It is southeast of Summit & Jefferson. It is south of Jefferson & Nichols North. The description is "The city block of the Plaza contains several shops and is surrounded by Jefferson, Nichols, Pennsylvania, and 48th. There are blocks to the north, northeast, east, south, and northwest.".
Jefferson & 48th is a room. It is south of Jefferson & Nichols South. The description is "The city block of the Plaza contains several shops and is surrounded by Jefferson, 48th, Pennsylvania, and Ward Parkway. There are blocks to the north and northeast.".
Pennsylvania & West 46th Terrace is a room. It is northeast of Jefferson & Nichols North. The description is "The city block of the Plaza contains several shops and is surrounded by Pennsylvania, West West 46th Terrace, Broadway, and 47th. There are blocks to the southwest, south, southeast and east.".
Pennsylvania & 47th is a room. It is east of Jefferson & Nichols North. It is northeast of Jefferson & Nichols South. It is south of Pennsylvania & West 46th Terrace. The description is "The city block of the Plaza contains several shops and is surrounded by Pennsylvania, 47th, Broadway, and Nichols. There are blocks to the north, northeast, east, southeast, south, southwest, and west.".
Pennsylvania & Nichols is a room. It is east of Jefferson & Nichols South. It is southeast of Jefferson & Nichols North. It is south of Pennsylvania & 47th. It is northeast of Jefferson & 48th. The description is "The city block of the Plaza contains several shops and is surrounded by Pennsylvania, Nichols, Broadway, and Ward Parkway. There are blocks to the north, northeast, east, west, and northwest.".
Broadway & West 46th Terrace is a room. It is east of Pennsylvania & West 46th Terrace. It is northeast of Pennsylvania & 47th. The description is "The city block of the Plaza contains several shops and is surrounded by Broadway, West West 46th Terrace, Wornall, and 47th. There are blocks to the east, southeast, south, southwest, and west.".
Broadway & 47th is a room. It is south of Broadway & West 46th Terrace. It is southeast of Pennsylvania & West 46th Terrace. It is east of Pennsylvania & 47th. It is northeast of Pennsylvania & Nichols. The description is "The city block of the Plaza contains several shops and is surrounded by Broadway, 47th, Central, and Nichols. There are blocks to the north, northeast, east, southeast, south, southwest, west, and northwest.".
Broadway & Nichols is a room. It is southeast of Pennsylvania & 47th. It is south of Broadway & 47th. It is east of Pennsylvania & Nichols. The description is "The city block of the Plaza contains several shops and is surrounded by Broadway, Nichols, Central, and Ward Parkway. There are blocks to the north, northeast, east, west, and northwest.".
47th & Wornall is a room. It is east of Broadway & West 46th Terrace. It is northeast of Broadway & 47th. The description is "The city block of the Plaza contains several shops and is surrounded by Wornall, Wyandotte, and 47th. There are blocks to the east, southeast, south, southwest, and west.".
Central & 47th is a room. It is south of 47th & Wornall. It is southeast of Broadway & West 46th Terrace. It is east of Broadway & 47th. It is northeast of Broadway & Nichols. The description is "The city block of the Plaza contains several shops and is surrounded by Central, 47th, Wyandotte, and Nichols. There are blocks to the north, northeast, east, south, southwest, west, and northwest.".
Central & Nichols is a room. It is southeast of Broadway & 47th. It is south of Central & 47th. It is east of Broadway & Nichols. The description is "The city block of the Plaza contains several shops and is surrounded by Central, Nichols, Wyandotte, and Ward Parkway. There are blocks to the north, east, west, and northwest.".
Wyandotte & West 46th Terrace is a room. It is east of 47th & Wornall. It is northeast of Central & 47th. The description is "The city block of the Plaza contains several shops and is surrounded by Wyandotte, West 46th Terrace, Mill Creek Parkway, and Emanuel Cleaver II Blvd. There are blocks to the south, southwest, and west.".
Wyandotte & Emanuel Cleaver II Blvd is a room. It is southeast of Central & 47th. It is south of Wyandotte & West 46th Terrace. It is east of Central & Nichols. The description is "The city block of the Plaza contains several shops and is surrounded by Wyandotte, Emanuel Cleaver II Blvd, Mill Creek Parkway, and Ward Parkway. There are blocks to the northwest, north, and west.".
Buttered Toast Basics ends here.
---- DOCUMENTATION ----
[ Copyright (C) 2022 William R. Moore <william@nerderium.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. ]
This is the basic stuffs required to get a Buttered Toast game from BT Online onwards, which shall use a map similar to Kansas City, MO.

View File

@ -0,0 +1,95 @@
Version 1.0.0 of Buttered Toast Rules by William Moore begins here.
Chapter 1 - The Basic Commands
Understand "slap [something]" as slapping. Slapping is an action applying to one visible thing.
After slapping when the noun is a person:
say "You viciously slap [the noun]!".
Understand "poke [something]" as poking. Poking is an action applying to one visible thing.
After poking when the noun is a person:
say "You poke [the noun]."
Table of Help Commands
command description
"north" "Move north"
"south" "Move south"
"east" "Move east"
"west" "Move west"
"northeast" "Move northeast"
"northwest" "Move northwest"
"southeast" "Move southeast"
"southwest" "Move southwest"
"up" "Move up"
"down" "Move down"
"look" "Looks around at current location"
"save" "Save state to a file"
"restore" "Restores a saved state"
"restart" "Restarts the game"
"verbose" "Gives full description after each command"
"score" "Displays score and ranking"
"diagnostic" "Give description of health"
"brief" "Give a description upon first entering an area"
"superbrief" "Never describe an area"
"quit" "Quit game"
"climb" "Climbs (up)"
"g" "Redo last command"
"go (direction)" "Go towards direction (west/east/north/south/in/out/into)"
"enter" "In to the place"
"in" "Go into something"
"out" "Go out of the place"
"hi/hello" "Say hello"
"get/take (item)" "Removes item from current room and places it in your inventory"
"get/take all" "Takes all takeable objects in room"
"throw (item) at (location)" "Throws the item at something"
"open (container)" "Opens the container, whether it is in the room or your inventory"
"open (exit)" "Opens the exit for travel"
"read (item)" "Reads what is written on readable item"
"drop (item)" "Removes item from inventory and places it in current room"
"put (item) in (container)" "Removes item from inventory and places it in container"
"turn (control) with (item)" "Attempts to operate the control with the item"
"turn on (item)" "Turns on the item"
"turn off (item)" "Turns the item off"
"move (object)" "Moves a large object that cannot be picked up"
"attack (creature) with (item)" "Attacks creature with the item"
"examine (object)" "Examines, or looks, at an object or item or location"
"inventory" "Shows contents of the inventory"
"eat" "Eats item (specifically food)"
"shout" "Shout it out (shout it out loud)"
"close (Door)" "Closes door"
"tie (item) to (object)" "Ties item to object"
"pick (item)" "Take/get item"
"kill self with (weapon)" "Humorously commits suicide"
"break (item) with (item)" "Breaks item"
"kill (creature) with (item)" "Attacks creature with the item"
"drink" "Drink an item"
"smell" "Smell an item"
"cut (object/item) with (weapon)" "Comment: Strange concept, cutting the (object/item). If (object/item)=self then you commit suicide"
"listen (target)" "Listens to a creature or an item"
"slap (target)" "Slap the target viciously."
"poke (target)" "Poke a target."
Understand "help" as helping. Helping is an action applying to nothing.
After helping:
say "You like help? Here we go!:[paragraph break]";
repeat through Table of Help Commands:
say "[bold type][command entry][roman type]: [description entry][line break]".
Buttered Toast Rules ends here.
---- DOCUMENTATION ----
[ Copyright (C) 2022 William R. Moore <william@nerderium.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. ]