Document Connection Plando
and show where Connection Plando Errors come from
This commit is contained in:
parent
446893c504
commit
26314f7c13
|
@ -2251,7 +2251,10 @@ def plando_connect(world, player: int):
|
||||||
if world.plando_connections[player]:
|
if world.plando_connections[player]:
|
||||||
for connection in world.plando_connections[player]:
|
for connection in world.plando_connections[player]:
|
||||||
func = lookup[connection.direction]
|
func = lookup[connection.direction]
|
||||||
func(world, connection.entrance, connection.exit, player)
|
try:
|
||||||
|
func(world, connection.entrance, connection.exit, player)
|
||||||
|
except Exception as e:
|
||||||
|
raise Exception(f"Could not connect using {connection}") from e
|
||||||
|
|
||||||
|
|
||||||
LW_Dungeon_Entrances = ['Desert Palace Entrance (South)',
|
LW_Dungeon_Entrances = ['Desert Palace Entrance (South)',
|
||||||
|
|
|
@ -18,17 +18,17 @@
|
||||||
it defaults to vanilla
|
it defaults to vanilla
|
||||||
- Instructions are separated by a semicolon
|
- Instructions are separated by a semicolon
|
||||||
- Available Instructions:
|
- Available Instructions:
|
||||||
- Direct Placement:
|
- Direct Placement:
|
||||||
- Example: "Eastern Palace-Trinexx"
|
- Example: "Eastern Palace-Trinexx"
|
||||||
- Takes a particular Arena and particular boss, then places that boss into that arena
|
- Takes a particular Arena and particular boss, then places that boss into that arena
|
||||||
- Ganons Tower has 3 placements, "Ganons Tower Top", "Ganons Tower Middle" and "Ganons Tower Bottom"
|
- Ganons Tower has 3 placements, "Ganons Tower Top", "Ganons Tower Middle" and "Ganons Tower Bottom"
|
||||||
- Boss Placement:
|
- Boss Placement:
|
||||||
- Example: "Trinexx"
|
- Example: "Trinexx"
|
||||||
- Takes a particular boss and places that boss in any remaining slots in which this boss can function.
|
- 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.
|
- In this example, it would fill Desert Palace, but not Tower of Hera.
|
||||||
- Boss Shuffle:
|
- Boss Shuffle:
|
||||||
- Example: "simple"
|
- Example: "simple"
|
||||||
- Runs a particular boss shuffle mode to finish construction instead of vanilla placement, typically used as a last instruction.
|
- Runs a particular boss shuffle mode to finish construction instead of vanilla placement, typically used as a last instruction.
|
||||||
- [Available Bosses](https://github.com/Berserker66/MultiWorld-Utilities/blob/65fa39df95c90c9b66141aee8b16b7e560d00819/Bosses.py#L135)
|
- [Available Bosses](https://github.com/Berserker66/MultiWorld-Utilities/blob/65fa39df95c90c9b66141aee8b16b7e560d00819/Bosses.py#L135)
|
||||||
- [Available Arenas](https://github.com/Berserker66/MultiWorld-Utilities/blob/65fa39df95c90c9b66141aee8b16b7e560d00819/Bosses.py#L186)
|
- [Available Arenas](https://github.com/Berserker66/MultiWorld-Utilities/blob/65fa39df95c90c9b66141aee8b16b7e560d00819/Bosses.py#L186)
|
||||||
|
|
||||||
|
@ -52,25 +52,25 @@ boss_shuffle:
|
||||||
- Has the options from_pool, world, percentage and either item and location or items and locations
|
- Has the options from_pool, world, percentage and either item and location or items and locations
|
||||||
- All of these options support subweights
|
- All of these options support subweights
|
||||||
- percentage is the percentage chance for this block to trigger
|
- percentage is the percentage chance for this block to trigger
|
||||||
- is a number in the range [0, 100], can be omitted entirely for 100%
|
- is a number in the range [0, 100], can be omitted entirely for 100%
|
||||||
- from_pool denotes if the item should be taken from the item pool, or be an additional item entirely.
|
- 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
|
- can be true or false, defaults to true when omitted
|
||||||
- world is the target world to place the item
|
- world is the target world to place the item
|
||||||
- ignored if only one world is generated
|
- ignored if only one world is generated
|
||||||
- can be a number, to target that slot in the multiworld
|
- can be a number, to target that slot in the multiworld
|
||||||
- can be a name, to target that player's world
|
- can be a name, to target that player's world
|
||||||
- can be true, to target any other player's world
|
- can be true, to target any other player's world
|
||||||
- can be false, to target own world
|
- can be false, to target own world
|
||||||
- can be null, to target a random world
|
- can be null, to target a random world
|
||||||
- Single Placement
|
- Single Placement
|
||||||
- place a single item at a single location
|
- place a single item at a single location
|
||||||
- item denotes the Item to place
|
- item denotes the Item to place
|
||||||
- location denotes the Location to place it into
|
- location denotes the Location to place it into
|
||||||
- Multi Placement
|
- Multi Placement
|
||||||
- place multiple items into multiple locations, until either list is exhausted.
|
- 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
|
- 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
|
- locations lists the possible locations those items can be placed in
|
||||||
- placements are picked randomly, not sorted in any way
|
- placements are picked randomly, not sorted in any way
|
||||||
- [Available Items](https://github.com/Berserker66/MultiWorld-Utilities/blob/3b5ba161dea223b96e9b1fc890e03469d9c6eb59/Items.py#L26)
|
- [Available Items](https://github.com/Berserker66/MultiWorld-Utilities/blob/3b5ba161dea223b96e9b1fc890e03469d9c6eb59/Items.py#L26)
|
||||||
- [Available Locations](https://github.com/Berserker66/MultiWorld-Utilities/blob/3b5ba161dea223b96e9b1fc890e03469d9c6eb59/Regions.py#L418)
|
- [Available Locations](https://github.com/Berserker66/MultiWorld-Utilities/blob/3b5ba161dea223b96e9b1fc890e03469d9c6eb59/Regions.py#L418)
|
||||||
|
|
||||||
|
@ -112,14 +112,14 @@ The second example always triggers and places the Swords and Bows into one's own
|
||||||
- Has the options "text", "at" and "percentage"
|
- Has the options "text", "at" and "percentage"
|
||||||
- percentage is the percentage chance for this text to be placed, can be omitted entirely for 100%
|
- percentage is the percentage chance for this text to be placed, can be omitted entirely for 100%
|
||||||
- text is the text to be placed.
|
- text is the text to be placed.
|
||||||
- can be weighted.
|
- can be weighted.
|
||||||
- \n is a newline.
|
- \n is a newline.
|
||||||
- @ is the entered player's name.
|
- @ is the entered player's name.
|
||||||
- Warning: Text Mapper does not support full unicode.
|
- Warning: Text Mapper does not support full unicode.
|
||||||
- [Alphabet](https://github.com/Berserker66/MultiWorld-Utilities/blob/65fa39df95c90c9b66141aee8b16b7e560d00819/Text.py#L756)
|
- [Alphabet](https://github.com/Berserker66/MultiWorld-Utilities/blob/65fa39df95c90c9b66141aee8b16b7e560d00819/Text.py#L756)
|
||||||
- at is the location within the game to attach the text to.
|
- at is the location within the game to attach the text to.
|
||||||
- can be weighted.
|
- can be weighted.
|
||||||
- [List of targets](https://github.com/Berserker66/MultiWorld-Utilities/blob/65fa39df95c90c9b66141aee8b16b7e560d00819/Text.py#L1498)
|
- [List of targets](https://github.com/Berserker66/MultiWorld-Utilities/blob/65fa39df95c90c9b66141aee8b16b7e560d00819/Text.py#L1498)
|
||||||
|
|
||||||
#### Example
|
#### Example
|
||||||
```yaml
|
```yaml
|
||||||
|
@ -134,3 +134,32 @@ plando_texts:
|
||||||
This has a 50% chance to trigger at all, if it does,
|
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
|
it throws a coin between "uncle_leaving_text" and "uncle_dying_sewer", then places the text
|
||||||
"This is a plando.\nYou've been warned." at that location.
|
"This is a plando.\nYou've been warned." at that location.
|
||||||
|
|
||||||
|
### Connections
|
||||||
|
- This module is disabled by default.
|
||||||
|
- 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
|
||||||
|
- direction can be "both", "entrance" or "exit"
|
||||||
|
- doors can be found in [this file](https://github.com/Berserker66/MultiWorld-Utilities/blob/main/EntranceShuffle.py)
|
||||||
|
|
||||||
|
|
||||||
|
#### 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
|
Loading…
Reference in New Issue