diff --git a/worlds/hk/Options.py b/worlds/hk/Options.py index d47ab2c38b3f..2a19ffd3e7c3 100644 --- a/worlds/hk/Options.py +++ b/worlds/hk/Options.py @@ -111,7 +111,7 @@ "Iselda": "IseldaShopSlots", "Salubra": "SalubraShopSlots", "Leg_Eater": "LegEaterShopSlots", - "Salubra_(Requires_Charms)": "IseldaShopSlots", + "Salubra_(Requires_Charms)": "SalubraCharmShopSlots", "Egg_Shop": "EggShopSlots", } diff --git a/worlds/hk/__init__.py b/worlds/hk/__init__.py index 41602cee3479..061f71edd444 100644 --- a/worlds/hk/__init__.py +++ b/worlds/hk/__init__.py @@ -422,13 +422,15 @@ def set_rules(self): player = self.player if world.logic[player] != 'nologic': goal = world.Goal[player] - if goal == Goal.option_siblings: + if goal == Goal.option_hollowknight: + world.completion_condition[player] = lambda state: state._hk_can_beat_thk(player) + elif goal == Goal.option_siblings: world.completion_condition[player] = lambda state: state._hk_siblings_ending(player) elif goal == Goal.option_radiance: world.completion_condition[player] = lambda state: state._hk_can_beat_radiance(player) else: - # Hollow Knight or Any goal. - world.completion_condition[player] = lambda state: state._hk_can_beat_thk(player) + # Any goal + world.completion_condition[player] = lambda state: state._hk_can_beat_thk(player) or state._hk_can_beat_radiance(player) set_rules(self) @@ -640,7 +642,7 @@ def __init__(self, name, advancement, code, type: str, player: int = None): classification = ItemClassification.progression_skip_balancing elif type in ("Map", "Journal"): classification = ItemClassification.filler - elif type in ("Mask", "Ore", "Vessel"): + elif type in ("Ore", "Vessel"): classification = ItemClassification.useful elif advancement: classification = ItemClassification.progression @@ -674,6 +676,7 @@ def _hk_can_beat_thk(self, player: int) -> bool: self.has_any({'LEFTDASH', 'RIGHTDASH'}, player) or self._hk_option(player, 'ProficientCombat') ) + and self.has('FOCUS', player) ) def _hk_siblings_ending(self, player: int) -> bool: @@ -681,16 +684,15 @@ def _hk_siblings_ending(self, player: int) -> bool: def _hk_can_beat_radiance(self, player: int) -> bool: return ( - self._hk_siblings_ending(player) - and self.has('DREAMNAIL', player, 1) + self.has('Opened_Black_Egg_Temple', player) + and self._hk_nail_combat(player) + and self.has('WHITEFRAGMENT', player, 3) + and self.has('DREAMNAIL', player) and ( (self.has('LEFTCLAW', player) and self.has('RIGHTCLAW', player)) or self.has('WINGS', player) ) - and ( - self.count('FIREBALL', player) + self.count('SCREAM', player) - + self.count('QUAKE', player) - ) > 1 + and (self.count('FIREBALL', player) + self.count('SCREAM', player) + self.count('QUAKE', player)) > 1 and ( (self.has('LEFTDASH', player, 2) and self.has('RIGHTDASH', player, 2)) # Both Shade Cloaks or (self._hk_option(player, 'ProficientCombat') and self.has('QUAKE', player)) # or Dive diff --git a/worlds/hk/docs/setup_en.md b/worlds/hk/docs/setup_en.md index 0584af0f04e8..e25e6bc4ac6f 100644 --- a/worlds/hk/docs/setup_en.md +++ b/worlds/hk/docs/setup_en.md @@ -1,15 +1,33 @@ # Hollow Knight for Archipelago Setup Guide ## Required Software -* Download and unzip the Scarab Mod Manager from the [Scarab GitHub Releases page](https://github.com/fifty-six/Scarab/releases). -* A legal copy of Hollow Knight, not purchased or played through XBox Game Pass. - * Unfortunately, the Game Pass version is not currently compatible with mods. +* Download and unzip the Scarab+ Mod Manager from the [Scarab+ website](https://themulhima.github.io/Scarab/). +* A legal copy of Hollow Knight. + +## Optional Software +* Archipelago Map Mod from Scarab+ + * Ensure that both RandoMapMod and MapChanger are uninstalled or disabled as they are incompatible with Archipelago Map Mod. ## Installing the Archipelago Mod using Scarab -1. Launch Scarab and ensure it locates your Hollow Knight installation directory. -2. Click the "Install" checkbox near the "Archipelago" mod entry. +1. Launch Scarab+ and ensure it locates your Hollow Knight installation directory. +2. Click the "Install" button near the "Archipelago" mod entry. 3. Launch the game, you're all set! +### What to do if Scarab+ fails to find your XBox Game Pass installation directory +1. Enter the XBox app and move your mouse over "Hollow Knight" on the left sidebar. +2. Click the three points then click "Manage". +3. Go to the "Files" tab and select "Browse...". +4. Click "Hollow Knight", then "Content", then click the path bar and copy it. +5. Run Scarab+ as an administrator and, when it asks you for the path, paste what you copied in step 4. + +#### Alternative Method: +1. Click on your profile then "Settings". +2. Go to the "General" tab and select "CHANGE FOLDER". +3. Look for a folder where you want to install the game (preferably inside a folder on your desktop) and copy the path. +4. Run Scarab+ as an administrator and, when it asks you for the path, paste what you copied in step 3. + +Note: The path folder needs to have the "Hollow Knight_Data" folder inside. + ## Configuring your YAML File ### What is a YAML and why do I need one? You can see the [basic multiworld setup guide](/tutorial/Archipelago/setup/en) here on the Archipelago website to learn