Merge from main and reformat tutorials.

This commit is contained in:
Hussein Farran 2022-01-17 15:37:34 -05:00
parent 9599f54b06
commit 38b98a97d1
5 changed files with 104 additions and 61 deletions

View File

@ -112,13 +112,13 @@ See the plando guide for more info on plando options. Plando
guide: [Archipelago Plando Guide](/tutorial/archipelago/plando/en) guide: [Archipelago Plando Guide](/tutorial/archipelago/plando/en)
* `start_inventory` will give any items defined here to you at the beginning of your game. The format for this must be * `start_inventory` will give any items defined here to you at the beginning of your game. The format for this must be
the name as it appears in the game files and the amount you would like to start with. For example `Rupees(5): 6` which the name as it appears in the game files and the amount you would like to start with. For example `Rupees(5): 6` which
will give you 30 rupees. will give you 30 rupees.
* `start_hints` gives you free server hints for the defined item/s at the beginning of the game allowing you to hint for * `start_hints` gives you free server hints for the defined item/s at the beginning of the game allowing you to hint for
the location without using any hint points. the location without using any hint points.
* `local_items` will force any items you want to be in your world instead of being in another world. * `local_items` will force any items you want to be in your world instead of being in another world.
* `non_local_items` is the inverse of `local_items` forcing any items you want to be in another world and won't be located * `non_local_items` is the inverse of `local_items` forcing any items you want to be in another world and won't be
in your own. located in your own.
* `start_location_hints` allows you to define a location which you can then hint for to find out what item is located in * `start_location_hints` allows you to define a location which you can then hint for to find out what item is located in
it to see how important the location is. it to see how important the location is.
@ -131,12 +131,13 @@ Options taking a choice of a number can also use a variety of `random` options t
* `random` will choose a number allowed for the setting at random * `random` will choose a number allowed for the setting at random
* `random-low` will choose a number allowed for the setting at random, but will be weighted towards lower numbers * `random-low` will choose a number allowed for the setting at random, but will be weighted towards lower numbers
* `random-middle` will choose a number allowed for the setting at random, but will be weighted towards the middle of the range * `random-middle` will choose a number allowed for the setting at random, but will be weighted towards the middle of the
range
* `random-high` will choose a number allowed for the setting at random, but will be weighted towards higher numbers * `random-high` will choose a number allowed for the setting at random, but will be weighted towards higher numbers
* `random-range-#-#` will choose a number at random from between the specified numbers. For example `random-range-40-60` * `random-range-#-#` will choose a number at random from between the specified numbers. For example `random-range-40-60`
will choose a number between 40 and 60 will choose a number between 40 and 60
* `random-range-low-#-#`, `random-range-middle-#-#`, and `random-range-high-#-#` will choose a number at random from the * `random-range-low-#-#`, `random-range-middle-#-#`, and `random-range-high-#-#` will choose a number at random from the
specified numbers, but with the specified weights specified numbers, but with the specified weights
### Example ### Example
@ -184,34 +185,39 @@ triggers:
``` ```
#### This is a fully functional yaml file that will do all the following things: #### This is a fully functional yaml file that will do all the following things:
* `description` gives us a general overview so if we pull up this file later we can understand the intent. * `description` gives us a general overview so if we pull up this file later we can understand the intent.
* `name` is `Example Player` and this will be used in the server console when sending and receiving items. * `name` is `Example Player` and this will be used in the server console when sending and receiving items.
* `game` is set to `A Link to the Past` meaning that is what game we will play with this file. * `game` is set to `A Link to the Past` meaning that is what game we will play with this file.
* `requires` is set to require release version 0.2.0 or higher. * `requires` is set to require release version 0.2.0 or higher.
* `accesibility` is set to `none` which will set this seed to beatable only meaning some locations and items may be * `accesibility` is set to `none` which will set this seed to beatable only meaning some locations and items may be
completely inaccessible but the seed will still be completable. completely inaccessible but the seed will still be completable.
* `progression_balancing` is set on meaning we will likely receive important items earlier increasing the chance of having * `progression_balancing` is set on meaning we will likely receive important items earlier increasing the chance of
things to do. having things to do.
* `A Link to the Past` defines a location for us to nest all the game options we would like to use for our game `A Link to the Past`. * `A Link to the Past` defines a location for us to nest all the game options we would like to use for our
* `smallkey_shuffle` is an option for A Link to the Past which determines how dungeon small keys are shuffled. In this example game `A Link to the Past`.
we have a 1/2 chance for them to either be placed in their original dungeon and a 1/2 chance for them to be placed anywhere * `smallkey_shuffle` is an option for A Link to the Past which determines how dungeon small keys are shuffled. In this
amongst the multiworld. example we have a 1/2 chance for them to either be placed in their original dungeon and a 1/2 chance for them to be
* `crystals_needed_for_gt` determines the number of crystals required to enter the Ganon's Tower entrance. In this example placed anywhere amongst the multiworld.
a random number will be chosen from the allowed range for this setting (0 through 7) but will be weighted towards a lower number. * `crystals_needed_for_gt` determines the number of crystals required to enter the Ganon's Tower entrance. In this
* `crystals_needed_for_ganon` determines the number of crystals required to beat Ganon. In this example a number example a random number will be chosen from the allowed range for this setting (0 through 7) but will be weighted
between 1 and 7 will be chosen at random, weighted towards a high number. towards a lower number.
* `start_inventory` defines an area for us to determine what items we would like to start the seed with. For this example * `crystals_needed_for_ganon` determines the number of crystals required to beat Ganon. In this example a number between
we have: 1 and 7 will be chosen at random, weighted towards a high number.
* `Pegasus Boots: 1` which gives us 1 copy of the Pegasus Boots * `start_inventory` defines an area for us to determine what items we would like to start the seed with. For this
* `Bombs (3)` gives us 2 packs of 3 bombs or 6 total bombs example we have:
* `start_hints` gives us a starting hint for the hammer available at the beginning of the multiworld which we can use with no cost. * `Pegasus Boots: 1` which gives us 1 copy of the Pegasus Boots
* `Bombs (3)` gives us 2 packs of 3 bombs or 6 total bombs
* `start_hints` gives us a starting hint for the hammer available at the beginning of the multiworld which we can use
with no cost.
* `local_items` forces the `Bombos`, `Ether`, and `Quake` medallions to all be placed within our own world, meaning we * `local_items` forces the `Bombos`, `Ether`, and `Quake` medallions to all be placed within our own world, meaning we
have to find it ourselves. have to find it ourselves.
* `non_local_items` forces the `Moon Pearl` to be placed in someone else's world, meaning we won't be able to find it. * `non_local_items` forces the `Moon Pearl` to be placed in someone else's world, meaning we won't be able to find it.
* `start_location_hints` gives us a starting hint for the `Spike Cave` location available at the beginning of the multiworld * `start_location_hints` gives us a starting hint for the `Spike Cave` location available at the beginning of the
that can be used for no cost. multiworld that can be used for no cost.
* `exclude_locations` forces a not important item to be placed on the `Cave 45` location. * `exclude_locations` forces a not important item to be placed on the `Cave 45` location.
* `triggers` allows us to define a trigger such that if our `smallkey_shuffle` option happens to roll the `any_world` * `triggers` allows us to define a trigger such that if our `smallkey_shuffle` option happens to roll the `any_world`
result it will also ensure that `bigkey_shuffle`, `map_shuffle`, and `compass_shuffle` are also forced to the `any_world` result it will also ensure that `bigkey_shuffle`, `map_shuffle`, and `compass_shuffle` are also forced to
result. the `any_world`
result.

View File

@ -16,16 +16,19 @@ On the website plando will already be enabled. If you will be generating the gam
enabled (opt-in). enabled (opt-in).
* To opt-in go to the archipelago installation (default: `C:\ProgramData\Archipelago`), open the host.yaml with a text * To opt-in go to the archipelago installation (default: `C:\ProgramData\Archipelago`), open the host.yaml with a text
editor and find the `plando_options` key. The available plando modules can be enabled by adding them after this such as editor and find the `plando_options` key. The available plando modules can be enabled by adding them after this such
`plando_options: bosses, items, texts, connections`. as
* If you are not the one doing the generation or even if you are you can add to the `requires` section of your yaml so that it will throw an error if the options that you need to generate properly are not enabled to ensure you will get the results you desire. Only enter in the plando modules that you are using here but it should look like: `plando_options: bosses, items, texts, connections`.
* If you are not the one doing the generation or even if you are you can add to the `requires` section of your yaml so
that it will throw an error if the options that you need to generate properly are not enabled to ensure you will get
the results you desire. Only enter in the plando modules that you are using here but it should look like:
```yaml ```yaml
requires: requires:
version: current.version.number version: current.version.number
plando: bosses, items, texts, connections plando: bosses, items, texts, connections
``` ```
## Item Plando ## Item Plando
Item plando allows a player to place an item in a specific location or specific locations, place multiple items into a Item plando allows a player to place an item in a specific location or specific locations, place multiple items into a

View File

@ -20,20 +20,27 @@ General plando guide: [Archipelago Plando Guide](/tutorial/archipelago/plando/en
Link to the Past plando guide: [LttP Plando Guide](/tutorial/zelda3/plando/en) Link to the Past plando guide: [LttP Plando Guide](/tutorial/zelda3/plando/en)
## Trigger use ## Trigger use
Triggers may be defined in either the root or in the relevant game sections. Generally, The best place to do this is the bottom of the yaml for clear organization.
- Triggers comprise the trigger section and then each trigger must have an `option_category`, `option_name`, and Triggers may be defined in either the root or in the relevant game sections. Generally, The best place to do this is the
`option_result` from which it will react to and then an `options` section for the definition of what will happen. bottom of the yaml for clear organization.
- Triggers comprise the trigger section and then each trigger must have an `option_category`, `option_name`, and
`option_result` from which it will react to and then an `options` section for the definition of what will happen.
- `option_category` is the defining section from which the option is defined in. - `option_category` is the defining section from which the option is defined in.
- Example: `A Link to the Past` - Example: `A Link to the Past`
- This is the root category the option is located in. If the option you're triggering off of is in root then you would use `null`, otherwise this is the game for which you want this option trigger to activate. - This is the root category the option is located in. If the option you're triggering off of is in root then you
would use `null`, otherwise this is the game for which you want this option trigger to activate.
- `option_name` is the option setting from which the triggered choice is going to react to. - `option_name` is the option setting from which the triggered choice is going to react to.
- Example: `shop_item_slots` - Example: `shop_item_slots`
- This can be any option from any category defined in the yaml file in either root or a game section. - This can be any option from any category defined in the yaml file in either root or a game section.
- `option_result` is the result of this option setting from which you would like to react. - `option_result` is the result of this option setting from which you would like to react.
- Example: `15` - Example: `15`
- Each trigger must be used for exactly one option result. If you would like the same thing to occur with multiple results you would need multiple triggers for this. - Each trigger must be used for exactly one option result. If you would like the same thing to occur with multiple
- `options` is where you define what will happen when this is detected. This can be something as simple as ensuring another option also gets selected or placing an item in a certain location. It is possible to have multiple things happen in this section. results you would need multiple triggers for this.
- Example: - `options` is where you define what will happen when this is detected. This can be something as simple as ensuring
another option also gets selected or placing an item in a certain location. It is possible to have multiple things
happen in this section.
- Example:
```yaml ```yaml
A Link to the Past: A Link to the Past:
start_inventory: start_inventory:
@ -77,11 +84,15 @@ For example:
Timespinner: Timespinner:
Inverted: true Inverted: true
``` ```
In this example if your world happens to roll SpecificKeycards then your game will also start in inverted. In this example if your world happens to roll SpecificKeycards then your game will also start in inverted.
It is also possible to use imaginary names in options to trigger specific settings. You can use these made up names in either your main options or to trigger from another trigger. Currently, this is the only way to trigger on "setting 1 AND setting 2". It is also possible to use imaginary names in options to trigger specific settings. You can use these made up names in
either your main options or to trigger from another trigger. Currently, this is the only way to trigger on "setting 1
AND setting 2".
For example: For example:
```yaml ```yaml
triggers: triggers:
- option_category: Secret of Evermore - option_category: Secret of Evermore
@ -112,4 +123,7 @@ For example:
difficulty: mystery difficulty: mystery
``` ```
In this example (thanks to @Black-Sliver) if the `pupdunk` option is rolled then the difficulty values will be rolled again using the new options `normal`, `pupdunk_hard`, and `pupdunk_mystery`, and the exp modifier will be rerolled using new weights for 150 and 200. This allows for two more triggers that will only be used for the new `pupdunk_hard` and `pupdunk_mystery` options so that they will only be triggered on "pupdunk AND hard/mystery". In this example (thanks to @Black-Sliver) if the `pupdunk` option is rolled then the difficulty values will be rolled
again using the new options `normal`, `pupdunk_hard`, and `pupdunk_mystery`, and the exp modifier will be rerolled using
new weights for 150 and 200. This allows for two more triggers that will only be used for the new `pupdunk_hard`
and `pupdunk_mystery` options so that they will only be triggered on "pupdunk AND hard/mystery".

View File

@ -2,16 +2,21 @@
## Benötigte Software ## Benötigte Software
- [Timespinner (Steam)](https://store.steampowered.com/app/368620/Timespinner/), [Timespinner (Humble)](https://www.humblebundle.com/store/timespinner) oder [Timespinner (GOG)](https://www.gog.com/game/timespinner) (andere Versionen werden nicht unterstützt) - [Timespinner (Steam)](https://store.steampowered.com/app/368620/Timespinner/)
, [Timespinner (Humble)](https://www.humblebundle.com/store/timespinner)
oder [Timespinner (GOG)](https://www.gog.com/game/timespinner) (andere Versionen werden nicht unterstützt)
- [Timespinner Randomizer](https://github.com/JarnoWesthof/TsRandomizer) - [Timespinner Randomizer](https://github.com/JarnoWesthof/TsRandomizer)
## Wie funktioniert's? ## Wie funktioniert's?
Der Timespinner Randomizer lädt die Timespinner.exe im gleichen Verzeichnis und verändert seine Speicherinformationen um die Randomisierung der Gegenstände zu erlauben Der Timespinner Randomizer lädt die Timespinner.exe im gleichen Verzeichnis und verändert seine Speicherinformationen um
die Randomisierung der Gegenstände zu erlauben
## Installationsanweisungen ## Installationsanweisungen
1. Die aktuellsten Dateien des Randomizers findest du ganz oben auf dieser Webseite: [Timespinner Randomizer Releases](https://github.com/JarnoWesthof/TsRandomizer/releases). Lade dir unter 'Assets' die .zip Datei für dein Betriebssystem herunter 1. Die aktuellsten Dateien des Randomizers findest du ganz oben auf dieser
Webseite: [Timespinner Randomizer Releases](https://github.com/JarnoWesthof/TsRandomizer/releases). Lade dir unter '
Assets' die .zip Datei für dein Betriebssystem herunter
2. Entpacke die .zip Datei im Ordner, in dem das Spiel Timespinner installiert ist 2. Entpacke die .zip Datei im Ordner, in dem das Spiel Timespinner installiert ist
## Den Randomizer starten ## Den Randomizer starten
@ -23,19 +28,23 @@ Der Timespinner Randomizer lädt die Timespinner.exe im gleichen Verzeichnis und
... im Ordner in dem die Inhalte aus der .zip Datei entpackt wurden ... im Ordner in dem die Inhalte aus der .zip Datei entpackt wurden
Weitere Informationen zum Randomizer findest du hier: [ReadMe](https://github.com/JarnoWesthof/TsRandomizer) Weitere Informationen zum Randomizer findest du hier: [ReadMe](https://github.com/JarnoWesthof/TsRandomizer)
## An einer Multiworld teilnehmen ## An einer Multiworld teilnehmen
1. Starte den Randomizer wie unter [Den Randomizer starten](#Den-Randomizer-starten) beschrieben 1. Starte den Randomizer wie unter [Den Randomizer starten](#Den-Randomizer-starten) beschrieben
2. Wähle "New Game" 2. Wähle "New Game"
3. Wechsle "<< Select Seed >>" zu "<< Archiplago >>" indem du "links" auf deinem Controller oder der Tastatur drückst 3. Wechsle "<< Select Seed >>" zu "<< Archiplago >>" indem du "links" auf deinem Controller oder der Tastatur drückst
4. Wähle "<< Archipelago >>" um ein neues Menu zu öffnen, wo du deine Logininformationen für Archipelago eingeben kannst 4. Wähle "<< Archipelago >>" um ein neues Menu zu öffnen, wo du deine Logininformationen für Archipelago eingeben kannst
* ANMERKUNG: Die Eingabefelder unterstützen das Einfügen von Informationen mittels 'Ctrl + V' * ANMERKUNG: Die Eingabefelder unterstützen das Einfügen von Informationen mittels 'Ctrl + V'
5. Wähle "Connect" 5. Wähle "Connect"
6. Wenn alles funktioniert hat, wechselt das Spiel zurück zur Auswahl des Schwierigkeitsgrads und das Spiel startet, sobald du einen davon ausgewählt hast 6. Wenn alles funktioniert hat, wechselt das Spiel zurück zur Auswahl des Schwierigkeitsgrads und das Spiel startet,
sobald du einen davon ausgewählt hast
## Woher bekomme ich eine Konfigurationsdatei? ## Woher bekomme ich eine Konfigurationsdatei?
Die [Player Settings](https://archipelago.gg/games/Timespinner/player-settings) Seite auf der Website erlaubt dir, persönliche Einstellungen zu definieren und diese in eine Konfigurationsdatei zu exportieren
Die [Player Settings](https://archipelago.gg/games/Timespinner/player-settings) Seite auf der Website erlaubt dir,
persönliche Einstellungen zu definieren und diese in eine Konfigurationsdatei zu exportieren
* Die Timespinner Randomizer Option "StinkyMaw" ist in Archipelago Seeds aktuell immer an * Die Timespinner Randomizer Option "StinkyMaw" ist in Archipelago Seeds aktuell immer an
* Die Timespinner Randomizer Optionen "ProgressiveVerticalMovement" & "ProgressiveKeycards" werden in Archipelago Seeds aktuell nicht unterstützt * Die Timespinner Randomizer Optionen "ProgressiveVerticalMovement" & "ProgressiveKeycards" werden in Archipelago Seeds
aktuell nicht unterstützt

View File

@ -2,29 +2,40 @@
## Required Software ## Required Software
- [Timespinner (Steam)](https://store.steampowered.com/app/368620/Timespinner/), [Timespinner (Humble)](https://www.humblebundle.com/store/timespinner) or [Timespinner (GOG)](https://www.gog.com/game/timespinner) (other versions are not supported) - [Timespinner (Steam)](https://store.steampowered.com/app/368620/Timespinner/)
, [Timespinner (Humble)](https://www.humblebundle.com/store/timespinner)
or [Timespinner (GOG)](https://www.gog.com/game/timespinner) (other versions are not supported)
- [Timespinner Randomizer](https://github.com/JarnoWesthof/TsRandomizer) - [Timespinner Randomizer](https://github.com/JarnoWesthof/TsRandomizer)
## General Concept ## General Concept
The Timespinner Randomizer loads Timespinner.exe from the same folder, and alters its state in memory to allow for randomization of the items The Timespinner Randomizer loads Timespinner.exe from the same folder, and alters its state in memory to allow for
randomization of the items
## Installation Procedures ## Installation Procedures
Download latest release on [Timespinner Randomizer Releases](https://github.com/JarnoWesthof/TsRandomizer/releases) you can find the .zip files on the releases page. Download the zip for your current platform. Then extract the zip to the folder where your Timespinner game is installed. Then just run TsRandomizer.exe (on Windows) or TsRandomizer.bin.x86_64 (on Linux) or TsRandomizer.bin.osx (on Mac) instead of Timespinner.exe to start the game in randomized mode. For more info see the [ReadMe](https://github.com/JarnoWesthof/TsRandomizer) Download latest release on [Timespinner Randomizer Releases](https://github.com/JarnoWesthof/TsRandomizer/releases) you
can find the .zip files on the releases page. Download the zip for your current platform. Then extract the zip to the
folder where your Timespinner game is installed. Then just run TsRandomizer.exe (on Windows) or
TsRandomizer.bin.x86_64 (on Linux) or TsRandomizer.bin.osx (on Mac) instead of Timespinner.exe to start the game in
randomized mode. For more info see the [ReadMe](https://github.com/JarnoWesthof/TsRandomizer)
## Joining a MultiWorld Game ## Joining a MultiWorld Game
1. Run TsRandomizer.exe 1. Run TsRandomizer.exe
2. Select "New Game" 2. Select "New Game"
3. Switch "<< Select Seed >>" to "<< Archipelago >>" by pressing left on your controller or keyboard 3. Switch "<< Select Seed >>" to "<< Archipelago >>" by pressing left on your controller or keyboard
4. Select "<< Archipelago >>" to open a new menu where you can enter your Archipelago login credentials 4. Select "<< Archipelago >>" to open a new menu where you can enter your Archipelago login credentials
* NOTE: the input fields support Ctrl + V pasting of values * NOTE: the input fields support Ctrl + V pasting of values
5. Select "Connect" 5. Select "Connect"
6. If all went well you will be taken back to the difficulty selection menu and the game will start as soon as you select a difficulty 6. If all went well you will be taken back to the difficulty selection menu and the game will start as soon as you
select a difficulty
## Where do I get a config file? ## Where do I get a config file?
The [Player Settings](https://archipelago.gg/games/Timespinner/player-settings) page on the website allows you to configure your personal settings and export them into a config file
The [Player Settings](https://archipelago.gg/games/Timespinner/player-settings) page on the website allows you to
configure your personal settings and export them into a config file
* The Timespinner Randomizer option "StinkyMaw" is currently always enabled for Archipelago generated seeds * The Timespinner Randomizer option "StinkyMaw" is currently always enabled for Archipelago generated seeds
* The Timespinner Randomizer options "ProgressiveVerticalMovement" & "ProgressiveKeycards" are currently not supported on Archipelago generated seeds * The Timespinner Randomizer options "ProgressiveVerticalMovement" & "ProgressiveKeycards" are currently not supported
on Archipelago generated seeds