Skip to content

Conversation

Pepper0ni
Copy link
Contributor

@Pepper0ni Pepper0ni commented Sep 2, 2025

Refactors the item pool to fix numerous bugs, especially with Plentiful item pools, makes ship exclusive items affected by item pool, and changes ice trap settings to be more clear and consistent to the user.

Full change-list:

  • Fixes issue with gerudo membership card not being in item pool in certain settings combinations when it should be.
  • Ice Trap settings have been completely changed into 3 options:
    -- Base Ice Traps: whether or not the item pool's normal ice traps are in the pool. This on and nothing else is equivalent to the old "Normal" setting.
    -- Ice trap Count: A fixed number of additional ice traps, added at the same point as the base pool
    -- Ice trap Percent: The chance for each junk item to be replaced with an Ice trap. Does not affect Lesser items. Setting this to 100 is the equivalent of Onslaught.
  • All junk is now considered the same, whether it's "added junk" or "base pool junk", removing the implantation-based ambiguity of Extra Ice Traps and Ice Trap Mayhem.
  • Items are always added to the pool in a fixed order: base pool major items, then plentiful pool items, then ice traps, then lesser items (shield and rupees worth 50 or more), then junk added into the pool, then any remaining spaces are filled with random junk. This fixes a bug where plentiful items may not be placed if there is not enough space to place all base pool junk as well.
  • Starting items are no longer added to the pool then removed from it, allowing for better allocation of items in tight situations.
  • When a normal bottle ice trap is chosen as a trick model, it now chooses a random contents to display instead of the same one every seed, and can now choose a model that also exists in the seed as a real item.
  • Keys (dungeon and overworld), the fishing rod, and maybe a few other things are now possible ice trap models. (it's not added as part of a helper function, so I may have missed something). Overworld keys all share the same "slot", similar to how bottles work, to avoid flooding the trick model pool with identical looking keys.
  • Added trick names for the new keys.
  • Fixed an issue where trick names could be misassigned if the RandomiserGet of the item was greater than 255.
  • Songs you start with from settings are no longer possible trick models.
  • Starting with more or less hearts no longer changes the final given heart total for a seed, you will always be able to reach 12 max hearts on Scarce and 20 on Normal and Plentiful.

I have not been able to test this fully so please test various odd settings combinations and check the item pool to make sure everything is in proper counts. Plandomiser's "empty all locations" button is good for this.

Build Artifacts

Copy link
Contributor

@Pepe20129 Pepe20129 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we shouldn't negate .Is calls with ! and instead use .IsNot to avoid confusuion as the ! is easy to miss.

Imo, all switch statements should have defaults that assert to avoid us missing adding new cases in the future.

@serprex
Copy link
Contributor

serprex commented Sep 25, 2025

Sent Pepper0ni spoiler where Weird Egg / Zelda's Letter are shuffled while starting with Zelda's Letter fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants