* makes grub hunt goal option that calculates the total available grubs (including item link replacements) and requires all of them to be gathered for goal completion
* update slot data name for grub count
* add option to set number needed for grub hub
* updates to grub hunt goal based on review
* copy/paste fix
* account for 'any' goal and fix overriding non-grub goals
* making sure godhome is in logic for any and removing redundancy on completion condition
* fix typing
* i hate typing
* move to stage_pre_fill
* modify "any" goal so all goals are in logic under minimal settings
* rewrite grub counting to create lookups for grubs and groups that can be reused
* use generator instead of list comprehension
* fix whitespace merging wrong
* minor code cleanup
* updates HK to consistently use world.random, use world.options, don't use world = self.multiworld, and remove some things from the logicMixin
* Update HK to new options dataclass
* Move completion condition helpers to Rules.py
* updates from review
Fixing three bugs:
1. Made Salubra Charm Shop Slots use the actual options value and not the Iselda Shop Slots value.
2. Made Mask Shards no longer considered Filler but instead Progression so they can actually be used for access requirements that require damage boosts.
3. Fixed goal requirements to account for Focus being required for The Hollow Knight and Sealed Siblings endings and adjusted the Radiance and Any goal requirements accordingly.
Updated Setup Guide:
Changed to mention Scarab+ instead of Scarab (it is better maintained and has several quality of life improvements and fixes a bug for XBox Game Pass).
Added info about how to use Scarab+ with XBox Game Pass.
* Fix wrapping too early if docstring is within 120 characters and re-indent other lines.
* Remove auto-word wrapping and tweaked all worlds' option docstrings formatting.
Options should wrap around the 120 character mark to prevent template files from being too long horizontally. This also allows manual-indentation to work again.
* Fix missing '#' on empty lines in output from docstring.
This is a combined PR for assorted Hollow Knight updates for June 2022 that have cleared testing. It supersedes any HK-exclusive PRs open by myself or @Alchav unless stated otherwise.
Summary of changes below:
* Implement Split Claw, Split Cloak, Split Superdash, Randomize Nail, Randomize Focus, Randomize Swim and Elevator
* Pass options (@Alchav)
* Add support for Deathlink with three different modes (@dewiniaid)
* Add customizable additional shop slots per-shop (@Alchav) and overall (@dewiniaid)
* Overhaul shop cost output to be more generic and account for all locations with standard costs (such as Stag Stations, Cornifer, and Divine) (@dewiniaid)
* Add "CostSanity", allowing random prices using any cost type to be chosen for any location with a cost. (e.g. a Stag station requiring 15 grubs to obtain an item)
* Item classification fixes (Map and Journal items are fillter, Mask Shards/Pale Ore/Vessel Fragments are useful) (@Alchav)
* Fix Ijii -> Jiji (@Alchav )
* General code quality updates
The above changes are only for the HK world.
* Hollow Knight updates:
- Add configurable goals (Any, THK, Siblings, Radiance)
- Change base logic to require Opened_Black_Egg_Temple instead of
requiring 3 dreamers. This is future-proof for transition rando,
where Black Egg might not have been located yet.
- Add combat logic for THK and Radiance on par with Rando4's boss logic,
so itemless HK shouldn't be required.
- Existing completion logic now uses Black_Egg_te
- Add White Palace options
(Exclude, King Fragment Only, No Path of Pain, Include)
- Excluded WP may still be required for King Fragment if Charms are
not randomized
- Simply don't place WP locations that are excluded
- Distinguish between POP locations (required for POP), WP checks (
actual item locations), WP transitions (relevant for future transition
rando), and WP events (logically required to reach King Fragment)
- Many transitions were listed twice. Remove duplicates.
- Sort transitions by scene
- For randomizable locations that have no logical significance when not
randomized, simply skip adding them to the pool entirely for
theoretically faster generation.
* Hollow Knight updates
- Support random starting geo up to 1000 geo.
- Always include locations rather than dropping unrandomized "logicless"
ones, as it is required to best support same-slot coop.
* Options: introduce SpecialRange
* Include SpecialRange data in player-settings and weighted-settings JSON files
* Add support for SpecialRange to player-settings pages
* Add support for SpecialRange options to weighted-settings. Also fixed a bug which would cause the page to crash if an unknown setting was detected.
Co-authored-by: Chris Wilson <chris@legendserver.info>