From 84b6ece31d4a7c97244aa06c470ea6567563953e Mon Sep 17 00:00:00 2001 From: Joethepic <60947591+Joethepic@users.noreply.github.com> Date: Sun, 12 Jun 2022 16:24:19 -0500 Subject: [PATCH] Itemlink tutorial improvement (#611) * Update Items.py * Update advanced_settings_en.md * Update Items.py * Update advanced_settings_en.md * Update advanced_settings_en.md * improve consistency Co-authored-by: alwaysintreble * fix formating on game setting in example Co-authored-by: alwaysintreble * change version Co-authored-by: alwaysintreble * Update advanced_settings_en.md * Update advanced_settings_en.md * Update advanced_settings_en.md * tutorials: add description for game weight and properly document item links * tutorials: add description for null replacement * Update worlds/generic/docs/advanced_settings_en.md Co-authored-by: alwaysintreble * Update advanced_settings_en.md * Update advanced_settings_en.md * Update worlds/generic/docs/advanced_settings_en.md Co-authored-by: Hussein Farran * Update worlds/generic/docs/advanced_settings_en.md Co-authored-by: Hussein Farran * Update worlds/generic/docs/advanced_settings_en.md Co-authored-by: Hussein Farran Co-authored-by: alwaysintreble Co-authored-by: Hussein Farran --- worlds/generic/docs/advanced_settings_en.md | 36 +++++++++++++++------ worlds/minecraft/Items.py | 1 - 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/worlds/generic/docs/advanced_settings_en.md b/worlds/generic/docs/advanced_settings_en.md index de29db1d..11d01c3f 100644 --- a/worlds/generic/docs/advanced_settings_en.md +++ b/worlds/generic/docs/advanced_settings_en.md @@ -125,9 +125,7 @@ guide: [Archipelago Plando Guide](/tutorial/Archipelago/plando/en) * `exclude_locations` lets you define any locations that you don't want to do and during generation will force a "junk" item which isn't necessary for progression to go in these locations. -* `item_links` allows you to link up items so that when one players finds the item all other participating players also - get it. - +* `item_links` allows players to link their items into a group with the same item link name and game. The items declared in `item_pool` get combined and when an item is found for the group, all players in the group receive it. Item links can also have local and non local items, forcing the items to either be placed within the worlds of the group or in worlds outside the group. If players have a varying amount of a specific item in the link, the lowest amount from the players will be the amount put into the group. ### Random numbers Options taking a choice of a number can also use a variety of `random` options to choose a number randomly. @@ -148,9 +146,11 @@ Options taking a choice of a number can also use a variety of `random` options t description: An example using various advanced options name: Example Player -game: A Link to the Past +game: + A Link to the Past: 10 + Timespinner: 10 requires: - version: 0.2.0 + version: 0.3.2 accessibility: none progression_balancing: on A Link to the Past: @@ -191,14 +191,24 @@ triggers: bigkey_shuffle: any_world map_shuffle: any_world compass_shuffle: any_world +Timespinner: + item_links: # Share part of your item pool with other players. + - name: TSAll + item_pool: + - Everything + local_items: + - Twin Pyramid Key + - Timespinner Wheel + replacement_item: null + ``` #### 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. * `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. -* `requires` is set to require release version 0.2.0 or higher. +* `game` has an equal chance of being either `A Link to the Past` or `Timespinner` with a 10/20 chance for each. The reason for this is becuase each game has a weight of 10 and the toal of all weights is 20. +* `requires` is set to required release version 0.3.2 or higher. * `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. * `progression_balancing` is set on, giving it the default value, meaning we will likely receive important items @@ -225,9 +235,15 @@ triggers: * `start_location_hints` gives us a starting hint for the `Spike Cave` location available at the beginning of the multiworld that can be used for no cost. * `exclude_locations` forces a not important item to be placed on the `Cave 45` location. -* `item_links` causes all players with the same `item_links` settings to share a `Fire Rod` and `Ice Rod`. Extra - `Rupee (1)` are put in the item pool instead of additional Rods. - +* `item_links` + * For `A Link to the Past` all players in the `rods` item link group will share their fire and ice rods and the player +items will be replaced with single rupees. + * For `Timespinner` all players in the `TSAll` item link group will share their entire item pool and the`Twin Pyramid + * For `A Link to the Past` all players in the `rods` item link group will share their fire and ice rods and the player +items will be replaced with single rupees. + * For `Timespinner` all players in the `TSAll` item link group will share their entire item pool and the `Twin Pyramid +Key` and `Timespinner Wheel` will be forced among the worlds of those in the group. The `null` replacement item will, instead +of forcing a specific chosen item, allow the generator to randomly pick a filler item in place of putting in another one of the linked item. * `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` diff --git a/worlds/minecraft/Items.py b/worlds/minecraft/Items.py index 0ac0a28d..6cf8447c 100644 --- a/worlds/minecraft/Items.py +++ b/worlds/minecraft/Items.py @@ -60,7 +60,6 @@ item_table = { "Lead": ItemData(45045, True), "Bee Trap": ItemData(45100, False), - "Blaze Rods": ItemData(None, True), "Defeat Ender Dragon": ItemData(None, True), "Defeat Wither": ItemData(None, True),