* 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.
* rename references to `Multiworld` in core to `multiworld` instead of `world`
* fix smz3
* fix oot
* fix low hanging fruit
* revert mysteriously broken spacing in world api.md
* fix more randomly broken spacing
* hate
* that better be all of it
* begrudgingly move over smw
* ._.
* missed some worlds
* this is getting tedious now
* Missed some self.world definitions
Co-authored-by: espeon65536 <espeon65536@gmail.com>
Co-authored-by: Zach Parks <zach@alliware.com>
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.
items are marked as advancement if they have an additional effect, so instead of a lookup we can just refer to a bool that's already local as a quick pre-check
* KH: what? yeah, it's HK
someone this hadn't been spotted yet.
* KH: also fix the start AST Node, just in case we add those in at some point (currently they resolve to True/False anyway)
General: Move generic IDs from LttP to new Generic World
Generate: ensure thread errors are collected before data from their completion may be referenced in playthrough/spoiler
Other changes:
host.yaml Multi Mystery options were moved and changed
generate_output now has an output_directory argument
MultiWorld.get_game_players(<game>) now replaces <game>_player_ids
Python venv should now work properly