Archipelago/worlds/alttp/docs/plando_en.md

193 lines
8.0 KiB
Markdown
Raw Normal View History

2021-01-17 01:15:46 +00:00
# A Link to the Past Randomizer Plando Guide
## Configuration
2021-01-17 01:15:46 +00:00
1. Plando features have to be enabled first, before they can be used (opt-in).
2. To do so, go to your installation directory (Windows default: `C:\ProgramData\Archipelago`), then open the host.yaml
file with a text editor.
3. In it, you're looking for the option key `plando_options`. To enable all plando modules you can set the value
to `bosses, items, texts, connections`
2021-01-17 01:15:46 +00:00
## Modules
### Bosses
2021-12-20 04:29:04 +00:00
- This module is enabled by default and available to be used on [https://archipelago.gg/generate](/generate)
2021-01-17 01:15:46 +00:00
- Plando versions of boss shuffles can be added like any other boss shuffle option in a yaml and weighted.
- Boss Plando works as a list of instructions from left to right, if any arenas are empty at the end, it defaults to
vanilla.
2021-12-20 04:29:04 +00:00
- Instructions are separated by a semicolon.
2021-01-17 01:15:46 +00:00
- Available Instructions:
- Direct Placement:
2021-01-25 02:31:33 +00:00
- Example: `Eastern Palace-Trinexx`
- Takes a particular Arena and particular boss, then places that boss into that arena
2021-01-25 02:31:33 +00:00
- Ganons Tower has 3 placements, `Ganons Tower Top`, `Ganons Tower Middle` and `Ganons Tower Bottom`
- Boss Placement:
2021-01-25 02:31:33 +00:00
- Example: `Trinexx`
- Takes a particular boss and places that boss in any remaining slots in which this boss can function.
- In this example, it would fill Desert Palace, but not Tower of Hera.
core: new freetext and textchoice options (#728) * add freetext and freetextchoice options * fix textchoice. create plando_bosses bool so worlds can check if boss plando is enabled * remove strange unneccessary \ escapes * lttp: rip boss plando out of core * fix broken text methods so they read the data correctly * revert `None` key in boss_shuffle_options. fix failing tests * lttp: rewrite boss plando * lttp: rewrite boss shuffle * add generic verification step and allow options to set a plando module * add default typing to plando_options set * use PlandoSettings intflag for lttp boss plando * fix plandosettings boss flag check * minor lttp init cleanup * make suggested changes. account for "random" existing within plando boss options * override eq operator * Please document me! * Forgot to mention it supports plando * remove auto_display_name * Throw warning alerting user to which shuffle is being used if plando is off. Set the remaining boss shuffle in init and boss placement cleanup * move the convoluted string matching to `from_text` * remove unneccessary text lowering and actually turn off plando option when it's disabled * typing * strong typing for verify method and reorder * typing is your friend * log warning correctly * 3.8 support :( * also list apparently * rip out old boss shuffle spoiler code * verification step for plando bosses and locations * update plando guide to reference new supported behavior * empty string is not `None`. remove unneccessary error throw * Fix bad ordering * validate boss_shuffle only contains a normal boss option at the end * get random choice from a list dummy * >:( Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com> * minor textchoice cleanup Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
2022-09-17 00:55:33 +00:00
- If no other options are provided this will follow normal singularity rules with that boss.
- Boss Shuffle:
core: new freetext and textchoice options (#728) * add freetext and freetextchoice options * fix textchoice. create plando_bosses bool so worlds can check if boss plando is enabled * remove strange unneccessary \ escapes * lttp: rip boss plando out of core * fix broken text methods so they read the data correctly * revert `None` key in boss_shuffle_options. fix failing tests * lttp: rewrite boss plando * lttp: rewrite boss shuffle * add generic verification step and allow options to set a plando module * add default typing to plando_options set * use PlandoSettings intflag for lttp boss plando * fix plandosettings boss flag check * minor lttp init cleanup * make suggested changes. account for "random" existing within plando boss options * override eq operator * Please document me! * Forgot to mention it supports plando * remove auto_display_name * Throw warning alerting user to which shuffle is being used if plando is off. Set the remaining boss shuffle in init and boss placement cleanup * move the convoluted string matching to `from_text` * remove unneccessary text lowering and actually turn off plando option when it's disabled * typing * strong typing for verify method and reorder * typing is your friend * log warning correctly * 3.8 support :( * also list apparently * rip out old boss shuffle spoiler code * verification step for plando bosses and locations * update plando guide to reference new supported behavior * empty string is not `None`. remove unneccessary error throw * Fix bad ordering * validate boss_shuffle only contains a normal boss option at the end * get random choice from a list dummy * >:( Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com> * minor textchoice cleanup Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
2022-09-17 00:55:33 +00:00
- Example: `basic`
- Runs a particular boss shuffle mode to finish construction instead of vanilla placement, typically used as
a last instruction.
core: new freetext and textchoice options (#728) * add freetext and freetextchoice options * fix textchoice. create plando_bosses bool so worlds can check if boss plando is enabled * remove strange unneccessary \ escapes * lttp: rip boss plando out of core * fix broken text methods so they read the data correctly * revert `None` key in boss_shuffle_options. fix failing tests * lttp: rewrite boss plando * lttp: rewrite boss shuffle * add generic verification step and allow options to set a plando module * add default typing to plando_options set * use PlandoSettings intflag for lttp boss plando * fix plandosettings boss flag check * minor lttp init cleanup * make suggested changes. account for "random" existing within plando boss options * override eq operator * Please document me! * Forgot to mention it supports plando * remove auto_display_name * Throw warning alerting user to which shuffle is being used if plando is off. Set the remaining boss shuffle in init and boss placement cleanup * move the convoluted string matching to `from_text` * remove unneccessary text lowering and actually turn off plando option when it's disabled * typing * strong typing for verify method and reorder * typing is your friend * log warning correctly * 3.8 support :( * also list apparently * rip out old boss shuffle spoiler code * verification step for plando bosses and locations * update plando guide to reference new supported behavior * empty string is not `None`. remove unneccessary error throw * Fix bad ordering * validate boss_shuffle only contains a normal boss option at the end * get random choice from a list dummy * >:( Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com> * minor textchoice cleanup Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
2022-09-17 00:55:33 +00:00
- Supports `random` which will choose a random option from the normal choices.
- If one is not supplied any remaining locations will be unshuffled unless a single specific boss is
supplied in which case it will use singularity as noted above.
- [Available Bosses](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/Bosses.py#L135)
- [Available Arenas](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/Bosses.py#L150)
2021-01-17 01:15:46 +00:00
2021-01-25 02:31:33 +00:00
#### Examples
2021-01-17 01:15:46 +00:00
```yaml
boss_shuffle:
Turtle Rock-Trinexx;basic: 1
full: 2
Mothula: 3
Ganons Tower Bottom-Kholdstare;Trinexx;Kholdstare: 4
```
1. Would be basic boss shuffle but prevent Trinexx from appearing outside of Turtle Rock, as there's only one Trinexx in
the pool
2021-01-17 01:15:46 +00:00
2. Regular full boss shuffle. With a 2 in 10 chance to occur.
3. A Mothula Singularity, as Mothula works in any arena.
4. A Trinexx -> Kholdstare Singularity that prevents ice Trinexx in GT
2021-01-17 16:58:58 +00:00
### Items
2021-01-17 16:58:58 +00:00
- This module is disabled by default.
2021-01-18 04:07:53 +00:00
- Has the options from_pool, world, percentage, force and either item and location or items and locations
2021-01-17 16:58:58 +00:00
- All of these options support subweights
- percentage is the percentage chance for this block to trigger
- is a number in the range [0, 100], can be omitted entirely for 100%
2021-01-17 16:58:58 +00:00
- from_pool denotes if the item should be taken from the item pool, or be an additional item entirely.
- can be true or false, defaults to true when omitted
2021-01-17 16:58:58 +00:00
- world is the target world to place the item
- ignored if only one world is generated
- can be a number, to target that slot in the multiworld
- can be a name, to target that player's world
- can be true, to target any other player's world
2021-01-17 20:42:28 +00:00
- can be false, to target own world and is the default
- can be null, to target a random world
2021-01-25 02:31:33 +00:00
- force is either `silent`, `true` or `false`.
- `true` means the item has to be placed, or the generator aborts with an exception.
- `false` means the generator logs a warning if the placement can't be done.
- `silent` means that this entry is entirely ignored if the placement fails and is the default.
2021-01-17 16:58:58 +00:00
- Single Placement
- place a single item at a single location
- item denotes the Item to place
- location denotes the Location to place it into
2021-01-17 16:58:58 +00:00
- Multi Placement
- place multiple items into multiple locations, until either list is exhausted.
- items denotes the items to use, can be given a number to have multiple of that item
- locations lists the possible locations those items can be placed in
- placements are picked randomly, not sorted in any way
- Warning: Placing non-Dungeon Prizes on Prize locations and Prizes on non-Prize locations will break the game in
various ways.
- [Available Items](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/Items.py#L52)
- [Available Locations](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/Regions.py#L434)
2021-01-17 16:58:58 +00:00
#### Examples
2021-01-17 16:58:58 +00:00
```yaml
plando_items:
- item: # 1
2021-01-17 16:58:58 +00:00
Lamp: 1
Fire Rod: 1
location: Link's House
from_pool: true
world: true
percentage: 50
- items: # 2
2021-01-17 16:58:58 +00:00
Progressive Sword: 4
Progressive Bow: 1
Progressive Bow (Alt): 1
locations:
- Desert Palace - Big Chest
- Eastern Palace - Big Chest
- Tower of Hera - Big Chest
- Swamp Palace - Big Chest
- Thieves' Town - Big Chest
- Skull Woods - Big Chest
- Ice Palace - Big Chest
- Misery Mire - Big Chest
- Turtle Rock - Big Chest
- Palace of Darkness - Big Chest
world: false
- items: # 3
Red Pendant: 1
Green Pendant: 1
Blue Pendant: 1
locations:
- Desert Palace - Prize
- Eastern Palace - Prize
- Tower of Hera - Prize
from_pool: true
2021-01-17 16:58:58 +00:00
```
1. has a 50% chance to occur, which if it does places either the Lamp or Fire Rod in one's own Link's House and removes
the picked item from the item pool.
2. Always triggers and places the Swords and Bows into one's own Big Chests
3. Locks Pendants to The Light World and therefore Crystals to dark world
2021-01-17 01:15:46 +00:00
2021-01-17 16:58:58 +00:00
### Texts
2021-01-17 01:15:46 +00:00
- This module is disabled by default.
2021-01-25 02:31:33 +00:00
- Has the options `text`, `at`, and `percentage`
2021-01-17 01:15:46 +00:00
- percentage is the percentage chance for this text to be placed, can be omitted entirely for 100%
2021-01-17 16:58:58 +00:00
- text is the text to be placed.
- can be weighted.
- `\n` is a newline.
2021-01-25 02:31:33 +00:00
- `@` is the entered player's name.
- Warning: Text Mapper does not support full unicode.
- [Alphabet](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/Text.py#L758)
2021-01-17 01:15:46 +00:00
- at is the location within the game to attach the text to.
- can be weighted.
- [List of targets](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/Text.py#L1499)
2021-01-17 01:15:46 +00:00
#### Example
2021-01-17 01:15:46 +00:00
```yaml
plando_texts:
- text: "This is a plando.\nYou've been warned."
at:
uncle_leaving_text: 1
uncle_dying_sewer: 1
percentage: 50
```
2021-12-20 04:29:04 +00:00
![Example plando text at Uncle](https://cdn.discordapp.com/attachments/731214280439103580/794953870903083058/unknown.png)
This has a 50% chance to trigger at all. If it does, it throws a coin between `uncle_leaving_text`
and `uncle_dying_sewer`, then places the text "This is a plando. You've been warned." at that location.
### Connections
- This module is disabled by default.
2021-01-25 02:31:33 +00:00
- Has the options `percentage`, `entrance`, `exit` and `direction`.
- All options support subweights
- percentage is the percentage chance for this to be connected, can be omitted entirely for 100%
- Any Door has 4 total directions, as a door can be unlinked like in insanity ER
- entrance is the overworld door
- exit is the underworld exit
2021-01-25 02:31:33 +00:00
- direction can be `both`, `entrance` or `exit`
- doors can be found
in [this file](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/EntranceShuffle.py#L3852)
#### Example
```yaml
plando_connections:
- entrance: Links House
exit: Hyrule Castle Exit (West)
direction: both
- entrance: Hyrule Castle Entrance (West)
exit: Links House Exit
direction: both
```
The first block connects the overworld entrance that normally leads to Link's House to put you into the HC West Wing
instead, exiting from within there will put you at the Overworld exiting Link's House.
Without the second block, you'd still exit from within Link's House to outside Link's House and the left side Balcony
Entrance would still lead into HC West Wing