From 2a0198b618292996e1b00661d989f854e935b15b Mon Sep 17 00:00:00 2001 From: alwaysintreble Date: Mon, 27 Jun 2022 19:59:42 -0500 Subject: [PATCH 01/32] multiserver: allow `!release` as an alias for `!forfeit` (#693) * multiserver: allow `!release` as an alias for `!forfeit` * create `/release` command. Add some periods to messages that print in console and point users to release * Add a missing space on line 1135 Co-authored-by: Chris Wilson --- MultiServer.py | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/MultiServer.py b/MultiServer.py index 762fe8f4e3..06f9a9f9cd 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -766,7 +766,7 @@ def update_checked_locations(ctx: Context, team: int, slot: int): def forfeit_player(ctx: Context, team: int, slot: int): """register any locations that are in the multidata""" all_locations = set(ctx.locations[slot]) - ctx.notify_all("%s (Team #%d) has forfeited" % (ctx.player_names[(team, slot)], team + 1)) + ctx.notify_all("%s (Team #%d) has released all remaining items from their world." % (ctx.player_names[(team, slot)], team + 1)) register_location_checks(ctx, team, slot, all_locations) update_checked_locations(ctx, team, slot) @@ -779,7 +779,7 @@ def collect_player(ctx: Context, team: int, slot: int, is_group: bool = False): if values[1] == slot: all_locations[source_slot].add(location_id) - ctx.notify_all("%s (Team #%d) has collected" % (ctx.player_names[(team, slot)], team + 1)) + ctx.notify_all("%s (Team #%d) has collected their items from other worlds." % (ctx.player_names[(team, slot)], team + 1)) for source_player, location_ids in all_locations.items(): register_location_checks(ctx, team, source_player, location_ids, count_activity=False) update_checked_locations(ctx, team, source_player) @@ -1106,7 +1106,7 @@ class ClientMessageProcessor(CommonCommandProcessor): return self.ctx.commandprocessor(command) def _cmd_players(self) -> bool: - """Get information about connected and missing players""" + """Get information about connected and missing players.""" if len(self.ctx.player_names) < 10: self.ctx.notify_all(get_players_string(self.ctx)) else: @@ -1118,8 +1118,12 @@ class ClientMessageProcessor(CommonCommandProcessor): self.output(get_status_string(self.ctx, self.client.team)) return True + def _cmd_release(self) -> bool: + """Sends remaining items in your world to their recipients.""" + return self._cmd_forfeit() + def _cmd_forfeit(self) -> bool: - """Surrender and send your remaining items out to their recipients""" + """Surrender and send your remaining items out to their recipients. Use release in the future.""" if self.ctx.allow_forfeits.get((self.client.team, self.client.slot), False): forfeit_player(self.ctx, self.client.team, self.client.slot) return True @@ -1128,7 +1132,7 @@ class ClientMessageProcessor(CommonCommandProcessor): return True elif "disabled" in self.ctx.forfeit_mode: self.output( - "Sorry, client forfeiting has been disabled on this server. You can ask the server admin for a /forfeit") + "Sorry, client item releasing has been disabled on this server. You can ask the server admin for a /release") return False else: # is auto or goal if self.ctx.client_game_state[self.client.team, self.client.slot] == ClientStatus.CLIENT_GOAL: @@ -1136,8 +1140,8 @@ class ClientMessageProcessor(CommonCommandProcessor): return True else: self.output( - "Sorry, client forfeiting requires you to have beaten the game on this server." - " You can ask the server admin for a /forfeit") + "Sorry, client item releasing requires you to have beaten the game on this server." + " You can ask the server admin for a /release") return False def _cmd_collect(self) -> bool: @@ -1698,43 +1702,48 @@ class ServerCommandProcessor(CommonCommandProcessor): self.output(f"Could not find player {player_name} to collect") return False + @mark_raw + def _cmd_release(self, player_name: str) -> bool: + """Send out the remaining items from a player to their intended recipients.""" + return self._cmd_forfeit(player_name) + @mark_raw def _cmd_forfeit(self, player_name: str) -> bool: - """Send out the remaining items from a player to their intended recipients""" + """Send out the remaining items from a player to their intended recipients.""" seeked_player = player_name.lower() for (team, slot), name in self.ctx.player_names.items(): if name.lower() == seeked_player: forfeit_player(self.ctx, team, slot) return True - self.output(f"Could not find player {player_name} to forfeit") + self.output(f"Could not find player {player_name} to release") return False @mark_raw def _cmd_allow_forfeit(self, player_name: str) -> bool: - """Allow the specified player to use the !forfeit command""" + """Allow the specified player to use the !release command.""" seeked_player = player_name.lower() for (team, slot), name in self.ctx.player_names.items(): if name.lower() == seeked_player: self.ctx.allow_forfeits[(team, slot)] = True - self.output(f"Player {player_name} is now allowed to use the !forfeit command at any time.") + self.output(f"Player {player_name} is now allowed to use the !release command at any time.") return True - self.output(f"Could not find player {player_name} to allow the !forfeit command for.") + self.output(f"Could not find player {player_name} to allow the !release command for.") return False @mark_raw def _cmd_forbid_forfeit(self, player_name: str) -> bool: - """"Disallow the specified player from using the !forfeit command""" + """"Disallow the specified player from using the !release command.""" seeked_player = player_name.lower() for (team, slot), name in self.ctx.player_names.items(): if name.lower() == seeked_player: self.ctx.allow_forfeits[(team, slot)] = False self.output( - f"Player {player_name} has to follow the server restrictions on use of the !forfeit command.") + f"Player {player_name} has to follow the server restrictions on use of the !release command.") return True - self.output(f"Could not find player {player_name} to forbid the !forfeit command for.") + self.output(f"Could not find player {player_name} to forbid the !release command for.") return False def _cmd_send_multiple(self, amount: typing.Union[int, str], player_name: str, *item_name: str) -> bool: From 98b714f84ab902f560342e77cfc002fa9bb1e3fa Mon Sep 17 00:00:00 2001 From: Daniel Grace Date: Mon, 27 Jun 2022 18:05:29 -0700 Subject: [PATCH 02/32] HK: Add options for Deathlink. (#672) --- worlds/hk/Options.py | 46 +++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/worlds/hk/Options.py b/worlds/hk/Options.py index b535bfb0da..38e2e955d3 100644 --- a/worlds/hk/Options.py +++ b/worlds/hk/Options.py @@ -288,6 +288,25 @@ class WhitePalace(Choice): default = 0 +class DeathLink(Choice): + """ + When you die, everyone dies. Of course the reverse is true too. + When enabled, choose how incoming deathlinks are handled: + vanilla: DeathLink kills you and is just like any other death. RIP your previous shade and geo. + shadeless: DeathLink kills you, but no shade spawns and no geo is lost. Your previous shade, if any, is untouched. + shade: DeathLink functions like a normal death if you do not already have a shade, shadeless otherwise. + """ + option_off = 0 + alias_false = 0 + alias_no = 0 + alias_true = 1 + alias_on = 1 + alias_yes = 1 + option_shadeless = 1 + option_vanilla = 2 + option_shade = 3 + + class StartingGeo(Range): """The amount of starting geo you have.""" display_name = "Starting Geo" @@ -299,19 +318,16 @@ class StartingGeo(Range): hollow_knight_options: typing.Dict[str, type(Option)] = { **hollow_knight_randomize_options, **hollow_knight_logic_options, - StartLocation.__name__: StartLocation, - MinimumGrubPrice.__name__: MinimumGrubPrice, - MaximumGrubPrice.__name__: MaximumGrubPrice, - MinimumEssencePrice.__name__: MinimumEssencePrice, - MaximumEssencePrice.__name__: MaximumEssencePrice, - MinimumCharmPrice.__name__: MinimumCharmPrice, - MaximumCharmPrice.__name__: MaximumCharmPrice, - RandomCharmCosts.__name__: RandomCharmCosts, - PlandoCharmCosts.__name__: PlandoCharmCosts, - MinimumEggPrice.__name__: MinimumEggPrice, - MaximumEggPrice.__name__: MaximumEggPrice, - EggShopSlots.__name__: EggShopSlots, - Goal.__name__: Goal, - WhitePalace.__name__: WhitePalace, - StartingGeo.__name__: StartingGeo, + **{ + option.__name__: option + for option in ( + StartLocation, Goal, WhitePalace, StartingGeo, DeathLink, + MinimumGrubPrice, MaximumGrubPrice, + MinimumEssencePrice, MaximumEssencePrice, + MinimumCharmPrice, MaximumCharmPrice, + RandomCharmCosts, PlandoCharmCosts, + MinimumEggPrice, MaximumEggPrice, EggShopSlots, + # Add your new options where it makes sense? + ) + } } From 5f2193f2e4e319c4fe6c2a8280a8d4b2fbf9d681 Mon Sep 17 00:00:00 2001 From: alwaysintreble Date: Mon, 27 Jun 2022 20:05:55 -0500 Subject: [PATCH 03/32] ror2: update setup guide (#671) * ror2: remove yaml template from guide and link to player settings page. Add documentation on chat client * ror2: copy paste the good config description like everyone else. --- worlds/ror2/docs/setup_en.md | 83 +++++++----------------------------- 1 file changed, 15 insertions(+), 68 deletions(-) diff --git a/worlds/ror2/docs/setup_en.md b/worlds/ror2/docs/setup_en.md index 73f47081e9..dc1c3769c7 100644 --- a/worlds/ror2/docs/setup_en.md +++ b/worlds/ror2/docs/setup_en.md @@ -23,6 +23,16 @@ all necessary dependencies as well. Click on the "Start modded" button in the top left in r2modman to start the game with the Archipelago mod installed. +## 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 +about why Archipelago uses YAML files and what they're for. + +### Where do I get a YAML? +You can use the [game settings page for Hollow Knight](/games/Hollow%20Knight/player-settings) here on the Archipelago +website to generate a YAML using a graphical interface. + + ## Joining an Archipelago Session There will be a menu button on the right side of the screen in the character select menu. Click it in order to bring up @@ -37,71 +47,8 @@ The Risk of Rain 2 players send checks by causing items to spawn in-game. That m generally. An item check is only sent out after a certain number of items are picked up. This count is configurable in the player's YAML. -## YAML Settings - -An example YAML would look like this: - -```yaml -description: Ijwu-ror2 -name: Ijwu - -game: - Risk of Rain 2: 1 - -Risk of Rain 2: - total_locations: 15 - total_revivals: 4 - start_with_revive: true - item_pickup_step: 1 - enable_lunar: true - item_weights: - default: 50 - new: 0 - uncommon: 0 - legendary: 0 - lunartic: 0 - chaos: 0 - no_scraps: 0 - even: 0 - scraps_only: 0 - item_pool_presets: true - # custom item weights - green_scrap: 16 - red_scrap: 4 - yellow_scrap: 1 - white_scrap: 32 - common_item: 64 - uncommon_item: 32 - legendary_item: 8 - boss_item: 4 - lunar_item: 16 - equipment: 32 -``` - -| Name | Description | Allowed values | -| ---- | ----------- | -------------- | -| total_locations | The total number of location checks that will be attributed to the Risk of Rain player. This option is ALSO the total number of items in the item pool for the Risk of Rain player. | 10 - 100 | -| total_revivals | The total number of items in the Risk of Rain player's item pool (items other players pick up for them) replaced with `Dio's Best Friend`. | 0 - 5 | -| start_with_revive | Starts the player off with a `Dio's Best Friend`. Functionally equivalent to putting a `Dio's Best Friend` in your `starting_inventory`. | true/false | -| item_pickup_step | The number of item pickups which you are allowed to claim before they become an Archipelago location check. | 0 - 5 | -| enable_lunar | Allows for lunar items to be shuffled into the item pool on behalf of the Risk of Rain player. | true/false | -| item_weights | Each option here is a preset item weight that can be used to customize your generate item pool with certain settings. | default, new, uncommon, legendary, lunartic, chaos, no_scraps, even, scraps_only | -| item_pool_presets | A simple toggle to determine whether the item_weight presets are used or the custom item pool as defined below | true/false | -| custom item weights | Each defined item here is a single item in the pool that will have a weight against the other items when the item pool gets generated. These values can be modified to adjust how frequently certain items appear | 0-100| - -Using the example YAML above: the Risk of Rain 2 player will have 15 total items which they can pick up for other -players. (total_locations = 15) - -They will have 15 items waiting for them in the item pool which will be distributed out to the multiworld. ( -total_locations = 15) - -They will complete a location check every second item. (item_pickup_step = 1) - -They will have 4 of the items which other players can grant them replaced with `Dio's Best Friend`. (total_revivals = 4) - -The player will also start with a `Dio's Best Friend`. (start_with_revive = true) - -The player will have lunar items shuffled into the item pool on their behalf. (enable_lunar = true) - -The player will have the default preset generated item pool with the custom item weights being ignored. (item_weights: -default and item_pool_presets: true) +## Commands +While playing the multiworld you can type `say` then your message to type in the multiworld chat. All other multiworld +remote commands list in the [commands guide](/tutorial/Archipelago/commands/en) work as well in the RoR2 chat. You can +also optionally connect to the multiworld using the text client, which can be found in the +[main Archipelago installation](https://github.com/ArchipelagoMW/Archipelago/releases). \ No newline at end of file From 61f751a1dbe75641294b9051d4f427aef891af0e Mon Sep 17 00:00:00 2001 From: alwaysintreble Date: Mon, 27 Jun 2022 22:34:47 -0500 Subject: [PATCH 04/32] docs: add common terms documentation to website (#680) * docs: add common terms documentation to website * minor cleanup * some rewording and reformatting. * tighten up world definition clarity Co-authored-by: Rome Reginelli * Clarify seed definition a bit better Co-authored-by: Rome Reginelli * add text for "out of logic" and that slot names must be unique * rename common terms to glossary Co-authored-by: Rome Reginelli --- WebHostLib/__init__.py | 5 ++ WebHostLib/static/assets/faq/faq_en.md | 6 ++ WebHostLib/static/assets/faq/glossary_en.md | 94 +++++++++++++++++++++ WebHostLib/static/assets/glossary.js | 53 ++++++++++++ WebHostLib/templates/glossary.html | 17 ++++ WebHostLib/templates/siteMap.html | 1 + 6 files changed, 176 insertions(+) create mode 100644 WebHostLib/static/assets/faq/glossary_en.md create mode 100644 WebHostLib/static/assets/glossary.js create mode 100644 WebHostLib/templates/glossary.html diff --git a/WebHostLib/__init__.py b/WebHostLib/__init__.py index e71dd01691..c0179b2238 100644 --- a/WebHostLib/__init__.py +++ b/WebHostLib/__init__.py @@ -141,6 +141,11 @@ def faq(lang): return render_template("faq.html", lang=lang) +@app.route('/glossary//') +def terms(lang): + return render_template("glossary.html", lang=lang) + + @app.route('/seed/') def view_seed(seed: UUID): seed = Seed.get(id=seed) diff --git a/WebHostLib/static/assets/faq/faq_en.md b/WebHostLib/static/assets/faq/faq_en.md index e90fe10227..cd144d7eff 100644 --- a/WebHostLib/static/assets/faq/faq_en.md +++ b/WebHostLib/static/assets/faq/faq_en.md @@ -49,6 +49,12 @@ If you are ready to start randomizing games, or want to start playing your favor our discord server at the [Archipelago Discord](https://discord.gg/archipelago). There are always people ready to answer any questions you might have. +## What are some common terms I should know? + +As randomizers and multiworld randomizers have been around for a while now there are quite a lot of common terms +and jargon that is used in conjunction by the communities surrounding them. For a lot of the terms that are more common +to Archipelago and its specific systems please see the [Glossary](/glossary/en). + ## I want to add a game to the Archipelago randomizer. How do I do that? The best way to get started is to take a look at our code on GitHub diff --git a/WebHostLib/static/assets/faq/glossary_en.md b/WebHostLib/static/assets/faq/glossary_en.md new file mode 100644 index 0000000000..b2843953bc --- /dev/null +++ b/WebHostLib/static/assets/faq/glossary_en.md @@ -0,0 +1,94 @@ +# Multiworld Glossary + +There are a lot of common terms used when playing in different game randomizer communities and in multiworld as well. +This document serves as a lookup for common terms that may be used by users in the community or in various other +documentation. + +## Item +Items are what get shuffled around in your world or other worlds that you then receive. This could be a sword, a stat +upgrade, a spell, or any other potential receivable for your game. + +## Location +Locations are where items are placed in your game. Whenever you interact with a location, you or another player will +then receive an item. A location could be a chest, an enemy drop, a shop purchase, or any other interactable that can +contain items in your game. + +## Check +A check is a common term for when you "check", or pick up, a location. In terms of Archipelago this is usually used for +when a player goes to a location and sends its item, or "checks" the location. Players will often reference their now +randomized locations as checks. + +## Slot +A slot is the player name and number assigned during generation. The number of slots is equal to the number of players, +or "worlds", created. Each name must be unique as these are used to identify the slot user. + +## World +World in terms of Archipelago can mean multiple things and is used interchangeably in many situations. +* During gameplay, a world is a single instance of a game, occupying one player "slot". However, +Archipelago allows multiple players to connect to the same slot; then those players can share a world +and complete it cooperatively. For games with native cooperative play, you can also play together and +share a world that way, usually with only one player connected to the multiworld. +* On the programming side, a world typically represents the package that integrates Archipelago with a +particular game. For example this could be the entire `worlds/factorio` directory. + +## RNG +Acronym for "Random Number Generator." Archipelago uses its own custom Random object with a unique seed per generation, +or, if running from source, a seed can be supplied and this seed will control all randomization during generation as all +game worlds will have access to it. + +## Seed +A "seed" is a number used to initialize a pseudorandom number generator. Whenever you generate a new game on Archipelago +this is a new "seed" as it has unique item placement, and you can create multiple "rooms" on the Archipelago site from a +single seed. Using the same seed results in the random placement being the same. + +## Room +Whenever you generate a seed on the Archipelago website you will be put on a seed page that contains all the seed info +with a link to the spoiler if one exists and will show how many unique rooms exist per seed. Each room has its own +unique identifier that is separate from the seed. The room page is where you can find information to connect to the +multiworld and download any patches if necessary. If you have a particularly fun or interesting seed, and you want to +share it with somebody you can link them to this seed page, where they can generate a new room to play it! For seeds +generated with race mode enabled, the seed page will only show rooms created by the unique user so the seed page is +perfectly safe to share for racing purposes. + +## Logic +Base behavior of all seeds generated by Archipelago is they are expected to be completable based on the requirements of +the settings. This is done by using "logic" in order to determine valid locations to place items while still being able +to reach said location without this item. For the purposes of the randomizer a location is considered "in logic" if you +can reach it with your current toolset of items or skills based on settings. Some players are able to obtain locations +"out of logic" by performing various glitches or tricks that the settings may not account for and tend to mention this +when sending out an item they obtained this way. + +## Progression +Certain items will allow access to more locations and are considered progression items as they "progress" the seed. + +## Trash +A term used for "filler" items that have no bearing on the generation and are either marginally useful for the player +or useless. These items can be very useful depending on the player but are never very important and as such are usually +termed trash. + +## Burger King / BK Mode +A term used in multiworlds when a player is unable to continue to progress and is awaiting an item. The term came to be +after a player, allegedly, was unable to progress during a multiworld and went to Burger King while waiting to receive +items from other players. + +* "Logical BK" is when the player is unable to progress according to the settings of their game but may still be able to do +things that would be "out of logic" by the generation. + +* "Hard / full BK" is when the player is completely unable to progress even with tricks they may know and are unable to +continue to play, aside from doing something like killing enemies for experience or money. + +## Sphere +Archipelago calculates the game playthrough by using a "sphere" system where it has a state for each player and checks +to see what the players are able to reach with their current items. Any location that is reachable with the current +state of items is a "sphere." For the purposes of Archipelago it starts playthrough calculation by distributing sphere 0 +items which are items that are either forced in the player's inventory by the game or placed in the `start_inventory` in +their settings. Sphere 1 is then all accessible locations the players can reach with all the items they received from +sphere 0, or their starting inventory. The playthrough continues in this fashion calculating a number of spheres until +all players have completed their goal. + +## Scouts / Scouting +In some games there are locations that have visible items even if the item itself is unobtainable at the current time. +Some games utilize a scouting feature where when the player "sees" the item it will give a free hint for the item in the +client letting the players know what the exact item is, since if the item was for that game it would know but the item +being foreign is a lot harder to represent visually. + diff --git a/WebHostLib/static/assets/glossary.js b/WebHostLib/static/assets/glossary.js new file mode 100644 index 0000000000..44012d699f --- /dev/null +++ b/WebHostLib/static/assets/glossary.js @@ -0,0 +1,53 @@ +window.addEventListener('load', () => { + const tutorialWrapper = document.getElementById('glossary-wrapper'); + new Promise((resolve, reject) => { + const ajax = new XMLHttpRequest(); + ajax.onreadystatechange = () => { + if (ajax.readyState !== 4) { return; } + if (ajax.status === 404) { + reject("Sorry, the glossary page is not available in that language yet."); + return; + } + if (ajax.status !== 200) { + reject("Something went wrong while loading the glossary."); + return; + } + resolve(ajax.responseText); + }; + ajax.open('GET', `${window.location.origin}/static/assets/faq/` + + `glossary_${tutorialWrapper.getAttribute('data-lang')}.md`, true); + ajax.send(); + }).then((results) => { + // Populate page with HTML generated from markdown + showdown.setOption('tables', true); + showdown.setOption('strikethrough', true); + showdown.setOption('literalMidWordUnderscores', true); + tutorialWrapper.innerHTML += (new showdown.Converter()).makeHtml(results); + adjustHeaderWidth(); + + // Reset the id of all header divs to something nicer + const headers = Array.from(document.querySelectorAll('h1, h2, h3, h4, h5, h6')); + const scrollTargetIndex = window.location.href.search(/#[A-z0-9-_]*$/); + for (let i=0; i < headers.length; i++){ + const headerId = headers[i].innerText.replace(/[ ]/g,'-').toLowerCase() + headers[i].setAttribute('id', headerId); + headers[i].addEventListener('click', () => + window.location.href = window.location.href.substring(0, scrollTargetIndex) + `#${headerId}`); + } + + // Manually scroll the user to the appropriate header if anchor navigation is used + if (scrollTargetIndex > -1) { + try{ + const scrollTarget = window.location.href.substring(scrollTargetIndex + 1); + document.getElementById(scrollTarget).scrollIntoView({ behavior: "smooth" }); + } catch(error) { + console.error(error); + } + } + }).catch((error) => { + console.error(error); + tutorialWrapper.innerHTML = + `

This page is out of logic!

+

Click here to return to safety.

`; + }); +}); diff --git a/WebHostLib/templates/glossary.html b/WebHostLib/templates/glossary.html new file mode 100644 index 0000000000..921f678157 --- /dev/null +++ b/WebHostLib/templates/glossary.html @@ -0,0 +1,17 @@ +{% extends 'pageWrapper.html' %} + +{% block head %} + {% include 'header/grassHeader.html' %} + Glossary + + + +{% endblock %} + +{% block body %} +
+ +
+{% endblock %} diff --git a/WebHostLib/templates/siteMap.html b/WebHostLib/templates/siteMap.html index 9626aef3f5..671b8bb24b 100644 --- a/WebHostLib/templates/siteMap.html +++ b/WebHostLib/templates/siteMap.html @@ -26,6 +26,7 @@
  • User Content
  • Weighted Settings Page
  • Game Statistics
  • +
  • Common Multiworld Terms
  • Game Info Pages

    From 39ac3c38bfd22c148e4a899a3198c1e518faaae0 Mon Sep 17 00:00:00 2001 From: espeon65536 <81029175+espeon65536@users.noreply.github.com> Date: Tue, 28 Jun 2022 02:03:34 -0400 Subject: [PATCH 05/32] sm64: only apply DDD 100 coin star rule if the location exists (#716) --- worlds/sm64ex/Rules.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/worlds/sm64ex/Rules.py b/worlds/sm64ex/Rules.py index 6229793fe4..fcd5619323 100644 --- a/worlds/sm64ex/Rules.py +++ b/worlds/sm64ex/Rules.py @@ -45,7 +45,8 @@ def set_rules(world, player: int, area_connections): add_rule(world.get_location("BBH: Eye to Eye in the Secret Room", player), lambda state: state.has("Vanish Cap", player)) add_rule(world.get_location("DDD: Collect the Caps...", player), lambda state: state.has("Vanish Cap", player)) add_rule(world.get_location("DDD: Pole-Jumping for Red Coins", player), lambda state: state.can_reach("Bowser in the Fire Sea", 'Region', player)) - add_rule(world.get_location("DDD: 100 Coins", player), lambda state: state.can_reach("Bowser in the Fire Sea", 'Region', player)) + if world.EnableCoinStars[player]: + add_rule(world.get_location("DDD: 100 Coins", player), lambda state: state.can_reach("Bowser in the Fire Sea", 'Region', player)) add_rule(world.get_location("SL: Into the Igloo", player), lambda state: state.has("Vanish Cap", player)) add_rule(world.get_location("WDW: Quick Race Through Downtown!", player), lambda state: state.has("Vanish Cap", player)) add_rule(world.get_location("RR: Somewhere Over the Rainbow", player), lambda state: state.has("Cannon Unlock RR", player)) From ba2a5c47442840e976a2ecee64fd4910bc6e4d0e Mon Sep 17 00:00:00 2001 From: black-sliver <59490463+black-sliver@users.noreply.github.com> Date: Tue, 28 Jun 2022 19:23:18 +0200 Subject: [PATCH 06/32] MC: add non-windows install to docs (#713) * MC: add non-windows install to docs * MC: better link naming for non-windows doc Co-authored-by: Hussein Farran * MC: doc change manual forge link to index By removing the direct link to the version we avoid having to update it all the time and users will have to check the other version numbers for manual installation anyway. Co-authored-by: Hussein Farran --- worlds/minecraft/docs/minecraft_en.md | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/worlds/minecraft/docs/minecraft_en.md b/worlds/minecraft/docs/minecraft_en.md index 872927fd0d..b33710f73c 100644 --- a/worlds/minecraft/docs/minecraft_en.md +++ b/worlds/minecraft/docs/minecraft_en.md @@ -47,16 +47,29 @@ When the console tells you that you have joined the room, you're all set. Congra multiworld game! At this point any additional minecraft players may connect to your forge server. To start the game once everyone is ready use the command `/start`. -## Manual Installation +## Non-Windows Installation + +The Minecraft Client will install forge and the mod for other operating systems but Java has to be provided by the +user. Head to [minecraft_versions.json on the MC AP GitHub](https://raw.githubusercontent.com/KonoTyran/Minecraft_AP_Randomizer/master/versions/minecraft_versions.json) +to see which java version is required. New installations will default to the topmost "release" version. +- Install the matching Amazon Corretto JDK + - see [Manual Installation Software Links](#manual-installation-software-links) + - or package manager provided by your OS / distribution +- Open your `host.yaml` and add the path to your Java below the `minecraft_options` key + - ` java: "path/to/java-xx-amazon-corretto/bin/java"` +- Run the Minecraft Client and select your .apmc file + +## Full Manual Installation It is highly recommended to ues the Archipelago installer to handle the installation of the forge server for you. -support will not be given for those wishing to manually install forge. For those of you who know how, and wish to do so, +Support will not be given for those wishing to manually install forge. For those of you who know how, and wish to do so, the following links are the versions of the software we use. -### Manual install Software links +### Manual Installation Software Links -- [Minecraft Forge Download Page](https://files.minecraftforge.net/net/minecraftforge/forge/index_1.18.2.html) +- [Minecraft Forge Download Page](https://files.minecraftforge.net/net/minecraftforge/forge/) - [Minecraft Archipelago Randomizer Mod Releases Page](https://github.com/KonoTyran/Minecraft_AP_Randomizer/releases) - **DO NOT INSTALL THIS ON YOUR CLIENT** -- [Amazon Corretto Java 17 Download Page](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html) +- [Amazon Corretto](https://docs.aws.amazon.com/corretto/) + - pick the matching version and select "Downloads" on the left From 7dcde12e2e5aa5005abf5aea2accfa76f273d03e Mon Sep 17 00:00:00 2001 From: Alchav <59858495+Alchav@users.noreply.github.com> Date: Wed, 29 Jun 2022 00:26:18 -0400 Subject: [PATCH 07/32] Revert SC2 item classifications --- worlds/sc2wol/Items.py | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/worlds/sc2wol/Items.py b/worlds/sc2wol/Items.py index 704a0f0838..4ecff7e15f 100644 --- a/worlds/sc2wol/Items.py +++ b/worlds/sc2wol/Items.py @@ -6,7 +6,7 @@ class ItemData(typing.NamedTuple): code: typing.Optional[int] type: typing.Optional[str] number: typing.Optional[int] - classification: ItemClassification = ItemClassification.filler + classification: ItemClassification = ItemClassification.useful quantity: int = 1 @@ -59,46 +59,46 @@ item_table = { "Combat Shield (Marine)": ItemData(209 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 9), "Advanced Medic Facilities (Medic)": ItemData(210 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 10), "Stabilizer Medpacks (Medic)": ItemData(211 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 11), - "Incinerator Gauntlets (Firebat)": ItemData(212 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 12, classification=ItemClassification.useful), + "Incinerator Gauntlets (Firebat)": ItemData(212 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 12, classification=ItemClassification.filler), "Juggernaut Plating (Firebat)": ItemData(213 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 13), "Concussive Shells (Marauder)": ItemData(214 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 14), "Kinetic Foam (Marauder)": ItemData(215 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 15), "U-238 Rounds (Reaper)": ItemData(216 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 16), - "G-4 Clusterbomb (Reaper)": ItemData(217 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 17, classification=ItemClassification.useful), + "G-4 Clusterbomb (Reaper)": ItemData(217 + SC2WOL_ITEM_ID_OFFSET, "Armory 1", 17, classification=ItemClassification.filler), - "Twin-Linked Flamethrower (Hellion)": ItemData(300 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 0, classification=ItemClassification.useful), + "Twin-Linked Flamethrower (Hellion)": ItemData(300 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 0, classification=ItemClassification.filler), "Thermite Filaments (Hellion)": ItemData(301 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 1), "Cerberus Mine (Vulture)": ItemData(302 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 2), "Replenishable Magazine (Vulture)": ItemData(303 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 3), "Multi-Lock Weapons System (Goliath)": ItemData(304 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 4), "Ares-Class Targeting System (Goliath)": ItemData(305 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 5), - "Tri-Lithium Power Cell (Diamondback)": ItemData(306 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 6, classification=ItemClassification.useful), - "Shaped Hull (Diamondback)": ItemData(307 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 7, classification=ItemClassification.useful), + "Tri-Lithium Power Cell (Diamondback)": ItemData(306 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 6, classification=ItemClassification.filler), + "Shaped Hull (Diamondback)": ItemData(307 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 7, classification=ItemClassification.filler), "Maelstrom Rounds (Siege Tank)": ItemData(308 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 8), "Shaped Blast (Siege Tank)": ItemData(309 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 9), - "Rapid Deployment Tube (Medivac)": ItemData(310 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 10, classification=ItemClassification.useful), + "Rapid Deployment Tube (Medivac)": ItemData(310 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 10, classification=ItemClassification.filler), "Advanced Healing AI (Medivac)": ItemData(311 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 11), - "Tomahawk Power Cells (Wraith)": ItemData(312 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 12, classification=ItemClassification.useful), + "Tomahawk Power Cells (Wraith)": ItemData(312 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 12, classification=ItemClassification.filler), "Displacement Field (Wraith)": ItemData(313 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 13), "Ripwave Missiles (Viking)": ItemData(314 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 14), "Phobos-Class Weapons System (Viking)": ItemData(315 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 15), - "Cross-Spectrum Dampeners (Banshee)": ItemData(316 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 16, classification=ItemClassification.useful), + "Cross-Spectrum Dampeners (Banshee)": ItemData(316 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 16, classification=ItemClassification.filler), "Shockwave Missile Battery (Banshee)": ItemData(317 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 17), - "Missile Pods (Battlecruiser)": ItemData(318 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 18, classification=ItemClassification.useful), - "Defensive Matrix (Battlecruiser)": ItemData(319 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 19, classification=ItemClassification.useful), + "Missile Pods (Battlecruiser)": ItemData(318 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 18, classification=ItemClassification.filler), + "Defensive Matrix (Battlecruiser)": ItemData(319 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 19, classification=ItemClassification.filler), "Ocular Implants (Ghost)": ItemData(320 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 20), "Crius Suit (Ghost)": ItemData(321 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 21), "Psionic Lash (Spectre)": ItemData(322 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 22), "Nyx-Class Cloaking Module (Spectre)": ItemData(323 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 23), - "330mm Barrage Cannon (Thor)": ItemData(324 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 24, classification=ItemClassification.useful), - "Immortality Protocol (Thor)": ItemData(325 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 25, classification=ItemClassification.useful), + "330mm Barrage Cannon (Thor)": ItemData(324 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 24, classification=ItemClassification.filler), + "Immortality Protocol (Thor)": ItemData(325 + SC2WOL_ITEM_ID_OFFSET, "Armory 2", 25, classification=ItemClassification.filler), "Bunker": ItemData(400 + SC2WOL_ITEM_ID_OFFSET, "Building", 0, classification=ItemClassification.progression), "Missile Turret": ItemData(401 + SC2WOL_ITEM_ID_OFFSET, "Building", 1, classification=ItemClassification.progression), "Sensor Tower": ItemData(402 + SC2WOL_ITEM_ID_OFFSET, "Building", 2), "War Pigs": ItemData(500 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 0), - "Devil Dogs": ItemData(501 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 1, classification=ItemClassification.useful), + "Devil Dogs": ItemData(501 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 1, classification=ItemClassification.filler), "Hammer Securities": ItemData(502 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 2), "Spartan Company": ItemData(503 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 3), "Siege Breakers": ItemData(504 + SC2WOL_ITEM_ID_OFFSET, "Mercenary", 4), @@ -120,12 +120,12 @@ item_table = { "Fortified Bunker": ItemData(611 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 11), "Planetary Fortress": ItemData(612 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 12), "Perdition Turret": ItemData(613 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 13), - "Predator": ItemData(614 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 14, classification=ItemClassification.useful), + "Predator": ItemData(614 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 14, classification=ItemClassification.filler), "Hercules": ItemData(615 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 15, classification=ItemClassification.progression), - "Cellular Reactor": ItemData(616 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 16, classification=ItemClassification.useful), - "Regenerative Bio-Steel": ItemData(617 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 17, classification=ItemClassification.useful), + "Cellular Reactor": ItemData(616 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 16, classification=ItemClassification.filler), + "Regenerative Bio-Steel": ItemData(617 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 17, classification=ItemClassification.filler), "Hive Mind Emulator": ItemData(618 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 18), - "Psi Disrupter": ItemData(619 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 19, classification=ItemClassification.useful), + "Psi Disrupter": ItemData(619 + SC2WOL_ITEM_ID_OFFSET, "Laboratory", 19, classification=ItemClassification.filler), "Zealot": ItemData(700 + SC2WOL_ITEM_ID_OFFSET, "Protoss", 0, classification=ItemClassification.progression), "Stalker": ItemData(701 + SC2WOL_ITEM_ID_OFFSET, "Protoss", 1, classification=ItemClassification.progression), @@ -137,9 +137,9 @@ item_table = { "Void Ray": ItemData(707 + SC2WOL_ITEM_ID_OFFSET, "Protoss", 7, classification=ItemClassification.progression), "Carrier": ItemData(708 + SC2WOL_ITEM_ID_OFFSET, "Protoss", 8, classification=ItemClassification.progression), - "+15 Starting Minerals": ItemData(800 + SC2WOL_ITEM_ID_OFFSET, "Minerals", 15, quantity=0), - "+15 Starting Vespene": ItemData(801 + SC2WOL_ITEM_ID_OFFSET, "Vespene", 15, quantity=0), - "+2 Starting Supply": ItemData(802 + SC2WOL_ITEM_ID_OFFSET, "Supply", 2, quantity=0), + "+15 Starting Minerals": ItemData(800 + SC2WOL_ITEM_ID_OFFSET, "Minerals", 15, quantity=0, classification=ItemClassification.filler), + "+15 Starting Vespene": ItemData(801 + SC2WOL_ITEM_ID_OFFSET, "Vespene", 15, quantity=0, classification=ItemClassification.filler), + "+2 Starting Supply": ItemData(802 + SC2WOL_ITEM_ID_OFFSET, "Supply", 2, quantity=0, classification=ItemClassification.filler), } basic_unit: typing.Tuple[str, ...] = ( From d7a9b98ce8ea952fec067ee38d887296aced4526 Mon Sep 17 00:00:00 2001 From: alwaysintreble Date: Tue, 28 Jun 2022 20:24:44 -0500 Subject: [PATCH 08/32] fix glossary link on sitemap --- WebHostLib/templates/siteMap.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebHostLib/templates/siteMap.html b/WebHostLib/templates/siteMap.html index 671b8bb24b..76f1003fd7 100644 --- a/WebHostLib/templates/siteMap.html +++ b/WebHostLib/templates/siteMap.html @@ -26,7 +26,7 @@
  • User Content
  • Weighted Settings Page
  • Game Statistics
  • -
  • Common Multiworld Terms
  • +
  • Glossary
  • Game Info Pages

    From cea7278faf5bb7caf5bf6bb2f575b60de5fc52dd Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Thu, 30 Jun 2022 19:00:37 +0200 Subject: [PATCH 09/32] LttP: now that Enemizer allows for AP rom name, rename it. (#730) * LttP: now that Enemizer allows for AP rom name, rename it. * LttP: fix missing Enemizer message parenthesis --- worlds/alttp/Rom.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/worlds/alttp/Rom.py b/worlds/alttp/Rom.py index a88d879be2..531148923c 100644 --- a/worlds/alttp/Rom.py +++ b/worlds/alttp/Rom.py @@ -19,7 +19,7 @@ import threading import xxtea import concurrent.futures import bsdiff4 -from typing import Optional +from typing import Optional, List from BaseClasses import CollectionState, Region, Location from worlds.alttp.Shops import ShopType, ShopPriceType @@ -186,7 +186,7 @@ def check_enemizer(enemizercli): # some time may have passed since the lock was acquired, as such a quick re-check doesn't hurt if getattr(check_enemizer, "done", None): return - + wanted_version = (7, 0, 1) # version info is saved on the lib, for some reason library_info = os.path.join(os.path.dirname(enemizercli), "EnemizerCLI.Core.deps.json") with open(library_info) as f: @@ -197,10 +197,11 @@ def check_enemizer(enemizercli): version = lib.split("/")[-1] version = tuple(int(element) for element in version.split(".")) enemizer_logger.debug(f"Found Enemizer version {version}") - if version < (6, 4, 0): + if version < wanted_version: raise Exception( - f"Enemizer found at {enemizercli} is outdated ({info}), please update your Enemizer. " - f"Such as https://github.com/Ijwu/Enemizer/releases") + f"Enemizer found at {enemizercli} is outdated ({version}) < ({wanted_version}), " + f"please update your Enemizer. " + f"Such as from https://github.com/Ijwu/Enemizer/releases") break else: raise Exception(f"Could not find Enemizer library version information in {library_info}") @@ -1645,8 +1646,7 @@ def patch_rom(world, rom, player, enemized): # set rom name # 21 bytes from Main import __version__ - # TODO: Adjust Enemizer to accept AP and AD - rom.name = bytearray(f'BM{__version__.replace(".", "")[0:3]}_{player}_{world.seed:11}\0', 'utf8')[:21] + rom.name = bytearray(f'AP{__version__.replace(".", "")[0:3]}_{player}_{world.seed:11}\0', 'utf8')[:21] rom.name.extend([0] * (21 - len(rom.name))) rom.write_bytes(0x7FC0, rom.name) @@ -1677,7 +1677,7 @@ def patch_race_rom(rom, world, player): rom.encrypt(world, player) -def get_price_data(price: int, price_type: int) -> bytes: +def get_price_data(price: int, price_type: int) -> List[int]: if price_type != ShopPriceType.Rupees: # Set special price flag 0x8000 # Then set the type of price we're setting 0x7F00 (this starts from Hearts, not Rupees, subtract 1) From bce7c258c3017707637a55ab1463c666f086a957 Mon Sep 17 00:00:00 2001 From: black-sliver <59490463+black-sliver@users.noreply.github.com> Date: Thu, 30 Jun 2022 20:51:11 +0200 Subject: [PATCH 10/32] CI: update Enemizer to 7.0.1 --- .github/workflows/build.yml | 4 ++-- .github/workflows/release.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 28d1999486..cb9fda69b4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,7 +19,7 @@ jobs: run: | Invoke-WebRequest -Uri https://github.com/alttpo/sni/releases/download/v0.0.81/sni-v0.0.81-windows-amd64.zip -OutFile sni.zip Expand-Archive -Path sni.zip -DestinationPath SNI -Force - Invoke-WebRequest -Uri https://github.com/Ijwu/Enemizer/releases/download/7.0/win-x64.zip -OutFile enemizer.zip + Invoke-WebRequest -Uri https://github.com/Ijwu/Enemizer/releases/download/7.0.1/win-x64.zip -OutFile enemizer.zip Expand-Archive -Path enemizer.zip -DestinationPath EnemizerCLI -Force - name: Build run: | @@ -67,7 +67,7 @@ jobs: tar xf sni-*.tar.xz rm sni-*.tar.xz mv sni-* SNI - wget -nv https://github.com/Ijwu/Enemizer/releases/download/7.0/ubuntu.16.04-x64.7z + wget -nv https://github.com/Ijwu/Enemizer/releases/download/7.0.1/ubuntu.16.04-x64.7z 7za x -oEnemizerCLI/ ubuntu.16.04-x64.7z - name: Build run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f897bcba62..6e5095cff2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,7 +55,7 @@ jobs: tar xf sni-*.tar.xz rm sni-*.tar.xz mv sni-* SNI - wget -nv https://github.com/Ijwu/Enemizer/releases/download/7.0/ubuntu.16.04-x64.7z + wget -nv https://github.com/Ijwu/Enemizer/releases/download/7.0.1/ubuntu.16.04-x64.7z 7za x -oEnemizerCLI/ ubuntu.16.04-x64.7z - name: Build run: | From 8a8bc6aa34c331a94163c15c1eee75d02f33c820 Mon Sep 17 00:00:00 2001 From: CaitSith2 Date: Thu, 30 Jun 2022 15:40:31 -0700 Subject: [PATCH 11/32] Factorio: Fix impossible seeds for rocket-part recipes as well. (#733) --- worlds/factorio/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/factorio/__init__.py b/worlds/factorio/__init__.py index 0d3db21bb9..53c9897c17 100644 --- a/worlds/factorio/__init__.py +++ b/worlds/factorio/__init__.py @@ -329,7 +329,7 @@ class Factorio(World): def set_custom_recipes(self): original_rocket_part = recipes["rocket-part"] science_pack_pools = get_science_pack_pools() - valid_pool = sorted(science_pack_pools[self.world.max_science_pack[self.player].get_max_pack()]) + valid_pool = sorted(science_pack_pools[self.world.max_science_pack[self.player].get_max_pack()] & stacking_items) self.world.random.shuffle(valid_pool) while any([valid_pool[x] in fluids for x in range(3)]): self.world.random.shuffle(valid_pool) From b206f2846a55403b1a8331b4d3f7c8855edbfb29 Mon Sep 17 00:00:00 2001 From: strotlog <49286967+strotlog@users.noreply.github.com> Date: Tue, 28 Jun 2022 00:43:05 +0000 Subject: [PATCH 12/32] SNES games: use JPN as abbreviation for Japan/Japanese --- LttPAdjuster.py | 4 ++-- Patch.py | 8 ++++---- worlds/alttp/Rom.py | 8 ++++---- worlds/sm/Rom.py | 8 ++++---- worlds/smz3/Rom.py | 12 ++++++------ 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/LttPAdjuster.py b/LttPAdjuster.py index a34d9f89d6..3368620e6c 100644 --- a/LttPAdjuster.py +++ b/LttPAdjuster.py @@ -47,7 +47,7 @@ def main(): parser.add_argument('rom', nargs="?", default='AP_LttP.sfc', help='Path to an ALttP rom to adjust.') parser.add_argument('--baserom', default='Zelda no Densetsu - Kamigami no Triforce (Japan).sfc', - help='Path to an ALttP JAP(1.0) rom to use as a base.') + help='Path to an ALttP Japan(1.0) rom to use as a base.') parser.add_argument('--loglevel', default='info', const='info', nargs='?', choices=['error', 'info', 'warning', 'debug'], help='Select level of logging for output.') parser.add_argument('--menuspeed', default='normal', const='normal', nargs='?', @@ -1263,4 +1263,4 @@ class ToolTips(object): if __name__ == '__main__': - main() \ No newline at end of file + main() diff --git a/Patch.py b/Patch.py index bc2b98ecdb..a2f29fdabc 100644 --- a/Patch.py +++ b/Patch.py @@ -178,14 +178,14 @@ preferred_endings = { def generate_yaml(patch: bytes, metadata: Optional[dict] = None, game: str = GAME_ALTTP) -> bytes: if game == GAME_ALTTP: - from worlds.alttp.Rom import JAP10HASH as HASH + from worlds.alttp.Rom import LTTPJPN10HASH as HASH elif game == GAME_SM: - from worlds.sm.Rom import JAP10HASH as HASH + from worlds.sm.Rom import SMJUHASH as HASH elif game == GAME_SOE: from worlds.soe.Patch import USHASH as HASH elif game == GAME_SMZ3: - from worlds.alttp.Rom import JAP10HASH as ALTTPHASH - from worlds.sm.Rom import JAP10HASH as SMHASH + from worlds.alttp.Rom import LTTPJPN10HASH as ALTTPHASH + from worlds.sm.Rom import SMJUHASH as SMHASH HASH = ALTTPHASH + SMHASH else: raise RuntimeError(f"Selected game {game} for base rom not found.") diff --git a/worlds/alttp/Rom.py b/worlds/alttp/Rom.py index 531148923c..72cd1ceac5 100644 --- a/worlds/alttp/Rom.py +++ b/worlds/alttp/Rom.py @@ -3,7 +3,7 @@ from __future__ import annotations import Utils from Patch import read_rom -JAP10HASH = '03a63945398191337e896e5771f77173' +LTTPJPN10HASH = '03a63945398191337e896e5771f77173' RANDOMIZERBASEHASH = '9952c2a3ec1b421e408df0d20c8f0c7f' ROM_PLAYER_LIMIT = 255 @@ -2890,7 +2890,7 @@ hash_alphabet = [ class LttPDeltaPatch(Patch.APDeltaPatch): - hash = JAP10HASH + hash = LTTPJPN10HASH game = "A Link to the Past" patch_file_ending = ".aplttp" @@ -2907,8 +2907,8 @@ def get_base_rom_bytes(file_name: str = "") -> bytes: basemd5 = hashlib.md5() basemd5.update(base_rom_bytes) - if JAP10HASH != basemd5.hexdigest(): - raise Exception('Supplied Base Rom does not match known MD5 for JAP(1.0) release. ' + if LTTPJPN10HASH != basemd5.hexdigest(): + raise Exception('Supplied Base Rom does not match known MD5 for Japan(1.0) release. ' 'Get the correct game and version, then dump it') get_base_rom_bytes.base_rom_bytes = base_rom_bytes return base_rom_bytes diff --git a/worlds/sm/Rom.py b/worlds/sm/Rom.py index 84ed131f52..a01fcbe3a8 100644 --- a/worlds/sm/Rom.py +++ b/worlds/sm/Rom.py @@ -4,12 +4,12 @@ import os import Utils from Patch import read_rom, APDeltaPatch -JAP10HASH = '21f3e98df4780ee1c667b84e57d88675' +SMJUHASH = '21f3e98df4780ee1c667b84e57d88675' ROM_PLAYER_LIMIT = 65535 class SMDeltaPatch(APDeltaPatch): - hash = JAP10HASH + hash = SMJUHASH game = "Super Metroid" patch_file_ending = ".apsm" @@ -26,8 +26,8 @@ def get_base_rom_bytes(file_name: str = "") -> bytes: basemd5 = hashlib.md5() basemd5.update(base_rom_bytes) - if JAP10HASH != basemd5.hexdigest(): - raise Exception('Supplied Base Rom does not match known MD5 for JAP(1.0) release. ' + if SMJUHASH != basemd5.hexdigest(): + raise Exception('Supplied Base Rom does not match known MD5 for Japan+US release. ' 'Get the correct game and version, then dump it') get_base_rom_bytes.base_rom_bytes = base_rom_bytes return base_rom_bytes diff --git a/worlds/smz3/Rom.py b/worlds/smz3/Rom.py index a97fe1672f..a355636fed 100644 --- a/worlds/smz3/Rom.py +++ b/worlds/smz3/Rom.py @@ -4,8 +4,8 @@ import os import Utils from Patch import read_rom, APDeltaPatch -SMJAP10HASH = '21f3e98df4780ee1c667b84e57d88675' -LTTPJAP10HASH = '03a63945398191337e896e5771f77173' +SMJUHASH = '21f3e98df4780ee1c667b84e57d88675' +LTTPJPN10HASH = '03a63945398191337e896e5771f77173' ROM_PLAYER_LIMIT = 256 @@ -27,16 +27,16 @@ def get_base_rom_bytes() -> bytes: basemd5 = hashlib.md5() basemd5.update(sm_base_rom_bytes) - if SMJAP10HASH != basemd5.hexdigest(): - raise Exception('Supplied Base Rom does not match known MD5 for SM JAP(1.0) release. ' + if SMJUHASH != basemd5.hexdigest(): + raise Exception('Supplied Base Rom does not match known MD5 for SM Japan+US release. ' 'Get the correct game and version, then dump it') lttp_file_name = get_lttp_base_rom_path() lttp_base_rom_bytes = bytes(read_rom(open(lttp_file_name, "rb"))) basemd5 = hashlib.md5() basemd5.update(lttp_base_rom_bytes) - if LTTPJAP10HASH != basemd5.hexdigest(): - raise Exception('Supplied Base Rom does not match known MD5 for LttP JAP(1.0) release. ' + if LTTPJPN10HASH != basemd5.hexdigest(): + raise Exception('Supplied Base Rom does not match known MD5 for LttP Japan(1.0) release. ' 'Get the correct game and version, then dump it') get_base_rom_bytes.base_rom_bytes = bytes(combine_smz3_rom(sm_base_rom_bytes, lttp_base_rom_bytes)) From bcd7096e1d211fefa6c4390d70d110df1681eafe Mon Sep 17 00:00:00 2001 From: Jarno Westhof Date: Fri, 1 Jul 2022 22:01:41 +0200 Subject: [PATCH 13/32] [The Witness] Update data_version as it was forgotten for 0.3.3 # Conflicts: # worlds/witness/docs/setup_en.md --- worlds/timespinner/docs/setup_de.md | 6 +++--- worlds/timespinner/docs/setup_en.md | 6 +++--- worlds/witness/__init__.py | 2 ++ worlds/witness/docs/setup_en.md | 4 ++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/worlds/timespinner/docs/setup_de.md b/worlds/timespinner/docs/setup_de.md index 0fe3fe1735..463568ecbd 100644 --- a/worlds/timespinner/docs/setup_de.md +++ b/worlds/timespinner/docs/setup_de.md @@ -5,7 +5,7 @@ - [Timespinner (Steam)](https://store.steampowered.com/app/368620/Timespinner/) , [Timespinner (Humble)](https://www.humblebundle.com/store/timespinner) oder [Timespinner (GOG)](https://www.gog.com/game/timespinner) (andere Versionen werden nicht unterstützt) -- [Timespinner Randomizer](https://github.com/JarnoWesthof/TsRandomizer) +- [Timespinner Randomizer](https://github.com/Jarno458/TsRandomizer) ## Wie funktioniert's? @@ -15,7 +15,7 @@ die Randomisierung der Gegenstände zu erlauben ## Installationsanweisungen 1. Die aktuellsten Dateien des Randomizers findest du ganz oben auf dieser - Webseite: [Timespinner Randomizer Releases](https://github.com/JarnoWesthof/TsRandomizer/releases). Lade dir unter ' + Webseite: [Timespinner Randomizer Releases](https://github.com/Jarno458/TsRandomizer/releases). Lade dir unter ' Assets' die .zip Datei für dein Betriebssystem herunter 2. Entpacke die .zip Datei im Ordner, in dem das Spiel Timespinner installiert ist @@ -27,7 +27,7 @@ die Randomisierung der Gegenstände zu erlauben ... im Ordner in dem die Inhalte aus der .zip Datei entpackt wurden -Weitere Informationen zum Randomizer findest du hier: [ReadMe](https://github.com/JarnoWesthof/TsRandomizer) +Weitere Informationen zum Randomizer findest du hier: [ReadMe](https://github.com/Jarno458/TsRandomizer) ## An einer Multiworld teilnehmen diff --git a/worlds/timespinner/docs/setup_en.md b/worlds/timespinner/docs/setup_en.md index ae8c97a1b3..c47c639cd2 100644 --- a/worlds/timespinner/docs/setup_en.md +++ b/worlds/timespinner/docs/setup_en.md @@ -5,7 +5,7 @@ - [Timespinner (Steam)](https://store.steampowered.com/app/368620/Timespinner/) , [Timespinner (Humble)](https://www.humblebundle.com/store/timespinner) or [Timespinner (GOG)](https://www.gog.com/game/timespinner) (other versions are not supported) -- [Timespinner Randomizer](https://github.com/JarnoWesthof/TsRandomizer) +- [Timespinner Randomizer](https://github.com/Jarno458/TsRandomizer) ## General Concept @@ -14,11 +14,11 @@ randomization of the items ## Installation Procedures -Download latest release on [Timespinner Randomizer Releases](https://github.com/JarnoWesthof/TsRandomizer/releases) you +Download latest release on [Timespinner Randomizer Releases](https://github.com/Jarno458/TsRandomizer/releases) you can find the .zip files on the releases page. Download the zip for your current platform. Then extract the zip to the folder where your Timespinner game is installed. Then just run TsRandomizer.exe (on Windows) or TsRandomizer.bin.x86_64 (on Linux) or TsRandomizer.bin.osx (on Mac) instead of Timespinner.exe to start the game in -randomized mode. For more info see the [ReadMe](https://github.com/JarnoWesthof/TsRandomizer) +randomized mode. For more info see the [ReadMe](https://github.com/Jarno458/TsRandomizer) ## Joining a MultiWorld Game diff --git a/worlds/witness/__init__.py b/worlds/witness/__init__.py index 8c6dc40cb6..0857ef6b42 100644 --- a/worlds/witness/__init__.py +++ b/worlds/witness/__init__.py @@ -35,6 +35,8 @@ class WitnessWorld(World): """ game = "The Witness" topology_present = False + data_version = 2 + static_logic = StaticWitnessLogic() static_locat = StaticWitnessLocations() static_items = StaticWitnessItems() diff --git a/worlds/witness/docs/setup_en.md b/worlds/witness/docs/setup_en.md index df114e1256..d577953c38 100644 --- a/worlds/witness/docs/setup_en.md +++ b/worlds/witness/docs/setup_en.md @@ -3,7 +3,7 @@ ## Required Software - [The Witness for 64-bit Windows (e.g. Steam version)](https://store.steampowered.com/app/210970/The_Witness/) -- [The Witness Archipelago Randomizer](https://github.com/JarnoWesthof/The-Witness-Randomizer-for-Archipelago/releases) +- [The Witness Archipelago Randomizer](https://github.com/Jarno458/The-Witness-Randomizer-for-Archipelago/releases) ## Optional Software @@ -18,7 +18,7 @@ It is recommended to do every single one of these steps when you connect to a wo 1. Launch The Witness 2. Start a fresh save (unless you have absolutely no other choice) 3. Do not move -4. Launch [The Witness Archipelago Randomizer](https://github.com/JarnoWesthof/The-Witness-Randomizer-for-Archipelago) +4. Launch [The Witness Archipelago Randomizer](https://github.com/Jarno458/The-Witness-Randomizer-for-Archipelago) 5. Enter the Archipelago address, slot name and password 6. Press "Randomize" 7. Wait for the randomization to fully finish before moving in-game From b9fb4de8787f144b14eaec27a0da2aee74465b4e Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Sat, 2 Jul 2022 13:27:50 +0200 Subject: [PATCH 14/32] BaseClasses: make ItemClassification properties faster --- BaseClasses.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BaseClasses.py b/BaseClasses.py index 78919f22c0..a186404727 100644 --- a/BaseClasses.py +++ b/BaseClasses.py @@ -1191,19 +1191,19 @@ class Item: @property def advancement(self) -> bool: - return bool(self.classification & ItemClassification.progression) + return ItemClassification.progression in self.classification @property def skip_in_prog_balancing(self) -> bool: - return self.classification == ItemClassification.progression_skip_balancing + return ItemClassification.progression_skip_balancing in self.classification @property def useful(self) -> bool: - return bool(self.classification & ItemClassification.useful) + return ItemClassification.useful in self.classification @property def trap(self) -> bool: - return bool(self.classification & ItemClassification.trap) + return ItemClassification.trap in self.classification @property def flags(self) -> int: From 3205cbf932b26f50e29e5dcb336d9b726e00bb64 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Sun, 3 Jul 2022 14:11:52 +0200 Subject: [PATCH 15/32] Generate: convert plando settings to an IntFlag with error reporting for unknown plando names (#735) --- Generate.py | 66 ++++++++++++++++++++++++++++++------------ WebHostLib/check.py | 4 +-- WebHostLib/generate.py | 4 +-- 3 files changed, 51 insertions(+), 23 deletions(-) diff --git a/Generate.py b/Generate.py index 5b83b87d91..b46c730c9a 100644 --- a/Generate.py +++ b/Generate.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import argparse import logging import random @@ -7,6 +9,7 @@ from typing import Set, Dict, Tuple, Callable, Any, Union import os from collections import Counter import string +import enum import ModuleUpdate @@ -25,7 +28,38 @@ from worlds.alttp.Text import TextTable from worlds.AutoWorld import AutoWorldRegister import copy -categories = set(AutoWorldRegister.world_types) + +class PlandoSettings(enum.IntFlag): + items = 0b0001 + connections = 0b0010 + texts = 0b0100 + bosses = 0b1000 + + @classmethod + def from_option_string(cls, option_string: str) -> PlandoSettings: + result = cls(0) + for part in option_string.split(","): + part = part.strip().lower() + if part: + result = cls._handle_part(part, result) + return result + + @classmethod + def from_set(cls, option_set: Set[str]) -> PlandoSettings: + result = cls(0) + for part in option_set: + result = cls._handle_part(part, result) + return result + + @classmethod + def _handle_part(cls, part: str, base: PlandoSettings) -> PlandoSettings: + try: + part = cls[part] + except Exception as e: + raise KeyError(f"{part} is not a recognized name for a plando module. " + f"Known options: {', '.join(flag.name for flag in cls)}") from e + else: + return base | part def mystery_argparse(): @@ -64,7 +98,7 @@ def mystery_argparse(): args.weights_file_path = os.path.join(args.player_files_path, args.weights_file_path) if not os.path.isabs(args.meta_file_path): args.meta_file_path = os.path.join(args.player_files_path, args.meta_file_path) - args.plando: Set[str] = {arg.strip().lower() for arg in args.plando.split(",")} + args.plando: PlandoSettings = PlandoSettings.from_option_string(args.plando) return args, options @@ -127,7 +161,7 @@ def main(args=None, callback=ERmain): args.multi = max(player_id-1, args.multi) print(f"Generating for {args.multi} player{'s' if args.multi > 1 else ''}, {seed_name} Seed {seed} with plando: " - f"{', '.join(args.plando)}") + f"{args.plando}") if not weights_cache: raise Exception(f"No weights found. Provide a general weights file ({args.weights_file_path}) or individual player files. " @@ -403,7 +437,7 @@ def roll_triggers(weights: dict, triggers: list) -> dict: def get_plando_bosses(boss_shuffle: str, plando_options: Set[str]) -> str: if boss_shuffle in boss_shuffle_options: return boss_shuffle_options[boss_shuffle] - elif "bosses" in plando_options: + elif PlandoSettings.bosses in plando_options: options = boss_shuffle.lower().split(";") remainder_shuffle = "none" # vanilla bosses = [] @@ -452,7 +486,7 @@ def handle_option(ret: argparse.Namespace, game_weights: dict, option_key: str, setattr(ret, option_key, option(option.default)) -def roll_settings(weights: dict, plando_options: Set[str] = frozenset(("bosses",))): +def roll_settings(weights: dict, plando_options: PlandoSettings = PlandoSettings.bosses): if "linked_options" in weights: weights = roll_linked_options(weights) @@ -465,17 +499,11 @@ def roll_settings(weights: dict, plando_options: Set[str] = frozenset(("bosses", if tuplize_version(version) > version_tuple: raise Exception(f"Settings reports required version of generator is at least {version}, " f"however generator is of version {__version__}") - required_plando_options = requirements.get("plando", "") - if required_plando_options: - required_plando_options = set(option.strip() for option in required_plando_options.split(",")) - required_plando_options -= plando_options + required_plando_options = PlandoSettings.from_option_string(requirements.get("plando", "")) + if required_plando_options not in plando_options: if required_plando_options: - if len(required_plando_options) == 1: - raise Exception(f"Settings reports required plando module {', '.join(required_plando_options)}, " - f"which is not enabled.") - else: - raise Exception(f"Settings reports required plando modules {', '.join(required_plando_options)}, " - f"which are not enabled.") + raise Exception(f"Settings reports required plando module {str(required_plando_options)}, " + f"which is not enabled.") ret = argparse.Namespace() for option_key in Options.per_game_common_options: @@ -504,12 +532,12 @@ def roll_settings(weights: dict, plando_options: Set[str] = frozenset(("bosses", # skip setting this option if already set from common_options, defaulting to root option if not (option_key in Options.common_options and option_key not in game_weights): handle_option(ret, game_weights, option_key, option) - if "items" in plando_options: + if PlandoSettings.items in plando_options: ret.plando_items = game_weights.get("plando_items", []) if ret.game == "Minecraft" or ret.game == "Ocarina of Time": # bad hardcoded behavior to make this work for now ret.plando_connections = [] - if "connections" in plando_options: + if PlandoSettings.connections in plando_options: options = game_weights.get("plando_connections", []) for placement in options: if roll_percentage(get_choice("percentage", placement, 100)): @@ -629,7 +657,7 @@ def roll_alttp_settings(ret: argparse.Namespace, weights, plando_options): raise Exception(f"unknown Medallion {medallion} for {'misery mire' if index == 0 else 'turtle rock'}") ret.plando_texts = {} - if "texts" in plando_options: + if PlandoSettings.texts in plando_options: tt = TextTable() tt.removeUnwantedText() options = weights.get("plando_texts", []) @@ -641,7 +669,7 @@ def roll_alttp_settings(ret: argparse.Namespace, weights, plando_options): ret.plando_texts[at] = str(get_choice_legacy("text", placement)) ret.plando_connections = [] - if "connections" in plando_options: + if PlandoSettings.connections in plando_options: options = weights.get("plando_connections", []) for placement in options: if roll_percentage(get_choice_legacy("percentage", placement, 100)): diff --git a/WebHostLib/check.py b/WebHostLib/check.py index b560801c1b..a4e2f518db 100644 --- a/WebHostLib/check.py +++ b/WebHostLib/check.py @@ -12,7 +12,7 @@ def allowed_file(filename): return filename.endswith(('.txt', ".yaml", ".zip")) -from Generate import roll_settings +from Generate import roll_settings, PlandoSettings from Utils import parse_yamls @@ -65,7 +65,7 @@ def get_yaml_data(file) -> Union[Dict[str, str], str]: def roll_options(options: Dict[str, Union[dict, str]], plando_options: Set[str] = frozenset({"bosses", "items", "connections", "texts"})) -> \ Tuple[Dict[str, Union[str, bool]], Dict[str, dict]]: - plando_options = set(plando_options) + plando_options = PlandoSettings.from_set(set(plando_options)) results = {} rolled_results = {} for filename, text in options.items(): diff --git a/WebHostLib/generate.py b/WebHostLib/generate.py index d8d46037ad..9c35a591ed 100644 --- a/WebHostLib/generate.py +++ b/WebHostLib/generate.py @@ -12,7 +12,7 @@ from flask import request, flash, redirect, url_for, session, render_template from worlds.alttp.EntranceRandomizer import parse_arguments from Main import main as ERmain from BaseClasses import seeddigits, get_seed -from Generate import handle_name +from Generate import handle_name, PlandoSettings import pickle from .models import * @@ -120,7 +120,7 @@ def gen_game(gen_options, meta: TypeOptional[Dict[str, object]] = None, owner=No erargs.outputname = seedname erargs.outputpath = target.name erargs.teams = 1 - erargs.plando_options = ", ".join(plando_options) + erargs.plando_options = PlandoSettings.from_set(plando_options) name_counter = Counter() for player, (playerfile, settings) in enumerate(gen_options.items(), 1): From 7d85ab471aeb920d1c08df440f55e4ec0614decf Mon Sep 17 00:00:00 2001 From: Colin Lenzen <32756996+TriumphantBass@users.noreply.github.com> Date: Sun, 3 Jul 2022 08:05:44 -0700 Subject: [PATCH 16/32] [Timespinner] Rename flag and add tiered loot settings (#699) --- worlds/timespinner/LogicMixin.py | 2 +- worlds/timespinner/Options.py | 42 +++++++++++++++++++++++++++++--- worlds/timespinner/__init__.py | 2 +- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/worlds/timespinner/LogicMixin.py b/worlds/timespinner/LogicMixin.py index df7e8f6bca..0bb8bf5d86 100644 --- a/worlds/timespinner/LogicMixin.py +++ b/worlds/timespinner/LogicMixin.py @@ -52,7 +52,7 @@ class TimespinnerLogic(LogicMixin): return self.has_any({'Security Keycard A', 'Security Keycard B', 'Security Keycard C', 'Security Keycard D'}, player) def _timespinner_can_break_walls(self, world: MultiWorld, player: int) -> bool: - if is_option_enabled(world, player, "FacebookMode"): + if is_option_enabled(world, player, "EyeSpy"): return self.has('Oculus Ring', player) else: return True diff --git a/worlds/timespinner/Options.py b/worlds/timespinner/Options.py index e0eda6074a..588416dd52 100644 --- a/worlds/timespinner/Options.py +++ b/worlds/timespinner/Options.py @@ -19,9 +19,9 @@ class DownloadableItems(DefaultOnToggle): "With the tablet you will be able to download items at terminals" display_name = "Downloadable items" -class FacebookMode(Toggle): - "Requires Oculus Rift(ng) to spot the weakspots in walls and floors" - display_name = "Facebook mode" +class EyeSpy(Toggle): + "Requires Oculus Ring in inventory to be able to break hidden walls." + display_name = "Eye Spy" class StartWithMeyef(Toggle): "Start with Meyef, ideal for when you want to play multiplayer." @@ -224,6 +224,37 @@ class LootPool(Choice): option_randomized = 1 option_empty = 2 +class DropRateCategory(Choice): + """Sets the drop rate when 'Loot Pool' is set to 'Random' + Tiered: Based on item rarity/value + Vanilla: Based on bestiary slot the item is placed into + Random: Assigned a random tier/drop rate + Fixed: Set by the 'Fixed Drop Rate' setting + """ + display_name = "Drop Rate Category" + option_tiered = 0 + option_vanilla = 1 + option_randomized = 2 + option_fixed = 3 + +class FixedDropRate(Range): + "Base drop rate percentage when 'Drop Rate Category' is set to 'Fixed'" + display_name = "Fixed Drop Rate" + range_start = 0 + range_end = 100 + default = 5 + +class LootTierDistro(Choice): + """Sets how often items of each rarity tier are placed when 'Loot Pool' is set to 'Random' + Default Weight: Rarer items will be assigned to enemy drop slots less frequently than common items + Full Random: Any item has an equal chance of being placed in an enemy's drop slot + Inverted Weight: Rarest items show up the most frequently, while common items are the rarest + """ + display_name = "Loot Tier Distrubution" + option_default_weight = 0 + option_full_random = 1 + option_inverted_weight = 2 + class ShowBestiary(Toggle): "All entries in the bestiary are visible, without needing to kill one of a given enemy first" display_name = "Show Bestiary Entries" @@ -238,7 +269,7 @@ timespinner_options: Dict[str, Option] = { #"ProgressiveVerticalMovement": ProgressiveVerticalMovement, #"ProgressiveKeycards": ProgressiveKeycards, "DownloadableItems": DownloadableItems, - "FacebookMode": FacebookMode, + "EyeSpy": EyeSpy, "StartWithMeyef": StartWithMeyef, "QuickSeed": QuickSeed, "SpecificKeycards": SpecificKeycards, @@ -257,6 +288,9 @@ timespinner_options: Dict[str, Option] = { "ShopWarpShards": ShopWarpShards, "ShopMultiplier": ShopMultiplier, "LootPool": LootPool, + "DropRateCategory": DropRateCategory, + "FixedDropRate": FixedDropRate, + "LootTierDistro": LootTierDistro, "ShowBestiary": ShowBestiary, "ShowDrops": ShowDrops, "DeathLink": DeathLink, diff --git a/worlds/timespinner/__init__.py b/worlds/timespinner/__init__.py index 2997b27636..d789e9ddef 100644 --- a/worlds/timespinner/__init__.py +++ b/worlds/timespinner/__init__.py @@ -228,7 +228,7 @@ def create_item_with_correct_settings(world: MultiWorld, player: int, name: str) if (name == 'Tablet' or name == 'Library Keycard V') and not is_option_enabled(world, player, "DownloadableItems"): item.classification = ItemClassification.filler - elif name == 'Oculus Ring' and not is_option_enabled(world, player, "FacebookMode"): + elif name == 'Oculus Ring' and not is_option_enabled(world, player, "EyeSpy"): item.classification = ItemClassification.filler elif (name == 'Kobo' or name == 'Merchant Crow') and not is_option_enabled(world, player, "GyreArchives"): item.classification = ItemClassification.filler From 8870b577d054ef36f2ff6239418266c794674e36 Mon Sep 17 00:00:00 2001 From: Daniel Grace Date: Sun, 3 Jul 2022 08:10:10 -0700 Subject: [PATCH 17/32] Hollow Knight June 2022 Updates (#720) 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. --- worlds/hk/ExtractedData.py | 6 +- worlds/hk/Extractor.py | 90 +- worlds/hk/GeneratedRules.py | 1699 ++++++++++++++++++++++++ worlds/hk/Options.py | 222 +++- worlds/hk/Rules.py | 1759 +------------------------ worlds/hk/__init__.py | 410 ++++-- worlds/hk/templates/RulesTemplate.pyt | 44 +- 7 files changed, 2354 insertions(+), 1876 deletions(-) create mode 100644 worlds/hk/GeneratedRules.py diff --git a/worlds/hk/ExtractedData.py b/worlds/hk/ExtractedData.py index feb498b555..cf796050e4 100644 --- a/worlds/hk/ExtractedData.py +++ b/worlds/hk/ExtractedData.py @@ -3,14 +3,16 @@ connectors = {'Room_temple[left1]': 'Crossroads_02[door1]', 'Tutorial_01[right1]': 'Town[left1]', 'Tutorial_01[top1]': None, 'Tutorial_01[top2]': 'Cliffs_02[bot1]', 'Town[left1]': 'Tutorial_01[right1]', 'Town[bot1]': 'Crossroads_01[top1]', 'Town[right1]': 'Mines_10[left1]', 'Town[top1]': None, 'Town[door_station]': 'Room_Town_Stag_Station[left1]', 'Town[door_sly]': 'Room_shop[left1]', 'Town[door_mapper]': 'Room_mapper[left1]', 'Town[door_jiji]': 'Room_Ouiji[left1]', 'Town[door_bretta]': 'Room_Bretta[right1]', 'Town[room_divine]': 'Grimm_Divine[left1]', 'Town[room_grimm]': 'Grimm_Main_Tent[left1]', 'Room_shop[left1]': 'Town[door_sly]', 'Room_Town_Stag_Station[left1]': 'Town[door_station]', 'Room_mapper[left1]': 'Town[door_mapper]', 'Room_Bretta[right1]': 'Town[door_bretta]', 'Room_Ouiji[left1]': 'Town[door_jiji]', 'Grimm_Divine[left1]': 'Town[room_divine]', 'Grimm_Main_Tent[left1]': 'Town[room_grimm]', 'Crossroads_01[top1]': 'Town[bot1]', 'Crossroads_01[left1]': 'Crossroads_07[right1]', 'Crossroads_01[right1]': 'Crossroads_02[left1]', 'Crossroads_02[left1]': 'Crossroads_01[right1]', 'Crossroads_02[door1]': 'Room_temple[left1]', 'Crossroads_02[right1]': 'Crossroads_39[left1]', 'Crossroads_03[right1]': 'Crossroads_15[left1]', 'Crossroads_03[right2]': 'Mines_33[left1]', 'Crossroads_03[left1]': 'Crossroads_21[right1]', 'Crossroads_03[left2]': 'Crossroads_47[right1]', 'Crossroads_03[bot1]': 'Crossroads_19[top1]', 'Crossroads_03[top1]': 'Crossroads_16[bot1]', 'Crossroads_04[left1]': 'Crossroads_19[right1]', 'Crossroads_04[top1]': 'Crossroads_27[bot1]', 'Crossroads_04[door_Mender_House]': 'Room_Mender_House[left1]', 'Crossroads_04[door1]': 'Room_ruinhouse[left1]', 'Crossroads_04[door_charmshop]': 'Room_Charm_Shop[left1]', 'Crossroads_04[right1]': 'Crossroads_50[left1]', 'Crossroads_05[left1]': 'Crossroads_07[right2]', 'Crossroads_05[right1]': 'Crossroads_40[left1]', 'Crossroads_06[left1]': 'Crossroads_33[right1]', 'Crossroads_06[door1]': 'Crossroads_ShamanTemple[left1]', 'Crossroads_06[right1]': 'Crossroads_10[left1]', 'Crossroads_07[left1]': 'Crossroads_38[right1]', 'Crossroads_07[left2]': 'Crossroads_11_alt[right1]', 'Crossroads_07[left3]': 'Crossroads_25[right1]', 'Crossroads_07[right1]': 'Crossroads_01[left1]', 'Crossroads_07[right2]': 'Crossroads_05[left1]', 'Crossroads_07[bot1]': 'Crossroads_33[top1]', 'Crossroads_08[left1]': 'Crossroads_33[right2]', 'Crossroads_08[left2]': 'Crossroads_18[right1]', 'Crossroads_08[right1]': 'Crossroads_30[left1]', 'Crossroads_08[right2]': 'Crossroads_13[left1]', 'Crossroads_09[left1]': 'Crossroads_36[right2]', 'Crossroads_09[right1]': 'Crossroads_33[left1]', 'Crossroads_10[left1]': 'Crossroads_06[right1]', 'Crossroads_10[right1]': 'Crossroads_21[left1]', 'Crossroads_11_alt[left1]': 'Fungus1_01[right1]', 'Crossroads_11_alt[right1]': 'Crossroads_07[left2]', 'Crossroads_12[left1]': 'Crossroads_35[right1]', 'Crossroads_12[right1]': 'Crossroads_33[left2]', 'Crossroads_13[left1]': 'Crossroads_08[right2]', 'Crossroads_13[right1]': 'Crossroads_42[left1]', 'Crossroads_14[left1]': 'Crossroads_39[right1]', 'Crossroads_14[left2]': 'Crossroads_16[right1]', 'Crossroads_14[right1]': 'Crossroads_48[left1]', 'Crossroads_14[right2]': 'Crossroads_45[left1]', 'Crossroads_15[left1]': 'Crossroads_03[right1]', 'Crossroads_15[right1]': 'Crossroads_27[left1]', 'Crossroads_16[left1]': 'Crossroads_40[right1]', 'Crossroads_16[right1]': 'Crossroads_14[left2]', 'Crossroads_16[bot1]': 'Crossroads_03[top1]', 'Crossroads_18[right1]': 'Crossroads_08[left2]', 'Crossroads_18[right2]': 'Crossroads_52[left1]', 'Crossroads_18[bot1]': 'Fungus2_06[top1]', 'Crossroads_19[right1]': 'Crossroads_04[left1]', 'Crossroads_19[top1]': 'Crossroads_03[bot1]', 'Crossroads_19[left1]': 'Crossroads_42[right1]', 'Crossroads_19[left2]': 'Crossroads_43[right1]', 'Crossroads_21[left1]': 'Crossroads_10[right1]', 'Crossroads_21[right1]': 'Crossroads_03[left1]', 'Crossroads_21[top1]': 'Crossroads_22[bot1]', 'Crossroads_22[bot1]': 'Crossroads_21[top1]', 'Crossroads_25[right1]': 'Crossroads_07[left3]', 'Crossroads_25[left1]': 'Crossroads_36[right1]', 'Crossroads_27[right1]': 'Crossroads_46[left1]', 'Crossroads_27[bot1]': 'Crossroads_04[top1]', 'Crossroads_27[left1]': 'Crossroads_15[right1]', 'Crossroads_27[left2]': 'Crossroads_31[right1]', 'Crossroads_30[left1]': 'Crossroads_08[right1]', 'Crossroads_31[right1]': 'Crossroads_27[left2]', 'Crossroads_33[top1]': 'Crossroads_07[bot1]', 'Crossroads_33[left1]': 'Crossroads_09[right1]', 'Crossroads_33[left2]': 'Crossroads_12[right1]', 'Crossroads_33[right1]': 'Crossroads_06[left1]', 'Crossroads_33[right2]': 'Crossroads_08[left1]', 'Crossroads_35[bot1]': 'Fungus3_26[top1]', 'Crossroads_35[right1]': 'Crossroads_12[left1]', 'Crossroads_36[right1]': 'Crossroads_25[left1]', 'Crossroads_36[right2]': 'Crossroads_09[left1]', 'Crossroads_37[right1]': 'Crossroads_49[left1]', 'Crossroads_38[right1]': 'Crossroads_07[left1]', 'Crossroads_39[right1]': 'Crossroads_14[left1]', 'Crossroads_39[left1]': 'Crossroads_02[right1]', 'Crossroads_40[right1]': 'Crossroads_16[left1]', 'Crossroads_40[left1]': 'Crossroads_05[right1]', 'Crossroads_42[left1]': 'Crossroads_13[right1]', 'Crossroads_42[right1]': 'Crossroads_19[left1]', 'Crossroads_43[left1]': 'Crossroads_49[right1]', 'Crossroads_43[right1]': 'Crossroads_19[left2]', 'Crossroads_45[right1]': 'Mines_01[left1]', 'Crossroads_45[left1]': 'Crossroads_14[right2]', 'Crossroads_46[left1]': 'Crossroads_27[right1]', 'Crossroads_46b[right1]': 'RestingGrounds_02[left1]', 'Crossroads_ShamanTemple[left1]': 'Crossroads_06[door1]', 'Crossroads_47[right1]': 'Crossroads_03[left2]', 'Crossroads_48[left1]': 'Crossroads_14[right1]', 'Crossroads_49[right1]': 'Crossroads_43[left1]', 'Crossroads_49[left1]': 'Crossroads_37[right1]', 'Crossroads_49b[right1]': 'Ruins1_28[left1]', 'Crossroads_50[right1]': 'RestingGrounds_06[left1]', 'Crossroads_50[left1]': 'Crossroads_04[right1]', 'Crossroads_52[left1]': 'Crossroads_18[right2]', 'Room_ruinhouse[left1]': 'Crossroads_04[door1]', 'Room_Charm_Shop[left1]': 'Crossroads_04[door_charmshop]', 'Room_Mender_House[left1]': 'Crossroads_04[door_Mender_House]', 'Fungus1_01[left1]': 'Fungus1_01b[right1]', 'Fungus1_01[right1]': 'Crossroads_11_alt[left1]', 'Fungus1_01b[left1]': 'Fungus1_02[right1]', 'Fungus1_01b[right1]': 'Fungus1_01[left1]', 'Fungus1_02[left1]': 'Fungus1_17[right1]', 'Fungus1_02[right1]': 'Fungus1_01b[left1]', 'Fungus1_02[right2]': 'Fungus1_06[left1]', 'Fungus1_03[left1]': 'Fungus1_31[right1]', 'Fungus1_03[right1]': 'Fungus1_17[left1]', 'Fungus1_03[bot1]': 'Fungus1_05[top1]', 'Fungus1_04[left1]': 'Fungus1_25[right1]', 'Fungus1_04[right1]': 'Fungus1_21[left1]', 'Fungus1_05[right1]': 'Fungus1_14[left1]', 'Fungus1_05[bot1]': 'Fungus1_10[top1]', 'Fungus1_05[top1]': 'Fungus1_03[bot1]', 'Fungus1_06[left1]': 'Fungus1_02[right2]', 'Fungus1_06[bot1]': 'Fungus1_07[top1]', 'Fungus1_07[top1]': 'Fungus1_06[bot1]', 'Fungus1_07[left1]': 'Fungus1_19[right1]', 'Fungus1_07[right1]': 'Fungus1_08[left1]', 'Fungus1_08[left1]': 'Fungus1_07[right1]', 'Fungus1_09[left1]': 'Fungus1_15[right1]', 'Fungus1_09[right1]': 'Fungus1_30[left1]', 'Fungus1_10[left1]': 'Fungus1_30[right1]', 'Fungus1_10[right1]': 'Fungus1_19[left1]', 'Fungus1_10[top1]': 'Fungus1_05[bot1]', 'Fungus1_11[top1]': 'Fungus1_19[bot1]', 'Fungus1_11[right1]': 'Fungus1_34[left1]', 'Fungus1_11[right2]': 'Fungus1_37[left1]', 'Fungus1_11[left1]': 'Fungus1_29[right1]', 'Fungus1_11[bot1]': 'Fungus3_01[top1]', 'Fungus1_12[left1]': 'Fungus1_13[right1]', 'Fungus1_12[right1]': 'Fungus1_29[left1]', 'Fungus1_13[right1]': 'Fungus1_12[left1]', 'Fungus1_13[left1]': 'Fungus3_22[right1]', 'Fungus1_14[left1]': 'Fungus1_05[right1]', 'Fungus1_15[door1]': 'Room_nailmaster_02[left1]', 'Fungus1_15[right1]': 'Fungus1_09[left1]', 'Fungus1_16_alt[right1]': 'Fungus1_22[left1]', 'Fungus1_17[left1]': 'Fungus1_03[right1]', 'Fungus1_17[right1]': 'Fungus1_02[left1]', 'Fungus1_19[left1]': 'Fungus1_10[right1]', 'Fungus1_19[right1]': 'Fungus1_07[left1]', 'Fungus1_19[bot1]': 'Fungus1_11[top1]', 'Fungus1_20_v02[bot1]': 'Fungus1_21[top1]', 'Fungus1_20_v02[bot2]': 'Fungus1_32[top1]', 'Fungus1_20_v02[right1]': 'Fungus1_28[left2]', 'Fungus1_21[bot1]': 'Fungus1_22[top1]', 'Fungus1_21[top1]': 'Fungus1_20_v02[bot1]', 'Fungus1_21[left1]': 'Fungus1_04[right1]', 'Fungus1_21[right1]': 'Fungus1_32[left1]', 'Fungus1_22[bot1]': 'Fungus1_30[top1]', 'Fungus1_22[top1]': 'Fungus1_21[bot1]', 'Fungus1_22[left1]': 'Fungus1_16_alt[right1]', 'Fungus1_23[left1]': 'Fungus3_48[right2]', 'Fungus1_23[right1]': 'Fungus3_13[left1]', 'Fungus1_24[left1]': 'Fungus3_05[right1]', 'Fungus1_25[right1]': 'Fungus1_04[left1]', 'Fungus1_25[left1]': 'Fungus1_26[right1]', 'Fungus1_26[right1]': 'Fungus1_25[left1]', 'Fungus1_26[left1]': 'Fungus1_Slug[right1]', 'Fungus1_26[door_SlugShrine]': 'Room_Slug_Shrine[left1]', 'Fungus1_28[left1]': 'Cliffs_01[right3]', 'Fungus1_28[left2]': 'Fungus1_20_v02[right1]', 'Fungus1_29[left1]': 'Fungus1_12[right1]', 'Fungus1_29[right1]': 'Fungus1_11[left1]', 'Fungus1_30[top1]': 'Fungus1_22[bot1]', 'Fungus1_30[top3]': 'Fungus1_31[bot1]', 'Fungus1_30[left1]': 'Fungus1_09[right1]', 'Fungus1_30[right1]': 'Fungus1_10[left1]', 'Fungus1_31[top1]': 'Fungus1_32[bot1]', 'Fungus1_31[bot1]': 'Fungus1_30[top3]', 'Fungus1_31[right1]': 'Fungus1_03[left1]', 'Fungus1_32[bot1]': 'Fungus1_31[top1]', 'Fungus1_32[top1]': 'Fungus1_20_v02[bot2]', 'Fungus1_32[left1]': 'Fungus1_21[right1]', 'Fungus1_34[door1]': 'Fungus1_35[left1]', 'Fungus1_34[left1]': 'Fungus1_11[right1]', 'Fungus1_35[left1]': 'Fungus1_34[door1]', 'Fungus1_35[right1]': 'Fungus1_36[left1]', 'Fungus1_36[left1]': 'Fungus1_35[right1]', 'Fungus1_37[left1]': 'Fungus1_11[right2]', 'Fungus1_Slug[right1]': 'Fungus1_26[left1]', 'Room_Slug_Shrine[left1]': 'Fungus1_26[door_SlugShrine]', 'Room_nailmaster_02[left1]': 'Fungus1_15[door1]', 'Fungus3_01[top1]': 'Fungus1_11[bot1]', 'Fungus3_01[right1]': 'Fungus3_25[left1]', 'Fungus3_01[left1]': 'Fungus3_24[right1]', 'Fungus3_01[right2]': 'Fungus3_02[left1]', 'Fungus3_02[left1]': 'Fungus3_01[right2]', 'Fungus3_02[left2]': 'Fungus3_03[right1]', 'Fungus3_02[left3]': 'Fungus3_35[right1]', 'Fungus3_02[right1]': 'Fungus3_47[left1]', 'Fungus3_02[right2]': 'Fungus2_01[left1]', 'Fungus3_03[right1]': 'Fungus3_02[left2]', 'Fungus3_03[left1]': 'Fungus3_34[right1]', 'Fungus3_24[right1]': 'Fungus3_01[left1]', 'Fungus3_24[left1]': 'Fungus3_44[right1]', 'Fungus3_24[top1]': 'Fungus3_30[bot1]', 'Fungus3_25[right1]': 'Fungus3_25b[left1]', 'Fungus3_25[left1]': 'Fungus3_01[right1]', 'Fungus3_25b[right1]': 'Fungus3_26[left2]', 'Fungus3_25b[left1]': 'Fungus3_25[right1]', 'Fungus3_26[top1]': 'Crossroads_35[bot1]', 'Fungus3_26[left1]': 'Fungus3_28[right1]', 'Fungus3_26[left2]': 'Fungus3_25b[right1]', 'Fungus3_26[left3]': 'Fungus3_27[right1]', 'Fungus3_26[right1]': 'Fungus2_33[left1]', 'Fungus3_27[left1]': 'Fungus3_47[right1]', 'Fungus3_27[right1]': 'Fungus3_26[left3]', 'Fungus3_28[right1]': 'Fungus3_26[left1]', 'Fungus3_30[bot1]': 'Fungus3_24[top1]', 'Fungus3_35[right1]': 'Fungus3_02[left3]', 'Fungus3_44[bot1]': 'Fungus3_34[top1]', 'Fungus3_44[door1]': 'Room_Fungus_Shaman[left1]', 'Fungus3_44[right1]': 'Fungus3_24[left1]', 'Fungus3_47[left1]': 'Fungus3_02[right1]', 'Fungus3_47[right1]': 'Fungus3_27[left1]', 'Fungus3_47[door1]': 'Fungus3_archive[left1]', 'Room_Fungus_Shaman[left1]': 'Fungus3_44[door1]', 'Fungus3_archive[left1]': 'Fungus3_47[door1]', 'Fungus3_archive[bot1]': 'Fungus3_archive_02[top1]', 'Fungus3_archive_02[top1]': 'Fungus3_archive[bot1]', 'Fungus2_01[left1]': 'Fungus3_02[right2]', 'Fungus2_01[left2]': 'Fungus2_02[right1]', 'Fungus2_01[left3]': 'Fungus2_34[right1]', 'Fungus2_01[right1]': 'Fungus2_03[left1]', 'Fungus2_02[right1]': 'Fungus2_01[left2]', 'Fungus2_34[right1]': 'Fungus2_01[left3]', 'Fungus2_03[left1]': 'Fungus2_01[right1]', 'Fungus2_03[bot1]': 'Fungus2_18[top1]', 'Fungus2_03[right1]': 'Fungus2_04[left1]', 'Fungus2_04[top1]': 'Fungus2_05[bot1]', 'Fungus2_04[right1]': 'Fungus2_28[left1]', 'Fungus2_04[left1]': 'Fungus2_03[right1]', 'Fungus2_04[right2]': 'Fungus2_28[left2]', 'Fungus2_05[bot1]': 'Fungus2_04[top1]', 'Fungus2_05[right1]': 'Fungus2_06[left1]', 'Fungus2_06[top1]': 'Crossroads_18[bot1]', 'Fungus2_06[left1]': 'Fungus2_05[right1]', 'Fungus2_06[left2]': 'Fungus2_33[right1]', 'Fungus2_06[right1]': 'Fungus2_26[left1]', 'Fungus2_06[right2]': 'Fungus2_07[left1]', 'Fungus2_07[left1]': 'Fungus2_06[right2]', 'Fungus2_07[right1]': 'Fungus2_08[left1]', 'Fungus2_08[left1]': 'Fungus2_07[right1]', 'Fungus2_08[left2]': 'Fungus2_09[right1]', 'Fungus2_08[right1]': 'Fungus2_32[left1]', 'Fungus2_09[left1]': 'Fungus2_10[right1]', 'Fungus2_09[right1]': 'Fungus2_08[left2]', 'Fungus2_10[right1]': 'Fungus2_09[left1]', 'Fungus2_10[right2]': 'Fungus2_21[left1]', 'Fungus2_10[bot1]': 'Fungus2_11[top1]', 'Fungus2_11[top1]': 'Fungus2_10[bot1]', 'Fungus2_11[left1]': 'Fungus2_18[right1]', 'Fungus2_11[left2]': 'Fungus2_17[right1]', 'Fungus2_11[right1]': 'Fungus2_12[left1]', 'Fungus2_12[left1]': 'Fungus2_11[right1]', 'Fungus2_12[bot1]': 'Fungus2_13[top1]', 'Fungus2_13[top1]': 'Fungus2_12[bot1]', 'Fungus2_13[left2]': 'Fungus2_14[right1]', 'Fungus2_13[left3]': 'Fungus2_23[right1]', 'Fungus2_14[top1]': 'Fungus2_17[bot1]', 'Fungus2_14[right1]': 'Fungus2_13[left2]', 'Fungus2_14[bot3]': 'Fungus2_15[top3]', 'Fungus2_15[top3]': 'Fungus2_14[bot3]', 'Fungus2_15[right1]': 'Fungus2_31[left1]', 'Fungus2_15[left1]': 'Fungus2_25[right1]', 'Fungus2_17[left1]': 'Fungus2_29[right1]', 'Fungus2_17[right1]': 'Fungus2_11[left2]', 'Fungus2_17[bot1]': 'Fungus2_14[top1]', 'Fungus2_18[right1]': 'Fungus2_11[left1]', 'Fungus2_18[bot1]': 'Fungus2_19[top1]', 'Fungus2_18[top1]': 'Fungus2_03[bot1]', 'Fungus2_19[top1]': 'Fungus2_18[bot1]', 'Fungus2_19[left1]': 'Fungus2_20[right1]', 'Fungus2_20[right1]': 'Fungus2_19[left1]', 'Fungus2_20[left1]': 'Deepnest_01[right1]', 'Fungus2_21[right1]': 'Ruins1_01[left1]', 'Fungus2_21[left1]': 'Fungus2_10[right2]', 'Fungus2_23[right1]': 'Fungus2_13[left3]', 'Fungus2_23[right2]': 'Waterways_09[left1]', 'Fungus2_26[left1]': 'Fungus2_06[right1]', 'Fungus2_28[left1]': 'Fungus2_04[right1]', 'Fungus2_28[left2]': 'Fungus2_04[right2]', 'Fungus2_29[right1]': 'Fungus2_17[left1]', 'Fungus2_29[bot1]': 'Fungus2_30[top1]', 'Fungus2_30[bot1]': 'Fungus2_25[top2]', 'Fungus2_30[top1]': 'Fungus2_29[bot1]', 'Fungus2_31[left1]': 'Fungus2_15[right1]', 'Fungus2_32[left1]': 'Fungus2_08[right1]', 'Fungus2_33[right1]': 'Fungus2_06[left2]', 'Fungus2_33[left1]': 'Fungus3_26[right1]', 'Deepnest_01[right1]': 'Fungus2_20[left1]', 'Deepnest_01[bot1]': 'Deepnest_01b[top1]', 'Deepnest_01[bot2]': 'Deepnest_01b[top2]', 'Deepnest_01[left1]': 'Fungus3_39[right1]', 'Deepnest_01b[top1]': 'Deepnest_01[bot1]', 'Deepnest_01b[top2]': None, 'Deepnest_01b[right1]': 'Deepnest_02[left1]', 'Deepnest_01b[right2]': 'Deepnest_02[left2]', 'Deepnest_01b[bot1]': 'Deepnest_17[top1]', 'Deepnest_02[left1]': 'Deepnest_01b[right1]', 'Deepnest_02[left2]': 'Deepnest_01b[right2]', 'Deepnest_02[right1]': 'Deepnest_36[left1]', 'Deepnest_03[right1]': 'Deepnest_30[left1]', 'Deepnest_03[left1]': 'Deepnest_34[right1]', 'Deepnest_03[top1]': 'Deepnest_33[bot1]', 'Deepnest_03[left2]': 'Deepnest_31[right1]', 'Deepnest_09[left1]': 'Deepnest_10[right1]', 'Deepnest_10[right1]': 'Deepnest_09[left1]', 'Deepnest_10[right2]': 'Deepnest_41[left1]', 'Deepnest_10[right3]': 'Deepnest_41[left2]', 'Deepnest_10[door1]': 'Deepnest_Spider_Town[left1]', 'Deepnest_10[door2]': 'Room_spider_small[left1]', 'Room_spider_small[left1]': 'Deepnest_10[door2]', 'Deepnest_Spider_Town[left1]': 'Deepnest_10[door1]', 'Deepnest_14[right1]': 'Deepnest_17[left1]', 'Deepnest_14[left1]': 'Deepnest_26[right1]', 'Deepnest_14[bot1]': 'Deepnest_33[top1]', 'Deepnest_14[bot2]': 'Deepnest_33[top2]', 'Deepnest_16[left1]': 'Deepnest_17[right1]', 'Deepnest_16[bot1]': 'Fungus2_25[top1]', 'Deepnest_17[left1]': 'Deepnest_14[right1]', 'Deepnest_17[right1]': 'Deepnest_16[left1]', 'Deepnest_17[top1]': 'Deepnest_01b[bot1]', 'Deepnest_17[bot1]': 'Deepnest_30[top1]', 'Fungus2_25[top1]': 'Deepnest_16[bot1]', 'Fungus2_25[top2]': None, 'Fungus2_25[right1]': 'Fungus2_15[left1]', 'Deepnest_26[left1]': 'Deepnest_26b[right1]', 'Deepnest_26[left2]': 'Deepnest_26b[right2]', 'Deepnest_26[right1]': 'Deepnest_14[left1]', 'Deepnest_26[bot1]': 'Deepnest_35[top1]', 'Deepnest_26b[right2]': 'Deepnest_26[left2]', 'Deepnest_26b[right1]': 'Deepnest_26[left1]', 'Deepnest_30[left1]': 'Deepnest_03[right1]', 'Deepnest_30[top1]': 'Deepnest_17[bot1]', 'Deepnest_30[right1]': 'Deepnest_37[left1]', 'Deepnest_31[right1]': 'Deepnest_03[left2]', 'Deepnest_31[right2]': 'Deepnest_32[left1]', 'Deepnest_32[left1]': 'Deepnest_31[right2]', 'Deepnest_33[top1]': 'Deepnest_14[bot1]', 'Deepnest_33[top2]': 'Deepnest_14[bot2]', 'Deepnest_33[bot1]': 'Deepnest_03[top1]', 'Deepnest_34[left1]': 'Deepnest_39[right1]', 'Deepnest_34[right1]': 'Deepnest_03[left1]', 'Deepnest_34[top1]': 'Deepnest_35[bot1]', 'Deepnest_35[left1]': 'Deepnest_40[right1]', 'Deepnest_35[top1]': 'Deepnest_26[bot1]', 'Deepnest_35[bot1]': 'Deepnest_34[top1]', 'Deepnest_36[left1]': 'Deepnest_02[right1]', 'Deepnest_37[left1]': 'Deepnest_30[right1]', 'Deepnest_37[right1]': 'Abyss_03_b[left1]', 'Deepnest_37[top1]': 'Deepnest_38[bot1]', 'Deepnest_37[bot1]': 'Deepnest_44[top1]', 'Deepnest_38[bot1]': 'Deepnest_37[top1]', 'Deepnest_39[left1]': 'Deepnest_41[right1]', 'Deepnest_39[top1]': 'Deepnest_42[bot1]', 'Deepnest_39[door1]': 'Deepnest_45_v02[left1]', 'Deepnest_39[right1]': 'Deepnest_34[left1]', 'Deepnest_40[right1]': 'Deepnest_35[left1]', 'Deepnest_41[right1]': 'Deepnest_39[left1]', 'Deepnest_41[left1]': 'Deepnest_10[right2]', 'Deepnest_41[left2]': 'Deepnest_10[right3]', 'Deepnest_42[bot1]': 'Deepnest_39[top1]', 'Deepnest_42[left1]': 'Room_Mask_Maker[right1]', 'Deepnest_42[top1]': 'Deepnest_43[bot1]', 'Deepnest_43[bot1]': 'Deepnest_42[top1]', 'Deepnest_43[left1]': 'Fungus3_50[right1]', 'Deepnest_43[right1]': 'Fungus3_08[left1]', 'Deepnest_44[top1]': 'Deepnest_37[bot1]', 'Deepnest_45_v02[left1]': 'Deepnest_39[door1]', 'Room_Mask_Maker[right1]': 'Deepnest_42[left1]', 'Deepnest_East_01[bot1]': 'Abyss_03_c[top1]', 'Deepnest_East_01[right1]': 'Hive_03_c[left1]', 'Deepnest_East_01[top1]': 'Deepnest_East_02[bot1]', 'Deepnest_East_02[bot1]': 'Deepnest_East_01[top1]', 'Deepnest_East_02[bot2]': 'Hive_03[top1]', 'Deepnest_East_02[top1]': 'Waterways_14[bot2]', 'Deepnest_East_02[right1]': 'Deepnest_East_03[left2]', 'Deepnest_East_03[left1]': 'Ruins2_07[right1]', 'Deepnest_East_03[left2]': 'Deepnest_East_02[right1]', 'Deepnest_East_03[top1]': 'Deepnest_East_07[bot1]', 'Deepnest_East_03[top2]': None, 'Deepnest_East_03[right1]': 'Deepnest_East_04[left1]', 'Deepnest_East_03[right2]': 'Deepnest_East_06[left1]', 'Deepnest_East_04[left1]': 'Deepnest_East_03[right1]', 'Deepnest_East_04[left2]': 'Deepnest_East_07[right1]', 'Deepnest_East_04[right2]': 'Deepnest_East_15[left1]', 'Deepnest_East_04[right1]': 'Deepnest_East_11[left1]', 'Deepnest_East_06[top1]': 'Deepnest_East_18[bot1]', 'Deepnest_East_06[left1]': 'Deepnest_East_03[right2]', 'Deepnest_East_06[bot1]': 'Deepnest_East_14b[top1]', 'Deepnest_East_06[door1]': 'Room_nailmaster_03[left1]', 'Deepnest_East_06[right1]': 'Deepnest_East_16[left1]', 'Deepnest_East_07[bot1]': 'Deepnest_East_03[top1]', 'Deepnest_East_07[bot2]': 'Deepnest_East_03[top2]', 'Deepnest_East_07[left1]': 'Deepnest_East_08[right1]', 'Deepnest_East_07[left2]': 'Ruins2_11_b[right1]', 'Deepnest_East_07[right1]': 'Deepnest_East_04[left2]', 'Deepnest_East_08[right1]': 'Deepnest_East_07[left1]', 'Deepnest_East_08[top1]': 'Deepnest_East_09[bot1]', 'Deepnest_East_09[right1]': 'Room_Colosseum_01[left1]', 'Deepnest_East_09[left1]': 'Ruins2_10b[right1]', 'Deepnest_East_09[bot1]': 'Deepnest_East_08[top1]', 'Deepnest_East_10[left1]': 'Deepnest_East_18[right2]', 'Deepnest_East_11[right1]': 'Deepnest_East_12[left1]', 'Deepnest_East_11[left1]': 'Deepnest_East_04[right1]', 'Deepnest_East_11[top1]': 'Deepnest_East_13[bot1]', 'Deepnest_East_11[bot1]': 'Deepnest_East_18[top1]', 'Deepnest_East_12[right1]': 'Deepnest_East_Hornet[left1]', 'Deepnest_East_12[left1]': 'Deepnest_East_11[right1]', 'Deepnest_East_13[bot1]': 'Deepnest_East_11[top1]', 'Deepnest_East_14[top2]': 'Deepnest_East_16[bot1]', 'Deepnest_East_14[left1]': 'Deepnest_East_14b[right1]', 'Deepnest_East_14[door1]': 'Deepnest_East_17[left1]', 'Deepnest_East_14b[right1]': 'Deepnest_East_14[left1]', 'Deepnest_East_14b[top1]': 'Deepnest_East_06[bot1]', 'Deepnest_East_15[left1]': 'Deepnest_East_04[right2]', 'Deepnest_East_16[left1]': 'Deepnest_East_06[right1]', 'Deepnest_East_16[bot1]': 'Deepnest_East_14[top2]', 'Deepnest_East_17[left1]': 'Deepnest_East_14[door1]', 'Deepnest_East_18[top1]': 'Deepnest_East_11[bot1]', 'Deepnest_East_18[bot1]': 'Deepnest_East_06[top1]', 'Deepnest_East_18[right2]': 'Deepnest_East_10[left1]', 'Room_nailmaster_03[left1]': 'Deepnest_East_06[door1]', 'Deepnest_East_Hornet[left1]': 'Deepnest_East_12[right1]', 'Deepnest_East_Hornet[left2]': 'Room_Wyrm[right1]', 'Room_Wyrm[right1]': 'Deepnest_East_Hornet[left2]', 'GG_Lurker[left1]': 'Room_Colosseum_Spectate[right1]', 'Hive_01[left1]': 'Abyss_03_c[right1]', 'Hive_01[right1]': 'Hive_02[left2]', 'Hive_01[right2]': 'Hive_02[left3]', 'Hive_02[left1]': 'Hive_03_c[right3]', 'Hive_02[left2]': 'Hive_01[right1]', 'Hive_02[left3]': 'Hive_01[right2]', 'Hive_03_c[left1]': 'Deepnest_East_01[right1]', 'Hive_03_c[right2]': 'Hive_04[left2]', 'Hive_03_c[right3]': 'Hive_02[left1]', 'Hive_03_c[top1]': 'Hive_03[bot1]', 'Hive_03[bot1]': 'Hive_03_c[top1]', 'Hive_03[right1]': 'Hive_04[left1]', 'Hive_03[top1]': 'Deepnest_East_02[bot2]', 'Hive_04[left1]': 'Hive_03[right1]', 'Hive_04[left2]': 'Hive_03_c[right2]', 'Hive_04[right1]': 'Hive_05[left1]', 'Hive_05[left1]': 'Hive_04[right1]', 'Room_Colosseum_01[left1]': 'Deepnest_East_09[right1]', 'Room_Colosseum_01[bot1]': 'Room_Colosseum_02[top1]', 'Room_Colosseum_02[top1]': 'Room_Colosseum_01[bot1]', 'Room_Colosseum_02[top2]': 'Room_Colosseum_Spectate[bot1]', 'Room_Colosseum_Spectate[bot1]': 'Room_Colosseum_02[top2]', 'Room_Colosseum_Spectate[right1]': 'GG_Lurker[left1]', 'Abyss_01[left1]': 'Waterways_05[right1]', 'Abyss_01[left2]': 'Waterways_06[right1]', 'Abyss_01[left3]': 'Abyss_02[right1]', 'Abyss_01[right1]': 'Ruins2_04[left2]', 'Abyss_01[right2]': 'Waterways_07[left1]', 'Abyss_02[right1]': 'Abyss_01[left3]', 'Abyss_02[bot1]': 'Abyss_03[top1]', 'Abyss_03[bot1]': 'Abyss_17[top1]', 'Abyss_03[bot2]': 'Abyss_04[top1]', 'Abyss_03[top1]': 'Abyss_02[bot1]', 'Abyss_03_b[left1]': 'Deepnest_37[right1]', 'Abyss_03_c[right1]': 'Hive_01[left1]', 'Abyss_03_c[top1]': 'Deepnest_East_01[bot1]', 'Abyss_04[top1]': 'Abyss_03[bot2]', 'Abyss_04[left1]': 'Abyss_18[right1]', 'Abyss_04[bot1]': 'Abyss_06_Core[top1]', 'Abyss_04[right1]': 'Abyss_05[left1]', 'Abyss_05[left1]': 'Abyss_04[right1]', 'Abyss_05[right1]': 'Abyss_22[left1]', 'Abyss_06_Core[top1]': 'Abyss_04[bot1]', 'Abyss_06_Core[left1]': 'Abyss_08[right1]', 'Abyss_06_Core[left3]': 'Abyss_12[right1]', 'Abyss_06_Core[right2]': 'Abyss_16[left1]', 'Abyss_06_Core[bot1]': 'Abyss_15[top1]', 'Abyss_08[right1]': 'Abyss_06_Core[left1]', 'Abyss_09[right1]': 'Abyss_10[left1]', 'Abyss_09[right2]': 'Abyss_Lighthouse_room[left1]', 'Abyss_09[right3]': 'Abyss_10[left2]', 'Abyss_09[left1]': 'Abyss_16[right1]', 'Abyss_10[left1]': 'Abyss_09[right1]', 'Abyss_10[left2]': 'Abyss_09[right3]', 'Abyss_12[right1]': 'Abyss_06_Core[left3]', 'Abyss_15[top1]': 'Abyss_06_Core[bot1]', 'Abyss_16[left1]': 'Abyss_06_Core[right2]', 'Abyss_16[right1]': 'Abyss_09[left1]', 'Abyss_17[top1]': 'Abyss_03[bot1]', 'Abyss_18[left1]': 'Abyss_19[right1]', 'Abyss_18[right1]': 'Abyss_04[left1]', 'Abyss_19[left1]': 'Abyss_21[right1]', 'Abyss_19[right1]': 'Abyss_18[left1]', 'Abyss_19[bot1]': 'Abyss_20[top1]', 'Abyss_19[bot2]': 'Abyss_20[top2]', 'Abyss_20[top1]': 'Abyss_19[bot1]', 'Abyss_20[top2]': 'Abyss_19[bot2]', 'Abyss_21[right1]': 'Abyss_19[left1]', 'Abyss_22[left1]': 'Abyss_05[right1]', 'Abyss_Lighthouse_room[left1]': 'Abyss_09[right2]', 'Waterways_01[top1]': 'Ruins1_05b[bot1]', 'Waterways_01[left1]': 'Waterways_04[right1]', 'Waterways_01[right1]': 'Waterways_03[left1]', 'Waterways_01[bot1]': 'Waterways_02[top1]', 'Waterways_02[top1]': 'Waterways_01[bot1]', 'Waterways_02[top2]': 'Waterways_05[bot1]', 'Waterways_02[top3]': 'Waterways_04[bot1]', 'Waterways_02[bot1]': 'Waterways_08[top1]', 'Waterways_02[bot2]': 'Waterways_06[top1]', 'Waterways_03[left1]': 'Waterways_01[right1]', 'Waterways_04[bot1]': 'Waterways_02[top3]', 'Waterways_04[right1]': 'Waterways_01[left1]', 'Waterways_04[left1]': 'Waterways_04b[right1]', 'Waterways_04[left2]': 'Waterways_04b[right2]', 'Waterways_04b[right1]': 'Waterways_04[left1]', 'Waterways_04b[right2]': 'Waterways_04[left2]', 'Waterways_04b[left1]': 'Waterways_09[right1]', 'Waterways_05[right1]': 'Abyss_01[left1]', 'Waterways_05[bot1]': 'Waterways_02[top2]', 'Waterways_05[bot2]': 'Waterways_15[top1]', 'Waterways_06[right1]': 'Abyss_01[left2]', 'Waterways_06[top1]': 'Waterways_02[bot2]', 'Waterways_07[right1]': 'Waterways_13[left1]', 'Waterways_07[right2]': 'Waterways_13[left2]', 'Waterways_07[left1]': 'Abyss_01[right2]', 'Waterways_07[door1]': 'Ruins_House_03[left2]', 'Waterways_07[top1]': 'Waterways_14[bot1]', 'Waterways_08[top1]': 'Waterways_02[bot1]', 'Waterways_08[left1]': 'Waterways_12[right1]', 'Waterways_08[left2]': 'GG_Pipeway[right1]', 'Waterways_09[right1]': 'Waterways_04b[left1]', 'Waterways_09[left1]': 'Fungus2_23[right2]', 'Waterways_12[right1]': 'Waterways_08[left1]', 'Waterways_13[left1]': 'Waterways_07[right1]', 'Waterways_13[left2]': 'Waterways_07[right2]', 'Waterways_14[bot1]': 'Waterways_07[top1]', 'Waterways_14[bot2]': 'Deepnest_East_02[top1]', 'Waterways_15[top1]': 'Waterways_05[bot2]', 'GG_Pipeway[right1]': 'Waterways_08[left2]', 'GG_Pipeway[left1]': 'GG_Waterways[right1]', 'GG_Waterways[right1]': 'GG_Pipeway[left1]', 'GG_Waterways[door1]': 'Room_GG_Shortcut[left1]', 'Room_GG_Shortcut[left1]': 'GG_Waterways[door1]', 'Room_GG_Shortcut[top1]': 'Ruins1_04[bot1]', 'Ruins1_01[left1]': 'Fungus2_21[right1]', 'Ruins1_01[top1]': 'Ruins1_17[bot1]', 'Ruins1_01[bot1]': 'Ruins1_02[top1]', 'Ruins1_02[top1]': 'Ruins1_01[bot1]', 'Ruins1_02[bot1]': 'Ruins1_03[top1]', 'Ruins1_03[top1]': 'Ruins1_02[bot1]', 'Ruins1_03[left1]': 'Ruins1_04[right1]', 'Ruins1_03[right1]': 'Ruins1_05c[left2]', 'Ruins1_03[right2]': 'Ruins1_05b[left1]', 'Ruins1_04[right1]': 'Ruins1_03[left1]', 'Ruins1_04[door1]': 'Room_nailsmith[left1]', 'Ruins1_04[bot1]': 'Room_GG_Shortcut[top1]', 'Ruins1_05b[left1]': 'Ruins1_03[right2]', 'Ruins1_05b[top1]': 'Ruins1_05c[bot1]', 'Ruins1_05b[bot1]': 'Waterways_01[top1]', 'Ruins1_05b[right1]': 'Ruins1_27[left1]', 'Ruins1_05c[left2]': 'Ruins1_03[right1]', 'Ruins1_05c[bot1]': 'Ruins1_05b[top1]', 'Ruins1_05c[top1]': 'Ruins1_05[bot1]', 'Ruins1_05c[top2]': 'Ruins1_05[bot2]', 'Ruins1_05c[top3]': 'Ruins1_05[bot3]', 'Ruins1_05[bot1]': 'Ruins1_05c[top1]', 'Ruins1_05[bot2]': 'Ruins1_05c[top2]', 'Ruins1_05[bot3]': 'Ruins1_05c[top3]', 'Ruins1_05[right1]': 'Ruins1_09[left1]', 'Ruins1_05[right2]': 'Ruins1_18[left1]', 'Ruins1_05[top1]': 'Ruins1_31[bot1]', 'Ruins1_06[left1]': 'Ruins1_17[right1]', 'Ruins1_06[right1]': 'Ruins1_31[left1]', 'Ruins1_09[top1]': 'Ruins1_23[bot1]', 'Ruins1_09[left1]': 'Ruins1_05[right1]', 'Ruins1_17[top1]': 'Ruins1_28[bot1]', 'Ruins1_17[right1]': 'Ruins1_06[left1]', 'Ruins1_17[bot1]': 'Ruins1_01[top1]', 'Ruins1_18[left1]': 'Ruins1_05[right2]', 'Ruins1_18[right1]': 'Ruins2_03b[left1]', 'Ruins1_18[right2]': 'Ruins2_01[left2]', 'Ruins1_23[top1]': 'Ruins1_30[bot1]', 'Ruins1_23[right1]': 'Ruins1_25[left2]', 'Ruins1_23[right2]': 'Ruins1_25[left3]', 'Ruins1_23[bot1]': 'Ruins1_09[top1]', 'Ruins1_23[left1]': 'Ruins1_31[right1]', 'Ruins1_24[left1]': 'Ruins1_32[right1]', 'Ruins1_24[right1]': 'Ruins1_30[left1]', 'Ruins1_24[left2]': 'Ruins1_32[right2]', 'Ruins1_24[right2]': 'Ruins1_30[left2]', 'Ruins1_25[left1]': 'Ruins1_30[right1]', 'Ruins1_25[left2]': 'Ruins1_23[right1]', 'Ruins1_25[left3]': 'Ruins1_23[right2]', 'Ruins1_27[left1]': 'Ruins1_05b[right1]', 'Ruins1_27[right1]': 'Ruins2_01_b[left1]', 'Ruins1_28[left1]': 'Crossroads_49b[right1]', 'Ruins1_28[right1]': 'Ruins1_29[left1]', 'Ruins1_28[bot1]': 'Ruins1_17[top1]', 'Ruins1_29[left1]': 'Ruins1_28[right1]', 'Ruins1_30[left1]': 'Ruins1_24[right1]', 'Ruins1_30[left2]': 'Ruins1_24[right2]', 'Ruins1_30[bot1]': 'Ruins1_23[top1]', 'Ruins1_30[right1]': 'Ruins1_25[left1]', 'Ruins1_31[bot1]': 'Ruins1_05[top1]', 'Ruins1_31[left1]': 'Ruins1_06[right1]', 'Ruins1_31[left2]': 'Ruins1_31b[right1]', 'Ruins1_31[left3]': 'Ruins1_31b[right2]', 'Ruins1_31[right1]': 'Ruins1_23[left1]', 'Ruins1_31b[right1]': 'Ruins1_31[left2]', 'Ruins1_31b[right2]': 'Ruins1_31[left3]', 'Ruins1_32[right1]': 'Ruins1_24[left1]', 'Ruins1_32[right2]': 'Ruins1_24[left2]', 'Room_nailsmith[left1]': 'Ruins1_04[door1]', 'Ruins2_01[top1]': 'Ruins2_03b[bot1]', 'Ruins2_01[bot1]': 'Ruins2_01_b[top1]', 'Ruins2_01[left2]': 'Ruins1_18[right2]', 'Ruins2_01_b[top1]': 'Ruins2_01[bot1]', 'Ruins2_01_b[left1]': 'Ruins1_27[right1]', 'Ruins2_01_b[right1]': 'Ruins2_04[left1]', 'Ruins2_03b[top1]': 'Ruins2_03[bot1]', 'Ruins2_03b[top2]': 'Ruins2_03[bot2]', 'Ruins2_03b[left1]': 'Ruins1_18[right1]', 'Ruins2_03b[bot1]': 'Ruins2_01[top1]', 'Ruins2_03[top1]': 'Ruins2_Watcher_Room[bot1]', 'Ruins2_03[bot1]': 'Ruins2_03b[top1]', 'Ruins2_03[bot2]': 'Ruins2_03b[top2]', 'Ruins2_04[left1]': 'Ruins2_01_b[right1]', 'Ruins2_04[left2]': 'Abyss_01[right1]', 'Ruins2_04[right1]': 'Ruins2_06[left1]', 'Ruins2_04[right2]': 'Ruins2_06[left2]', 'Ruins2_04[door_Ruin_House_01]': 'Ruins_House_01[left1]', 'Ruins2_04[door_Ruin_House_02]': 'Ruins_House_02[left1]', 'Ruins2_04[door_Ruin_House_03]': 'Ruins_House_03[left1]', 'Ruins2_04[door_Ruin_Elevator]': 'Ruins_Elevator[left1]', 'Ruins2_05[left1]': 'Ruins2_10b[right2]', 'Ruins2_05[top1]': 'Ruins2_09[bot1]', 'Ruins2_05[bot1]': 'Ruins2_06[top1]', 'Ruins2_06[left1]': 'Ruins2_04[right1]', 'Ruins2_06[left2]': 'Ruins2_04[right2]', 'Ruins2_06[right1]': 'Ruins2_08[left1]', 'Ruins2_06[right2]': 'Ruins2_07[left1]', 'Ruins2_06[top1]': 'Ruins2_05[bot1]', 'Ruins2_07[right1]': 'Deepnest_East_03[left1]', 'Ruins2_07[left1]': 'Ruins2_06[right2]', 'Ruins2_07[top1]': 'Ruins2_11_b[bot1]', 'Ruins2_08[left1]': 'Ruins2_06[right1]', 'Ruins2_09[bot1]': 'Ruins2_05[top1]', 'Ruins2_10[right1]': 'RestingGrounds_10[left1]', 'Ruins2_10[left1]': 'RestingGrounds_06[right1]', 'Ruins2_10b[right1]': 'Deepnest_East_09[left1]', 'Ruins2_10b[right2]': 'Ruins2_05[left1]', 'Ruins2_10b[left1]': 'Ruins_Bathhouse[right1]', 'Ruins2_11_b[right1]': 'Deepnest_East_07[left2]', 'Ruins2_11_b[left1]': 'Ruins2_11[right1]', 'Ruins2_11_b[bot1]': 'Ruins2_07[top1]', 'Ruins2_11[right1]': 'Ruins2_11_b[left1]', 'Ruins2_Watcher_Room[bot1]': 'Ruins2_03[top1]', 'Ruins_House_01[left1]': 'Ruins2_04[door_Ruin_House_01]', 'Ruins_House_02[left1]': 'Ruins2_04[door_Ruin_House_02]', 'Ruins_House_03[left1]': 'Ruins2_04[door_Ruin_House_03]', 'Ruins_House_03[left2]': 'Waterways_07[door1]', 'Ruins_Elevator[left1]': 'Ruins2_04[door_Ruin_Elevator]', 'Ruins_Elevator[left2]': 'Ruins_Bathhouse[door1]', 'Ruins_Bathhouse[door1]': 'Ruins_Elevator[left2]', 'Ruins_Bathhouse[right1]': 'Ruins2_10b[left1]', 'RestingGrounds_02[right1]': 'RestingGrounds_04[left1]', 'RestingGrounds_02[left1]': 'Crossroads_46b[right1]', 'RestingGrounds_02[bot1]': 'RestingGrounds_06[top1]', 'RestingGrounds_02[top1]': None, 'RestingGrounds_04[left1]': 'RestingGrounds_02[right1]', 'RestingGrounds_04[right1]': 'RestingGrounds_05[left1]', 'RestingGrounds_05[left1]': 'RestingGrounds_04[right1]', 'RestingGrounds_05[left2]': 'RestingGrounds_07[right1]', 'RestingGrounds_05[left3]': 'RestingGrounds_17[right1]', 'RestingGrounds_05[right1]': 'RestingGrounds_08[left1]', 'RestingGrounds_05[right2]': 'RestingGrounds_09[left1]', 'RestingGrounds_05[bot1]': 'RestingGrounds_10[top1]', 'RestingGrounds_06[left1]': 'Crossroads_50[right1]', 'RestingGrounds_06[right1]': 'Ruins2_10[left1]', 'RestingGrounds_06[top1]': 'RestingGrounds_02[bot1]', 'RestingGrounds_07[right1]': 'RestingGrounds_05[left2]', 'RestingGrounds_08[left1]': 'RestingGrounds_05[right1]', 'RestingGrounds_09[left1]': 'RestingGrounds_05[right2]', 'RestingGrounds_10[left1]': 'Ruins2_10[right1]', 'RestingGrounds_10[top1]': 'RestingGrounds_05[bot1]', 'RestingGrounds_10[top2]': 'RestingGrounds_12[bot1]', 'RestingGrounds_12[bot1]': 'RestingGrounds_10[top2]', 'RestingGrounds_12[door_Mansion]': 'Room_Mansion[left1]', 'RestingGrounds_17[right1]': 'RestingGrounds_05[left3]', 'Room_Mansion[left1]': 'RestingGrounds_12[door_Mansion]', 'Mines_01[bot1]': 'Mines_02[top1]', 'Mines_01[left1]': 'Crossroads_45[right1]', 'Mines_02[top1]': 'Mines_01[bot1]', 'Mines_02[top2]': 'Mines_03[bot1]', 'Mines_02[left1]': 'Mines_33[right1]', 'Mines_02[right1]': 'Mines_29[left1]', 'Mines_03[right1]': 'Mines_17[left1]', 'Mines_03[bot1]': 'Mines_02[top2]', 'Mines_03[top1]': 'Mines_05[bot1]', 'Mines_04[right1]': 'Mines_07[left1]', 'Mines_04[top1]': 'Mines_37[bot1]', 'Mines_04[left1]': 'Mines_17[right1]', 'Mines_04[left2]': 'Mines_29[right1]', 'Mines_04[left3]': 'Mines_29[right2]', 'Mines_05[right1]': 'Mines_19[left1]', 'Mines_05[top1]': 'Mines_11[bot1]', 'Mines_05[bot1]': 'Mines_03[top1]', 'Mines_05[left1]': 'Mines_30[right1]', 'Mines_05[left2]': 'Mines_06[right1]', 'Mines_06[right1]': 'Mines_05[left2]', 'Mines_06[left1]': 'Mines_36[right1]', 'Mines_07[right1]': 'Mines_28[left1]', 'Mines_07[left1]': 'Mines_04[right1]', 'Mines_10[right1]': 'Mines_30[left1]', 'Mines_10[left1]': 'Town[right1]', 'Mines_10[bot1]': 'Mines_16[top1]', 'Mines_11[right1]': 'Mines_18[left1]', 'Mines_11[top1]': 'Mines_13[bot1]', 'Mines_11[bot1]': 'Mines_05[top1]', 'Mines_13[right1]': 'Mines_20[left1]', 'Mines_13[top1]': None, 'Mines_13[bot1]': 'Mines_11[top1]', 'Mines_16[top1]': 'Mines_10[bot1]', 'Mines_17[right1]': 'Mines_04[left1]', 'Mines_17[left1]': 'Mines_03[right1]', 'Mines_18[top1]': 'Mines_32[bot1]', 'Mines_18[left1]': 'Mines_11[right1]', 'Mines_18[right1]': 'Mines_20[left2]', 'Mines_19[left1]': 'Mines_05[right1]', 'Mines_19[right1]': 'Mines_20[left3]', 'Mines_20[left1]': 'Mines_13[right1]', 'Mines_20[left2]': 'Mines_18[right1]', 'Mines_20[left3]': 'Mines_19[right1]', 'Mines_20[bot1]': 'Mines_37[top1]', 'Mines_20[right1]': 'Mines_23[left1]', 'Mines_20[right2]': 'Mines_31[left1]', 'Mines_23[left1]': 'Mines_20[right1]', 'Mines_23[right1]': 'Mines_25[left1]', 'Mines_23[right2]': 'Mines_24[left1]', 'Mines_23[top1]': None, 'Mines_24[left1]': 'Mines_23[right2]', 'Mines_25[left1]': 'Mines_23[right1]', 'Mines_25[top1]': 'Mines_34[bot1]', 'Mines_28[left1]': 'Mines_07[right1]', 'Mines_28[bot1]': 'RestingGrounds_02[top1]', 'Mines_28[door1]': 'Mines_35[left1]', 'Mines_29[left1]': 'Mines_02[right1]', 'Mines_29[right1]': 'Mines_04[left2]', 'Mines_29[right2]': 'Mines_04[left3]', 'Mines_30[left1]': 'Mines_10[right1]', 'Mines_30[right1]': 'Mines_05[left1]', 'Mines_31[left1]': 'Mines_20[right2]', 'Mines_32[bot1]': 'Mines_18[top1]', 'Mines_33[right1]': 'Mines_02[left1]', 'Mines_33[left1]': 'Crossroads_03[right2]', 'Mines_34[bot1]': 'Mines_25[top1]', 'Mines_34[bot2]': 'Mines_23[top1]', 'Mines_34[left1]': 'Mines_13[top1]', 'Mines_35[left1]': 'Mines_28[door1]', 'Mines_36[right1]': 'Mines_06[left1]', 'Mines_37[bot1]': 'Mines_04[top1]', 'Mines_37[top1]': 'Mines_20[bot1]', 'Fungus3_04[left1]': 'Fungus3_21[right1]', 'Fungus3_04[left2]': 'Fungus3_13[right1]', 'Fungus3_04[right1]': 'Fungus3_34[left1]', 'Fungus3_04[right2]': 'Fungus3_05[left1]', 'Fungus3_05[left1]': 'Fungus3_04[right2]', 'Fungus3_05[right1]': 'Fungus1_24[left1]', 'Fungus3_05[right2]': 'Fungus3_11[left1]', 'Fungus3_08[left1]': 'Deepnest_43[right1]', 'Fungus3_08[right1]': 'Fungus3_11[left2]', 'Fungus3_08[top1]': 'Fungus3_10[bot1]', 'Fungus3_10[top1]': 'Fungus3_13[bot1]', 'Fungus3_10[bot1]': 'Fungus3_08[top1]', 'Fungus3_11[left1]': 'Fungus3_05[right2]', 'Fungus3_11[left2]': 'Fungus3_08[right1]', 'Fungus3_11[right1]': 'Fungus3_39[left1]', 'Fungus3_13[left1]': 'Fungus1_23[right1]', 'Fungus3_13[left2]': 'Fungus3_40[right1]', 'Fungus3_13[left3]': 'Fungus3_49[right1]', 'Fungus3_13[bot1]': 'Fungus3_10[top1]', 'Fungus3_13[right1]': 'Fungus3_04[left2]', 'Fungus3_21[right1]': 'Fungus3_04[left1]', 'Fungus3_21[top1]': 'Fungus3_22[bot1]', 'Fungus3_22[right1]': 'Fungus1_13[left1]', 'Fungus3_22[left1]': 'Fungus3_23[right1]', 'Fungus3_22[bot1]': 'Fungus3_21[top1]', 'Fungus3_23[right1]': 'Fungus3_22[left1]', 'Fungus3_23[left1]': 'Fungus3_48[right1]', 'Fungus3_34[right1]': 'Fungus3_03[left1]', 'Fungus3_34[left1]': 'Fungus3_04[right1]', 'Fungus3_34[top1]': 'Fungus3_44[bot1]', 'Fungus3_39[right1]': 'Deepnest_01[left1]', 'Fungus3_39[left1]': 'Fungus3_11[right1]', 'Fungus3_40[right1]': 'Fungus3_13[left2]', 'Fungus3_40[top1]': 'Fungus3_48[bot1]', 'Fungus3_48[right1]': 'Fungus3_23[left1]', 'Fungus3_48[right2]': 'Fungus1_23[left1]', 'Fungus3_48[door1]': 'Room_Queen[left1]', 'Fungus3_48[bot1]': 'Fungus3_40[top1]', 'Fungus3_49[right1]': 'Fungus3_13[left3]', 'Fungus3_50[right1]': 'Deepnest_43[left1]', 'Room_Queen[left1]': 'Fungus3_48[door1]', 'Cliffs_01[right1]': 'Cliffs_02[left1]', 'Cliffs_01[right2]': 'Cliffs_04[left1]', 'Cliffs_01[right3]': 'Fungus1_28[left1]', 'Cliffs_01[right4]': 'Cliffs_06[left1]', 'Cliffs_02[right1]': 'Town[top1]', 'Cliffs_02[bot1]': 'Tutorial_01[top2]', 'Cliffs_02[bot2]': 'Tutorial_01[top1]', 'Cliffs_02[door1]': 'Room_nailmaster[left1]', 'Cliffs_02[left1]': 'Cliffs_01[right1]', 'Cliffs_02[left2]': 'Cliffs_03[right1]', 'Cliffs_03[right1]': 'Cliffs_02[left2]', 'Cliffs_04[right1]': 'Cliffs_05[left1]', 'Cliffs_04[left1]': 'Cliffs_01[right2]', 'Cliffs_05[left1]': 'Cliffs_04[right1]', 'Cliffs_06[left1]': 'Cliffs_01[right4]', 'Room_nailmaster[left1]': 'Cliffs_02[door1]', 'White_Palace_01[left1]': 'White_Palace_11[door2]', 'White_Palace_01[right1]': 'White_Palace_02[left1]', 'White_Palace_01[top1]': 'White_Palace_03_hub[bot1]', 'White_Palace_02[left1]': 'White_Palace_01[right1]', 'White_Palace_03_hub[left1]': 'White_Palace_14[right1]', 'White_Palace_03_hub[left2]': 'White_Palace_04[right2]', 'White_Palace_03_hub[right1]': 'White_Palace_15[left1]', 'White_Palace_03_hub[top1]': 'White_Palace_06[bot1]', 'White_Palace_03_hub[bot1]': 'White_Palace_01[top1]', 'White_Palace_04[top1]': 'White_Palace_14[bot1]', 'White_Palace_04[right2]': 'White_Palace_03_hub[left2]', 'White_Palace_05[left1]': 'White_Palace_15[right1]', 'White_Palace_05[left2]': 'White_Palace_15[right2]', 'White_Palace_05[right1]': 'White_Palace_16[left1]', 'White_Palace_05[right2]': 'White_Palace_16[left2]', 'White_Palace_06[left1]': 'White_Palace_18[right1]', 'White_Palace_06[top1]': 'White_Palace_07[bot1]', 'White_Palace_06[bot1]': 'White_Palace_03_hub[top1]', 'White_Palace_07[top1]': 'White_Palace_12[bot1]', 'White_Palace_07[bot1]': 'White_Palace_06[top1]', 'White_Palace_08[left1]': 'White_Palace_13[right1]', 'White_Palace_08[right1]': 'White_Palace_13[left3]', 'White_Palace_09[right1]': 'White_Palace_13[left1]', 'White_Palace_11[door2]': 'White_Palace_01[left1]', 'White_Palace_12[right1]': 'White_Palace_13[left2]', 'White_Palace_12[bot1]': 'White_Palace_07[top1]', 'White_Palace_13[right1]': 'White_Palace_08[left1]', 'White_Palace_13[left1]': 'White_Palace_09[right1]', 'White_Palace_13[left2]': 'White_Palace_12[right1]', 'White_Palace_13[left3]': 'White_Palace_08[right1]', 'White_Palace_14[bot1]': 'White_Palace_04[top1]', 'White_Palace_14[right1]': 'White_Palace_03_hub[left1]', 'White_Palace_15[left1]': 'White_Palace_03_hub[right1]', 'White_Palace_15[right1]': 'White_Palace_05[left1]', 'White_Palace_15[right2]': 'White_Palace_05[left2]', 'White_Palace_16[left1]': 'White_Palace_05[right1]', 'White_Palace_16[left2]': 'White_Palace_05[right2]', 'White_Palace_17[right1]': 'White_Palace_19[left1]', 'White_Palace_17[bot1]': 'White_Palace_18[top1]', 'White_Palace_18[top1]': 'White_Palace_17[bot1]', 'White_Palace_18[right1]': 'White_Palace_06[left1]', 'White_Palace_19[top1]': 'White_Palace_20[bot1]', 'White_Palace_19[left1]': 'White_Palace_17[right1]', 'White_Palace_20[bot1]': 'White_Palace_19[top1]'} event_names = {'Abyss_01', 'Abyss_03', 'Abyss_03_b', 'Abyss_03_c', 'Abyss_04', 'Abyss_05', 'Abyss_06_Core', 'Abyss_09', 'Abyss_19', 'Broke_Sanctum_Glass_Floor', 'Can_Bench', 'Can_Repair_Fragile_Charms', 'Can_Replenish_Geo', 'Can_Replenish_Geo-Crossroads', 'Can_Stag', 'Cliffs_01', 'Cliffs_02', 'Completed_Path_of_Pain', 'Crossroads_03', 'Crossroads_07', 'Crossroads_08', 'Crossroads_14', 'Crossroads_18', 'Crossroads_19', 'Crossroads_21', 'Crossroads_27', 'Crossroads_33', 'Deepnest_01', 'Deepnest_01b', 'Deepnest_02', 'Deepnest_03', 'Deepnest_10', 'Deepnest_14', 'Deepnest_17', 'Deepnest_26', 'Deepnest_34', 'Deepnest_35', 'Deepnest_37', 'Deepnest_39', 'Deepnest_41', 'Deepnest_42', 'Deepnest_East_02', 'Deepnest_East_03', 'Deepnest_East_04', 'Deepnest_East_07', 'Deepnest_East_11', 'Deepnest_East_18', 'Defeated_Broken_Vessel', 'Defeated_Brooding_Mawlek', 'Defeated_Collector', 'Defeated_Colosseum_1', 'Defeated_Colosseum_2', 'Defeated_Colosseum_Zote', 'Defeated_Crystal_Guardian', 'Defeated_Dung_Defender', 'Defeated_Elder_Hu', 'Defeated_Elegant_Warrior', 'Defeated_Enraged_Guardian', 'Defeated_Failed_Champion', 'Defeated_False_Knight', 'Defeated_Flukemarm', 'Defeated_Galien', 'Defeated_Gorb', 'Defeated_Grey_Prince_Zote', 'Defeated_Grimm', 'Defeated_Gruz_Mother', 'Defeated_Hive_Knight', 'Defeated_Hornet_1', 'Defeated_Hornet_2', "Defeated_King's_Station_Arena", 'Defeated_Lost_Kin', 'Defeated_Mantis_Lords', 'Defeated_Markoth', 'Defeated_Marmu', 'Defeated_No_Eyes', 'Defeated_Nosk', 'Defeated_Pale_Lurker', 'Defeated_Path_of_Pain_Arena', 'Defeated_Sanctum_Warrior', 'Defeated_Shrumal_Ogre_Arena', 'Defeated_Soul_Master', 'Defeated_Soul_Tyrant', 'Defeated_Traitor_Lord', 'Defeated_Uumuu', 'Defeated_Watcher_Knights', "Defeated_West_Queen's_Gardens_Arena", 'Defeated_White_Defender', 'Defeated_Xero', 'First_Grimmchild_Upgrade', 'Fungus1_11', 'Fungus1_21', 'Fungus1_30', 'Fungus2_01', 'Fungus2_03', 'Fungus2_04', 'Fungus2_06', 'Fungus2_11', 'Fungus2_13', 'Fungus2_14', 'Fungus2_17', 'Fungus2_20', 'Fungus2_23', 'Fungus3_01', 'Fungus3_02', 'Fungus3_04', 'Fungus3_11', 'Fungus3_13', 'Fungus3_22', 'Fungus3_26', 'Fungus3_34', 'Fungus3_40', 'Fungus3_44', 'Fungus3_47', 'Hive_03_c', 'Left_Elevator', 'Lever-Dung_Defender', 'Lever-Shade_Soul', 'Lit_Abyss_Lighthouse', 'Lower_Tram', 'Mines_02', 'Mines_03', 'Mines_04', 'Mines_05', 'Mines_10', 'Mines_11', 'Mines_18', 'Mines_20', 'Mines_23', 'Nightmare_Lantern_Lit', 'Opened_Archives_Exit_Wall', 'Opened_Black_Egg_Temple', 'Opened_Dung_Defender_Wall', 'Opened_Emilitia_Door', 'Opened_Gardens_Stag_Exit', 'Opened_Glade_Door', "Opened_Lower_Kingdom's_Edge_Wall", 'Opened_Mawlek_Wall', 'Opened_Pleasure_House_Wall', 'Opened_Resting_Grounds_Catacombs_Wall', 'Opened_Resting_Grounds_Floor', 'Opened_Shaman_Pillar', 'Opened_Tramway_Exit_Gate', 'Opened_Waterways_Exit', 'Opened_Waterways_Manhole', 'Palace_Atrium_Gates_Opened', 'Palace_Entrance_Lantern_Lit', 'Palace_Left_Lantern_Lit', 'Palace_Right_Lantern_Lit', 'Rescued_Bretta', 'Rescued_Deepnest_Zote', 'Rescued_Sly', 'RestingGrounds_02', 'RestingGrounds_05', 'RestingGrounds_10', 'Right_Elevator', 'Ruins1_03', 'Ruins1_05', 'Ruins1_05b', 'Ruins1_05c', 'Ruins1_23', 'Ruins1_28', 'Ruins1_30', 'Ruins1_31', 'Ruins2_01', 'Ruins2_01_b', 'Ruins2_03b', 'Ruins2_04', 'Ruins2_10', 'Second_Grimmchild_Upgrade', 'Town', 'Tutorial_01', 'Upper_Tram', 'Warp-Lifeblood_Core_to_Abyss', 'Warp-Palace_Grounds_to_White_Palace', 'Warp-Path_of_Pain_Complete', 'Warp-White_Palace_Atrium_to_Palace_Grounds', 'Warp-White_Palace_Entrance_to_Palace_Grounds', 'Waterways_01', 'Waterways_02', 'Waterways_04', 'Waterways_04b', 'Waterways_07', 'White_Palace_01', 'White_Palace_03_hub', 'White_Palace_13'} exits = {'Room_temple': ['Room_temple[left1]'], 'Tutorial_01': ['Tutorial_01[right1]', 'Tutorial_01[top1]', 'Tutorial_01[top2]'], 'Town': ['Town[left1]', 'Town[bot1]', 'Town[right1]', 'Town[top1]', 'Town[door_station]', 'Town[door_sly]', 'Town[door_mapper]', 'Town[door_jiji]', 'Town[door_bretta]', 'Town[room_divine]', 'Town[room_grimm]'], 'Room_shop': ['Room_shop[left1]'], 'Room_Town_Stag_Station': ['Room_Town_Stag_Station[left1]'], 'Room_mapper': ['Room_mapper[left1]'], 'Room_Bretta': ['Room_Bretta[right1]'], 'Room_Ouiji': ['Room_Ouiji[left1]'], 'Grimm_Divine': ['Grimm_Divine[left1]'], 'Grimm_Main_Tent': ['Grimm_Main_Tent[left1]'], 'Crossroads_01': ['Crossroads_01[top1]', 'Crossroads_01[left1]', 'Crossroads_01[right1]'], 'Crossroads_02': ['Crossroads_02[left1]', 'Crossroads_02[door1]', 'Crossroads_02[right1]'], 'Crossroads_03': ['Crossroads_03[right1]', 'Crossroads_03[right2]', 'Crossroads_03[left1]', 'Crossroads_03[left2]', 'Crossroads_03[bot1]', 'Crossroads_03[top1]'], 'Crossroads_04': ['Crossroads_04[left1]', 'Crossroads_04[top1]', 'Crossroads_04[door_Mender_House]', 'Crossroads_04[door1]', 'Crossroads_04[door_charmshop]', 'Crossroads_04[right1]'], 'Crossroads_05': ['Crossroads_05[left1]', 'Crossroads_05[right1]'], 'Crossroads_06': ['Crossroads_06[left1]', 'Crossroads_06[door1]', 'Crossroads_06[right1]'], 'Crossroads_07': ['Crossroads_07[left1]', 'Crossroads_07[left2]', 'Crossroads_07[left3]', 'Crossroads_07[right1]', 'Crossroads_07[right2]', 'Crossroads_07[bot1]'], 'Crossroads_08': ['Crossroads_08[left1]', 'Crossroads_08[left2]', 'Crossroads_08[right1]', 'Crossroads_08[right2]'], 'Crossroads_09': ['Crossroads_09[left1]', 'Crossroads_09[right1]'], 'Crossroads_10': ['Crossroads_10[left1]', 'Crossroads_10[right1]'], 'Crossroads_11_alt': ['Crossroads_11_alt[left1]', 'Crossroads_11_alt[right1]'], 'Crossroads_12': ['Crossroads_12[left1]', 'Crossroads_12[right1]'], 'Crossroads_13': ['Crossroads_13[left1]', 'Crossroads_13[right1]'], 'Crossroads_14': ['Crossroads_14[left1]', 'Crossroads_14[left2]', 'Crossroads_14[right1]', 'Crossroads_14[right2]'], 'Crossroads_15': ['Crossroads_15[left1]', 'Crossroads_15[right1]'], 'Crossroads_16': ['Crossroads_16[left1]', 'Crossroads_16[right1]', 'Crossroads_16[bot1]'], 'Crossroads_18': ['Crossroads_18[right1]', 'Crossroads_18[right2]', 'Crossroads_18[bot1]'], 'Crossroads_19': ['Crossroads_19[right1]', 'Crossroads_19[top1]', 'Crossroads_19[left1]', 'Crossroads_19[left2]'], 'Crossroads_21': ['Crossroads_21[left1]', 'Crossroads_21[right1]', 'Crossroads_21[top1]'], 'Crossroads_22': ['Crossroads_22[bot1]'], 'Crossroads_25': ['Crossroads_25[right1]', 'Crossroads_25[left1]'], 'Crossroads_27': ['Crossroads_27[right1]', 'Crossroads_27[bot1]', 'Crossroads_27[left1]', 'Crossroads_27[left2]'], 'Crossroads_30': ['Crossroads_30[left1]'], 'Crossroads_31': ['Crossroads_31[right1]'], 'Crossroads_33': ['Crossroads_33[top1]', 'Crossroads_33[left1]', 'Crossroads_33[left2]', 'Crossroads_33[right1]', 'Crossroads_33[right2]'], 'Crossroads_35': ['Crossroads_35[bot1]', 'Crossroads_35[right1]'], 'Crossroads_36': ['Crossroads_36[right1]', 'Crossroads_36[right2]'], 'Crossroads_37': ['Crossroads_37[right1]'], 'Crossroads_38': ['Crossroads_38[right1]'], 'Crossroads_39': ['Crossroads_39[right1]', 'Crossroads_39[left1]'], 'Crossroads_40': ['Crossroads_40[right1]', 'Crossroads_40[left1]'], 'Crossroads_42': ['Crossroads_42[left1]', 'Crossroads_42[right1]'], 'Crossroads_43': ['Crossroads_43[left1]', 'Crossroads_43[right1]'], 'Crossroads_45': ['Crossroads_45[right1]', 'Crossroads_45[left1]'], 'Crossroads_46': ['Crossroads_46[left1]'], 'Crossroads_46b': ['Crossroads_46b[right1]'], 'Crossroads_ShamanTemple': ['Crossroads_ShamanTemple[left1]'], 'Crossroads_47': ['Crossroads_47[right1]'], 'Crossroads_48': ['Crossroads_48[left1]'], 'Crossroads_49': ['Crossroads_49[right1]', 'Crossroads_49[left1]'], 'Crossroads_49b': ['Crossroads_49b[right1]'], 'Crossroads_50': ['Crossroads_50[right1]', 'Crossroads_50[left1]'], 'Crossroads_52': ['Crossroads_52[left1]'], 'Room_ruinhouse': ['Room_ruinhouse[left1]'], 'Room_Charm_Shop': ['Room_Charm_Shop[left1]'], 'Room_Mender_House': ['Room_Mender_House[left1]'], 'Fungus1_01': ['Fungus1_01[left1]', 'Fungus1_01[right1]'], 'Fungus1_01b': ['Fungus1_01b[left1]', 'Fungus1_01b[right1]'], 'Fungus1_02': ['Fungus1_02[left1]', 'Fungus1_02[right1]', 'Fungus1_02[right2]'], 'Fungus1_03': ['Fungus1_03[left1]', 'Fungus1_03[right1]', 'Fungus1_03[bot1]'], 'Fungus1_04': ['Fungus1_04[left1]', 'Fungus1_04[right1]'], 'Fungus1_05': ['Fungus1_05[right1]', 'Fungus1_05[bot1]', 'Fungus1_05[top1]'], 'Fungus1_06': ['Fungus1_06[left1]', 'Fungus1_06[bot1]'], 'Fungus1_07': ['Fungus1_07[top1]', 'Fungus1_07[left1]', 'Fungus1_07[right1]'], 'Fungus1_08': ['Fungus1_08[left1]'], 'Fungus1_09': ['Fungus1_09[left1]', 'Fungus1_09[right1]'], 'Fungus1_10': ['Fungus1_10[left1]', 'Fungus1_10[right1]', 'Fungus1_10[top1]'], 'Fungus1_11': ['Fungus1_11[top1]', 'Fungus1_11[right1]', 'Fungus1_11[right2]', 'Fungus1_11[left1]', 'Fungus1_11[bot1]'], 'Fungus1_12': ['Fungus1_12[left1]', 'Fungus1_12[right1]'], 'Fungus1_13': ['Fungus1_13[right1]', 'Fungus1_13[left1]'], 'Fungus1_14': ['Fungus1_14[left1]'], 'Fungus1_15': ['Fungus1_15[door1]', 'Fungus1_15[right1]'], 'Fungus1_16_alt': ['Fungus1_16_alt[right1]'], 'Fungus1_17': ['Fungus1_17[left1]', 'Fungus1_17[right1]'], 'Fungus1_19': ['Fungus1_19[left1]', 'Fungus1_19[right1]', 'Fungus1_19[bot1]'], 'Fungus1_20_v02': ['Fungus1_20_v02[bot1]', 'Fungus1_20_v02[bot2]', 'Fungus1_20_v02[right1]'], 'Fungus1_21': ['Fungus1_21[bot1]', 'Fungus1_21[top1]', 'Fungus1_21[left1]', 'Fungus1_21[right1]'], 'Fungus1_22': ['Fungus1_22[bot1]', 'Fungus1_22[top1]', 'Fungus1_22[left1]'], 'Fungus1_23': ['Fungus1_23[left1]', 'Fungus1_23[right1]'], 'Fungus1_24': ['Fungus1_24[left1]'], 'Fungus1_25': ['Fungus1_25[right1]', 'Fungus1_25[left1]'], 'Fungus1_26': ['Fungus1_26[right1]', 'Fungus1_26[left1]', 'Fungus1_26[door_SlugShrine]'], 'Fungus1_28': ['Fungus1_28[left1]', 'Fungus1_28[left2]'], 'Fungus1_29': ['Fungus1_29[left1]', 'Fungus1_29[right1]'], 'Fungus1_30': ['Fungus1_30[top1]', 'Fungus1_30[top3]', 'Fungus1_30[left1]', 'Fungus1_30[right1]'], 'Fungus1_31': ['Fungus1_31[top1]', 'Fungus1_31[bot1]', 'Fungus1_31[right1]'], 'Fungus1_32': ['Fungus1_32[bot1]', 'Fungus1_32[top1]', 'Fungus1_32[left1]'], 'Fungus1_34': ['Fungus1_34[door1]', 'Fungus1_34[left1]'], 'Fungus1_35': ['Fungus1_35[left1]', 'Fungus1_35[right1]'], 'Fungus1_36': ['Fungus1_36[left1]'], 'Fungus1_37': ['Fungus1_37[left1]'], 'Fungus1_Slug': ['Fungus1_Slug[right1]'], 'Room_Slug_Shrine': ['Room_Slug_Shrine[left1]'], 'Room_nailmaster_02': ['Room_nailmaster_02[left1]'], 'Fungus3_01': ['Fungus3_01[top1]', 'Fungus3_01[right1]', 'Fungus3_01[left1]', 'Fungus3_01[right2]'], 'Fungus3_02': ['Fungus3_02[left1]', 'Fungus3_02[left2]', 'Fungus3_02[left3]', 'Fungus3_02[right1]', 'Fungus3_02[right2]'], 'Fungus3_03': ['Fungus3_03[right1]', 'Fungus3_03[left1]'], 'Fungus3_24': ['Fungus3_24[right1]', 'Fungus3_24[left1]', 'Fungus3_24[top1]'], 'Fungus3_25': ['Fungus3_25[right1]', 'Fungus3_25[left1]'], 'Fungus3_25b': ['Fungus3_25b[right1]', 'Fungus3_25b[left1]'], 'Fungus3_26': ['Fungus3_26[top1]', 'Fungus3_26[left1]', 'Fungus3_26[left2]', 'Fungus3_26[left3]', 'Fungus3_26[right1]'], 'Fungus3_27': ['Fungus3_27[left1]', 'Fungus3_27[right1]'], 'Fungus3_28': ['Fungus3_28[right1]'], 'Fungus3_30': ['Fungus3_30[bot1]'], 'Fungus3_35': ['Fungus3_35[right1]'], 'Fungus3_44': ['Fungus3_44[bot1]', 'Fungus3_44[door1]', 'Fungus3_44[right1]'], 'Fungus3_47': ['Fungus3_47[left1]', 'Fungus3_47[right1]', 'Fungus3_47[door1]'], 'Room_Fungus_Shaman': ['Room_Fungus_Shaman[left1]'], 'Fungus3_archive': ['Fungus3_archive[left1]', 'Fungus3_archive[bot1]'], 'Fungus3_archive_02': ['Fungus3_archive_02[top1]'], 'Fungus2_01': ['Fungus2_01[left1]', 'Fungus2_01[left2]', 'Fungus2_01[left3]', 'Fungus2_01[right1]'], 'Fungus2_02': ['Fungus2_02[right1]'], 'Fungus2_34': ['Fungus2_34[right1]'], 'Fungus2_03': ['Fungus2_03[left1]', 'Fungus2_03[bot1]', 'Fungus2_03[right1]'], 'Fungus2_04': ['Fungus2_04[top1]', 'Fungus2_04[right1]', 'Fungus2_04[left1]', 'Fungus2_04[right2]'], 'Fungus2_05': ['Fungus2_05[bot1]', 'Fungus2_05[right1]'], 'Fungus2_06': ['Fungus2_06[top1]', 'Fungus2_06[left1]', 'Fungus2_06[left2]', 'Fungus2_06[right1]', 'Fungus2_06[right2]'], 'Fungus2_07': ['Fungus2_07[left1]', 'Fungus2_07[right1]'], 'Fungus2_08': ['Fungus2_08[left1]', 'Fungus2_08[left2]', 'Fungus2_08[right1]'], 'Fungus2_09': ['Fungus2_09[left1]', 'Fungus2_09[right1]'], 'Fungus2_10': ['Fungus2_10[right1]', 'Fungus2_10[right2]', 'Fungus2_10[bot1]'], 'Fungus2_11': ['Fungus2_11[top1]', 'Fungus2_11[left1]', 'Fungus2_11[left2]', 'Fungus2_11[right1]'], 'Fungus2_12': ['Fungus2_12[left1]', 'Fungus2_12[bot1]'], 'Fungus2_13': ['Fungus2_13[top1]', 'Fungus2_13[left2]', 'Fungus2_13[left3]'], 'Fungus2_14': ['Fungus2_14[top1]', 'Fungus2_14[right1]', 'Fungus2_14[bot3]'], 'Fungus2_15': ['Fungus2_15[top3]', 'Fungus2_15[right1]', 'Fungus2_15[left1]'], 'Fungus2_17': ['Fungus2_17[left1]', 'Fungus2_17[right1]', 'Fungus2_17[bot1]'], 'Fungus2_18': ['Fungus2_18[right1]', 'Fungus2_18[bot1]', 'Fungus2_18[top1]'], 'Fungus2_19': ['Fungus2_19[top1]', 'Fungus2_19[left1]'], 'Fungus2_20': ['Fungus2_20[right1]', 'Fungus2_20[left1]'], 'Fungus2_21': ['Fungus2_21[right1]', 'Fungus2_21[left1]'], 'Fungus2_23': ['Fungus2_23[right1]', 'Fungus2_23[right2]'], 'Fungus2_26': ['Fungus2_26[left1]'], 'Fungus2_28': ['Fungus2_28[left1]', 'Fungus2_28[left2]'], 'Fungus2_29': ['Fungus2_29[right1]', 'Fungus2_29[bot1]'], 'Fungus2_30': ['Fungus2_30[bot1]', 'Fungus2_30[top1]'], 'Fungus2_31': ['Fungus2_31[left1]'], 'Fungus2_32': ['Fungus2_32[left1]'], 'Fungus2_33': ['Fungus2_33[right1]', 'Fungus2_33[left1]'], 'Deepnest_01': ['Deepnest_01[right1]', 'Deepnest_01[bot1]', 'Deepnest_01[bot2]', 'Deepnest_01[left1]'], 'Deepnest_01b': ['Deepnest_01b[top1]', 'Deepnest_01b[top2]', 'Deepnest_01b[right1]', 'Deepnest_01b[right2]', 'Deepnest_01b[bot1]'], 'Deepnest_02': ['Deepnest_02[left1]', 'Deepnest_02[left2]', 'Deepnest_02[right1]'], 'Deepnest_03': ['Deepnest_03[right1]', 'Deepnest_03[left1]', 'Deepnest_03[top1]', 'Deepnest_03[left2]'], 'Deepnest_09': ['Deepnest_09[left1]'], 'Deepnest_10': ['Deepnest_10[right1]', 'Deepnest_10[right2]', 'Deepnest_10[right3]', 'Deepnest_10[door1]', 'Deepnest_10[door2]'], 'Room_spider_small': ['Room_spider_small[left1]'], 'Deepnest_Spider_Town': ['Deepnest_Spider_Town[left1]'], 'Deepnest_14': ['Deepnest_14[right1]', 'Deepnest_14[left1]', 'Deepnest_14[bot1]', 'Deepnest_14[bot2]'], 'Deepnest_16': ['Deepnest_16[left1]', 'Deepnest_16[bot1]'], 'Deepnest_17': ['Deepnest_17[left1]', 'Deepnest_17[right1]', 'Deepnest_17[top1]', 'Deepnest_17[bot1]'], 'Fungus2_25': ['Fungus2_25[top1]', 'Fungus2_25[top2]', 'Fungus2_25[right1]'], 'Deepnest_26': ['Deepnest_26[left1]', 'Deepnest_26[left2]', 'Deepnest_26[right1]', 'Deepnest_26[bot1]'], 'Deepnest_26b': ['Deepnest_26b[right2]', 'Deepnest_26b[right1]'], 'Deepnest_30': ['Deepnest_30[left1]', 'Deepnest_30[top1]', 'Deepnest_30[right1]'], 'Deepnest_31': ['Deepnest_31[right1]', 'Deepnest_31[right2]'], 'Deepnest_32': ['Deepnest_32[left1]'], 'Deepnest_33': ['Deepnest_33[top1]', 'Deepnest_33[top2]', 'Deepnest_33[bot1]'], 'Deepnest_34': ['Deepnest_34[left1]', 'Deepnest_34[right1]', 'Deepnest_34[top1]'], 'Deepnest_35': ['Deepnest_35[left1]', 'Deepnest_35[top1]', 'Deepnest_35[bot1]'], 'Deepnest_36': ['Deepnest_36[left1]'], 'Deepnest_37': ['Deepnest_37[left1]', 'Deepnest_37[right1]', 'Deepnest_37[top1]', 'Deepnest_37[bot1]'], 'Deepnest_38': ['Deepnest_38[bot1]'], 'Deepnest_39': ['Deepnest_39[left1]', 'Deepnest_39[top1]', 'Deepnest_39[door1]', 'Deepnest_39[right1]'], 'Deepnest_40': ['Deepnest_40[right1]'], 'Deepnest_41': ['Deepnest_41[right1]', 'Deepnest_41[left1]', 'Deepnest_41[left2]'], 'Deepnest_42': ['Deepnest_42[bot1]', 'Deepnest_42[left1]', 'Deepnest_42[top1]'], 'Deepnest_43': ['Deepnest_43[bot1]', 'Deepnest_43[left1]', 'Deepnest_43[right1]'], 'Deepnest_44': ['Deepnest_44[top1]'], 'Deepnest_45_v02': ['Deepnest_45_v02[left1]'], 'Room_Mask_Maker': ['Room_Mask_Maker[right1]'], 'Deepnest_East_01': ['Deepnest_East_01[bot1]', 'Deepnest_East_01[right1]', 'Deepnest_East_01[top1]'], 'Deepnest_East_02': ['Deepnest_East_02[bot1]', 'Deepnest_East_02[bot2]', 'Deepnest_East_02[top1]', 'Deepnest_East_02[right1]'], 'Deepnest_East_03': ['Deepnest_East_03[left1]', 'Deepnest_East_03[left2]', 'Deepnest_East_03[top1]', 'Deepnest_East_03[top2]', 'Deepnest_East_03[right1]', 'Deepnest_East_03[right2]'], 'Deepnest_East_04': ['Deepnest_East_04[left1]', 'Deepnest_East_04[left2]', 'Deepnest_East_04[right2]', 'Deepnest_East_04[right1]'], 'Deepnest_East_06': ['Deepnest_East_06[top1]', 'Deepnest_East_06[left1]', 'Deepnest_East_06[bot1]', 'Deepnest_East_06[door1]', 'Deepnest_East_06[right1]'], 'Deepnest_East_07': ['Deepnest_East_07[bot1]', 'Deepnest_East_07[bot2]', 'Deepnest_East_07[left1]', 'Deepnest_East_07[left2]', 'Deepnest_East_07[right1]'], 'Deepnest_East_08': ['Deepnest_East_08[right1]', 'Deepnest_East_08[top1]'], 'Deepnest_East_09': ['Deepnest_East_09[right1]', 'Deepnest_East_09[left1]', 'Deepnest_East_09[bot1]'], 'Deepnest_East_10': ['Deepnest_East_10[left1]'], 'Deepnest_East_11': ['Deepnest_East_11[right1]', 'Deepnest_East_11[left1]', 'Deepnest_East_11[top1]', 'Deepnest_East_11[bot1]'], 'Deepnest_East_12': ['Deepnest_East_12[right1]', 'Deepnest_East_12[left1]'], 'Deepnest_East_13': ['Deepnest_East_13[bot1]'], 'Deepnest_East_14': ['Deepnest_East_14[top2]', 'Deepnest_East_14[left1]', 'Deepnest_East_14[door1]'], 'Deepnest_East_14b': ['Deepnest_East_14b[right1]', 'Deepnest_East_14b[top1]'], 'Deepnest_East_15': ['Deepnest_East_15[left1]'], 'Deepnest_East_16': ['Deepnest_East_16[left1]', 'Deepnest_East_16[bot1]'], 'Deepnest_East_17': ['Deepnest_East_17[left1]'], 'Deepnest_East_18': ['Deepnest_East_18[top1]', 'Deepnest_East_18[bot1]', 'Deepnest_East_18[right2]'], 'Room_nailmaster_03': ['Room_nailmaster_03[left1]'], 'Deepnest_East_Hornet': ['Deepnest_East_Hornet[left1]', 'Deepnest_East_Hornet[left2]'], 'Room_Wyrm': ['Room_Wyrm[right1]'], 'GG_Lurker': ['GG_Lurker[left1]'], 'Hive_01': ['Hive_01[left1]', 'Hive_01[right1]', 'Hive_01[right2]'], 'Hive_02': ['Hive_02[left1]', 'Hive_02[left2]', 'Hive_02[left3]'], 'Hive_03_c': ['Hive_03_c[left1]', 'Hive_03_c[right2]', 'Hive_03_c[right3]', 'Hive_03_c[top1]'], 'Hive_03': ['Hive_03[bot1]', 'Hive_03[right1]', 'Hive_03[top1]'], 'Hive_04': ['Hive_04[left1]', 'Hive_04[left2]', 'Hive_04[right1]'], 'Hive_05': ['Hive_05[left1]'], 'Room_Colosseum_01': ['Room_Colosseum_01[left1]', 'Room_Colosseum_01[bot1]'], 'Room_Colosseum_02': ['Room_Colosseum_02[top1]', 'Room_Colosseum_02[top2]'], 'Room_Colosseum_Spectate': ['Room_Colosseum_Spectate[bot1]', 'Room_Colosseum_Spectate[right1]'], 'Abyss_01': ['Abyss_01[left1]', 'Abyss_01[left2]', 'Abyss_01[left3]', 'Abyss_01[right1]', 'Abyss_01[right2]'], 'Abyss_02': ['Abyss_02[right1]', 'Abyss_02[bot1]'], 'Abyss_03': ['Abyss_03[bot1]', 'Abyss_03[bot2]', 'Abyss_03[top1]'], 'Abyss_03_b': ['Abyss_03_b[left1]'], 'Abyss_03_c': ['Abyss_03_c[right1]', 'Abyss_03_c[top1]'], 'Abyss_04': ['Abyss_04[top1]', 'Abyss_04[left1]', 'Abyss_04[bot1]', 'Abyss_04[right1]'], 'Abyss_05': ['Abyss_05[left1]', 'Abyss_05[right1]'], 'Abyss_06_Core': ['Abyss_06_Core[top1]', 'Abyss_06_Core[left1]', 'Abyss_06_Core[left3]', 'Abyss_06_Core[right2]', 'Abyss_06_Core[bot1]'], 'Abyss_08': ['Abyss_08[right1]'], 'Abyss_09': ['Abyss_09[right1]', 'Abyss_09[right2]', 'Abyss_09[right3]', 'Abyss_09[left1]'], 'Abyss_10': ['Abyss_10[left1]', 'Abyss_10[left2]'], 'Abyss_12': ['Abyss_12[right1]'], 'Abyss_15': ['Abyss_15[top1]'], 'Abyss_16': ['Abyss_16[left1]', 'Abyss_16[right1]'], 'Abyss_17': ['Abyss_17[top1]'], 'Abyss_18': ['Abyss_18[left1]', 'Abyss_18[right1]'], 'Abyss_19': ['Abyss_19[left1]', 'Abyss_19[right1]', 'Abyss_19[bot1]', 'Abyss_19[bot2]'], 'Abyss_20': ['Abyss_20[top1]', 'Abyss_20[top2]'], 'Abyss_21': ['Abyss_21[right1]'], 'Abyss_22': ['Abyss_22[left1]'], 'Abyss_Lighthouse_room': ['Abyss_Lighthouse_room[left1]'], 'Waterways_01': ['Waterways_01[top1]', 'Waterways_01[left1]', 'Waterways_01[right1]', 'Waterways_01[bot1]'], 'Waterways_02': ['Waterways_02[top1]', 'Waterways_02[top2]', 'Waterways_02[top3]', 'Waterways_02[bot1]', 'Waterways_02[bot2]'], 'Waterways_03': ['Waterways_03[left1]'], 'Waterways_04': ['Waterways_04[bot1]', 'Waterways_04[right1]', 'Waterways_04[left1]', 'Waterways_04[left2]'], 'Waterways_04b': ['Waterways_04b[right1]', 'Waterways_04b[right2]', 'Waterways_04b[left1]'], 'Waterways_05': ['Waterways_05[right1]', 'Waterways_05[bot1]', 'Waterways_05[bot2]'], 'Waterways_06': ['Waterways_06[right1]', 'Waterways_06[top1]'], 'Waterways_07': ['Waterways_07[right1]', 'Waterways_07[right2]', 'Waterways_07[left1]', 'Waterways_07[door1]', 'Waterways_07[top1]'], 'Waterways_08': ['Waterways_08[top1]', 'Waterways_08[left1]', 'Waterways_08[left2]'], 'Waterways_09': ['Waterways_09[right1]', 'Waterways_09[left1]'], 'Waterways_12': ['Waterways_12[right1]'], 'Waterways_13': ['Waterways_13[left1]', 'Waterways_13[left2]'], 'Waterways_14': ['Waterways_14[bot1]', 'Waterways_14[bot2]'], 'Waterways_15': ['Waterways_15[top1]'], 'GG_Pipeway': ['GG_Pipeway[right1]', 'GG_Pipeway[left1]'], 'GG_Waterways': ['GG_Waterways[right1]', 'GG_Waterways[door1]'], 'Room_GG_Shortcut': ['Room_GG_Shortcut[left1]', 'Room_GG_Shortcut[top1]'], 'Ruins1_01': ['Ruins1_01[left1]', 'Ruins1_01[top1]', 'Ruins1_01[bot1]'], 'Ruins1_02': ['Ruins1_02[top1]', 'Ruins1_02[bot1]'], 'Ruins1_03': ['Ruins1_03[top1]', 'Ruins1_03[left1]', 'Ruins1_03[right1]', 'Ruins1_03[right2]'], 'Ruins1_04': ['Ruins1_04[right1]', 'Ruins1_04[door1]', 'Ruins1_04[bot1]'], 'Ruins1_05b': ['Ruins1_05b[left1]', 'Ruins1_05b[top1]', 'Ruins1_05b[bot1]', 'Ruins1_05b[right1]'], 'Ruins1_05c': ['Ruins1_05c[left2]', 'Ruins1_05c[bot1]', 'Ruins1_05c[top1]', 'Ruins1_05c[top2]', 'Ruins1_05c[top3]'], 'Ruins1_05': ['Ruins1_05[bot1]', 'Ruins1_05[bot2]', 'Ruins1_05[bot3]', 'Ruins1_05[right1]', 'Ruins1_05[right2]', 'Ruins1_05[top1]'], 'Ruins1_06': ['Ruins1_06[left1]', 'Ruins1_06[right1]'], 'Ruins1_09': ['Ruins1_09[top1]', 'Ruins1_09[left1]'], 'Ruins1_17': ['Ruins1_17[top1]', 'Ruins1_17[right1]', 'Ruins1_17[bot1]'], 'Ruins1_18': ['Ruins1_18[left1]', 'Ruins1_18[right1]', 'Ruins1_18[right2]'], 'Ruins1_23': ['Ruins1_23[top1]', 'Ruins1_23[right1]', 'Ruins1_23[right2]', 'Ruins1_23[bot1]', 'Ruins1_23[left1]'], 'Ruins1_24': ['Ruins1_24[left1]', 'Ruins1_24[right1]', 'Ruins1_24[left2]', 'Ruins1_24[right2]'], 'Ruins1_25': ['Ruins1_25[left1]', 'Ruins1_25[left2]', 'Ruins1_25[left3]'], 'Ruins1_27': ['Ruins1_27[left1]', 'Ruins1_27[right1]'], 'Ruins1_28': ['Ruins1_28[left1]', 'Ruins1_28[right1]', 'Ruins1_28[bot1]'], 'Ruins1_29': ['Ruins1_29[left1]'], 'Ruins1_30': ['Ruins1_30[left1]', 'Ruins1_30[left2]', 'Ruins1_30[bot1]', 'Ruins1_30[right1]'], 'Ruins1_31': ['Ruins1_31[bot1]', 'Ruins1_31[left1]', 'Ruins1_31[left2]', 'Ruins1_31[left3]', 'Ruins1_31[right1]'], 'Ruins1_31b': ['Ruins1_31b[right1]', 'Ruins1_31b[right2]'], 'Ruins1_32': ['Ruins1_32[right1]', 'Ruins1_32[right2]'], 'Room_nailsmith': ['Room_nailsmith[left1]'], 'Ruins2_01': ['Ruins2_01[top1]', 'Ruins2_01[bot1]', 'Ruins2_01[left2]'], 'Ruins2_01_b': ['Ruins2_01_b[top1]', 'Ruins2_01_b[left1]', 'Ruins2_01_b[right1]'], 'Ruins2_03b': ['Ruins2_03b[top1]', 'Ruins2_03b[top2]', 'Ruins2_03b[left1]', 'Ruins2_03b[bot1]'], 'Ruins2_03': ['Ruins2_03[top1]', 'Ruins2_03[bot1]', 'Ruins2_03[bot2]'], 'Ruins2_04': ['Ruins2_04[left1]', 'Ruins2_04[left2]', 'Ruins2_04[right1]', 'Ruins2_04[right2]', 'Ruins2_04[door_Ruin_House_01]', 'Ruins2_04[door_Ruin_House_02]', 'Ruins2_04[door_Ruin_House_03]', 'Ruins2_04[door_Ruin_Elevator]'], 'Ruins2_05': ['Ruins2_05[left1]', 'Ruins2_05[top1]', 'Ruins2_05[bot1]'], 'Ruins2_06': ['Ruins2_06[left1]', 'Ruins2_06[left2]', 'Ruins2_06[right1]', 'Ruins2_06[right2]', 'Ruins2_06[top1]'], 'Ruins2_07': ['Ruins2_07[right1]', 'Ruins2_07[left1]', 'Ruins2_07[top1]'], 'Ruins2_08': ['Ruins2_08[left1]'], 'Ruins2_09': ['Ruins2_09[bot1]'], 'Ruins2_10': ['Ruins2_10[right1]', 'Ruins2_10[left1]'], 'Ruins2_10b': ['Ruins2_10b[right1]', 'Ruins2_10b[right2]', 'Ruins2_10b[left1]'], 'Ruins2_11_b': ['Ruins2_11_b[right1]', 'Ruins2_11_b[left1]', 'Ruins2_11_b[bot1]'], 'Ruins2_11': ['Ruins2_11[right1]'], 'Ruins2_Watcher_Room': ['Ruins2_Watcher_Room[bot1]'], 'Ruins_House_01': ['Ruins_House_01[left1]'], 'Ruins_House_02': ['Ruins_House_02[left1]'], 'Ruins_House_03': ['Ruins_House_03[left1]', 'Ruins_House_03[left2]'], 'Ruins_Elevator': ['Ruins_Elevator[left1]', 'Ruins_Elevator[left2]'], 'Ruins_Bathhouse': ['Ruins_Bathhouse[door1]', 'Ruins_Bathhouse[right1]'], 'RestingGrounds_02': ['RestingGrounds_02[right1]', 'RestingGrounds_02[left1]', 'RestingGrounds_02[bot1]', 'RestingGrounds_02[top1]'], 'RestingGrounds_04': ['RestingGrounds_04[left1]', 'RestingGrounds_04[right1]'], 'RestingGrounds_05': ['RestingGrounds_05[left1]', 'RestingGrounds_05[left2]', 'RestingGrounds_05[left3]', 'RestingGrounds_05[right1]', 'RestingGrounds_05[right2]', 'RestingGrounds_05[bot1]'], 'RestingGrounds_06': ['RestingGrounds_06[left1]', 'RestingGrounds_06[right1]', 'RestingGrounds_06[top1]'], 'RestingGrounds_07': ['RestingGrounds_07[right1]'], 'RestingGrounds_08': ['RestingGrounds_08[left1]'], 'RestingGrounds_09': ['RestingGrounds_09[left1]'], 'RestingGrounds_10': ['RestingGrounds_10[left1]', 'RestingGrounds_10[top1]', 'RestingGrounds_10[top2]'], 'RestingGrounds_12': ['RestingGrounds_12[bot1]', 'RestingGrounds_12[door_Mansion]'], 'RestingGrounds_17': ['RestingGrounds_17[right1]'], 'Room_Mansion': ['Room_Mansion[left1]'], 'Mines_01': ['Mines_01[bot1]', 'Mines_01[left1]'], 'Mines_02': ['Mines_02[top1]', 'Mines_02[top2]', 'Mines_02[left1]', 'Mines_02[right1]'], 'Mines_03': ['Mines_03[right1]', 'Mines_03[bot1]', 'Mines_03[top1]'], 'Mines_04': ['Mines_04[right1]', 'Mines_04[top1]', 'Mines_04[left1]', 'Mines_04[left2]', 'Mines_04[left3]'], 'Mines_05': ['Mines_05[right1]', 'Mines_05[top1]', 'Mines_05[bot1]', 'Mines_05[left1]', 'Mines_05[left2]'], 'Mines_06': ['Mines_06[right1]', 'Mines_06[left1]'], 'Mines_07': ['Mines_07[right1]', 'Mines_07[left1]'], 'Mines_10': ['Mines_10[right1]', 'Mines_10[left1]', 'Mines_10[bot1]'], 'Mines_11': ['Mines_11[right1]', 'Mines_11[top1]', 'Mines_11[bot1]'], 'Mines_13': ['Mines_13[right1]', 'Mines_13[top1]', 'Mines_13[bot1]'], 'Mines_16': ['Mines_16[top1]'], 'Mines_17': ['Mines_17[right1]', 'Mines_17[left1]'], 'Mines_18': ['Mines_18[top1]', 'Mines_18[left1]', 'Mines_18[right1]'], 'Mines_19': ['Mines_19[left1]', 'Mines_19[right1]'], 'Mines_20': ['Mines_20[left1]', 'Mines_20[left2]', 'Mines_20[left3]', 'Mines_20[bot1]', 'Mines_20[right1]', 'Mines_20[right2]'], 'Mines_23': ['Mines_23[left1]', 'Mines_23[right1]', 'Mines_23[right2]', 'Mines_23[top1]'], 'Mines_24': ['Mines_24[left1]'], 'Mines_25': ['Mines_25[left1]', 'Mines_25[top1]'], 'Mines_28': ['Mines_28[left1]', 'Mines_28[bot1]', 'Mines_28[door1]'], 'Mines_29': ['Mines_29[left1]', 'Mines_29[right1]', 'Mines_29[right2]'], 'Mines_30': ['Mines_30[left1]', 'Mines_30[right1]'], 'Mines_31': ['Mines_31[left1]'], 'Mines_32': ['Mines_32[bot1]'], 'Mines_33': ['Mines_33[right1]', 'Mines_33[left1]'], 'Mines_34': ['Mines_34[bot1]', 'Mines_34[bot2]', 'Mines_34[left1]'], 'Mines_35': ['Mines_35[left1]'], 'Mines_36': ['Mines_36[right1]'], 'Mines_37': ['Mines_37[bot1]', 'Mines_37[top1]'], 'Fungus3_04': ['Fungus3_04[left1]', 'Fungus3_04[left2]', 'Fungus3_04[right1]', 'Fungus3_04[right2]'], 'Fungus3_05': ['Fungus3_05[left1]', 'Fungus3_05[right1]', 'Fungus3_05[right2]'], 'Fungus3_08': ['Fungus3_08[left1]', 'Fungus3_08[right1]', 'Fungus3_08[top1]'], 'Fungus3_10': ['Fungus3_10[top1]', 'Fungus3_10[bot1]'], 'Fungus3_11': ['Fungus3_11[left1]', 'Fungus3_11[left2]', 'Fungus3_11[right1]'], 'Fungus3_13': ['Fungus3_13[left1]', 'Fungus3_13[left2]', 'Fungus3_13[left3]', 'Fungus3_13[bot1]', 'Fungus3_13[right1]'], 'Fungus3_21': ['Fungus3_21[right1]', 'Fungus3_21[top1]'], 'Fungus3_22': ['Fungus3_22[right1]', 'Fungus3_22[left1]', 'Fungus3_22[bot1]'], 'Fungus3_23': ['Fungus3_23[right1]', 'Fungus3_23[left1]'], 'Fungus3_34': ['Fungus3_34[right1]', 'Fungus3_34[left1]', 'Fungus3_34[top1]'], 'Fungus3_39': ['Fungus3_39[right1]', 'Fungus3_39[left1]'], 'Fungus3_40': ['Fungus3_40[right1]', 'Fungus3_40[top1]'], 'Fungus3_48': ['Fungus3_48[right1]', 'Fungus3_48[right2]', 'Fungus3_48[door1]', 'Fungus3_48[bot1]'], 'Fungus3_49': ['Fungus3_49[right1]'], 'Fungus3_50': ['Fungus3_50[right1]'], 'Room_Queen': ['Room_Queen[left1]'], 'Cliffs_01': ['Cliffs_01[right1]', 'Cliffs_01[right2]', 'Cliffs_01[right3]', 'Cliffs_01[right4]'], 'Cliffs_02': ['Cliffs_02[right1]', 'Cliffs_02[bot1]', 'Cliffs_02[bot2]', 'Cliffs_02[door1]', 'Cliffs_02[left1]', 'Cliffs_02[left2]'], 'Cliffs_03': ['Cliffs_03[right1]'], 'Cliffs_04': ['Cliffs_04[right1]', 'Cliffs_04[left1]'], 'Cliffs_05': ['Cliffs_05[left1]'], 'Cliffs_06': ['Cliffs_06[left1]'], 'Room_nailmaster': ['Room_nailmaster[left1]'], 'White_Palace_01': ['White_Palace_01[left1]', 'White_Palace_01[right1]', 'White_Palace_01[top1]'], 'White_Palace_02': ['White_Palace_02[left1]'], 'White_Palace_03_hub': ['White_Palace_03_hub[left1]', 'White_Palace_03_hub[left2]', 'White_Palace_03_hub[right1]', 'White_Palace_03_hub[top1]', 'White_Palace_03_hub[bot1]'], 'White_Palace_04': ['White_Palace_04[top1]', 'White_Palace_04[right2]'], 'White_Palace_05': ['White_Palace_05[left1]', 'White_Palace_05[left2]', 'White_Palace_05[right1]', 'White_Palace_05[right2]'], 'White_Palace_06': ['White_Palace_06[left1]', 'White_Palace_06[top1]', 'White_Palace_06[bot1]'], 'White_Palace_07': ['White_Palace_07[top1]', 'White_Palace_07[bot1]'], 'White_Palace_08': ['White_Palace_08[left1]', 'White_Palace_08[right1]'], 'White_Palace_09': ['White_Palace_09[right1]'], 'White_Palace_11': ['White_Palace_11[door2]'], 'White_Palace_12': ['White_Palace_12[right1]', 'White_Palace_12[bot1]'], 'White_Palace_13': ['White_Palace_13[right1]', 'White_Palace_13[left1]', 'White_Palace_13[left2]', 'White_Palace_13[left3]'], 'White_Palace_14': ['White_Palace_14[bot1]', 'White_Palace_14[right1]'], 'White_Palace_15': ['White_Palace_15[left1]', 'White_Palace_15[right1]', 'White_Palace_15[right2]'], 'White_Palace_16': ['White_Palace_16[left1]', 'White_Palace_16[left2]'], 'White_Palace_17': ['White_Palace_17[right1]', 'White_Palace_17[bot1]'], 'White_Palace_18': ['White_Palace_18[top1]', 'White_Palace_18[right1]'], 'White_Palace_19': ['White_Palace_19[top1]', 'White_Palace_19[left1]'], 'White_Palace_20': ['White_Palace_20[bot1]']} -item_effects = {'Lurien': {'DREAMER': 1}, 'Monomon': {'DREAMER': 1}, 'Herrah': {'DREAMER': 1}, 'Dreamer': {'DREAMER': 1}, 'Mothwing_Cloak': {'LEFTDASH': 1, 'RIGHTDASH': 1}, 'Mantis_Claw': {'LEFTCLAW': 1, 'RIGHTCLAW': 1}, 'Crystal_Heart': {'LEFTSUPERDASH': 1, 'RIGHTSUPERDASH': 1}, 'Monarch_Wings': {'WINGS': 1}, 'Shade_Cloak': {'LEFTDASH': 1, 'RIGHTDASH': 1}, "Isma's_Tear": {'ACID': 1}, 'Dream_Nail': {'DREAMNAIL': 1}, 'Dream_Gate': {'DREAMNAIL': 1}, 'Awoken_Dream_Nail': {'DREAMNAIL': 1}, 'Vengeful_Spirit': {'FIREBALL': 1, 'SPELLS': 1}, 'Shade_Soul': {'FIREBALL': 1, 'SPELLS': 1}, 'Desolate_Dive': {'QUAKE': 1, 'SPELLS': 1}, 'Descending_Dark': {'QUAKE': 1, 'SPELLS': 1}, 'Howling_Wraiths': {'SCREAM': 1, 'SPELLS': 1}, 'Abyss_Shriek': {'SCREAM': 1, 'SPELLS': 1}, 'Cyclone_Slash': {'CYCLONE': 1}, 'Focus': {'FOCUS': 1}, 'Swim': {'SWIM': 1}, 'Gathering_Swarm': {'CHARMS': 1}, 'Wayward_Compass': {'CHARMS': 1}, 'Grubsong': {'CHARMS': 1}, 'Stalwart_Shell': {'CHARMS': 1}, 'Baldur_Shell': {'CHARMS': 1}, 'Fury_of_the_Fallen': {'CHARMS': 1}, 'Quick_Focus': {'CHARMS': 1}, 'Lifeblood_Heart': {'CHARMS': 1}, 'Lifeblood_Core': {'CHARMS': 1}, "Defender's_Crest": {'CHARMS': 1}, 'Flukenest': {'CHARMS': 1}, 'Thorns_of_Agony': {'CHARMS': 1}, 'Mark_of_Pride': {'CHARMS': 1}, 'Steady_Body': {'CHARMS': 1}, 'Heavy_Blow': {'CHARMS': 1}, 'Sharp_Shadow': {'CHARMS': 1}, 'Spore_Shroom': {'CHARMS': 1}, 'Longnail': {'CHARMS': 1}, 'Shaman_Stone': {'CHARMS': 1}, 'Soul_Catcher': {'CHARMS': 1}, 'Soul_Eater': {'CHARMS': 1}, 'Glowing_Womb': {'CHARMS': 1}, 'Fragile_Heart': {'CHARMS': 1}, 'Unbreakable_Heart': {'Fragile_Heart': 1, 'CHARMS': 1}, 'Fragile_Greed': {'CHARMS': 1}, 'Unbreakable_Greed': {'Fragile_Greed': 1, 'CHARMS': 1}, 'Fragile_Strength': {'CHARMS': 1}, 'Unbreakable_Strength': {'Fragile_Strength': 1, 'CHARMS': 1}, "Nailmaster's_Glory": {'CHARMS': 1}, "Joni's_Blessing": {'CHARMS': 1}, 'Shape_of_Unn': {'CHARMS': 1}, 'Hiveblood': {'CHARMS': 1}, 'Dream_Wielder': {'CHARMS': 1}, 'Dashmaster': {'CHARMS': 1}, 'Quick_Slash': {'CHARMS': 1}, 'Spell_Twister': {'CHARMS': 1}, 'Deep_Focus': {'CHARMS': 1}, "Grubberfly's_Elegy": {'CHARMS': 1}, 'Queen_Fragment': {'WHITEFRAGMENT': 1}, 'King_Fragment': {'WHITEFRAGMENT': 1}, 'Void_Heart': {'WHITEFRAGMENT': 1}, 'Sprintmaster': {'CHARMS': 1}, 'Dreamshield': {'CHARMS': 1}, 'Weaversong': {'CHARMS': 1}, 'Grimmchild1': {'GRIMMCHILD': 1, 'CHARMS': 1}, 'Grimmchild2': {'GRIMMCHILD': 1, 'CHARMS': 1, 'FLAMES': 6, 'First_Grimmchild_Upgrade': 1}, 'City_Crest': {'CREST': 1}, 'Lumafly_Lantern': {'LANTERN': 1}, 'Tram_Pass': {'TRAM': 1}, 'Simple_Key': {'SIMPLE': 1}, "Shopkeeper's_Key": {'SHOPKEY': 1}, 'Elegant_Key': {'ELEGANT': 1}, 'Love_Key': {'LOVE': 1}, "King's_Brand": {'BRAND': 1}, 'Mask_Shard': {'MASKSHARDS': 1}, 'Double_Mask_Shard': {'MASKSHARDS': 2}, 'Full_Mask': {'MASKSHARDS': 4}, 'Vessel_Fragment': {'VESSELFRAGMENTS': 1}, 'Double_Vessel_Fragment': {'VESSELFRAGMENTS': 2}, 'Full_Soul_Vessel': {'VESSELFRAGMENTS': 3}, 'Charm_Notch': {'NOTCHES': 1}, 'Pale_Ore': {'PALEORE': 1}, 'Rancid_Egg': {'RANCIDEGGS': 1}, 'Whispering_Root-Crossroads': {'ESSENCE': 29}, 'Whispering_Root-Greenpath': {'ESSENCE': 44}, 'Whispering_Root-Leg_Eater': {'ESSENCE': 20}, 'Whispering_Root-Mantis_Village': {'ESSENCE': 18}, 'Whispering_Root-Deepnest': {'ESSENCE': 45}, 'Whispering_Root-Queens_Gardens': {'ESSENCE': 29}, 'Whispering_Root-Kingdoms_Edge': {'ESSENCE': 51}, 'Whispering_Root-Waterways': {'ESSENCE': 35}, 'Whispering_Root-City': {'ESSENCE': 28}, 'Whispering_Root-Resting_Grounds': {'ESSENCE': 20}, 'Whispering_Root-Spirits_Glade': {'ESSENCE': 34}, 'Whispering_Root-Crystal_Peak': {'ESSENCE': 21}, 'Whispering_Root-Howling_Cliffs': {'ESSENCE': 46}, 'Whispering_Root-Ancestral_Mound': {'ESSENCE': 42}, 'Whispering_Root-Hive': {'ESSENCE': 20}, 'Boss_Essence-Elder_Hu': {'ESSENCE': 100}, 'Boss_Essence-Xero': {'ESSENCE': 100}, 'Boss_Essence-Gorb': {'ESSENCE': 100}, 'Boss_Essence-Marmu': {'ESSENCE': 150}, 'Boss_Essence-No_Eyes': {'ESSENCE': 200}, 'Boss_Essence-Galien': {'ESSENCE': 200}, 'Boss_Essence-Markoth': {'ESSENCE': 250}, 'Boss_Essence-Failed_Champion': {'ESSENCE': 300}, 'Boss_Essence-Soul_Tyrant': {'ESSENCE': 300}, 'Boss_Essence-Lost_Kin': {'ESSENCE': 400}, 'Boss_Essence-White_Defender': {'ESSENCE': 300}, 'Boss_Essence-Grey_Prince_Zote': {'ESSENCE': 300}, 'Grub': {'GRUBS': 1}, 'Quill': {'QUILL': 1}, 'Crossroads_Stag': {'STAGS': 1}, 'Greenpath_Stag': {'STAGS': 1}, "Queen's_Station_Stag": {'STAGS': 1}, "Queen's_Gardens_Stag": {'STAGS': 1}, 'City_Storerooms_Stag': {'STAGS': 1}, "King's_Station_Stag": {'STAGS': 1}, 'Resting_Grounds_Stag': {'STAGS': 1}, 'Distant_Village_Stag': {'STAGS': 1}, 'Hidden_Station_Stag': {'STAGS': 1}, 'Stag_Nest_Stag': {'STAGS': 1}, 'Grimmkin_Flame': {'FLAMES': 1}, "Hunter's_Journal": {'JOURNAL': 1}, 'Right_Mantis_Claw': {'RIGHTCLAW': 1}, 'Left_Mantis_Claw': {'LEFTCLAW': 1}, 'Leftslash': {'LEFTSLASH': 1}, 'Rightslash': {'RIGHTSLASH': 1}, 'Upslash': {'UPSLASH': 1}, 'Downslash': {'DOWNSLASH': 1}, 'Left_Crystal_Heart': {'LEFTSUPERDASH': 1}, 'Right_Crystal_Heart': {'RIGHTSUPERDASH': 1}} +item_effects = {'Lurien': {'DREAMER': 1}, 'Monomon': {'DREAMER': 1}, 'Herrah': {'DREAMER': 1}, 'Dreamer': {'DREAMER': 1}, 'Mothwing_Cloak': {'LEFTDASH': 1, 'RIGHTDASH': 1}, 'Mantis_Claw': {'LEFTCLAW': 1, 'RIGHTCLAW': 1}, 'Crystal_Heart': {'LEFTSUPERDASH': 1, 'RIGHTSUPERDASH': 1}, 'Monarch_Wings': {'WINGS': 1}, 'Shade_Cloak': {'LEFTDASH': 1, 'RIGHTDASH': 1}, "Isma's_Tear": {'ACID': 1}, 'Dream_Nail': {'DREAMNAIL': 1}, 'Dream_Gate': {'DREAMNAIL': 1}, 'Awoken_Dream_Nail': {'DREAMNAIL': 1}, 'Vengeful_Spirit': {'FIREBALL': 1, 'SPELLS': 1}, 'Shade_Soul': {'FIREBALL': 1, 'SPELLS': 1}, 'Desolate_Dive': {'QUAKE': 1, 'SPELLS': 1}, 'Descending_Dark': {'QUAKE': 1, 'SPELLS': 1}, 'Howling_Wraiths': {'SCREAM': 1, 'SPELLS': 1}, 'Abyss_Shriek': {'SCREAM': 1, 'SPELLS': 1}, 'Cyclone_Slash': {'CYCLONE': 1}, 'Focus': {'FOCUS': 1}, 'Swim': {'SWIM': 1}, 'Gathering_Swarm': {'CHARMS': 1}, 'Wayward_Compass': {'CHARMS': 1}, 'Grubsong': {'CHARMS': 1}, 'Stalwart_Shell': {'CHARMS': 1}, 'Baldur_Shell': {'CHARMS': 1}, 'Fury_of_the_Fallen': {'CHARMS': 1}, 'Quick_Focus': {'CHARMS': 1}, 'Lifeblood_Heart': {'CHARMS': 1}, 'Lifeblood_Core': {'CHARMS': 1}, "Defender's_Crest": {'CHARMS': 1}, 'Flukenest': {'CHARMS': 1}, 'Thorns_of_Agony': {'CHARMS': 1}, 'Mark_of_Pride': {'CHARMS': 1}, 'Steady_Body': {'CHARMS': 1}, 'Heavy_Blow': {'CHARMS': 1}, 'Sharp_Shadow': {'CHARMS': 1}, 'Spore_Shroom': {'CHARMS': 1}, 'Longnail': {'CHARMS': 1}, 'Shaman_Stone': {'CHARMS': 1}, 'Soul_Catcher': {'CHARMS': 1}, 'Soul_Eater': {'CHARMS': 1}, 'Glowing_Womb': {'CHARMS': 1}, 'Fragile_Heart': {'CHARMS': 1}, 'Unbreakable_Heart': {'Fragile_Heart': 1, 'CHARMS': 1}, 'Fragile_Greed': {'CHARMS': 1}, 'Unbreakable_Greed': {'Fragile_Greed': 1, 'CHARMS': 1}, 'Fragile_Strength': {'CHARMS': 1}, 'Unbreakable_Strength': {'Fragile_Strength': 1, 'CHARMS': 1}, "Nailmaster's_Glory": {'CHARMS': 1}, "Joni's_Blessing": {'CHARMS': 1}, 'Shape_of_Unn': {'CHARMS': 1}, 'Hiveblood': {'CHARMS': 1}, 'Dream_Wielder': {'CHARMS': 1}, 'Dashmaster': {'CHARMS': 1}, 'Quick_Slash': {'CHARMS': 1}, 'Spell_Twister': {'CHARMS': 1}, 'Deep_Focus': {'CHARMS': 1}, "Grubberfly's_Elegy": {'CHARMS': 1}, 'Queen_Fragment': {'WHITEFRAGMENT': 1}, 'King_Fragment': {'WHITEFRAGMENT': 1}, 'Void_Heart': {'WHITEFRAGMENT': 1}, 'Sprintmaster': {'CHARMS': 1}, 'Dreamshield': {'CHARMS': 1}, 'Weaversong': {'CHARMS': 1}, 'Grimmchild1': {'GRIMMCHILD': 1, 'CHARMS': 1}, 'Grimmchild2': {'GRIMMCHILD': 1, 'CHARMS': 1, 'FLAMES': 6, 'First_Grimmchild_Upgrade': 1}, 'City_Crest': {'CREST': 1}, 'Lumafly_Lantern': {'LANTERN': 1}, 'Tram_Pass': {'TRAM': 1}, 'Simple_Key': {'SIMPLE': 1}, "Shopkeeper's_Key": {'SHOPKEY': 1}, 'Elegant_Key': {'ELEGANT': 1}, 'Love_Key': {'LOVE': 1}, "King's_Brand": {'BRAND': 1}, 'Mask_Shard': {'MASKSHARDS': 1}, 'Double_Mask_Shard': {'MASKSHARDS': 2}, 'Full_Mask': {'MASKSHARDS': 4}, 'Vessel_Fragment': {'VESSELFRAGMENTS': 1}, 'Double_Vessel_Fragment': {'VESSELFRAGMENTS': 2}, 'Full_Soul_Vessel': {'VESSELFRAGMENTS': 3}, 'Charm_Notch': {'NOTCHES': 1}, 'Pale_Ore': {'PALEORE': 1}, 'Rancid_Egg': {'RANCIDEGGS': 1}, 'Whispering_Root-Crossroads': {'ESSENCE': 29}, 'Whispering_Root-Greenpath': {'ESSENCE': 44}, 'Whispering_Root-Leg_Eater': {'ESSENCE': 20}, 'Whispering_Root-Mantis_Village': {'ESSENCE': 18}, 'Whispering_Root-Deepnest': {'ESSENCE': 45}, 'Whispering_Root-Queens_Gardens': {'ESSENCE': 29}, 'Whispering_Root-Kingdoms_Edge': {'ESSENCE': 51}, 'Whispering_Root-Waterways': {'ESSENCE': 35}, 'Whispering_Root-City': {'ESSENCE': 28}, 'Whispering_Root-Resting_Grounds': {'ESSENCE': 20}, 'Whispering_Root-Spirits_Glade': {'ESSENCE': 34}, 'Whispering_Root-Crystal_Peak': {'ESSENCE': 21}, 'Whispering_Root-Howling_Cliffs': {'ESSENCE': 46}, 'Whispering_Root-Ancestral_Mound': {'ESSENCE': 42}, 'Whispering_Root-Hive': {'ESSENCE': 20}, 'Boss_Essence-Elder_Hu': {'ESSENCE': 100}, 'Boss_Essence-Xero': {'ESSENCE': 100}, 'Boss_Essence-Gorb': {'ESSENCE': 100}, 'Boss_Essence-Marmu': {'ESSENCE': 150}, 'Boss_Essence-No_Eyes': {'ESSENCE': 200}, 'Boss_Essence-Galien': {'ESSENCE': 200}, 'Boss_Essence-Markoth': {'ESSENCE': 250}, 'Boss_Essence-Failed_Champion': {'ESSENCE': 300}, 'Boss_Essence-Soul_Tyrant': {'ESSENCE': 300}, 'Boss_Essence-Lost_Kin': {'ESSENCE': 400}, 'Boss_Essence-White_Defender': {'ESSENCE': 300}, 'Boss_Essence-Grey_Prince_Zote': {'ESSENCE': 300}, 'Grub': {'GRUBS': 1}, 'Quill': {'QUILL': 1}, 'Crossroads_Stag': {'STAGS': 1}, 'Greenpath_Stag': {'STAGS': 1}, "Queen's_Station_Stag": {'STAGS': 1}, "Queen's_Gardens_Stag": {'STAGS': 1}, 'City_Storerooms_Stag': {'STAGS': 1}, "King's_Station_Stag": {'STAGS': 1}, 'Resting_Grounds_Stag': {'STAGS': 1}, 'Distant_Village_Stag': {'STAGS': 1}, 'Hidden_Station_Stag': {'STAGS': 1}, 'Stag_Nest_Stag': {'STAGS': 1}, 'Grimmkin_Flame': {'FLAMES': 1}, "Hunter's_Journal": {'JOURNAL': 1}, 'Right_Mantis_Claw': {'RIGHTCLAW': 1}, 'Left_Mantis_Claw': {'LEFTCLAW': 1}, 'Leftslash': {'LEFTSLASH': 1}, 'Rightslash': {'RIGHTSLASH': 1}, 'Upslash': {'UPSLASH': 1}, 'Downslash': {'DOWNSLASH': 1}, 'Left_Crystal_Heart': {'LEFTSUPERDASH': 1}, 'Right_Crystal_Heart': {'RIGHTSUPERDASH': 1}, 'Left_Mothwing_Cloak': {'LEFTDASH': 1}, 'Right_Mothwing_Cloak': {'RIGHTDASH': 1}} items = {'Lurien': 'Dreamer', 'Monomon': 'Dreamer', 'Herrah': 'Dreamer', 'World_Sense': 'Dreamer', 'Dreamer': 'Fake', 'Mothwing_Cloak': 'Skill', 'Mantis_Claw': 'Skill', 'Crystal_Heart': 'Skill', 'Monarch_Wings': 'Skill', 'Shade_Cloak': 'Skill', "Isma's_Tear": 'Skill', 'Dream_Nail': 'Skill', 'Dream_Gate': 'Skill', 'Awoken_Dream_Nail': 'Skill', 'Vengeful_Spirit': 'Skill', 'Shade_Soul': 'Skill', 'Desolate_Dive': 'Skill', 'Descending_Dark': 'Skill', 'Howling_Wraiths': 'Skill', 'Abyss_Shriek': 'Skill', 'Cyclone_Slash': 'Skill', 'Dash_Slash': 'Skill', 'Great_Slash': 'Skill', 'Focus': 'Focus', 'Swim': 'Swim', 'Gathering_Swarm': 'Charm', 'Wayward_Compass': 'Charm', 'Grubsong': 'Charm', 'Stalwart_Shell': 'Charm', 'Baldur_Shell': 'Charm', 'Fury_of_the_Fallen': 'Charm', 'Quick_Focus': 'Charm', 'Lifeblood_Heart': 'Charm', 'Lifeblood_Core': 'Charm', "Defender's_Crest": 'Charm', 'Flukenest': 'Charm', 'Thorns_of_Agony': 'Charm', 'Mark_of_Pride': 'Charm', 'Steady_Body': 'Charm', 'Heavy_Blow': 'Charm', 'Sharp_Shadow': 'Charm', 'Spore_Shroom': 'Charm', 'Longnail': 'Charm', 'Shaman_Stone': 'Charm', 'Soul_Catcher': 'Charm', 'Soul_Eater': 'Charm', 'Glowing_Womb': 'Charm', 'Fragile_Heart': 'Charm', 'Unbreakable_Heart': 'Charm', 'Fragile_Greed': 'Charm', 'Unbreakable_Greed': 'Charm', 'Fragile_Strength': 'Charm', 'Unbreakable_Strength': 'Charm', "Nailmaster's_Glory": 'Charm', "Joni's_Blessing": 'Charm', 'Shape_of_Unn': 'Charm', 'Hiveblood': 'Charm', 'Dream_Wielder': 'Charm', 'Dashmaster': 'Charm', 'Quick_Slash': 'Charm', 'Spell_Twister': 'Charm', 'Deep_Focus': 'Charm', "Grubberfly's_Elegy": 'Charm', 'Queen_Fragment': 'Charm', 'King_Fragment': 'Charm', 'Void_Heart': 'Charm', 'Sprintmaster': 'Charm', 'Dreamshield': 'Charm', 'Weaversong': 'Charm', 'Grimmchild1': 'Charm', 'Grimmchild2': 'Charm', 'City_Crest': 'Key', 'Lumafly_Lantern': 'Key', 'Tram_Pass': 'Key', 'Simple_Key': 'Key', "Shopkeeper's_Key": 'Key', 'Elegant_Key': 'Key', 'Love_Key': 'Key', "King's_Brand": 'Key', 'Godtuner': 'Key', "Collector's_Map": 'Key', 'Mask_Shard': 'Mask', 'Double_Mask_Shard': 'Mask', 'Full_Mask': 'Mask', 'Vessel_Fragment': 'Vessel', 'Double_Vessel_Fragment': 'Vessel', 'Full_Soul_Vessel': 'Vessel', 'Charm_Notch': 'Notch', "Salubra's_Blessing": 'Notch', 'Pale_Ore': 'Ore', 'Geo_Chest-False_Knight': 'Geo', 'Geo_Chest-Soul_Master': 'Geo', 'Geo_Chest-Watcher_Knights': 'Geo', 'Geo_Chest-Greenpath': 'Geo', 'Geo_Chest-Mantis_Lords': 'Geo', 'Geo_Chest-Resting_Grounds': 'Geo', 'Geo_Chest-Crystal_Peak': 'Geo', 'Geo_Chest-Weavers_Den': 'Geo', 'Geo_Chest-Junk_Pit_1': 'JunkPitChest', 'Geo_Chest-Junk_Pit_2': 'JunkPitChest', 'Geo_Chest-Junk_Pit_3': 'JunkPitChest', 'Geo_Chest-Junk_Pit_5': 'JunkPitChest', 'Lumafly_Escape': 'JunkPitChest', 'One_Geo': 'Fake', 'Rancid_Egg': 'Egg', "Wanderer's_Journal": 'Relic', 'Hallownest_Seal': 'Relic', "King's_Idol": 'Relic', 'Arcane_Egg': 'Relic', 'Whispering_Root-Crossroads': 'Root', 'Whispering_Root-Greenpath': 'Root', 'Whispering_Root-Leg_Eater': 'Root', 'Whispering_Root-Mantis_Village': 'Root', 'Whispering_Root-Deepnest': 'Root', 'Whispering_Root-Queens_Gardens': 'Root', 'Whispering_Root-Kingdoms_Edge': 'Root', 'Whispering_Root-Waterways': 'Root', 'Whispering_Root-City': 'Root', 'Whispering_Root-Resting_Grounds': 'Root', 'Whispering_Root-Spirits_Glade': 'Root', 'Whispering_Root-Crystal_Peak': 'Root', 'Whispering_Root-Howling_Cliffs': 'Root', 'Whispering_Root-Ancestral_Mound': 'Root', 'Whispering_Root-Hive': 'Root', 'Boss_Essence-Elder_Hu': 'DreamWarrior', 'Boss_Essence-Xero': 'DreamWarrior', 'Boss_Essence-Gorb': 'DreamWarrior', 'Boss_Essence-Marmu': 'DreamWarrior', 'Boss_Essence-No_Eyes': 'DreamWarrior', 'Boss_Essence-Galien': 'DreamWarrior', 'Boss_Essence-Markoth': 'DreamWarrior', 'Boss_Essence-Failed_Champion': 'DreamBoss', 'Boss_Essence-Soul_Tyrant': 'DreamBoss', 'Boss_Essence-Lost_Kin': 'DreamBoss', 'Boss_Essence-White_Defender': 'DreamBoss', 'Boss_Essence-Grey_Prince_Zote': 'DreamBoss', 'Grub': 'Grub', 'Mimic_Grub': 'Mimic', 'Quill': 'Map', 'Crossroads_Map': 'Map', 'Greenpath_Map': 'Map', 'Fog_Canyon_Map': 'Map', 'Fungal_Wastes_Map': 'Map', 'Deepnest_Map': 'Map', 'Ancient_Basin_Map': 'Map', "Kingdom's_Edge_Map": 'Map', 'City_of_Tears_Map': 'Map', 'Royal_Waterways_Map': 'Map', 'Howling_Cliffs_Map': 'Map', 'Crystal_Peak_Map': 'Map', "Queen's_Gardens_Map": 'Map', 'Resting_Grounds_Map': 'Map', 'Dirtmouth_Stag': 'Stag', 'Crossroads_Stag': 'Stag', 'Greenpath_Stag': 'Stag', "Queen's_Station_Stag": 'Stag', "Queen's_Gardens_Stag": 'Stag', 'City_Storerooms_Stag': 'Stag', "King's_Station_Stag": 'Stag', 'Resting_Grounds_Stag': 'Stag', 'Distant_Village_Stag': 'Stag', 'Hidden_Station_Stag': 'Stag', 'Stag_Nest_Stag': 'Stag', 'Lifeblood_Cocoon_Small': 'Cocoon', 'Lifeblood_Cocoon_Large': 'Cocoon', 'Grimmkin_Flame': 'Flame', "Hunter's_Journal": 'Journal', 'Journal_Entry-Void_Tendrils': 'Journal', 'Journal_Entry-Charged_Lumafly': 'Journal', 'Journal_Entry-Goam': 'Journal', 'Journal_Entry-Garpede': 'Journal', 'Journal_Entry-Seal_of_Binding': 'Journal', 'Elevator_Pass': 'ElevatorPass', 'Left_Mothwing_Cloak': 'SplitCloak', 'Right_Mothwing_Cloak': 'SplitCloak', 'Split_Shade_Cloak': 'SplitCloak', 'Left_Mantis_Claw': 'SplitClaw', 'Right_Mantis_Claw': 'SplitClaw', 'Leftslash': 'CursedNail', 'Rightslash': 'CursedNail', 'Upslash': 'CursedNail', 'Downslash': 'CursedNail', 'Left_Crystal_Heart': 'SplitSuperdash', 'Right_Crystal_Heart': 'SplitSuperdash', 'Geo_Rock-Default': 'Rock', 'Geo_Rock-Deepnest': 'Rock', 'Geo_Rock-Abyss': 'Rock', 'Geo_Rock-GreenPath01': 'Rock', 'Geo_Rock-Outskirts': 'Rock', 'Geo_Rock-Outskirts420': 'Rock', 'Geo_Rock-GreenPath02': 'Rock', 'Geo_Rock-Fung01': 'Rock', 'Geo_Rock-Fung02': 'Rock', 'Geo_Rock-City': 'Rock', 'Geo_Rock-Hive': 'Rock', 'Geo_Rock-Mine': 'Rock', 'Geo_Rock-Grave02': 'Rock', 'Geo_Rock-Grave01': 'Rock', 'Boss_Geo-Massive_Moss_Charger': 'Boss_Geo', 'Boss_Geo-Gorgeous_Husk': 'Boss_Geo', 'Boss_Geo-Sanctum_Soul_Warrior': 'Boss_Geo', 'Boss_Geo-Elegant_Soul_Warrior': 'Boss_Geo', 'Boss_Geo-Crystal_Guardian': 'Boss_Geo', 'Boss_Geo-Enraged_Guardian': 'Boss_Geo', 'Boss_Geo-Gruz_Mother': 'Boss_Geo', 'Boss_Geo-Vengefly_King': 'Boss_Geo', 'Soul_Refill': 'Soul', 'Soul_Totem-A': 'Soul', 'Soul_Totem-B': 'Soul', 'Soul_Totem-C': 'Soul', 'Soul_Totem-D': 'Soul', 'Soul_Totem-E': 'Soul', 'Soul_Totem-F': 'Soul', 'Soul_Totem-G': 'Soul', 'Soul_Totem-Palace': 'Soul', 'Soul_Totem-Path_of_Pain': 'Soul', 'Lore_Tablet-City_Entrance': 'Lore', 'Lore_Tablet-Pleasure_House': 'Lore', 'Lore_Tablet-Sanctum_Entrance': 'Lore', 'Lore_Tablet-Sanctum_Past_Soul_Master': 'Lore', "Lore_Tablet-Watcher's_Spire": 'Lore', 'Lore_Tablet-Archives_Upper': 'Lore', 'Lore_Tablet-Archives_Left': 'Lore', 'Lore_Tablet-Archives_Right': 'Lore', "Lore_Tablet-Pilgrim's_Way_1": 'Lore', "Lore_Tablet-Pilgrim's_Way_2": 'Lore', 'Lore_Tablet-Mantis_Outskirts': 'Lore', 'Lore_Tablet-Mantis_Village': 'Lore', 'Lore_Tablet-Greenpath_Upper_Hidden': 'Lore', 'Lore_Tablet-Greenpath_Below_Toll': 'Lore', 'Lore_Tablet-Greenpath_Lifeblood': 'Lore', 'Lore_Tablet-Greenpath_Stag': 'Lore', 'Lore_Tablet-Greenpath_QG': 'Lore', 'Lore_Tablet-Greenpath_Lower_Hidden': 'Lore', 'Lore_Tablet-Dung_Defender': 'Lore', 'Lore_Tablet-Spore_Shroom': 'Lore', 'Lore_Tablet-Fungal_Wastes_Hidden': 'Lore', 'Lore_Tablet-Fungal_Wastes_Below_Shrumal_Ogres': 'Lore', 'Lore_Tablet-Fungal_Core': 'Lore', 'Lore_Tablet-Ancient_Basin': 'Lore', "Lore_Tablet-King's_Pass_Focus": 'Lore', "Lore_Tablet-King's_Pass_Fury": 'Lore', "Lore_Tablet-King's_Pass_Exit": 'Lore', 'Lore_Tablet-World_Sense': 'Lore', 'Lore_Tablet-Howling_Cliffs': 'Lore', "Lore_Tablet-Kingdom's_Edge": 'Lore', 'Lore_Tablet-Palace_Workshop': 'PalaceLore', 'Lore_Tablet-Palace_Throne': 'PalaceLore', 'Lore_Tablet-Path_of_Pain_Entrance': 'PalaceLore'} location_to_region_lookup = {'Sly_1': 'Room_shop', 'Sly_2': 'Room_shop', 'Sly_3': 'Room_shop', 'Sly_4': 'Room_shop', 'Sly_5': 'Room_shop', 'Sly_6': 'Room_shop', 'Sly_7': 'Room_shop', 'Sly_8': 'Room_shop', 'Sly_9': 'Room_shop', 'Sly_10': 'Room_shop', 'Sly_11': 'Room_shop', 'Sly_12': 'Room_shop', 'Sly_13': 'Room_shop', 'Sly_14': 'Room_shop', 'Sly_15': 'Room_shop', 'Sly_16': 'Room_shop', 'Sly_(Key)_1': 'Room_shop', 'Sly_(Key)_2': 'Room_shop', 'Sly_(Key)_3': 'Room_shop', 'Sly_(Key)_4': 'Room_shop', 'Sly_(Key)_5': 'Room_shop', 'Sly_(Key)_6': 'Room_shop', 'Sly_(Key)_7': 'Room_shop', 'Sly_(Key)_8': 'Room_shop', 'Sly_(Key)_9': 'Room_shop', 'Sly_(Key)_10': 'Room_shop', 'Sly_(Key)_11': 'Room_shop', 'Sly_(Key)_12': 'Room_shop', 'Sly_(Key)_13': 'Room_shop', 'Sly_(Key)_14': 'Room_shop', 'Sly_(Key)_15': 'Room_shop', 'Sly_(Key)_16': 'Room_shop', 'Iselda_1': 'Room_mapper', 'Iselda_2': 'Room_mapper', 'Iselda_3': 'Room_mapper', 'Iselda_4': 'Room_mapper', 'Iselda_5': 'Room_mapper', 'Iselda_6': 'Room_mapper', 'Iselda_7': 'Room_mapper', 'Iselda_8': 'Room_mapper', 'Iselda_9': 'Room_mapper', 'Iselda_10': 'Room_mapper', 'Iselda_11': 'Room_mapper', 'Iselda_12': 'Room_mapper', 'Iselda_13': 'Room_mapper', 'Iselda_14': 'Room_mapper', 'Iselda_15': 'Room_mapper', 'Iselda_16': 'Room_mapper', 'Salubra_1': 'Room_Charm_Shop', 'Salubra_2': 'Room_Charm_Shop', 'Salubra_3': 'Room_Charm_Shop', 'Salubra_4': 'Room_Charm_Shop', 'Salubra_5': 'Room_Charm_Shop', 'Salubra_6': 'Room_Charm_Shop', 'Salubra_7': 'Room_Charm_Shop', 'Salubra_8': 'Room_Charm_Shop', 'Salubra_9': 'Room_Charm_Shop', 'Salubra_10': 'Room_Charm_Shop', 'Salubra_11': 'Room_Charm_Shop', 'Salubra_12': 'Room_Charm_Shop', 'Salubra_13': 'Room_Charm_Shop', 'Salubra_14': 'Room_Charm_Shop', 'Salubra_15': 'Room_Charm_Shop', 'Salubra_16': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_1': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_2': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_3': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_4': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_5': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_6': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_7': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_8': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_9': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_10': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_11': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_12': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_13': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_14': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_15': 'Room_Charm_Shop', 'Salubra_(Requires_Charms)_16': 'Room_Charm_Shop', 'Leg_Eater_1': 'Fungus2_26', 'Leg_Eater_2': 'Fungus2_26', 'Leg_Eater_3': 'Fungus2_26', 'Leg_Eater_4': 'Fungus2_26', 'Leg_Eater_5': 'Fungus2_26', 'Leg_Eater_6': 'Fungus2_26', 'Leg_Eater_7': 'Fungus2_26', 'Leg_Eater_8': 'Fungus2_26', 'Leg_Eater_9': 'Fungus2_26', 'Leg_Eater_10': 'Fungus2_26', 'Leg_Eater_11': 'Fungus2_26', 'Leg_Eater_12': 'Fungus2_26', 'Leg_Eater_13': 'Fungus2_26', 'Leg_Eater_14': 'Fungus2_26', 'Leg_Eater_15': 'Fungus2_26', 'Leg_Eater_16': 'Fungus2_26', 'Grubfather_1': 'Crossroads_38', 'Grubfather_2': 'Crossroads_38', 'Grubfather_3': 'Crossroads_38', 'Grubfather_4': 'Crossroads_38', 'Grubfather_5': 'Crossroads_38', 'Grubfather_6': 'Crossroads_38', 'Grubfather_7': 'Crossroads_38', 'Grubfather_8': 'Crossroads_38', 'Grubfather_9': 'Crossroads_38', 'Grubfather_10': 'Crossroads_38', 'Grubfather_11': 'Crossroads_38', 'Grubfather_12': 'Crossroads_38', 'Grubfather_13': 'Crossroads_38', 'Grubfather_14': 'Crossroads_38', 'Grubfather_15': 'Crossroads_38', 'Grubfather_16': 'Crossroads_38', 'Seer_1': 'RestingGrounds_07', 'Seer_2': 'RestingGrounds_07', 'Seer_3': 'RestingGrounds_07', 'Seer_4': 'RestingGrounds_07', 'Seer_5': 'RestingGrounds_07', 'Seer_6': 'RestingGrounds_07', 'Seer_7': 'RestingGrounds_07', 'Seer_8': 'RestingGrounds_07', 'Seer_9': 'RestingGrounds_07', 'Seer_10': 'RestingGrounds_07', 'Seer_11': 'RestingGrounds_07', 'Seer_12': 'RestingGrounds_07', 'Seer_13': 'RestingGrounds_07', 'Seer_14': 'RestingGrounds_07', 'Seer_15': 'RestingGrounds_07', 'Seer_16': 'RestingGrounds_07', 'Egg_Shop_1': 'Room_Ouiji', 'Egg_Shop_2': 'Room_Ouiji', 'Egg_Shop_3': 'Room_Ouiji', 'Egg_Shop_4': 'Room_Ouiji', 'Egg_Shop_5': 'Room_Ouiji', 'Egg_Shop_6': 'Room_Ouiji', 'Egg_Shop_7': 'Room_Ouiji', 'Egg_Shop_8': 'Room_Ouiji', 'Egg_Shop_9': 'Room_Ouiji', 'Egg_Shop_10': 'Room_Ouiji', 'Egg_Shop_11': 'Room_Ouiji', 'Egg_Shop_12': 'Room_Ouiji', 'Egg_Shop_13': 'Room_Ouiji', 'Egg_Shop_14': 'Room_Ouiji', 'Egg_Shop_15': 'Room_Ouiji', 'Egg_Shop_16': 'Room_Ouiji', 'Lurien': 'Ruins2_Watcher_Room', 'Monomon': 'Fungus3_archive_02', 'Herrah': 'Deepnest_Spider_Town', 'World_Sense': 'Room_temple', 'Mothwing_Cloak': 'Fungus1_04', 'Mantis_Claw': 'Fungus2_14', 'Crystal_Heart': 'Mines_31', 'Monarch_Wings': 'Abyss_21', 'Shade_Cloak': 'Abyss_10', "Isma's_Tear": 'Waterways_13', 'Dream_Nail': 'RestingGrounds_04', 'Vengeful_Spirit': 'Crossroads_ShamanTemple', 'Shade_Soul': 'Ruins1_31b', 'Desolate_Dive': 'Ruins1_24', 'Descending_Dark': 'Mines_35', 'Howling_Wraiths': 'Room_Fungus_Shaman', 'Abyss_Shriek': 'Abyss_12', 'Cyclone_Slash': 'Room_nailmaster', 'Dash_Slash': 'Room_nailmaster_03', 'Great_Slash': 'Room_nailmaster_02', 'Focus': 'Tutorial_01', 'Baldur_Shell': 'Fungus1_28', 'Fury_of_the_Fallen': 'Tutorial_01', 'Lifeblood_Core': 'Abyss_08', "Defender's_Crest": 'Waterways_05', 'Flukenest': 'Waterways_12', 'Thorns_of_Agony': 'Fungus1_14', 'Mark_of_Pride': 'Fungus2_31', 'Sharp_Shadow': 'Deepnest_44', 'Spore_Shroom': 'Fungus2_20', 'Soul_Catcher': 'Crossroads_ShamanTemple', 'Soul_Eater': 'RestingGrounds_10', 'Glowing_Womb': 'Crossroads_22', "Nailmaster's_Glory": 'Room_shop', "Joni's_Blessing": 'Cliffs_05', 'Shape_of_Unn': 'Fungus1_Slug', 'Hiveblood': 'Hive_05', 'Dashmaster': 'Fungus2_23', 'Quick_Slash': 'Deepnest_East_14b', 'Spell_Twister': 'Ruins1_30', 'Deep_Focus': 'Mines_36', 'Queen_Fragment': 'Room_Queen', 'King_Fragment': 'White_Palace_09', 'Void_Heart': 'Abyss_15', 'Dreamshield': 'RestingGrounds_17', 'Weaversong': 'Deepnest_45_v02', 'Grimmchild': 'Grimm_Main_Tent', 'Unbreakable_Heart': 'Grimm_Divine', 'Unbreakable_Greed': 'Grimm_Divine', 'Unbreakable_Strength': 'Grimm_Divine', 'City_Crest': 'Crossroads_10', 'Tram_Pass': 'Deepnest_26b', 'Simple_Key-Basin': 'Abyss_20', 'Simple_Key-City': 'Ruins1_17', 'Simple_Key-Lurker': 'GG_Lurker', "Shopkeeper's_Key": 'Mines_11', 'Love_Key': 'Fungus3_39', "King's_Brand": 'Room_Wyrm', 'Godtuner': 'GG_Waterways', "Collector's_Map": 'Ruins2_11', 'Mask_Shard-Brooding_Mawlek': 'Crossroads_09', 'Mask_Shard-Crossroads_Goam': 'Crossroads_13', 'Mask_Shard-Stone_Sanctuary': 'Fungus1_36', "Mask_Shard-Queen's_Station": 'Fungus2_01', 'Mask_Shard-Deepnest': 'Fungus2_25', 'Mask_Shard-Waterways': 'Waterways_04b', 'Mask_Shard-Enraged_Guardian': 'Mines_32', 'Mask_Shard-Hive': 'Hive_04', 'Mask_Shard-Grey_Mourner': 'Room_Mansion', 'Mask_Shard-Bretta': 'Room_Bretta', 'Vessel_Fragment-Greenpath': 'Fungus1_13', 'Vessel_Fragment-City': 'Ruins2_09', 'Vessel_Fragment-Crossroads': 'Crossroads_37', 'Vessel_Fragment-Basin': 'Abyss_04', 'Vessel_Fragment-Deepnest': 'Deepnest_38', 'Vessel_Fragment-Stag_Nest': 'Cliffs_03', 'Charm_Notch-Shrumal_Ogres': 'Fungus2_05', 'Charm_Notch-Fog_Canyon': 'Fungus3_28', 'Charm_Notch-Colosseum': 'Room_Colosseum_01', 'Charm_Notch-Grimm': 'Grimm_Main_Tent', 'Pale_Ore-Basin': 'Abyss_17', 'Pale_Ore-Crystal_Peak': 'Mines_34', 'Pale_Ore-Nosk': 'Deepnest_32', 'Pale_Ore-Colosseum': 'Room_Colosseum_01', 'Geo_Chest-False_Knight': 'Crossroads_10', 'Geo_Chest-Soul_Master': 'Ruins1_32', 'Geo_Chest-Watcher_Knights': 'Ruins2_03', 'Geo_Chest-Greenpath': 'Fungus1_13', 'Geo_Chest-Mantis_Lords': 'Fungus2_31', 'Geo_Chest-Resting_Grounds': 'RestingGrounds_10', 'Geo_Chest-Crystal_Peak': 'Mines_37', 'Geo_Chest-Weavers_Den': 'Deepnest_45_v02', 'Geo_Chest-Junk_Pit_1': 'GG_Waterways', 'Geo_Chest-Junk_Pit_2': 'GG_Waterways', 'Geo_Chest-Junk_Pit_3': 'GG_Waterways', 'Geo_Chest-Junk_Pit_5': 'GG_Waterways', 'Lumafly_Escape-Junk_Pit_Chest_4': 'GG_Waterways', 'Rancid_Egg-Sheo': 'Fungus1_15', 'Rancid_Egg-Fungal_Core': 'Fungus2_29', "Rancid_Egg-Queen's_Gardens": 'Fungus3_34', 'Rancid_Egg-Blue_Lake': 'Crossroads_50', 'Rancid_Egg-Crystal_Peak_Dive_Entrance': 'Mines_01', 'Rancid_Egg-Crystal_Peak_Dark_Room': 'Mines_29', 'Rancid_Egg-Crystal_Peak_Tall_Room': 'Mines_20', 'Rancid_Egg-City_of_Tears_Left': 'Ruins1_05c', 'Rancid_Egg-City_of_Tears_Pleasure_House': 'Ruins_Elevator', "Rancid_Egg-Beast's_Den": 'Deepnest_Spider_Town', 'Rancid_Egg-Dark_Deepnest': 'Deepnest_39', "Rancid_Egg-Weaver's_Den": 'Deepnest_45_v02', 'Rancid_Egg-Near_Quick_Slash': 'Deepnest_East_14', "Rancid_Egg-Upper_Kingdom's_Edge": 'Deepnest_East_07', 'Rancid_Egg-Waterways_East': 'Waterways_07', 'Rancid_Egg-Waterways_Main': 'Waterways_02', 'Rancid_Egg-Waterways_West_Bluggsac': 'Waterways_04', 'Rancid_Egg-Waterways_West_Pickup': 'Waterways_04b', "Rancid_Egg-Tuk_Defender's_Crest": 'Waterways_03', "Wanderer's_Journal-Cliffs": 'Cliffs_01', "Wanderer's_Journal-Greenpath_Stag": 'Fungus1_22', "Wanderer's_Journal-Greenpath_Lower": 'Fungus1_11', "Wanderer's_Journal-Fungal_Wastes_Thorns_Gauntlet": 'Fungus2_04', "Wanderer's_Journal-Above_Mantis_Village": 'Fungus2_17', "Wanderer's_Journal-Crystal_Peak_Crawlers": 'Mines_20', "Wanderer's_Journal-Resting_Grounds_Catacombs": 'RestingGrounds_10', "Wanderer's_Journal-King's_Station": 'Ruins2_05', "Wanderer's_Journal-Pleasure_House": 'Ruins_Elevator', "Wanderer's_Journal-City_Storerooms": 'Ruins1_28', "Wanderer's_Journal-Ancient_Basin": 'Abyss_02', "Wanderer's_Journal-Kingdom's_Edge_Entrance": 'Deepnest_East_07', "Wanderer's_Journal-Kingdom's_Edge_Camp": 'Deepnest_East_13', "Wanderer's_Journal-Kingdom's_Edge_Requires_Dive": 'Deepnest_East_18', 'Hallownest_Seal-Crossroads_Well': 'Crossroads_01', 'Hallownest_Seal-Greenpath': 'Fungus1_10', 'Hallownest_Seal-Fog_Canyon_West': 'Fungus3_30', 'Hallownest_Seal-Fog_Canyon_East': 'Fungus3_26', "Hallownest_Seal-Queen's_Station": 'Fungus2_34', 'Hallownest_Seal-Fungal_Wastes_Sporgs': 'Fungus2_03', 'Hallownest_Seal-Mantis_Lords': 'Fungus2_31', 'Hallownest_Seal-Resting_Grounds_Catacombs': 'RestingGrounds_10', "Hallownest_Seal-King's_Station": 'Ruins2_08', 'Hallownest_Seal-City_Rafters': 'Ruins1_03', 'Hallownest_Seal-Soul_Sanctum': 'Ruins1_32', 'Hallownest_Seal-Watcher_Knight': 'Ruins2_03', 'Hallownest_Seal-Deepnest_By_Mantis_Lords': 'Deepnest_16', "Hallownest_Seal-Beast's_Den": 'Deepnest_Spider_Town', "Hallownest_Seal-Queen's_Gardens": 'Fungus3_48', "King's_Idol-Cliffs": 'Cliffs_01', "King's_Idol-Crystal_Peak": 'Mines_30', "King's_Idol-Glade_of_Hope": 'RestingGrounds_08', "King's_Idol-Dung_Defender": 'Waterways_15', "King's_Idol-Great_Hopper": 'Deepnest_East_08', "King's_Idol-Pale_Lurker": 'GG_Lurker', "King's_Idol-Deepnest": 'Deepnest_33', 'Arcane_Egg-Lifeblood_Core': 'Abyss_08', 'Arcane_Egg-Shade_Cloak': 'Abyss_10', 'Arcane_Egg-Birthplace': 'Abyss_15', 'Whispering_Root-Crossroads': 'Crossroads_07', 'Whispering_Root-Greenpath': 'Fungus1_13', 'Whispering_Root-Leg_Eater': 'Fungus2_33', 'Whispering_Root-Mantis_Village': 'Fungus2_17', 'Whispering_Root-Deepnest': 'Deepnest_39', 'Whispering_Root-Queens_Gardens': 'Fungus3_11', 'Whispering_Root-Kingdoms_Edge': 'Deepnest_East_07', 'Whispering_Root-Waterways': 'Abyss_01', 'Whispering_Root-City': 'Ruins1_17', 'Whispering_Root-Resting_Grounds': 'RestingGrounds_05', 'Whispering_Root-Spirits_Glade': 'RestingGrounds_08', 'Whispering_Root-Crystal_Peak': 'Mines_23', 'Whispering_Root-Howling_Cliffs': 'Cliffs_01', 'Whispering_Root-Ancestral_Mound': 'Crossroads_ShamanTemple', 'Whispering_Root-Hive': 'Hive_02', 'Boss_Essence-Elder_Hu': 'Fungus2_32', 'Boss_Essence-Xero': 'RestingGrounds_02', 'Boss_Essence-Gorb': 'Cliffs_02', 'Boss_Essence-Marmu': 'Fungus3_40', 'Boss_Essence-No_Eyes': 'Fungus1_35', 'Boss_Essence-Galien': 'Deepnest_40', 'Boss_Essence-Markoth': 'Deepnest_East_10', 'Boss_Essence-Failed_Champion': 'Crossroads_10', 'Boss_Essence-Soul_Tyrant': 'Ruins1_24', 'Boss_Essence-Lost_Kin': 'Abyss_19', 'Boss_Essence-White_Defender': 'Waterways_15', 'Boss_Essence-Grey_Prince_Zote': 'Room_Bretta', 'Grub-Crossroads_Acid': 'Crossroads_35', 'Grub-Crossroads_Center': 'Crossroads_05', 'Grub-Crossroads_Stag': 'Crossroads_03', 'Grub-Crossroads_Spike': 'Crossroads_31', 'Grub-Crossroads_Guarded': 'Crossroads_48', 'Grub-Greenpath_Cornifer': 'Fungus1_06', 'Grub-Greenpath_Journal': 'Fungus1_07', 'Grub-Greenpath_MMC': 'Fungus1_13', 'Grub-Greenpath_Stag': 'Fungus1_21', 'Grub-Fog_Canyon': 'Fungus3_47', 'Grub-Fungal_Bouncy': 'Fungus2_18', 'Grub-Fungal_Spore_Shroom': 'Fungus2_20', 'Grub-Deepnest_Mimic': 'Deepnest_36', 'Grub-Deepnest_Nosk': 'Deepnest_31', 'Grub-Deepnest_Spike': 'Deepnest_03', 'Grub-Dark_Deepnest': 'Deepnest_39', "Grub-Beast's_Den": 'Deepnest_Spider_Town', "Grub-Kingdom's_Edge_Oro": 'Deepnest_East_14', "Grub-Kingdom's_Edge_Camp": 'Deepnest_East_11', 'Grub-Hive_External': 'Hive_03', 'Grub-Hive_Internal': 'Hive_04', 'Grub-Basin_Requires_Wings': 'Abyss_19', 'Grub-Basin_Requires_Dive': 'Abyss_17', 'Grub-Waterways_Main': 'Waterways_04', "Grub-Isma's_Grove": 'Waterways_13', 'Grub-Waterways_Requires_Tram': 'Waterways_14', 'Grub-City_of_Tears_Left': 'Ruins1_05', 'Grub-Soul_Sanctum': 'Ruins1_32', "Grub-Watcher's_Spire": 'Ruins2_03', 'Grub-City_of_Tears_Guarded': 'Ruins_House_01', "Grub-King's_Station": 'Ruins2_07', 'Grub-Resting_Grounds': 'RestingGrounds_10', 'Grub-Crystal_Peak_Below_Chest': 'Mines_04', 'Grub-Crystallized_Mound': 'Mines_35', 'Grub-Crystal_Peak_Spike': 'Mines_03', 'Grub-Crystal_Peak_Mimic': 'Mines_16', 'Grub-Crystal_Peak_Crushers': 'Mines_19', 'Grub-Crystal_Heart': 'Mines_31', 'Grub-Hallownest_Crown': 'Mines_24', 'Grub-Howling_Cliffs': 'Fungus1_28', "Grub-Queen's_Gardens_Stag": 'Fungus3_10', "Grub-Queen's_Gardens_Marmu": 'Fungus3_48', "Grub-Queen's_Gardens_Top": 'Fungus3_22', 'Grub-Collector_1': 'Ruins2_11', 'Grub-Collector_2': 'Ruins2_11', 'Grub-Collector_3': 'Ruins2_11', 'Mimic_Grub-Deepnest_1': 'Deepnest_36', 'Mimic_Grub-Deepnest_2': 'Deepnest_36', 'Mimic_Grub-Deepnest_3': 'Deepnest_36', 'Mimic_Grub-Crystal_Peak': 'Mines_16', 'Crossroads_Map': 'Crossroads_33', 'Greenpath_Map': 'Fungus1_06', 'Fog_Canyon_Map': 'Fungus3_25', 'Fungal_Wastes_Map': 'Fungus2_18', 'Deepnest_Map-Upper': 'Deepnest_01b', 'Deepnest_Map-Right': 'Fungus2_25', 'Ancient_Basin_Map': 'Abyss_04', "Kingdom's_Edge_Map": 'Deepnest_East_03', 'City_of_Tears_Map': 'Ruins1_31', 'Royal_Waterways_Map': 'Waterways_09', 'Howling_Cliffs_Map': 'Cliffs_01', 'Crystal_Peak_Map': 'Mines_30', "Queen's_Gardens_Map": 'Fungus1_24', 'Resting_Grounds_Map': 'RestingGrounds_09', 'Dirtmouth_Stag': 'Room_Town_Stag_Station', 'Crossroads_Stag': 'Crossroads_47', 'Greenpath_Stag': 'Fungus1_16_alt', "Queen's_Station_Stag": 'Fungus2_02', "Queen's_Gardens_Stag": 'Fungus3_40', 'City_Storerooms_Stag': 'Ruins1_29', "King's_Station_Stag": 'Ruins2_08', 'Resting_Grounds_Stag': 'RestingGrounds_09', 'Distant_Village_Stag': 'Deepnest_09', 'Hidden_Station_Stag': 'Abyss_22', 'Stag_Nest_Stag': 'Cliffs_03', "Lifeblood_Cocoon-King's_Pass": 'Tutorial_01', 'Lifeblood_Cocoon-Ancestral_Mound': 'Crossroads_ShamanTemple', 'Lifeblood_Cocoon-Greenpath': 'Fungus1_32', 'Lifeblood_Cocoon-Fog_Canyon_West': 'Fungus3_30', 'Lifeblood_Cocoon-Mantis_Village': 'Fungus2_15', 'Lifeblood_Cocoon-Failed_Tramway': 'Deepnest_26', 'Lifeblood_Cocoon-Galien': 'Deepnest_40', "Lifeblood_Cocoon-Kingdom's_Edge": 'Deepnest_East_15', 'Grimmkin_Flame-City_Storerooms': 'Ruins1_28', 'Grimmkin_Flame-Greenpath': 'Fungus1_10', 'Grimmkin_Flame-Crystal_Peak': 'Mines_10', "Grimmkin_Flame-King's_Pass": 'Tutorial_01', 'Grimmkin_Flame-Resting_Grounds': 'RestingGrounds_06', "Grimmkin_Flame-Kingdom's_Edge": 'Deepnest_East_03', 'Grimmkin_Flame-Fungal_Core': 'Fungus2_30', 'Grimmkin_Flame-Ancient_Basin': 'Abyss_02', 'Grimmkin_Flame-Hive': 'Hive_03', 'Grimmkin_Flame-Brumm': 'Room_spider_small', "Hunter's_Journal": 'Fungus1_08', 'Journal_Entry-Void_Tendrils': 'Abyss_09', 'Journal_Entry-Charged_Lumafly': 'Fungus3_archive_02', 'Journal_Entry-Goam': 'Crossroads_52', 'Journal_Entry-Garpede': 'Deepnest_44', 'Journal_Entry-Seal_of_Binding': 'White_Palace_20', 'Elevator_Pass': 'Crossroads_49b', 'Split_Mothwing_Cloak': 'Fungus1_04', 'Left_Mantis_Claw': 'Fungus2_14', 'Right_Mantis_Claw': 'Fungus2_14', 'Leftslash': 'Tutorial_01', 'Rightslash': 'Tutorial_01', 'Upslash': 'Tutorial_01', 'Split_Crystal_Heart': 'Mines_31', 'Geo_Rock-Broken_Elevator_1': 'Abyss_01', 'Geo_Rock-Broken_Elevator_2': 'Abyss_01', 'Geo_Rock-Broken_Elevator_3': 'Abyss_01', 'Geo_Rock-Broken_Bridge_Upper': 'Abyss_02', 'Geo_Rock-Broken_Bridge_Lower': 'Abyss_02', 'Geo_Rock-Broken_Bridge_Lower_Dupe': 'Abyss_02', 'Geo_Rock-Abyss_1': 'Abyss_06_Core', 'Geo_Rock-Abyss_2': 'Abyss_06_Core', 'Geo_Rock-Abyss_3': 'Abyss_06_Core', 'Geo_Rock-Basin_Tunnel': 'Abyss_18', 'Geo_Rock-Basin_Grub': 'Abyss_19', 'Geo_Rock-Basin_Before_Broken_Vessel': 'Abyss_19', 'Geo_Rock-Cliffs_Main_1': 'Cliffs_01', 'Geo_Rock-Cliffs_Main_2': 'Cliffs_01', 'Geo_Rock-Cliffs_Main_3': 'Cliffs_01', 'Geo_Rock-Cliffs_Main_4': 'Cliffs_01', 'Geo_Rock-Below_Gorb_Dupe': 'Cliffs_02', 'Geo_Rock-Below_Gorb': 'Cliffs_02', 'Geo_Rock-Crossroads_Well': 'Crossroads_01', 'Geo_Rock-Crossroads_Center_Grub': 'Crossroads_05', 'Geo_Rock-Crossroads_Root': 'Crossroads_07', 'Geo_Rock-Crossroads_Root_Dupe_1': 'Crossroads_07', 'Geo_Rock-Crossroads_Root_Dupe_2': 'Crossroads_07', 'Geo_Rock-Crossroads_Aspid_Arena': 'Crossroads_08', 'Geo_Rock-Crossroads_Aspid_Arena_Dupe_1': 'Crossroads_08', 'Geo_Rock-Crossroads_Aspid_Arena_Dupe_2': 'Crossroads_08', 'Geo_Rock-Crossroads_Aspid_Arena_Hidden': 'Crossroads_08', 'Geo_Rock-Crossroads_Above_False_Knight': 'Crossroads_10', 'Geo_Rock-Crossroads_Before_Acid_Grub': 'Crossroads_12', 'Geo_Rock-Crossroads_Below_Goam_Mask_Shard': 'Crossroads_13', 'Geo_Rock-Crossroads_After_Goam_Mask_Shard': 'Crossroads_13', 'Geo_Rock-Crossroads_Above_Lever': 'Crossroads_16', 'Geo_Rock-Crossroads_Before_Fungal': 'Crossroads_18', 'Geo_Rock-Crossroads_Before_Fungal_Dupe_1': 'Crossroads_18', 'Geo_Rock-Crossroads_Before_Fungal_Dupe_2': 'Crossroads_18', 'Geo_Rock-Crossroads_Before_Shops': 'Crossroads_19', 'Geo_Rock-Crossroads_Before_Glowing_Womb': 'Crossroads_21', 'Geo_Rock-Crossroads_Above_Tram': 'Crossroads_27', 'Geo_Rock-Crossroads_Above_Mawlek': 'Crossroads_36', 'Geo_Rock-Crossroads_Vessel_Fragment': 'Crossroads_37', 'Geo_Rock-Crossroads_Goam_Alcove': 'Crossroads_42', 'Geo_Rock-Crossroads_Goam_Damage_Boost': 'Crossroads_42', 'Geo_Rock-Crossroads_Tram': 'Crossroads_46', 'Geo_Rock-Crossroads_Goam_Journal': 'Crossroads_52', 'Geo_Rock-Crossroads_Goam_Journal_Dupe': 'Crossroads_52', 'Geo_Rock-Ancestral_Mound': 'Crossroads_ShamanTemple', 'Geo_Rock-Ancestral_Mound_Dupe': 'Crossroads_ShamanTemple', 'Geo_Rock-Ancestral_Mound_Tree': 'Crossroads_ShamanTemple', 'Geo_Rock-Ancestral_Mound_Tree_Dupe': 'Crossroads_ShamanTemple', 'Geo_Rock-Moss_Prophet': 'Deepnest_01', 'Geo_Rock-Moss_Prophet_Dupe': 'Deepnest_01', 'Geo_Rock-Deepnest_Below_Mimics': 'Deepnest_02', 'Geo_Rock-Deepnest_Below_Mimics_Dupe': 'Deepnest_02', 'Geo_Rock-Deepnest_Below_Spike_Grub': 'Deepnest_03', 'Geo_Rock-Deepnest_Below_Spike_Grub_Dupe': 'Deepnest_03', 'Geo_Rock-Deepnest_Spike_Grub_Right': 'Deepnest_03', 'Geo_Rock-Deepnest_By_Mantis_Lords_Garpede_Pogo': 'Deepnest_16', 'Geo_Rock-Deepnest_By_Mantis_Lords_Garpede_Pogo_Dupe': 'Deepnest_16', 'Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_1': 'Deepnest_16', 'Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_2': 'Deepnest_16', 'Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_3': 'Deepnest_16', 'Geo_Rock-Deepnest_Nosk_1': 'Deepnest_31', 'Geo_Rock-Deepnest_Nosk_2': 'Deepnest_31', 'Geo_Rock-Deepnest_Nosk_3': 'Deepnest_31', 'Geo_Rock-Deepnest_Above_Galien': 'Deepnest_35', 'Geo_Rock-Deepnest_Galien_Spike': 'Deepnest_35', 'Geo_Rock-Deepnest_Garpede_1': 'Deepnest_37', 'Geo_Rock-Deepnest_Garpede_2': 'Deepnest_37', 'Geo_Rock-Dark_Deepnest_Above_Grub_1': 'Deepnest_39', 'Geo_Rock-Dark_Deepnest_Above_Grub_2': 'Deepnest_39', 'Geo_Rock-Dark_Deepnest_Bottom_Left': 'Deepnest_39', 'Geo_Rock-Above_Mask_Maker_1': 'Deepnest_43', 'Geo_Rock-Above_Mask_Maker_2': 'Deepnest_43', "Geo_Rock-Lower_Kingdom's_Edge_1": 'Deepnest_East_01', "Geo_Rock-Lower_Kingdom's_Edge_2": 'Deepnest_East_01', "Geo_Rock-Lower_Kingdom's_Edge_3": 'Deepnest_East_02', "Geo_Rock-Lower_Kingdom's_Edge_Dive": 'Deepnest_East_02', "Geo_Rock-Kingdom's_Edge_Below_Bardoon": 'Deepnest_East_04', "Geo_Rock-Kingdom's_Edge_Oro_Far_Left": 'Deepnest_East_06', "Geo_Rock-Kingdom's_Edge_Oro_Middle_Left": 'Deepnest_East_06', "Geo_Rock-Kingdom's_Edge_Above_Root": 'Deepnest_East_07', "Geo_Rock-Kingdom's_Edge_Above_Tower": 'Deepnest_East_07', "Geo_Rock-Kingdom's_Edge_Below_Colosseum": 'Deepnest_East_08', "Geo_Rock-Kingdom's_Edge_Above_420_Geo_Rock": 'Deepnest_East_17', "Geo_Rock-Kingdom's_Edge_420_Geo_Rock": 'Deepnest_East_17', "Geo_Rock-Beast's_Den_Above_Trilobite": 'Deepnest_Spider_Town', "Geo_Rock-Beast's_Den_Above_Trilobite_Dupe": 'Deepnest_Spider_Town', "Geo_Rock-Beast's_Den_Below_Herrah": 'Deepnest_Spider_Town', "Geo_Rock-Beast's_Den_Below_Egg": 'Deepnest_Spider_Town', "Geo_Rock-Beast's_Den_Below_Egg_Dupe": 'Deepnest_Spider_Town', "Geo_Rock-Beast's_Den_Bottom": 'Deepnest_Spider_Town', "Geo_Rock-Beast's_Den_Bottom_Dupe": 'Deepnest_Spider_Town', "Geo_Rock-Beast's_Den_After_Herrah": 'Deepnest_Spider_Town', 'Geo_Rock-Greenpath_Entrance': 'Fungus1_01', 'Geo_Rock-Greenpath_Waterfall': 'Fungus1_01b', 'Geo_Rock-Greenpath_Below_Skip_Squit': 'Fungus1_02', 'Geo_Rock-Greenpath_Skip_Squit': 'Fungus1_02', 'Geo_Rock-Greenpath_Second_Skip_Fool_Eater': 'Fungus1_03', 'Geo_Rock-Greenpath_Second_Skip_Fool_Eater_Dupe': 'Fungus1_03', 'Geo_Rock-Greenpath_Second_Skip_Lower': 'Fungus1_03', 'Geo_Rock-Greenpath_Below_Hornet': 'Fungus1_04', 'Geo_Rock-Greenpath_Above_Thorns': 'Fungus1_05', "Geo_Rock-Greenpath_Hunter's_Journal": 'Fungus1_07', 'Geo_Rock-Greenpath_Acid_Bridge': 'Fungus1_10', 'Geo_Rock-Greenpath_After_MMC_Hidden': 'Fungus1_12', 'Geo_Rock-Greenpath_After_MMC': 'Fungus1_12', 'Geo_Rock-Greenpath_After_MMC_Dupe': 'Fungus1_12', 'Geo_Rock-Greenpath_Obbles_Fool_Eater': 'Fungus1_19', 'Geo_Rock-Greenpath_Moss_Knights': 'Fungus1_21', 'Geo_Rock-Greenpath_Moss_Knights_Dupe_1': 'Fungus1_21', 'Geo_Rock-Greenpath_Moss_Knights_Dupe_2': 'Fungus1_21', 'Geo_Rock-Greenpath_Below_Stag': 'Fungus1_22', 'Geo_Rock-Greenpath_Below_Stag_Fool_Eater': 'Fungus1_22', 'Geo_Rock-Baldur_Shell_Top_Left': 'Fungus1_28', 'Geo_Rock-Baldur_Shell_Alcove': 'Fungus1_28', 'Geo_Rock-Greenpath_MMC': 'Fungus1_29', 'Geo_Rock-Greenpath_Below_Toll': 'Fungus1_31', 'Geo_Rock-Greenpath_Toll_Hidden': 'Fungus1_31', 'Geo_Rock-Greenpath_Toll_Hidden_Dupe': 'Fungus1_31', 'Geo_Rock-Fungal_Below_Shrumal_Ogres': 'Fungus2_04', 'Geo_Rock-Fungal_Above_Cloth': 'Fungus2_08', 'Geo_Rock-Fungal_After_Cloth': 'Fungus2_10', "Geo_Rock-Fungal_Below_Pilgrim's_Way": 'Fungus2_11', "Geo_Rock-Fungal_Below_Pilgrim's_Way_Dupe": 'Fungus2_11', 'Geo_Rock-Mantis_Outskirts_Guarded': 'Fungus2_13', 'Geo_Rock-Mantis_Outskirts_Guarded_Dupe': 'Fungus2_13', 'Geo_Rock-Mantis_Outskirts_Alcove': 'Fungus2_13', 'Geo_Rock-Mantis_Village_After_Lever': 'Fungus2_14', 'Geo_Rock-Mantis_Village_Above_Claw': 'Fungus2_14', 'Geo_Rock-Mantis_Village_Above_Claw_Dupe': 'Fungus2_14', 'Geo_Rock-Mantis_Village_Below_Lore': 'Fungus2_14', 'Geo_Rock-Mantis_Village_Above_Lever': 'Fungus2_14', 'Geo_Rock-Above_Mantis_Lords_1': 'Fungus2_15', 'Geo_Rock-Above_Mantis_Lords_2': 'Fungus2_15', 'Geo_Rock-Fungal_After_Bouncy_Grub': 'Fungus2_18', 'Geo_Rock-Fungal_After_Bouncy_Grub_Dupe': 'Fungus2_18', 'Geo_Rock-Fungal_Bouncy_Grub_Lever': 'Fungus2_18', 'Geo_Rock-Fungal_After_Cornifer': 'Fungus2_18', 'Geo_Rock-Fungal_Above_City_Entrance': 'Fungus2_21', 'Geo_Rock-Deepnest_By_Mantis_Lords_1': 'Fungus2_25', 'Geo_Rock-Deepnest_By_Mantis_Lords_2': 'Fungus2_25', 'Geo_Rock-Deepnest_Lower_Cornifer': 'Fungus2_25', 'Geo_Rock-Fungal_Core_Entrance': 'Fungus2_29', 'Geo_Rock-Fungal_Core_Hidden': 'Fungus2_30', 'Geo_Rock-Fungal_Core_Above_Elder': 'Fungus2_30', "Geo_Rock-Queen's_Gardens_Acid_Entrance": 'Fungus3_03', "Geo_Rock-Queen's_Gardens_Below_Stag": 'Fungus3_10', 'Geo_Rock-Fog_Canyon_East': 'Fungus3_26', 'Geo_Rock-Love_Key': 'Fungus3_39', 'Geo_Rock-Love_Key_Dupe': 'Fungus3_39', "Geo_Rock-Queen's_Gardens_Above_Marmu": 'Fungus3_48', 'Geo_Rock-Pale_Lurker': 'GG_Lurker', 'Geo_Rock-Godhome_Pipeway': 'GG_Pipeway', 'Geo_Rock-Hive_Entrance': 'Hive_01', 'Geo_Rock-Hive_Outside_Bench': 'Hive_02', 'Geo_Rock-Hive_Below_Root': 'Hive_02', 'Geo_Rock-Hive_After_Root': 'Hive_02', 'Geo_Rock-Hive_Below_Stash': 'Hive_03', 'Geo_Rock-Hive_Stash': 'Hive_03', 'Geo_Rock-Hive_Stash_Dupe': 'Hive_03', 'Geo_Rock-Hive_Below_Grub': 'Hive_04', 'Geo_Rock-Hive_Above_Mask': 'Hive_04', 'Geo_Rock-Crystal_Peak_Lower_Middle': 'Mines_02', 'Geo_Rock-Crystal_Peak_Lower_Conveyer_1': 'Mines_02', 'Geo_Rock-Crystal_Peak_Lower_Conveyer_2': 'Mines_02', 'Geo_Rock-Crystal_Peak_Before_Dark_Room': 'Mines_04', 'Geo_Rock-Crystal_Peak_Before_Dark_Room_Dupe': 'Mines_04', 'Geo_Rock-Crystal_Peak_Above_Spike_Grub': 'Mines_05', 'Geo_Rock-Crystal_Peak_Mimic_Grub': 'Mines_16', 'Geo_Rock-Crystal_Peak_Dive_Egg': 'Mines_20', 'Geo_Rock-Crystal_Peak_Dive_Egg_Dupe': 'Mines_20', 'Geo_Rock-Crystal_Peak_Conga_Line': 'Mines_20', 'Geo_Rock-Hallownest_Crown_Dive': 'Mines_25', 'Geo_Rock-Hallownest_Crown_Dive_Dupe': 'Mines_25', 'Geo_Rock-Hallownest_Crown_Hidden': 'Mines_25', 'Geo_Rock-Hallownest_Crown_Hidden_Dupe_1': 'Mines_25', 'Geo_Rock-Hallownest_Crown_Hidden_Dupe_2': 'Mines_25', 'Geo_Rock-Crystal_Peak_Before_Crystal_Heart': 'Mines_31', 'Geo_Rock-Crystal_Peak_Entrance': 'Mines_33', 'Geo_Rock-Crystal_Peak_Entrance_Dupe_1': 'Mines_33', 'Geo_Rock-Crystal_Peak_Entrance_Dupe_2': 'Mines_33', 'Geo_Rock-Crystal_Peak_Above_Crushers_Lower': 'Mines_37', 'Geo_Rock-Crystal_Peak_Above_Crushers_Higher': 'Mines_37', 'Geo_Rock-Resting_Grounds_Catacombs_Grub': 'RestingGrounds_10', 'Geo_Rock-Resting_Grounds_Catacombs_Left_Dupe': 'RestingGrounds_10', 'Geo_Rock-Resting_Grounds_Catacombs_Left': 'RestingGrounds_10', 'Geo_Rock-Overgrown_Mound': 'Room_Fungus_Shaman', 'Geo_Rock-Fluke_Hermit_Dupe': 'Room_GG_Shortcut', 'Geo_Rock-Fluke_Hermit': 'Room_GG_Shortcut', 'Geo_Rock-Pleasure_House': 'Ruins_Elevator', 'Geo_Rock-City_of_Tears_Quirrel': 'Ruins1_03', 'Geo_Rock-City_of_Tears_Lemm': 'Ruins1_05b', 'Geo_Rock-City_of_Tears_Above_Lemm': 'Ruins1_05c', 'Geo_Rock-Soul_Sanctum': 'Ruins1_32', "Geo_Rock-Watcher's_Spire": 'Ruins2_01', "Geo_Rock-Above_King's_Station": 'Ruins2_05', "Geo_Rock-King's_Station": 'Ruins2_06', "Geo_Rock-King's_Pass_Left": 'Tutorial_01', "Geo_Rock-King's_Pass_Below_Fury": 'Tutorial_01', "Geo_Rock-King's_Pass_Hidden": 'Tutorial_01', "Geo_Rock-King's_Pass_Collapse": 'Tutorial_01', "Geo_Rock-King's_Pass_Above_Fury": 'Tutorial_01', 'Geo_Rock-Waterways_Tuk': 'Waterways_01', 'Geo_Rock-Waterways_Tuk_Alcove': 'Waterways_01', 'Geo_Rock-Waterways_Left': 'Waterways_04b', 'Geo_Rock-Waterways_East': 'Waterways_07', 'Geo_Rock-Waterways_Flukemarm': 'Waterways_08', 'Boss_Geo-Massive_Moss_Charger': 'Fungus1_29', 'Boss_Geo-Gorgeous_Husk': 'Ruins_House_02', 'Boss_Geo-Sanctum_Soul_Warrior': 'Ruins1_23', 'Boss_Geo-Elegant_Soul_Warrior': 'Ruins1_31b', 'Boss_Geo-Crystal_Guardian': 'Mines_18', 'Boss_Geo-Enraged_Guardian': 'Mines_32', 'Boss_Geo-Gruz_Mother': 'Crossroads_04', 'Boss_Geo-Vengefly_King': 'Fungus1_20_v02', 'Soul_Totem-Basin': 'Abyss_04', 'Soul_Totem-Cliffs_Main': 'Cliffs_01', 'Soul_Totem-Cliffs_Gorb': 'Cliffs_02', "Soul_Totem-Cliffs_Joni's": 'Cliffs_04', 'Soul_Totem-Crossroads_Goam_Journal': 'Crossroads_18', 'Soul_Totem-Crossroads_Shops': 'Crossroads_19', 'Soul_Totem-Crossroads_Mawlek_Upper': 'Crossroads_25', 'Soul_Totem-Crossroads_Acid': 'Crossroads_35', 'Soul_Totem-Crossroads_Mawlek_Lower': 'Crossroads_36', 'Soul_Totem-Crossroads_Myla': 'Crossroads_45', 'Soul_Totem-Ancestral_Mound': 'Crossroads_ShamanTemple', 'Soul_Totem-Distant_Village': 'Deepnest_10', 'Soul_Totem-Deepnest_Vessel': 'Deepnest_38', 'Soul_Totem-Mask_Maker': 'Deepnest_42', "Soul_Totem-Lower_Kingdom's_Edge_1": 'Deepnest_East_01', "Soul_Totem-Lower_Kingdom's_Edge_2": 'Deepnest_East_02', "Soul_Totem-Upper_Kingdom's_Edge": 'Deepnest_East_07', "Soul_Totem-Kingdom's_Edge_Camp": 'Deepnest_East_11', 'Soul_Totem-Oro_Dive_2': 'Deepnest_East_14', 'Soul_Totem-Oro_Dive_1': 'Deepnest_East_14', 'Soul_Totem-Oro': 'Deepnest_East_16', 'Soul_Totem-420_Geo_Rock': 'Deepnest_East_17', "Soul_Totem-Beast's_Den": 'Deepnest_Spider_Town', "Soul_Totem-Greenpath_Hunter's_Journal": 'Fungus1_07', 'Soul_Totem-Greenpath_MMC': 'Fungus1_29', 'Soul_Totem-Greenpath_Below_Toll': 'Fungus1_30', "Soul_Totem-Before_Pilgrim's_Way": 'Fungus2_10', "Soul_Totem-Pilgrim's_Way": 'Fungus2_21', 'Soul_Totem-Fungal_Core': 'Fungus2_29', "Soul_Totem-Top_Left_Queen's_Gardens": 'Fungus3_21', 'Soul_Totem-Below_Marmu': 'Fungus3_40', 'Soul_Totem-Upper_Crystal_Peak': 'Mines_20', 'Soul_Totem-Hallownest_Crown': 'Mines_25', 'Soul_Totem-Outside_Crystallized_Mound': 'Mines_28', 'Soul_Totem-Crystal_Heart_1': 'Mines_31', 'Soul_Totem-Crystal_Heart_2': 'Mines_31', 'Soul_Totem-Crystallized_Mound': 'Mines_35', 'Soul_Totem-Resting_Grounds': 'RestingGrounds_05', 'Soul_Totem-Below_Xero': 'RestingGrounds_06', 'Soul_Totem-Sanctum_Below_Soul_Master': 'Ruins1_24', 'Soul_Totem-Sanctum_Below_Chest': 'Ruins1_32', 'Soul_Totem-Sanctum_Above_Grub': 'Ruins1_32', 'Soul_Totem-Waterways_Entrance': 'Waterways_01', 'Soul_Totem-Top_Left_Waterways': 'Waterways_04b', 'Soul_Totem-Waterways_East': 'Waterways_07', 'Soul_Totem-Waterways_Flukemarm': 'Waterways_08', 'Soul_Totem-White_Palace_Entrance': 'White_Palace_02', 'Soul_Totem-White_Palace_Hub': 'White_Palace_03_hub', 'Soul_Totem-White_Palace_Left': 'White_Palace_04', 'Soul_Totem-White_Palace_Final': 'White_Palace_09', 'Soul_Totem-White_Palace_Right': 'White_Palace_15', 'Soul_Totem-Path_of_Pain_Below_Lever': 'White_Palace_17', 'Soul_Totem-Path_of_Pain_Left_of_Lever': 'White_Palace_17', 'Soul_Totem-Path_of_Pain_Entrance': 'White_Palace_18', 'Soul_Totem-Path_of_Pain_Second': 'White_Palace_18', 'Soul_Totem-Path_of_Pain_Hidden': 'White_Palace_19', 'Soul_Totem-Path_of_Pain_Below_Thornskip': 'White_Palace_19', 'Soul_Totem-Path_of_Pain_Final': 'White_Palace_20', 'Soul_Totem-Pale_Lurker': 'GG_Lurker', 'Lore_Tablet-City_Entrance': 'Ruins1_02', 'Lore_Tablet-Pleasure_House': 'Ruins_Elevator', 'Lore_Tablet-Sanctum_Entrance': 'Ruins1_23', 'Lore_Tablet-Sanctum_Past_Soul_Master': 'Ruins1_32', "Lore_Tablet-Watcher's_Spire": 'Ruins2_Watcher_Room', 'Lore_Tablet-Archives_Upper': 'Fungus3_archive_02', 'Lore_Tablet-Archives_Left': 'Fungus3_archive_02', 'Lore_Tablet-Archives_Right': 'Fungus3_archive_02', "Lore_Tablet-Pilgrim's_Way_1": 'Crossroads_11_alt', "Lore_Tablet-Pilgrim's_Way_2": 'Fungus2_21', 'Lore_Tablet-Mantis_Outskirts': 'Fungus2_12', 'Lore_Tablet-Mantis_Village': 'Fungus2_14', 'Lore_Tablet-Greenpath_Upper_Hidden': 'Fungus1_17', 'Lore_Tablet-Greenpath_Below_Toll': 'Fungus1_30', 'Lore_Tablet-Greenpath_Lifeblood': 'Fungus1_32', 'Lore_Tablet-Greenpath_Stag': 'Fungus1_21', 'Lore_Tablet-Greenpath_QG': 'Fungus1_13', 'Lore_Tablet-Greenpath_Lower_Hidden': 'Fungus1_19', 'Lore_Tablet-Dung_Defender': 'Waterways_07', 'Lore_Tablet-Spore_Shroom': 'Fungus2_20', 'Lore_Tablet-Fungal_Wastes_Hidden': 'Fungus2_07', 'Lore_Tablet-Fungal_Wastes_Below_Shrumal_Ogres': 'Fungus2_04', 'Lore_Tablet-Fungal_Core': 'Fungus2_30', 'Lore_Tablet-Ancient_Basin': 'Abyss_06_Core', "Lore_Tablet-King's_Pass_Focus": 'Tutorial_01', "Lore_Tablet-King's_Pass_Fury": 'Tutorial_01', "Lore_Tablet-King's_Pass_Exit": 'Tutorial_01', 'Lore_Tablet-World_Sense': 'Room_temple', 'Lore_Tablet-Howling_Cliffs': 'Cliffs_01', "Lore_Tablet-Kingdom's_Edge": 'Deepnest_East_17', 'Lore_Tablet-Palace_Workshop': 'White_Palace_08', 'Lore_Tablet-Palace_Throne': 'White_Palace_09', 'Lore_Tablet-Path_of_Pain_Entrance': 'White_Palace_18'} locations = ['Sly_1', 'Sly_2', 'Sly_3', 'Sly_4', 'Sly_5', 'Sly_6', 'Sly_7', 'Sly_8', 'Sly_9', 'Sly_10', 'Sly_11', 'Sly_12', 'Sly_13', 'Sly_14', 'Sly_15', 'Sly_16', 'Sly_(Key)_1', 'Sly_(Key)_2', 'Sly_(Key)_3', 'Sly_(Key)_4', 'Sly_(Key)_5', 'Sly_(Key)_6', 'Sly_(Key)_7', 'Sly_(Key)_8', 'Sly_(Key)_9', 'Sly_(Key)_10', 'Sly_(Key)_11', 'Sly_(Key)_12', 'Sly_(Key)_13', 'Sly_(Key)_14', 'Sly_(Key)_15', 'Sly_(Key)_16', 'Iselda_1', 'Iselda_2', 'Iselda_3', 'Iselda_4', 'Iselda_5', 'Iselda_6', 'Iselda_7', 'Iselda_8', 'Iselda_9', 'Iselda_10', 'Iselda_11', 'Iselda_12', 'Iselda_13', 'Iselda_14', 'Iselda_15', 'Iselda_16', 'Salubra_1', 'Salubra_2', 'Salubra_3', 'Salubra_4', 'Salubra_5', 'Salubra_6', 'Salubra_7', 'Salubra_8', 'Salubra_9', 'Salubra_10', 'Salubra_11', 'Salubra_12', 'Salubra_13', 'Salubra_14', 'Salubra_15', 'Salubra_16', 'Salubra_(Requires_Charms)_1', 'Salubra_(Requires_Charms)_2', 'Salubra_(Requires_Charms)_3', 'Salubra_(Requires_Charms)_4', 'Salubra_(Requires_Charms)_5', 'Salubra_(Requires_Charms)_6', 'Salubra_(Requires_Charms)_7', 'Salubra_(Requires_Charms)_8', 'Salubra_(Requires_Charms)_9', 'Salubra_(Requires_Charms)_10', 'Salubra_(Requires_Charms)_11', 'Salubra_(Requires_Charms)_12', 'Salubra_(Requires_Charms)_13', 'Salubra_(Requires_Charms)_14', 'Salubra_(Requires_Charms)_15', 'Salubra_(Requires_Charms)_16', 'Leg_Eater_1', 'Leg_Eater_2', 'Leg_Eater_3', 'Leg_Eater_4', 'Leg_Eater_5', 'Leg_Eater_6', 'Leg_Eater_7', 'Leg_Eater_8', 'Leg_Eater_9', 'Leg_Eater_10', 'Leg_Eater_11', 'Leg_Eater_12', 'Leg_Eater_13', 'Leg_Eater_14', 'Leg_Eater_15', 'Leg_Eater_16', 'Grubfather_1', 'Grubfather_2', 'Grubfather_3', 'Grubfather_4', 'Grubfather_5', 'Grubfather_6', 'Grubfather_7', 'Grubfather_8', 'Grubfather_9', 'Grubfather_10', 'Grubfather_11', 'Grubfather_12', 'Grubfather_13', 'Grubfather_14', 'Grubfather_15', 'Grubfather_16', 'Seer_1', 'Seer_2', 'Seer_3', 'Seer_4', 'Seer_5', 'Seer_6', 'Seer_7', 'Seer_8', 'Seer_9', 'Seer_10', 'Seer_11', 'Seer_12', 'Seer_13', 'Seer_14', 'Seer_15', 'Seer_16', 'Egg_Shop_1', 'Egg_Shop_2', 'Egg_Shop_3', 'Egg_Shop_4', 'Egg_Shop_5', 'Egg_Shop_6', 'Egg_Shop_7', 'Egg_Shop_8', 'Egg_Shop_9', 'Egg_Shop_10', 'Egg_Shop_11', 'Egg_Shop_12', 'Egg_Shop_13', 'Egg_Shop_14', 'Egg_Shop_15', 'Egg_Shop_16', 'Lurien', 'Monomon', 'Herrah', 'World_Sense', 'Mothwing_Cloak', 'Mantis_Claw', 'Crystal_Heart', 'Monarch_Wings', 'Shade_Cloak', "Isma's_Tear", 'Dream_Nail', 'Vengeful_Spirit', 'Shade_Soul', 'Desolate_Dive', 'Descending_Dark', 'Howling_Wraiths', 'Abyss_Shriek', 'Cyclone_Slash', 'Dash_Slash', 'Great_Slash', 'Focus', 'Baldur_Shell', 'Fury_of_the_Fallen', 'Lifeblood_Core', "Defender's_Crest", 'Flukenest', 'Thorns_of_Agony', 'Mark_of_Pride', 'Sharp_Shadow', 'Spore_Shroom', 'Soul_Catcher', 'Soul_Eater', 'Glowing_Womb', "Nailmaster's_Glory", "Joni's_Blessing", 'Shape_of_Unn', 'Hiveblood', 'Dashmaster', 'Quick_Slash', 'Spell_Twister', 'Deep_Focus', 'Queen_Fragment', 'King_Fragment', 'Void_Heart', 'Dreamshield', 'Weaversong', 'Grimmchild', 'Unbreakable_Heart', 'Unbreakable_Greed', 'Unbreakable_Strength', 'City_Crest', 'Tram_Pass', 'Simple_Key-Basin', 'Simple_Key-City', 'Simple_Key-Lurker', "Shopkeeper's_Key", 'Love_Key', "King's_Brand", 'Godtuner', "Collector's_Map", 'Mask_Shard-Brooding_Mawlek', 'Mask_Shard-Crossroads_Goam', 'Mask_Shard-Stone_Sanctuary', "Mask_Shard-Queen's_Station", 'Mask_Shard-Deepnest', 'Mask_Shard-Waterways', 'Mask_Shard-Enraged_Guardian', 'Mask_Shard-Hive', 'Mask_Shard-Grey_Mourner', 'Mask_Shard-Bretta', 'Vessel_Fragment-Greenpath', 'Vessel_Fragment-City', 'Vessel_Fragment-Crossroads', 'Vessel_Fragment-Basin', 'Vessel_Fragment-Deepnest', 'Vessel_Fragment-Stag_Nest', 'Charm_Notch-Shrumal_Ogres', 'Charm_Notch-Fog_Canyon', 'Charm_Notch-Colosseum', 'Charm_Notch-Grimm', 'Pale_Ore-Basin', 'Pale_Ore-Crystal_Peak', 'Pale_Ore-Nosk', 'Pale_Ore-Colosseum', 'Geo_Chest-False_Knight', 'Geo_Chest-Soul_Master', 'Geo_Chest-Watcher_Knights', 'Geo_Chest-Greenpath', 'Geo_Chest-Mantis_Lords', 'Geo_Chest-Resting_Grounds', 'Geo_Chest-Crystal_Peak', 'Geo_Chest-Weavers_Den', 'Geo_Chest-Junk_Pit_1', 'Geo_Chest-Junk_Pit_2', 'Geo_Chest-Junk_Pit_3', 'Geo_Chest-Junk_Pit_5', 'Lumafly_Escape-Junk_Pit_Chest_4', 'Rancid_Egg-Sheo', 'Rancid_Egg-Fungal_Core', "Rancid_Egg-Queen's_Gardens", 'Rancid_Egg-Blue_Lake', 'Rancid_Egg-Crystal_Peak_Dive_Entrance', 'Rancid_Egg-Crystal_Peak_Dark_Room', 'Rancid_Egg-Crystal_Peak_Tall_Room', 'Rancid_Egg-City_of_Tears_Left', 'Rancid_Egg-City_of_Tears_Pleasure_House', "Rancid_Egg-Beast's_Den", 'Rancid_Egg-Dark_Deepnest', "Rancid_Egg-Weaver's_Den", 'Rancid_Egg-Near_Quick_Slash', "Rancid_Egg-Upper_Kingdom's_Edge", 'Rancid_Egg-Waterways_East', 'Rancid_Egg-Waterways_Main', 'Rancid_Egg-Waterways_West_Bluggsac', 'Rancid_Egg-Waterways_West_Pickup', "Rancid_Egg-Tuk_Defender's_Crest", "Wanderer's_Journal-Cliffs", "Wanderer's_Journal-Greenpath_Stag", "Wanderer's_Journal-Greenpath_Lower", "Wanderer's_Journal-Fungal_Wastes_Thorns_Gauntlet", "Wanderer's_Journal-Above_Mantis_Village", "Wanderer's_Journal-Crystal_Peak_Crawlers", "Wanderer's_Journal-Resting_Grounds_Catacombs", "Wanderer's_Journal-King's_Station", "Wanderer's_Journal-Pleasure_House", "Wanderer's_Journal-City_Storerooms", "Wanderer's_Journal-Ancient_Basin", "Wanderer's_Journal-Kingdom's_Edge_Entrance", "Wanderer's_Journal-Kingdom's_Edge_Camp", "Wanderer's_Journal-Kingdom's_Edge_Requires_Dive", 'Hallownest_Seal-Crossroads_Well', 'Hallownest_Seal-Greenpath', 'Hallownest_Seal-Fog_Canyon_West', 'Hallownest_Seal-Fog_Canyon_East', "Hallownest_Seal-Queen's_Station", 'Hallownest_Seal-Fungal_Wastes_Sporgs', 'Hallownest_Seal-Mantis_Lords', 'Hallownest_Seal-Resting_Grounds_Catacombs', "Hallownest_Seal-King's_Station", 'Hallownest_Seal-City_Rafters', 'Hallownest_Seal-Soul_Sanctum', 'Hallownest_Seal-Watcher_Knight', 'Hallownest_Seal-Deepnest_By_Mantis_Lords', "Hallownest_Seal-Beast's_Den", "Hallownest_Seal-Queen's_Gardens", "King's_Idol-Cliffs", "King's_Idol-Crystal_Peak", "King's_Idol-Glade_of_Hope", "King's_Idol-Dung_Defender", "King's_Idol-Great_Hopper", "King's_Idol-Pale_Lurker", "King's_Idol-Deepnest", 'Arcane_Egg-Lifeblood_Core', 'Arcane_Egg-Shade_Cloak', 'Arcane_Egg-Birthplace', 'Whispering_Root-Crossroads', 'Whispering_Root-Greenpath', 'Whispering_Root-Leg_Eater', 'Whispering_Root-Mantis_Village', 'Whispering_Root-Deepnest', 'Whispering_Root-Queens_Gardens', 'Whispering_Root-Kingdoms_Edge', 'Whispering_Root-Waterways', 'Whispering_Root-City', 'Whispering_Root-Resting_Grounds', 'Whispering_Root-Spirits_Glade', 'Whispering_Root-Crystal_Peak', 'Whispering_Root-Howling_Cliffs', 'Whispering_Root-Ancestral_Mound', 'Whispering_Root-Hive', 'Boss_Essence-Elder_Hu', 'Boss_Essence-Xero', 'Boss_Essence-Gorb', 'Boss_Essence-Marmu', 'Boss_Essence-No_Eyes', 'Boss_Essence-Galien', 'Boss_Essence-Markoth', 'Boss_Essence-Failed_Champion', 'Boss_Essence-Soul_Tyrant', 'Boss_Essence-Lost_Kin', 'Boss_Essence-White_Defender', 'Boss_Essence-Grey_Prince_Zote', 'Grub-Crossroads_Acid', 'Grub-Crossroads_Center', 'Grub-Crossroads_Stag', 'Grub-Crossroads_Spike', 'Grub-Crossroads_Guarded', 'Grub-Greenpath_Cornifer', 'Grub-Greenpath_Journal', 'Grub-Greenpath_MMC', 'Grub-Greenpath_Stag', 'Grub-Fog_Canyon', 'Grub-Fungal_Bouncy', 'Grub-Fungal_Spore_Shroom', 'Grub-Deepnest_Mimic', 'Grub-Deepnest_Nosk', 'Grub-Deepnest_Spike', 'Grub-Dark_Deepnest', "Grub-Beast's_Den", "Grub-Kingdom's_Edge_Oro", "Grub-Kingdom's_Edge_Camp", 'Grub-Hive_External', 'Grub-Hive_Internal', 'Grub-Basin_Requires_Wings', 'Grub-Basin_Requires_Dive', 'Grub-Waterways_Main', "Grub-Isma's_Grove", 'Grub-Waterways_Requires_Tram', 'Grub-City_of_Tears_Left', 'Grub-Soul_Sanctum', "Grub-Watcher's_Spire", 'Grub-City_of_Tears_Guarded', "Grub-King's_Station", 'Grub-Resting_Grounds', 'Grub-Crystal_Peak_Below_Chest', 'Grub-Crystallized_Mound', 'Grub-Crystal_Peak_Spike', 'Grub-Crystal_Peak_Mimic', 'Grub-Crystal_Peak_Crushers', 'Grub-Crystal_Heart', 'Grub-Hallownest_Crown', 'Grub-Howling_Cliffs', "Grub-Queen's_Gardens_Stag", "Grub-Queen's_Gardens_Marmu", "Grub-Queen's_Gardens_Top", 'Grub-Collector_1', 'Grub-Collector_2', 'Grub-Collector_3', 'Mimic_Grub-Deepnest_1', 'Mimic_Grub-Deepnest_2', 'Mimic_Grub-Deepnest_3', 'Mimic_Grub-Crystal_Peak', 'Crossroads_Map', 'Greenpath_Map', 'Fog_Canyon_Map', 'Fungal_Wastes_Map', 'Deepnest_Map-Upper', 'Deepnest_Map-Right', 'Ancient_Basin_Map', "Kingdom's_Edge_Map", 'City_of_Tears_Map', 'Royal_Waterways_Map', 'Howling_Cliffs_Map', 'Crystal_Peak_Map', "Queen's_Gardens_Map", 'Resting_Grounds_Map', 'Dirtmouth_Stag', 'Crossroads_Stag', 'Greenpath_Stag', "Queen's_Station_Stag", "Queen's_Gardens_Stag", 'City_Storerooms_Stag', "King's_Station_Stag", 'Resting_Grounds_Stag', 'Distant_Village_Stag', 'Hidden_Station_Stag', 'Stag_Nest_Stag', "Lifeblood_Cocoon-King's_Pass", 'Lifeblood_Cocoon-Ancestral_Mound', 'Lifeblood_Cocoon-Greenpath', 'Lifeblood_Cocoon-Fog_Canyon_West', 'Lifeblood_Cocoon-Mantis_Village', 'Lifeblood_Cocoon-Failed_Tramway', 'Lifeblood_Cocoon-Galien', "Lifeblood_Cocoon-Kingdom's_Edge", 'Grimmkin_Flame-City_Storerooms', 'Grimmkin_Flame-Greenpath', 'Grimmkin_Flame-Crystal_Peak', "Grimmkin_Flame-King's_Pass", 'Grimmkin_Flame-Resting_Grounds', "Grimmkin_Flame-Kingdom's_Edge", 'Grimmkin_Flame-Fungal_Core', 'Grimmkin_Flame-Ancient_Basin', 'Grimmkin_Flame-Hive', 'Grimmkin_Flame-Brumm', "Hunter's_Journal", 'Journal_Entry-Void_Tendrils', 'Journal_Entry-Charged_Lumafly', 'Journal_Entry-Goam', 'Journal_Entry-Garpede', 'Journal_Entry-Seal_of_Binding', 'Elevator_Pass', 'Split_Mothwing_Cloak', 'Left_Mantis_Claw', 'Right_Mantis_Claw', 'Leftslash', 'Rightslash', 'Upslash', 'Split_Crystal_Heart', 'Geo_Rock-Broken_Elevator_1', 'Geo_Rock-Broken_Elevator_2', 'Geo_Rock-Broken_Elevator_3', 'Geo_Rock-Broken_Bridge_Upper', 'Geo_Rock-Broken_Bridge_Lower', 'Geo_Rock-Broken_Bridge_Lower_Dupe', 'Geo_Rock-Abyss_1', 'Geo_Rock-Abyss_2', 'Geo_Rock-Abyss_3', 'Geo_Rock-Basin_Tunnel', 'Geo_Rock-Basin_Grub', 'Geo_Rock-Basin_Before_Broken_Vessel', 'Geo_Rock-Cliffs_Main_1', 'Geo_Rock-Cliffs_Main_2', 'Geo_Rock-Cliffs_Main_3', 'Geo_Rock-Cliffs_Main_4', 'Geo_Rock-Below_Gorb_Dupe', 'Geo_Rock-Below_Gorb', 'Geo_Rock-Crossroads_Well', 'Geo_Rock-Crossroads_Center_Grub', 'Geo_Rock-Crossroads_Root', 'Geo_Rock-Crossroads_Root_Dupe_1', 'Geo_Rock-Crossroads_Root_Dupe_2', 'Geo_Rock-Crossroads_Aspid_Arena', 'Geo_Rock-Crossroads_Aspid_Arena_Dupe_1', 'Geo_Rock-Crossroads_Aspid_Arena_Dupe_2', 'Geo_Rock-Crossroads_Aspid_Arena_Hidden', 'Geo_Rock-Crossroads_Above_False_Knight', 'Geo_Rock-Crossroads_Before_Acid_Grub', 'Geo_Rock-Crossroads_Below_Goam_Mask_Shard', 'Geo_Rock-Crossroads_After_Goam_Mask_Shard', 'Geo_Rock-Crossroads_Above_Lever', 'Geo_Rock-Crossroads_Before_Fungal', 'Geo_Rock-Crossroads_Before_Fungal_Dupe_1', 'Geo_Rock-Crossroads_Before_Fungal_Dupe_2', 'Geo_Rock-Crossroads_Before_Shops', 'Geo_Rock-Crossroads_Before_Glowing_Womb', 'Geo_Rock-Crossroads_Above_Tram', 'Geo_Rock-Crossroads_Above_Mawlek', 'Geo_Rock-Crossroads_Vessel_Fragment', 'Geo_Rock-Crossroads_Goam_Alcove', 'Geo_Rock-Crossroads_Goam_Damage_Boost', 'Geo_Rock-Crossroads_Tram', 'Geo_Rock-Crossroads_Goam_Journal', 'Geo_Rock-Crossroads_Goam_Journal_Dupe', 'Geo_Rock-Ancestral_Mound', 'Geo_Rock-Ancestral_Mound_Dupe', 'Geo_Rock-Ancestral_Mound_Tree', 'Geo_Rock-Ancestral_Mound_Tree_Dupe', 'Geo_Rock-Moss_Prophet', 'Geo_Rock-Moss_Prophet_Dupe', 'Geo_Rock-Deepnest_Below_Mimics', 'Geo_Rock-Deepnest_Below_Mimics_Dupe', 'Geo_Rock-Deepnest_Below_Spike_Grub', 'Geo_Rock-Deepnest_Below_Spike_Grub_Dupe', 'Geo_Rock-Deepnest_Spike_Grub_Right', 'Geo_Rock-Deepnest_By_Mantis_Lords_Garpede_Pogo', 'Geo_Rock-Deepnest_By_Mantis_Lords_Garpede_Pogo_Dupe', 'Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_1', 'Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_2', 'Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_3', 'Geo_Rock-Deepnest_Nosk_1', 'Geo_Rock-Deepnest_Nosk_2', 'Geo_Rock-Deepnest_Nosk_3', 'Geo_Rock-Deepnest_Above_Galien', 'Geo_Rock-Deepnest_Galien_Spike', 'Geo_Rock-Deepnest_Garpede_1', 'Geo_Rock-Deepnest_Garpede_2', 'Geo_Rock-Dark_Deepnest_Above_Grub_1', 'Geo_Rock-Dark_Deepnest_Above_Grub_2', 'Geo_Rock-Dark_Deepnest_Bottom_Left', 'Geo_Rock-Above_Mask_Maker_1', 'Geo_Rock-Above_Mask_Maker_2', "Geo_Rock-Lower_Kingdom's_Edge_1", "Geo_Rock-Lower_Kingdom's_Edge_2", "Geo_Rock-Lower_Kingdom's_Edge_3", "Geo_Rock-Lower_Kingdom's_Edge_Dive", "Geo_Rock-Kingdom's_Edge_Below_Bardoon", "Geo_Rock-Kingdom's_Edge_Oro_Far_Left", "Geo_Rock-Kingdom's_Edge_Oro_Middle_Left", "Geo_Rock-Kingdom's_Edge_Above_Root", "Geo_Rock-Kingdom's_Edge_Above_Tower", "Geo_Rock-Kingdom's_Edge_Below_Colosseum", "Geo_Rock-Kingdom's_Edge_Above_420_Geo_Rock", "Geo_Rock-Kingdom's_Edge_420_Geo_Rock", "Geo_Rock-Beast's_Den_Above_Trilobite", "Geo_Rock-Beast's_Den_Above_Trilobite_Dupe", "Geo_Rock-Beast's_Den_Below_Herrah", "Geo_Rock-Beast's_Den_Below_Egg", "Geo_Rock-Beast's_Den_Below_Egg_Dupe", "Geo_Rock-Beast's_Den_Bottom", "Geo_Rock-Beast's_Den_Bottom_Dupe", "Geo_Rock-Beast's_Den_After_Herrah", 'Geo_Rock-Greenpath_Entrance', 'Geo_Rock-Greenpath_Waterfall', 'Geo_Rock-Greenpath_Below_Skip_Squit', 'Geo_Rock-Greenpath_Skip_Squit', 'Geo_Rock-Greenpath_Second_Skip_Fool_Eater', 'Geo_Rock-Greenpath_Second_Skip_Fool_Eater_Dupe', 'Geo_Rock-Greenpath_Second_Skip_Lower', 'Geo_Rock-Greenpath_Below_Hornet', 'Geo_Rock-Greenpath_Above_Thorns', "Geo_Rock-Greenpath_Hunter's_Journal", 'Geo_Rock-Greenpath_Acid_Bridge', 'Geo_Rock-Greenpath_After_MMC_Hidden', 'Geo_Rock-Greenpath_After_MMC', 'Geo_Rock-Greenpath_After_MMC_Dupe', 'Geo_Rock-Greenpath_Obbles_Fool_Eater', 'Geo_Rock-Greenpath_Moss_Knights', 'Geo_Rock-Greenpath_Moss_Knights_Dupe_1', 'Geo_Rock-Greenpath_Moss_Knights_Dupe_2', 'Geo_Rock-Greenpath_Below_Stag', 'Geo_Rock-Greenpath_Below_Stag_Fool_Eater', 'Geo_Rock-Baldur_Shell_Top_Left', 'Geo_Rock-Baldur_Shell_Alcove', 'Geo_Rock-Greenpath_MMC', 'Geo_Rock-Greenpath_Below_Toll', 'Geo_Rock-Greenpath_Toll_Hidden', 'Geo_Rock-Greenpath_Toll_Hidden_Dupe', 'Geo_Rock-Fungal_Below_Shrumal_Ogres', 'Geo_Rock-Fungal_Above_Cloth', 'Geo_Rock-Fungal_After_Cloth', "Geo_Rock-Fungal_Below_Pilgrim's_Way", "Geo_Rock-Fungal_Below_Pilgrim's_Way_Dupe", 'Geo_Rock-Mantis_Outskirts_Guarded', 'Geo_Rock-Mantis_Outskirts_Guarded_Dupe', 'Geo_Rock-Mantis_Outskirts_Alcove', 'Geo_Rock-Mantis_Village_After_Lever', 'Geo_Rock-Mantis_Village_Above_Claw', 'Geo_Rock-Mantis_Village_Above_Claw_Dupe', 'Geo_Rock-Mantis_Village_Below_Lore', 'Geo_Rock-Mantis_Village_Above_Lever', 'Geo_Rock-Above_Mantis_Lords_1', 'Geo_Rock-Above_Mantis_Lords_2', 'Geo_Rock-Fungal_After_Bouncy_Grub', 'Geo_Rock-Fungal_After_Bouncy_Grub_Dupe', 'Geo_Rock-Fungal_Bouncy_Grub_Lever', 'Geo_Rock-Fungal_After_Cornifer', 'Geo_Rock-Fungal_Above_City_Entrance', 'Geo_Rock-Deepnest_By_Mantis_Lords_1', 'Geo_Rock-Deepnest_By_Mantis_Lords_2', 'Geo_Rock-Deepnest_Lower_Cornifer', 'Geo_Rock-Fungal_Core_Entrance', 'Geo_Rock-Fungal_Core_Hidden', 'Geo_Rock-Fungal_Core_Above_Elder', "Geo_Rock-Queen's_Gardens_Acid_Entrance", "Geo_Rock-Queen's_Gardens_Below_Stag", 'Geo_Rock-Fog_Canyon_East', 'Geo_Rock-Love_Key', 'Geo_Rock-Love_Key_Dupe', "Geo_Rock-Queen's_Gardens_Above_Marmu", 'Geo_Rock-Pale_Lurker', 'Geo_Rock-Godhome_Pipeway', 'Geo_Rock-Hive_Entrance', 'Geo_Rock-Hive_Outside_Bench', 'Geo_Rock-Hive_Below_Root', 'Geo_Rock-Hive_After_Root', 'Geo_Rock-Hive_Below_Stash', 'Geo_Rock-Hive_Stash', 'Geo_Rock-Hive_Stash_Dupe', 'Geo_Rock-Hive_Below_Grub', 'Geo_Rock-Hive_Above_Mask', 'Geo_Rock-Crystal_Peak_Lower_Middle', 'Geo_Rock-Crystal_Peak_Lower_Conveyer_1', 'Geo_Rock-Crystal_Peak_Lower_Conveyer_2', 'Geo_Rock-Crystal_Peak_Before_Dark_Room', 'Geo_Rock-Crystal_Peak_Before_Dark_Room_Dupe', 'Geo_Rock-Crystal_Peak_Above_Spike_Grub', 'Geo_Rock-Crystal_Peak_Mimic_Grub', 'Geo_Rock-Crystal_Peak_Dive_Egg', 'Geo_Rock-Crystal_Peak_Dive_Egg_Dupe', 'Geo_Rock-Crystal_Peak_Conga_Line', 'Geo_Rock-Hallownest_Crown_Dive', 'Geo_Rock-Hallownest_Crown_Dive_Dupe', 'Geo_Rock-Hallownest_Crown_Hidden', 'Geo_Rock-Hallownest_Crown_Hidden_Dupe_1', 'Geo_Rock-Hallownest_Crown_Hidden_Dupe_2', 'Geo_Rock-Crystal_Peak_Before_Crystal_Heart', 'Geo_Rock-Crystal_Peak_Entrance', 'Geo_Rock-Crystal_Peak_Entrance_Dupe_1', 'Geo_Rock-Crystal_Peak_Entrance_Dupe_2', 'Geo_Rock-Crystal_Peak_Above_Crushers_Lower', 'Geo_Rock-Crystal_Peak_Above_Crushers_Higher', 'Geo_Rock-Resting_Grounds_Catacombs_Grub', 'Geo_Rock-Resting_Grounds_Catacombs_Left_Dupe', 'Geo_Rock-Resting_Grounds_Catacombs_Left', 'Geo_Rock-Overgrown_Mound', 'Geo_Rock-Fluke_Hermit_Dupe', 'Geo_Rock-Fluke_Hermit', 'Geo_Rock-Pleasure_House', 'Geo_Rock-City_of_Tears_Quirrel', 'Geo_Rock-City_of_Tears_Lemm', 'Geo_Rock-City_of_Tears_Above_Lemm', 'Geo_Rock-Soul_Sanctum', "Geo_Rock-Watcher's_Spire", "Geo_Rock-Above_King's_Station", "Geo_Rock-King's_Station", "Geo_Rock-King's_Pass_Left", "Geo_Rock-King's_Pass_Below_Fury", "Geo_Rock-King's_Pass_Hidden", "Geo_Rock-King's_Pass_Collapse", "Geo_Rock-King's_Pass_Above_Fury", 'Geo_Rock-Waterways_Tuk', 'Geo_Rock-Waterways_Tuk_Alcove', 'Geo_Rock-Waterways_Left', 'Geo_Rock-Waterways_East', 'Geo_Rock-Waterways_Flukemarm', 'Boss_Geo-Massive_Moss_Charger', 'Boss_Geo-Gorgeous_Husk', 'Boss_Geo-Sanctum_Soul_Warrior', 'Boss_Geo-Elegant_Soul_Warrior', 'Boss_Geo-Crystal_Guardian', 'Boss_Geo-Enraged_Guardian', 'Boss_Geo-Gruz_Mother', 'Boss_Geo-Vengefly_King', 'Soul_Totem-Basin', 'Soul_Totem-Cliffs_Main', 'Soul_Totem-Cliffs_Gorb', "Soul_Totem-Cliffs_Joni's", 'Soul_Totem-Crossroads_Goam_Journal', 'Soul_Totem-Crossroads_Shops', 'Soul_Totem-Crossroads_Mawlek_Upper', 'Soul_Totem-Crossroads_Acid', 'Soul_Totem-Crossroads_Mawlek_Lower', 'Soul_Totem-Crossroads_Myla', 'Soul_Totem-Ancestral_Mound', 'Soul_Totem-Distant_Village', 'Soul_Totem-Deepnest_Vessel', 'Soul_Totem-Mask_Maker', "Soul_Totem-Lower_Kingdom's_Edge_1", "Soul_Totem-Lower_Kingdom's_Edge_2", "Soul_Totem-Upper_Kingdom's_Edge", "Soul_Totem-Kingdom's_Edge_Camp", 'Soul_Totem-Oro_Dive_2', 'Soul_Totem-Oro_Dive_1', 'Soul_Totem-Oro', 'Soul_Totem-420_Geo_Rock', "Soul_Totem-Beast's_Den", "Soul_Totem-Greenpath_Hunter's_Journal", 'Soul_Totem-Greenpath_MMC', 'Soul_Totem-Greenpath_Below_Toll', "Soul_Totem-Before_Pilgrim's_Way", "Soul_Totem-Pilgrim's_Way", 'Soul_Totem-Fungal_Core', "Soul_Totem-Top_Left_Queen's_Gardens", 'Soul_Totem-Below_Marmu', 'Soul_Totem-Upper_Crystal_Peak', 'Soul_Totem-Hallownest_Crown', 'Soul_Totem-Outside_Crystallized_Mound', 'Soul_Totem-Crystal_Heart_1', 'Soul_Totem-Crystal_Heart_2', 'Soul_Totem-Crystallized_Mound', 'Soul_Totem-Resting_Grounds', 'Soul_Totem-Below_Xero', 'Soul_Totem-Sanctum_Below_Soul_Master', 'Soul_Totem-Sanctum_Below_Chest', 'Soul_Totem-Sanctum_Above_Grub', 'Soul_Totem-Waterways_Entrance', 'Soul_Totem-Top_Left_Waterways', 'Soul_Totem-Waterways_East', 'Soul_Totem-Waterways_Flukemarm', 'Soul_Totem-White_Palace_Entrance', 'Soul_Totem-White_Palace_Hub', 'Soul_Totem-White_Palace_Left', 'Soul_Totem-White_Palace_Final', 'Soul_Totem-White_Palace_Right', 'Soul_Totem-Path_of_Pain_Below_Lever', 'Soul_Totem-Path_of_Pain_Left_of_Lever', 'Soul_Totem-Path_of_Pain_Entrance', 'Soul_Totem-Path_of_Pain_Second', 'Soul_Totem-Path_of_Pain_Hidden', 'Soul_Totem-Path_of_Pain_Below_Thornskip', 'Soul_Totem-Path_of_Pain_Final', 'Soul_Totem-Pale_Lurker', 'Lore_Tablet-City_Entrance', 'Lore_Tablet-Pleasure_House', 'Lore_Tablet-Sanctum_Entrance', 'Lore_Tablet-Sanctum_Past_Soul_Master', "Lore_Tablet-Watcher's_Spire", 'Lore_Tablet-Archives_Upper', 'Lore_Tablet-Archives_Left', 'Lore_Tablet-Archives_Right', "Lore_Tablet-Pilgrim's_Way_1", "Lore_Tablet-Pilgrim's_Way_2", 'Lore_Tablet-Mantis_Outskirts', 'Lore_Tablet-Mantis_Village', 'Lore_Tablet-Greenpath_Upper_Hidden', 'Lore_Tablet-Greenpath_Below_Toll', 'Lore_Tablet-Greenpath_Lifeblood', 'Lore_Tablet-Greenpath_Stag', 'Lore_Tablet-Greenpath_QG', 'Lore_Tablet-Greenpath_Lower_Hidden', 'Lore_Tablet-Dung_Defender', 'Lore_Tablet-Spore_Shroom', 'Lore_Tablet-Fungal_Wastes_Hidden', 'Lore_Tablet-Fungal_Wastes_Below_Shrumal_Ogres', 'Lore_Tablet-Fungal_Core', 'Lore_Tablet-Ancient_Basin', "Lore_Tablet-King's_Pass_Focus", "Lore_Tablet-King's_Pass_Fury", "Lore_Tablet-King's_Pass_Exit", 'Lore_Tablet-World_Sense', 'Lore_Tablet-Howling_Cliffs', "Lore_Tablet-Kingdom's_Edge", 'Lore_Tablet-Palace_Workshop', 'Lore_Tablet-Palace_Throne', 'Lore_Tablet-Path_of_Pain_Entrance'] logic_items = {'ACID', 'Abyss_01', 'Abyss_01[left1]', 'Abyss_01[left2]', 'Abyss_01[left3]', 'Abyss_01[right1]', 'Abyss_01[right2]', 'Abyss_02[bot1]', 'Abyss_02[right1]', 'Abyss_03', 'Abyss_03[bot1]', 'Abyss_03[bot2]', 'Abyss_03[top1]', 'Abyss_03_b', 'Abyss_03_b[left1]', 'Abyss_03_c', 'Abyss_03_c[right1]', 'Abyss_03_c[top1]', 'Abyss_04', 'Abyss_04[bot1]', 'Abyss_04[left1]', 'Abyss_04[right1]', 'Abyss_04[top1]', 'Abyss_05', 'Abyss_05[left1]', 'Abyss_05[right1]', 'Abyss_06_Core', 'Abyss_06_Core[bot1]', 'Abyss_06_Core[left1]', 'Abyss_06_Core[left3]', 'Abyss_06_Core[right2]', 'Abyss_06_Core[top1]', 'Abyss_08[right1]', 'Abyss_09', 'Abyss_09[left1]', 'Abyss_09[right1]', 'Abyss_09[right2]', 'Abyss_09[right3]', 'Abyss_10[left1]', 'Abyss_10[left2]', 'Abyss_12[right1]', 'Abyss_15[top1]', 'Abyss_16[left1]', 'Abyss_16[right1]', 'Abyss_17[top1]', 'Abyss_18[left1]', 'Abyss_18[right1]', 'Abyss_19', 'Abyss_19[bot1]', 'Abyss_19[bot2]', 'Abyss_19[left1]', 'Abyss_19[right1]', 'Abyss_20[top1]', 'Abyss_20[top2]', 'Abyss_21[right1]', 'Abyss_22[left1]', 'Abyss_Lighthouse_room[left1]', 'BRAND', 'Broke_Sanctum_Glass_Floor', 'CREST', 'CYCLONE', 'Can_Bench', 'Can_Repair_Fragile_Charms', 'Can_Replenish_Geo', 'Can_Replenish_Geo-Crossroads', 'Can_Stag', 'City_Storerooms_Stag', 'Cliffs_01', 'Cliffs_01[right1]', 'Cliffs_01[right2]', 'Cliffs_01[right3]', 'Cliffs_01[right4]', 'Cliffs_02', 'Cliffs_02[bot1]', 'Cliffs_02[bot2]', 'Cliffs_02[door1]', 'Cliffs_02[left1]', 'Cliffs_02[left2]', 'Cliffs_02[right1]', 'Cliffs_03[right1]', 'Cliffs_04[left1]', 'Cliffs_04[right1]', 'Cliffs_05[left1]', 'Cliffs_06[left1]', 'Completed_Path_of_Pain', 'Crossroads_01[left1]', 'Crossroads_01[right1]', 'Crossroads_01[top1]', 'Crossroads_02[door1]', 'Crossroads_02[left1]', 'Crossroads_02[right1]', 'Crossroads_03', 'Crossroads_03[bot1]', 'Crossroads_03[left1]', 'Crossroads_03[left2]', 'Crossroads_03[right1]', 'Crossroads_03[right2]', 'Crossroads_03[top1]', 'Crossroads_04[door1]', 'Crossroads_04[door_Mender_House]', 'Crossroads_04[door_charmshop]', 'Crossroads_04[left1]', 'Crossroads_04[right1]', 'Crossroads_04[top1]', 'Crossroads_05[left1]', 'Crossroads_05[right1]', 'Crossroads_06[door1]', 'Crossroads_06[left1]', 'Crossroads_06[right1]', 'Crossroads_07', 'Crossroads_07[bot1]', 'Crossroads_07[left1]', 'Crossroads_07[left2]', 'Crossroads_07[left3]', 'Crossroads_07[right1]', 'Crossroads_07[right2]', 'Crossroads_08', 'Crossroads_08[left1]', 'Crossroads_08[left2]', 'Crossroads_08[right1]', 'Crossroads_08[right2]', 'Crossroads_09[left1]', 'Crossroads_09[right1]', 'Crossroads_10[left1]', 'Crossroads_10[right1]', 'Crossroads_11_alt[left1]', 'Crossroads_11_alt[right1]', 'Crossroads_12[left1]', 'Crossroads_12[right1]', 'Crossroads_13[left1]', 'Crossroads_13[right1]', 'Crossroads_14', 'Crossroads_14[left1]', 'Crossroads_14[left2]', 'Crossroads_14[right1]', 'Crossroads_14[right2]', 'Crossroads_15[left1]', 'Crossroads_15[right1]', 'Crossroads_16[bot1]', 'Crossroads_16[left1]', 'Crossroads_16[right1]', 'Crossroads_18', 'Crossroads_18[bot1]', 'Crossroads_18[right1]', 'Crossroads_18[right2]', 'Crossroads_19', 'Crossroads_19[left1]', 'Crossroads_19[left2]', 'Crossroads_19[right1]', 'Crossroads_19[top1]', 'Crossroads_21', 'Crossroads_21[left1]', 'Crossroads_21[right1]', 'Crossroads_21[top1]', 'Crossroads_22[bot1]', 'Crossroads_25[left1]', 'Crossroads_25[right1]', 'Crossroads_27', 'Crossroads_27[bot1]', 'Crossroads_27[left1]', 'Crossroads_27[left2]', 'Crossroads_27[right1]', 'Crossroads_30[left1]', 'Crossroads_31[right1]', 'Crossroads_33', 'Crossroads_33[left1]', 'Crossroads_33[left2]', 'Crossroads_33[right1]', 'Crossroads_33[right2]', 'Crossroads_33[top1]', 'Crossroads_35[bot1]', 'Crossroads_35[right1]', 'Crossroads_36[right1]', 'Crossroads_36[right2]', 'Crossroads_37[right1]', 'Crossroads_38[right1]', 'Crossroads_39[left1]', 'Crossroads_39[right1]', 'Crossroads_40[left1]', 'Crossroads_40[right1]', 'Crossroads_42[left1]', 'Crossroads_42[right1]', 'Crossroads_43[left1]', 'Crossroads_43[right1]', 'Crossroads_45[left1]', 'Crossroads_45[right1]', 'Crossroads_46[left1]', 'Crossroads_46b[right1]', 'Crossroads_47[right1]', 'Crossroads_48[left1]', 'Crossroads_49[left1]', 'Crossroads_49[right1]', 'Crossroads_49b[right1]', 'Crossroads_50[left1]', 'Crossroads_50[right1]', 'Crossroads_52[left1]', 'Crossroads_ShamanTemple[left1]', 'Crossroads_Stag', 'Cyclone_Slash', 'DREAMER', 'DREAMNAIL', 'Dash_Slash', 'Dashmaster', 'Deepnest_01', 'Deepnest_01[bot1]', 'Deepnest_01[bot2]', 'Deepnest_01[left1]', 'Deepnest_01[right1]', 'Deepnest_01b', 'Deepnest_01b[bot1]', 'Deepnest_01b[right1]', 'Deepnest_01b[right2]', 'Deepnest_01b[top1]', 'Deepnest_01b[top2]', 'Deepnest_02', 'Deepnest_02[left1]', 'Deepnest_02[left2]', 'Deepnest_02[right1]', 'Deepnest_03', 'Deepnest_03[left1]', 'Deepnest_03[left2]', 'Deepnest_03[right1]', 'Deepnest_03[top1]', 'Deepnest_09[left1]', 'Deepnest_10', 'Deepnest_10[door1]', 'Deepnest_10[door2]', 'Deepnest_10[right1]', 'Deepnest_10[right2]', 'Deepnest_10[right3]', 'Deepnest_14', 'Deepnest_14[bot1]', 'Deepnest_14[bot2]', 'Deepnest_14[left1]', 'Deepnest_14[right1]', 'Deepnest_16[bot1]', 'Deepnest_16[left1]', 'Deepnest_17', 'Deepnest_17[bot1]', 'Deepnest_17[left1]', 'Deepnest_17[right1]', 'Deepnest_17[top1]', 'Deepnest_26', 'Deepnest_26[bot1]', 'Deepnest_26[left1]', 'Deepnest_26[left2]', 'Deepnest_26[right1]', 'Deepnest_26b[right1]', 'Deepnest_26b[right2]', 'Deepnest_30[left1]', 'Deepnest_30[right1]', 'Deepnest_30[top1]', 'Deepnest_31[right1]', 'Deepnest_31[right2]', 'Deepnest_32[left1]', 'Deepnest_33[bot1]', 'Deepnest_33[top1]', 'Deepnest_33[top2]', 'Deepnest_34', 'Deepnest_34[left1]', 'Deepnest_34[right1]', 'Deepnest_34[top1]', 'Deepnest_35', 'Deepnest_35[bot1]', 'Deepnest_35[left1]', 'Deepnest_35[top1]', 'Deepnest_36[left1]', 'Deepnest_37', 'Deepnest_37[bot1]', 'Deepnest_37[left1]', 'Deepnest_37[right1]', 'Deepnest_37[top1]', 'Deepnest_38[bot1]', 'Deepnest_39', 'Deepnest_39[door1]', 'Deepnest_39[left1]', 'Deepnest_39[right1]', 'Deepnest_39[top1]', 'Deepnest_40[right1]', 'Deepnest_41[left1]', 'Deepnest_41[left2]', 'Deepnest_41[right1]', 'Deepnest_42', 'Deepnest_42[bot1]', 'Deepnest_42[left1]', 'Deepnest_42[top1]', 'Deepnest_43[bot1]', 'Deepnest_43[left1]', 'Deepnest_43[right1]', 'Deepnest_44[top1]', 'Deepnest_45_v02[left1]', 'Deepnest_East_01[bot1]', 'Deepnest_East_01[right1]', 'Deepnest_East_01[top1]', 'Deepnest_East_02', 'Deepnest_East_02[bot1]', 'Deepnest_East_02[bot2]', 'Deepnest_East_02[right1]', 'Deepnest_East_02[top1]', 'Deepnest_East_03', 'Deepnest_East_03[left1]', 'Deepnest_East_03[left2]', 'Deepnest_East_03[right1]', 'Deepnest_East_03[right2]', 'Deepnest_East_03[top1]', 'Deepnest_East_03[top2]', 'Deepnest_East_04', 'Deepnest_East_04[left1]', 'Deepnest_East_04[left2]', 'Deepnest_East_04[right1]', 'Deepnest_East_04[right2]', 'Deepnest_East_06[bot1]', 'Deepnest_East_06[door1]', 'Deepnest_East_06[left1]', 'Deepnest_East_06[right1]', 'Deepnest_East_06[top1]', 'Deepnest_East_07', 'Deepnest_East_07[bot1]', 'Deepnest_East_07[bot2]', 'Deepnest_East_07[left1]', 'Deepnest_East_07[left2]', 'Deepnest_East_07[right1]', 'Deepnest_East_08[right1]', 'Deepnest_East_08[top1]', 'Deepnest_East_09[bot1]', 'Deepnest_East_09[left1]', 'Deepnest_East_09[right1]', 'Deepnest_East_10[left1]', 'Deepnest_East_11', 'Deepnest_East_11[bot1]', 'Deepnest_East_11[left1]', 'Deepnest_East_11[right1]', 'Deepnest_East_11[top1]', 'Deepnest_East_12[left1]', 'Deepnest_East_12[right1]', 'Deepnest_East_13[bot1]', 'Deepnest_East_14[door1]', 'Deepnest_East_14[left1]', 'Deepnest_East_14[top2]', 'Deepnest_East_14b[right1]', 'Deepnest_East_14b[top1]', 'Deepnest_East_15[left1]', 'Deepnest_East_16[bot1]', 'Deepnest_East_16[left1]', 'Deepnest_East_17[left1]', 'Deepnest_East_18', 'Deepnest_East_18[bot1]', 'Deepnest_East_18[right2]', 'Deepnest_East_18[top1]', 'Deepnest_East_Hornet[left1]', 'Deepnest_East_Hornet[left2]', 'Deepnest_Spider_Town[left1]', 'Defeated_Broken_Vessel', 'Defeated_Brooding_Mawlek', 'Defeated_Collector', 'Defeated_Colosseum_1', 'Defeated_Colosseum_2', 'Defeated_Colosseum_Zote', 'Defeated_Crystal_Guardian', 'Defeated_Dung_Defender', 'Defeated_Elder_Hu', 'Defeated_Elegant_Warrior', 'Defeated_Enraged_Guardian', 'Defeated_Failed_Champion', 'Defeated_False_Knight', 'Defeated_Flukemarm', 'Defeated_Galien', 'Defeated_Gorb', 'Defeated_Grey_Prince_Zote', 'Defeated_Grimm', 'Defeated_Gruz_Mother', 'Defeated_Hive_Knight', 'Defeated_Hornet_1', 'Defeated_Hornet_2', "Defeated_King's_Station_Arena", 'Defeated_Lost_Kin', 'Defeated_Mantis_Lords', 'Defeated_Markoth', 'Defeated_Marmu', 'Defeated_No_Eyes', 'Defeated_Nosk', 'Defeated_Pale_Lurker', 'Defeated_Path_of_Pain_Arena', 'Defeated_Sanctum_Warrior', 'Defeated_Shrumal_Ogre_Arena', 'Defeated_Soul_Master', 'Defeated_Soul_Tyrant', 'Defeated_Traitor_Lord', 'Defeated_Uumuu', 'Defeated_Watcher_Knights', "Defeated_West_Queen's_Gardens_Arena", 'Defeated_White_Defender', 'Defeated_Xero', "Defender's_Crest", 'Dirtmouth_Stag', 'Distant_Village_Stag', 'ELEGANT', 'ESSENCE', 'Elevator_Pass', 'FIREBALL', 'FLAMES', 'FOCUS', 'First_Grimmchild_Upgrade', 'Fragile_Greed', 'Fragile_Heart', 'Fragile_Strength', 'Fungus1_01[left1]', 'Fungus1_01[right1]', 'Fungus1_01b[left1]', 'Fungus1_01b[right1]', 'Fungus1_02[left1]', 'Fungus1_02[right1]', 'Fungus1_02[right2]', 'Fungus1_03[bot1]', 'Fungus1_03[left1]', 'Fungus1_03[right1]', 'Fungus1_04[left1]', 'Fungus1_04[right1]', 'Fungus1_05[bot1]', 'Fungus1_05[right1]', 'Fungus1_05[top1]', 'Fungus1_06[bot1]', 'Fungus1_06[left1]', 'Fungus1_07[left1]', 'Fungus1_07[right1]', 'Fungus1_07[top1]', 'Fungus1_08[left1]', 'Fungus1_09[left1]', 'Fungus1_09[right1]', 'Fungus1_10[left1]', 'Fungus1_10[right1]', 'Fungus1_10[top1]', 'Fungus1_11', 'Fungus1_11[bot1]', 'Fungus1_11[left1]', 'Fungus1_11[right1]', 'Fungus1_11[right2]', 'Fungus1_11[top1]', 'Fungus1_12[left1]', 'Fungus1_12[right1]', 'Fungus1_13[left1]', 'Fungus1_13[right1]', 'Fungus1_14[left1]', 'Fungus1_15[door1]', 'Fungus1_15[right1]', 'Fungus1_16_alt[right1]', 'Fungus1_17[left1]', 'Fungus1_17[right1]', 'Fungus1_19[bot1]', 'Fungus1_19[left1]', 'Fungus1_19[right1]', 'Fungus1_20_v02[bot1]', 'Fungus1_20_v02[bot2]', 'Fungus1_20_v02[right1]', 'Fungus1_21', 'Fungus1_21[bot1]', 'Fungus1_21[left1]', 'Fungus1_21[right1]', 'Fungus1_21[top1]', 'Fungus1_22[bot1]', 'Fungus1_22[left1]', 'Fungus1_22[top1]', 'Fungus1_23[left1]', 'Fungus1_23[right1]', 'Fungus1_24[left1]', 'Fungus1_25[left1]', 'Fungus1_25[right1]', 'Fungus1_26[door_SlugShrine]', 'Fungus1_26[left1]', 'Fungus1_26[right1]', 'Fungus1_28[left1]', 'Fungus1_28[left2]', 'Fungus1_29[left1]', 'Fungus1_29[right1]', 'Fungus1_30', 'Fungus1_30[left1]', 'Fungus1_30[right1]', 'Fungus1_30[top1]', 'Fungus1_30[top3]', 'Fungus1_31[bot1]', 'Fungus1_31[right1]', 'Fungus1_31[top1]', 'Fungus1_32[bot1]', 'Fungus1_32[left1]', 'Fungus1_32[top1]', 'Fungus1_34[door1]', 'Fungus1_34[left1]', 'Fungus1_35[left1]', 'Fungus1_35[right1]', 'Fungus1_36[left1]', 'Fungus1_37[left1]', 'Fungus1_Slug[right1]', 'Fungus2_01', 'Fungus2_01[left1]', 'Fungus2_01[left2]', 'Fungus2_01[left3]', 'Fungus2_01[right1]', 'Fungus2_02[right1]', 'Fungus2_03', 'Fungus2_03[bot1]', 'Fungus2_03[left1]', 'Fungus2_03[right1]', 'Fungus2_04', 'Fungus2_04[left1]', 'Fungus2_04[right1]', 'Fungus2_04[right2]', 'Fungus2_04[top1]', 'Fungus2_05[bot1]', 'Fungus2_05[right1]', 'Fungus2_06', 'Fungus2_06[left1]', 'Fungus2_06[left2]', 'Fungus2_06[right1]', 'Fungus2_06[right2]', 'Fungus2_06[top1]', 'Fungus2_07[left1]', 'Fungus2_07[right1]', 'Fungus2_08[left1]', 'Fungus2_08[left2]', 'Fungus2_08[right1]', 'Fungus2_09[left1]', 'Fungus2_09[right1]', 'Fungus2_10[bot1]', 'Fungus2_10[right1]', 'Fungus2_10[right2]', 'Fungus2_11', 'Fungus2_11[left1]', 'Fungus2_11[left2]', 'Fungus2_11[right1]', 'Fungus2_11[top1]', 'Fungus2_12[bot1]', 'Fungus2_12[left1]', 'Fungus2_13', 'Fungus2_13[left2]', 'Fungus2_13[left3]', 'Fungus2_13[top1]', 'Fungus2_14', 'Fungus2_14[bot3]', 'Fungus2_14[right1]', 'Fungus2_14[top1]', 'Fungus2_15[left1]', 'Fungus2_15[right1]', 'Fungus2_15[top3]', 'Fungus2_17', 'Fungus2_17[bot1]', 'Fungus2_17[left1]', 'Fungus2_17[right1]', 'Fungus2_18[bot1]', 'Fungus2_18[right1]', 'Fungus2_18[top1]', 'Fungus2_19[left1]', 'Fungus2_19[top1]', 'Fungus2_20', 'Fungus2_20[left1]', 'Fungus2_20[right1]', 'Fungus2_21[left1]', 'Fungus2_21[right1]', 'Fungus2_23', 'Fungus2_23[right1]', 'Fungus2_23[right2]', 'Fungus2_25[right1]', 'Fungus2_25[top1]', 'Fungus2_25[top2]', 'Fungus2_26[left1]', 'Fungus2_28[left1]', 'Fungus2_28[left2]', 'Fungus2_29[bot1]', 'Fungus2_29[right1]', 'Fungus2_30[bot1]', 'Fungus2_30[top1]', 'Fungus2_31[left1]', 'Fungus2_32[left1]', 'Fungus2_33[left1]', 'Fungus2_33[right1]', 'Fungus2_34[right1]', 'Fungus3_01', 'Fungus3_01[left1]', 'Fungus3_01[right1]', 'Fungus3_01[right2]', 'Fungus3_01[top1]', 'Fungus3_02', 'Fungus3_02[left1]', 'Fungus3_02[left2]', 'Fungus3_02[left3]', 'Fungus3_02[right1]', 'Fungus3_02[right2]', 'Fungus3_03[left1]', 'Fungus3_03[right1]', 'Fungus3_04', 'Fungus3_04[left1]', 'Fungus3_04[left2]', 'Fungus3_04[right1]', 'Fungus3_04[right2]', 'Fungus3_05[left1]', 'Fungus3_05[right1]', 'Fungus3_05[right2]', 'Fungus3_08[left1]', 'Fungus3_08[right1]', 'Fungus3_08[top1]', 'Fungus3_10[bot1]', 'Fungus3_10[top1]', 'Fungus3_11', 'Fungus3_11[left1]', 'Fungus3_11[left2]', 'Fungus3_11[right1]', 'Fungus3_13', 'Fungus3_13[bot1]', 'Fungus3_13[left1]', 'Fungus3_13[left2]', 'Fungus3_13[left3]', 'Fungus3_13[right1]', 'Fungus3_21[right1]', 'Fungus3_21[top1]', 'Fungus3_22', 'Fungus3_22[bot1]', 'Fungus3_22[left1]', 'Fungus3_22[right1]', 'Fungus3_23[left1]', 'Fungus3_23[right1]', 'Fungus3_24[left1]', 'Fungus3_24[right1]', 'Fungus3_24[top1]', 'Fungus3_25[left1]', 'Fungus3_25[right1]', 'Fungus3_25b[left1]', 'Fungus3_25b[right1]', 'Fungus3_26', 'Fungus3_26[left1]', 'Fungus3_26[left2]', 'Fungus3_26[left3]', 'Fungus3_26[right1]', 'Fungus3_26[top1]', 'Fungus3_27[left1]', 'Fungus3_27[right1]', 'Fungus3_28[right1]', 'Fungus3_30[bot1]', 'Fungus3_34', 'Fungus3_34[left1]', 'Fungus3_34[right1]', 'Fungus3_34[top1]', 'Fungus3_35[right1]', 'Fungus3_39[left1]', 'Fungus3_39[right1]', 'Fungus3_40[right1]', 'Fungus3_40[top1]', 'Fungus3_44', 'Fungus3_44[bot1]', 'Fungus3_44[door1]', 'Fungus3_44[right1]', 'Fungus3_47', 'Fungus3_47[door1]', 'Fungus3_47[left1]', 'Fungus3_47[right1]', 'Fungus3_48[bot1]', 'Fungus3_48[door1]', 'Fungus3_48[right1]', 'Fungus3_48[right2]', 'Fungus3_49[right1]', 'Fungus3_50[right1]', 'Fungus3_archive[bot1]', 'Fungus3_archive[left1]', 'Fungus3_archive_02[top1]', 'GG_Lurker[left1]', 'GG_Pipeway[left1]', 'GG_Pipeway[right1]', 'GG_Waterways[door1]', 'GG_Waterways[right1]', 'GRIMMCHILD', 'Glowing_Womb', 'Great_Slash', 'Greenpath_Stag', 'Grimm_Divine[left1]', 'Grimm_Main_Tent[left1]', "Grubberfly's_Elegy", 'Herrah', 'Hidden_Station_Stag', 'Hive_01[left1]', 'Hive_01[right1]', 'Hive_01[right2]', 'Hive_02[left1]', 'Hive_02[left2]', 'Hive_02[left3]', 'Hive_03[bot1]', 'Hive_03[right1]', 'Hive_03[top1]', 'Hive_03_c', 'Hive_03_c[left1]', 'Hive_03_c[right2]', 'Hive_03_c[right3]', 'Hive_03_c[top1]', 'Hive_04[left1]', 'Hive_04[left2]', 'Hive_04[right1]', 'Hive_05[left1]', "Joni's_Blessing", "King's_Station_Stag", 'LANTERN', 'LEFTCLAW', 'LEFTDASH', 'LEFTSLASH', 'LEFTSUPERDASH', 'LOVE', 'Left_Elevator', 'Lever-Dung_Defender', 'Lever-Shade_Soul', 'Lifeblood_Core', 'Lifeblood_Heart', 'Lit_Abyss_Lighthouse', 'Longnail', 'Lower_Tram', 'MASKSHARDS', 'Mark_of_Pride', 'Mines_01[bot1]', 'Mines_01[left1]', 'Mines_02', 'Mines_02[left1]', 'Mines_02[right1]', 'Mines_02[top1]', 'Mines_02[top2]', 'Mines_03', 'Mines_03[bot1]', 'Mines_03[right1]', 'Mines_03[top1]', 'Mines_04', 'Mines_04[left1]', 'Mines_04[left2]', 'Mines_04[left3]', 'Mines_04[right1]', 'Mines_04[top1]', 'Mines_05', 'Mines_05[bot1]', 'Mines_05[left1]', 'Mines_05[left2]', 'Mines_05[right1]', 'Mines_05[top1]', 'Mines_06[left1]', 'Mines_06[right1]', 'Mines_07[left1]', 'Mines_07[right1]', 'Mines_10', 'Mines_10[bot1]', 'Mines_10[left1]', 'Mines_10[right1]', 'Mines_11', 'Mines_11[bot1]', 'Mines_11[right1]', 'Mines_11[top1]', 'Mines_13[bot1]', 'Mines_13[right1]', 'Mines_13[top1]', 'Mines_16[top1]', 'Mines_17[left1]', 'Mines_17[right1]', 'Mines_18', 'Mines_18[left1]', 'Mines_18[right1]', 'Mines_18[top1]', 'Mines_19[left1]', 'Mines_19[right1]', 'Mines_20', 'Mines_20[bot1]', 'Mines_20[left1]', 'Mines_20[left2]', 'Mines_20[left3]', 'Mines_20[right1]', 'Mines_20[right2]', 'Mines_23[left1]', 'Mines_23[right1]', 'Mines_23[right2]', 'Mines_23[top1]', 'Mines_24[left1]', 'Mines_25[left1]', 'Mines_25[top1]', 'Mines_28[bot1]', 'Mines_28[door1]', 'Mines_28[left1]', 'Mines_29[left1]', 'Mines_29[right1]', 'Mines_29[right2]', 'Mines_30[left1]', 'Mines_30[right1]', 'Mines_31[left1]', 'Mines_32[bot1]', 'Mines_33[left1]', 'Mines_33[right1]', 'Mines_34[bot1]', 'Mines_34[bot2]', 'Mines_34[left1]', 'Mines_35[left1]', 'Mines_36[right1]', 'Mines_37[bot1]', 'Mines_37[top1]', 'NOTCHES', 'Nightmare_Lantern_Lit', 'Opened_Archives_Exit_Wall', 'Opened_Black_Egg_Temple', 'Opened_Dung_Defender_Wall', 'Opened_Emilitia_Door', 'Opened_Gardens_Stag_Exit', 'Opened_Glade_Door', "Opened_Lower_Kingdom's_Edge_Wall", 'Opened_Mawlek_Wall', 'Opened_Pleasure_House_Wall', 'Opened_Resting_Grounds_Catacombs_Wall', 'Opened_Resting_Grounds_Floor', 'Opened_Shaman_Pillar', 'Opened_Tramway_Exit_Gate', 'Opened_Waterways_Exit', 'Opened_Waterways_Manhole', 'Palace_Atrium_Gates_Opened', 'Palace_Entrance_Lantern_Lit', 'Palace_Left_Lantern_Lit', 'Palace_Right_Lantern_Lit', 'QUAKE', "Queen's_Gardens_Stag", "Queen's_Station_Stag", 'RIGHTCLAW', 'RIGHTDASH', 'RIGHTSLASH', 'RIGHTSUPERDASH', 'Rescued_Bretta', 'Rescued_Deepnest_Zote', 'Rescued_Sly', 'RestingGrounds_02', 'RestingGrounds_02[bot1]', 'RestingGrounds_02[left1]', 'RestingGrounds_02[right1]', 'RestingGrounds_02[top1]', 'RestingGrounds_04[left1]', 'RestingGrounds_04[right1]', 'RestingGrounds_05', 'RestingGrounds_05[bot1]', 'RestingGrounds_05[left1]', 'RestingGrounds_05[left2]', 'RestingGrounds_05[left3]', 'RestingGrounds_05[right1]', 'RestingGrounds_05[right2]', 'RestingGrounds_06[left1]', 'RestingGrounds_06[right1]', 'RestingGrounds_06[top1]', 'RestingGrounds_07[right1]', 'RestingGrounds_08[left1]', 'RestingGrounds_09[left1]', 'RestingGrounds_10', 'RestingGrounds_10[left1]', 'RestingGrounds_10[top1]', 'RestingGrounds_10[top2]', 'RestingGrounds_12[bot1]', 'RestingGrounds_12[door_Mansion]', 'RestingGrounds_17[right1]', 'Resting_Grounds_Stag', 'Right_Elevator', 'Room_Bretta[right1]', 'Room_Charm_Shop[left1]', 'Room_Colosseum_01[bot1]', 'Room_Colosseum_01[left1]', 'Room_Colosseum_02[top1]', 'Room_Colosseum_02[top2]', 'Room_Colosseum_Spectate[bot1]', 'Room_Colosseum_Spectate[right1]', 'Room_Fungus_Shaman[left1]', 'Room_GG_Shortcut[left1]', 'Room_GG_Shortcut[top1]', 'Room_Mansion[left1]', 'Room_Mask_Maker[right1]', 'Room_Mender_House[left1]', 'Room_Ouiji[left1]', 'Room_Queen[left1]', 'Room_Slug_Shrine[left1]', 'Room_Town_Stag_Station[left1]', 'Room_Wyrm[right1]', 'Room_mapper[left1]', 'Room_nailmaster[left1]', 'Room_nailmaster_02[left1]', 'Room_nailmaster_03[left1]', 'Room_nailsmith[left1]', 'Room_ruinhouse[left1]', 'Room_shop[left1]', 'Room_spider_small[left1]', 'Room_temple[left1]', 'Ruins1_01[bot1]', 'Ruins1_01[left1]', 'Ruins1_01[top1]', 'Ruins1_02[bot1]', 'Ruins1_02[top1]', 'Ruins1_03', 'Ruins1_03[left1]', 'Ruins1_03[right1]', 'Ruins1_03[right2]', 'Ruins1_03[top1]', 'Ruins1_04[bot1]', 'Ruins1_04[door1]', 'Ruins1_04[right1]', 'Ruins1_05', 'Ruins1_05[bot1]', 'Ruins1_05[bot2]', 'Ruins1_05[bot3]', 'Ruins1_05[right1]', 'Ruins1_05[right2]', 'Ruins1_05[top1]', 'Ruins1_05b', 'Ruins1_05b[bot1]', 'Ruins1_05b[left1]', 'Ruins1_05b[right1]', 'Ruins1_05b[top1]', 'Ruins1_05c', 'Ruins1_05c[bot1]', 'Ruins1_05c[left2]', 'Ruins1_05c[top1]', 'Ruins1_05c[top2]', 'Ruins1_05c[top3]', 'Ruins1_06[left1]', 'Ruins1_06[right1]', 'Ruins1_09[left1]', 'Ruins1_09[top1]', 'Ruins1_17[bot1]', 'Ruins1_17[right1]', 'Ruins1_17[top1]', 'Ruins1_18[left1]', 'Ruins1_18[right1]', 'Ruins1_18[right2]', 'Ruins1_23', 'Ruins1_23[bot1]', 'Ruins1_23[left1]', 'Ruins1_23[right1]', 'Ruins1_23[right2]', 'Ruins1_23[top1]', 'Ruins1_24[left1]', 'Ruins1_24[left2]', 'Ruins1_24[right1]', 'Ruins1_24[right2]', 'Ruins1_25[left1]', 'Ruins1_25[left2]', 'Ruins1_25[left3]', 'Ruins1_27[left1]', 'Ruins1_27[right1]', 'Ruins1_28', 'Ruins1_28[bot1]', 'Ruins1_28[left1]', 'Ruins1_28[right1]', 'Ruins1_29[left1]', 'Ruins1_30', 'Ruins1_30[bot1]', 'Ruins1_30[left1]', 'Ruins1_30[left2]', 'Ruins1_30[right1]', 'Ruins1_31', 'Ruins1_31[bot1]', 'Ruins1_31[left1]', 'Ruins1_31[left2]', 'Ruins1_31[left3]', 'Ruins1_31[right1]', 'Ruins1_31b[right1]', 'Ruins1_31b[right2]', 'Ruins1_32[right1]', 'Ruins1_32[right2]', 'Ruins2_01', 'Ruins2_01[bot1]', 'Ruins2_01[left2]', 'Ruins2_01[top1]', 'Ruins2_01_b', 'Ruins2_01_b[left1]', 'Ruins2_01_b[right1]', 'Ruins2_01_b[top1]', 'Ruins2_03[bot1]', 'Ruins2_03[bot2]', 'Ruins2_03[top1]', 'Ruins2_03b', 'Ruins2_03b[bot1]', 'Ruins2_03b[left1]', 'Ruins2_03b[top1]', 'Ruins2_03b[top2]', 'Ruins2_04', 'Ruins2_04[door_Ruin_Elevator]', 'Ruins2_04[door_Ruin_House_01]', 'Ruins2_04[door_Ruin_House_02]', 'Ruins2_04[door_Ruin_House_03]', 'Ruins2_04[left1]', 'Ruins2_04[left2]', 'Ruins2_04[right1]', 'Ruins2_04[right2]', 'Ruins2_05[bot1]', 'Ruins2_05[left1]', 'Ruins2_05[top1]', 'Ruins2_06[left1]', 'Ruins2_06[left2]', 'Ruins2_06[right1]', 'Ruins2_06[right2]', 'Ruins2_06[top1]', 'Ruins2_07[left1]', 'Ruins2_07[right1]', 'Ruins2_07[top1]', 'Ruins2_08[left1]', 'Ruins2_09[bot1]', 'Ruins2_10[left1]', 'Ruins2_10[right1]', 'Ruins2_10b[left1]', 'Ruins2_10b[right1]', 'Ruins2_10b[right2]', 'Ruins2_11[right1]', 'Ruins2_11_b[bot1]', 'Ruins2_11_b[left1]', 'Ruins2_11_b[right1]', 'Ruins2_Watcher_Room[bot1]', 'Ruins_Bathhouse[door1]', 'Ruins_Bathhouse[right1]', 'Ruins_Elevator[left1]', 'Ruins_Elevator[left2]', 'Ruins_House_01[left1]', 'Ruins_House_02[left1]', 'Ruins_House_03[left1]', 'Ruins_House_03[left2]', 'SCREAM', 'SHOPKEY', 'SIMPLE', 'SPELLS', 'STAGS', 'SWIM', 'Second_Grimmchild_Upgrade', 'Sharp_Shadow', 'Spore_Shroom', 'Sprintmaster', 'Stag_Nest_Stag', 'TRAM', 'Town', 'Town[bot1]', 'Town[door_bretta]', 'Town[door_jiji]', 'Town[door_mapper]', 'Town[door_sly]', 'Town[door_station]', 'Town[left1]', 'Town[right1]', 'Town[room_divine]', 'Town[room_grimm]', 'Town[top1]', 'Tutorial_01', 'Tutorial_01[right1]', 'Tutorial_01[top1]', 'Tutorial_01[top2]', 'UPSLASH', 'Upper_Tram', 'WHITEFRAGMENT', 'WINGS', 'Warp-Lifeblood_Core_to_Abyss', 'Warp-Palace_Grounds_to_White_Palace', 'Warp-Path_of_Pain_Complete', 'Warp-White_Palace_Atrium_to_Palace_Grounds', 'Warp-White_Palace_Entrance_to_Palace_Grounds', 'Waterways_01', 'Waterways_01[bot1]', 'Waterways_01[left1]', 'Waterways_01[right1]', 'Waterways_01[top1]', 'Waterways_02', 'Waterways_02[bot1]', 'Waterways_02[bot2]', 'Waterways_02[top1]', 'Waterways_02[top2]', 'Waterways_02[top3]', 'Waterways_03[left1]', 'Waterways_04[bot1]', 'Waterways_04[left1]', 'Waterways_04[left2]', 'Waterways_04[right1]', 'Waterways_04b[left1]', 'Waterways_04b[right1]', 'Waterways_04b[right2]', 'Waterways_05[bot1]', 'Waterways_05[bot2]', 'Waterways_05[right1]', 'Waterways_06[right1]', 'Waterways_06[top1]', 'Waterways_07', 'Waterways_07[door1]', 'Waterways_07[left1]', 'Waterways_07[right1]', 'Waterways_07[right2]', 'Waterways_07[top1]', 'Waterways_08[left1]', 'Waterways_08[left2]', 'Waterways_08[top1]', 'Waterways_09[left1]', 'Waterways_09[right1]', 'Waterways_12[right1]', 'Waterways_13[left1]', 'Waterways_13[left2]', 'Waterways_14[bot1]', 'Waterways_14[bot2]', 'Waterways_15[top1]', 'Weaversong', 'White_Palace_01', 'White_Palace_01[left1]', 'White_Palace_01[right1]', 'White_Palace_01[top1]', 'White_Palace_02[left1]', 'White_Palace_03_hub', 'White_Palace_03_hub[bot1]', 'White_Palace_03_hub[left1]', 'White_Palace_03_hub[left2]', 'White_Palace_03_hub[right1]', 'White_Palace_03_hub[top1]', 'White_Palace_04[right2]', 'White_Palace_04[top1]', 'White_Palace_05[left1]', 'White_Palace_05[left2]', 'White_Palace_05[right1]', 'White_Palace_05[right2]', 'White_Palace_06[bot1]', 'White_Palace_06[left1]', 'White_Palace_06[top1]', 'White_Palace_07[bot1]', 'White_Palace_07[top1]', 'White_Palace_08[left1]', 'White_Palace_08[right1]', 'White_Palace_09[right1]', 'White_Palace_11[door2]', 'White_Palace_12[bot1]', 'White_Palace_12[right1]', 'White_Palace_13', 'White_Palace_13[left1]', 'White_Palace_13[left2]', 'White_Palace_13[left3]', 'White_Palace_13[right1]', 'White_Palace_14[bot1]', 'White_Palace_14[right1]', 'White_Palace_15[left1]', 'White_Palace_15[right1]', 'White_Palace_15[right2]', 'White_Palace_16[left1]', 'White_Palace_16[left2]', 'White_Palace_17[bot1]', 'White_Palace_17[right1]', 'White_Palace_18[right1]', 'White_Palace_18[top1]', 'White_Palace_19[left1]', 'White_Palace_19[top1]', 'White_Palace_20[bot1]'} -logic_options = {'PRECISEMOVEMENT': 'PreciseMovement', 'PROFICIENTCOMBAT': 'ProficientCombat', 'BACKGROUNDPOGOS': 'BackgroundObjectPogos', 'ENEMYPOGOS': 'EnemyPogos', 'OBSCURESKIPS': 'ObscureSkips', 'SHADESKIPS': 'ShadeSkips', 'INFECTIONSKIPS': 'InfectionSkips', 'FIREBALLSKIPS': 'FireballSkips', 'SPIKETUNNELS': 'SpikeTunnels', 'ACIDSKIPS': 'AcidSkips', 'DAMAGEBOOSTS': 'DamageBoosts', 'DANGEROUSSKIPS': 'DangerousSkips', 'DARKROOMS': 'DarkRooms', 'COMPLEXSKIPS': 'ComplexSkips', 'DIFFICULTSKIPS': 'DifficultSkips', 'RANDOMNAIL': 'RandomizeNail', 'CURSED': 'RemoveSpellUpgrades', 'RANDOMFOCUS': 'RandomizeFocus'} +logic_options = {'PRECISEMOVEMENT': 'PreciseMovement', 'PROFICIENTCOMBAT': 'ProficientCombat', 'BACKGROUNDPOGOS': 'BackgroundObjectPogos', 'ENEMYPOGOS': 'EnemyPogos', 'OBSCURESKIPS': 'ObscureSkips', 'SHADESKIPS': 'ShadeSkips', 'INFECTIONSKIPS': 'InfectionSkips', 'FIREBALLSKIPS': 'FireballSkips', 'SPIKETUNNELS': 'SpikeTunnels', 'ACIDSKIPS': 'AcidSkips', 'DAMAGEBOOSTS': 'DamageBoosts', 'DANGEROUSSKIPS': 'DangerousSkips', 'DARKROOMS': 'DarkRooms', 'COMPLEXSKIPS': 'ComplexSkips', 'DIFFICULTSKIPS': 'DifficultSkips', 'RANDOMNAIL': 'RandomizeNail', 'CURSED': 'RemoveSpellUpgrades', 'RANDOMFOCUS': 'RandomizeFocus', 'RANDOMELEVATORS': 'RandomizeElevatorPass'} multi_locations = {'Sly': ['Sly_1', 'Sly_2', 'Sly_3', 'Sly_4', 'Sly_5', 'Sly_6', 'Sly_7', 'Sly_8', 'Sly_9', 'Sly_10', 'Sly_11', 'Sly_12', 'Sly_13', 'Sly_14', 'Sly_15', 'Sly_16'], 'Sly_(Key)': ['Sly_(Key)_1', 'Sly_(Key)_2', 'Sly_(Key)_3', 'Sly_(Key)_4', 'Sly_(Key)_5', 'Sly_(Key)_6', 'Sly_(Key)_7', 'Sly_(Key)_8', 'Sly_(Key)_9', 'Sly_(Key)_10', 'Sly_(Key)_11', 'Sly_(Key)_12', 'Sly_(Key)_13', 'Sly_(Key)_14', 'Sly_(Key)_15', 'Sly_(Key)_16'], 'Iselda': ['Iselda_1', 'Iselda_2', 'Iselda_3', 'Iselda_4', 'Iselda_5', 'Iselda_6', 'Iselda_7', 'Iselda_8', 'Iselda_9', 'Iselda_10', 'Iselda_11', 'Iselda_12', 'Iselda_13', 'Iselda_14', 'Iselda_15', 'Iselda_16'], 'Salubra': ['Salubra_1', 'Salubra_2', 'Salubra_3', 'Salubra_4', 'Salubra_5', 'Salubra_6', 'Salubra_7', 'Salubra_8', 'Salubra_9', 'Salubra_10', 'Salubra_11', 'Salubra_12', 'Salubra_13', 'Salubra_14', 'Salubra_15', 'Salubra_16'], 'Salubra_(Requires_Charms)': ['Salubra_(Requires_Charms)_1', 'Salubra_(Requires_Charms)_2', 'Salubra_(Requires_Charms)_3', 'Salubra_(Requires_Charms)_4', 'Salubra_(Requires_Charms)_5', 'Salubra_(Requires_Charms)_6', 'Salubra_(Requires_Charms)_7', 'Salubra_(Requires_Charms)_8', 'Salubra_(Requires_Charms)_9', 'Salubra_(Requires_Charms)_10', 'Salubra_(Requires_Charms)_11', 'Salubra_(Requires_Charms)_12', 'Salubra_(Requires_Charms)_13', 'Salubra_(Requires_Charms)_14', 'Salubra_(Requires_Charms)_15', 'Salubra_(Requires_Charms)_16'], 'Leg_Eater': ['Leg_Eater_1', 'Leg_Eater_2', 'Leg_Eater_3', 'Leg_Eater_4', 'Leg_Eater_5', 'Leg_Eater_6', 'Leg_Eater_7', 'Leg_Eater_8', 'Leg_Eater_9', 'Leg_Eater_10', 'Leg_Eater_11', 'Leg_Eater_12', 'Leg_Eater_13', 'Leg_Eater_14', 'Leg_Eater_15', 'Leg_Eater_16'], 'Grubfather': ['Grubfather_1', 'Grubfather_2', 'Grubfather_3', 'Grubfather_4', 'Grubfather_5', 'Grubfather_6', 'Grubfather_7', 'Grubfather_8', 'Grubfather_9', 'Grubfather_10', 'Grubfather_11', 'Grubfather_12', 'Grubfather_13', 'Grubfather_14', 'Grubfather_15', 'Grubfather_16'], 'Seer': ['Seer_1', 'Seer_2', 'Seer_3', 'Seer_4', 'Seer_5', 'Seer_6', 'Seer_7', 'Seer_8', 'Seer_9', 'Seer_10', 'Seer_11', 'Seer_12', 'Seer_13', 'Seer_14', 'Seer_15', 'Seer_16'], 'Egg_Shop': ['Egg_Shop_1', 'Egg_Shop_2', 'Egg_Shop_3', 'Egg_Shop_4', 'Egg_Shop_5', 'Egg_Shop_6', 'Egg_Shop_7', 'Egg_Shop_8', 'Egg_Shop_9', 'Egg_Shop_10', 'Egg_Shop_11', 'Egg_Shop_12', 'Egg_Shop_13', 'Egg_Shop_14', 'Egg_Shop_15', 'Egg_Shop_16']} one_ways = {'Cliffs_02[bot2]', 'Cliffs_02[right1]', 'Deepnest_01[bot2]', 'Deepnest_01b[top2]', 'Deepnest_East_03[top2]', 'Deepnest_East_07[bot2]', 'Fungus2_25[top2]', 'Fungus2_30[bot1]', 'Mines_13[top1]', 'Mines_23[top1]', 'Mines_28[bot1]', 'Mines_34[bot2]', 'Mines_34[left1]', 'RestingGrounds_02[top1]', 'Town[top1]', 'Tutorial_01[top1]'} pool_options = {'RandomizeDreamers': (['Lurien', 'Monomon', 'Herrah', 'World_Sense'], ['Lurien', 'Monomon', 'Herrah', 'World_Sense']), 'RandomizeSkills': (['Mothwing_Cloak', 'Mantis_Claw', 'Crystal_Heart', 'Monarch_Wings', 'Shade_Cloak', "Isma's_Tear", 'Dream_Nail', 'Dream_Gate', 'Awoken_Dream_Nail', 'Vengeful_Spirit', 'Shade_Soul', 'Desolate_Dive', 'Descending_Dark', 'Howling_Wraiths', 'Abyss_Shriek', 'Cyclone_Slash', 'Dash_Slash', 'Great_Slash'], ['Mothwing_Cloak', 'Mantis_Claw', 'Crystal_Heart', 'Monarch_Wings', 'Shade_Cloak', "Isma's_Tear", 'Dream_Nail', 'Seer', 'Seer', 'Vengeful_Spirit', 'Shade_Soul', 'Desolate_Dive', 'Descending_Dark', 'Howling_Wraiths', 'Abyss_Shriek', 'Cyclone_Slash', 'Dash_Slash', 'Great_Slash']), 'RandomizeFocus': (['Focus'], ['Start']), 'RandomizeSwim': (['Swim'], ['Start']), 'RandomizeCharms': (['Grubsong', 'Baldur_Shell', 'Fury_of_the_Fallen', 'Lifeblood_Core', "Defender's_Crest", 'Flukenest', 'Thorns_of_Agony', 'Mark_of_Pride', 'Sharp_Shadow', 'Spore_Shroom', 'Soul_Catcher', 'Soul_Eater', 'Glowing_Womb', "Nailmaster's_Glory", "Joni's_Blessing", 'Shape_of_Unn', 'Hiveblood', 'Dream_Wielder', 'Dashmaster', 'Quick_Slash', 'Spell_Twister', 'Deep_Focus', "Grubberfly's_Elegy", 'Queen_Fragment', 'King_Fragment', 'Void_Heart', 'Dreamshield', 'Weaversong', 'Grimmchild2', 'Gathering_Swarm', 'Stalwart_Shell', 'Heavy_Blow', 'Sprintmaster', 'Wayward_Compass', 'Lifeblood_Heart', 'Longnail', 'Steady_Body', 'Shaman_Stone', 'Quick_Focus', 'Fragile_Heart', 'Fragile_Greed', 'Fragile_Strength', 'Unbreakable_Heart', 'Unbreakable_Greed', 'Unbreakable_Strength'], ['Grubfather', 'Baldur_Shell', 'Fury_of_the_Fallen', 'Lifeblood_Core', "Defender's_Crest", 'Flukenest', 'Thorns_of_Agony', 'Mark_of_Pride', 'Sharp_Shadow', 'Spore_Shroom', 'Soul_Catcher', 'Soul_Eater', 'Glowing_Womb', "Nailmaster's_Glory", "Joni's_Blessing", 'Shape_of_Unn', 'Hiveblood', 'Seer', 'Dashmaster', 'Quick_Slash', 'Spell_Twister', 'Deep_Focus', 'Grubfather', 'Queen_Fragment', 'King_Fragment', 'Void_Heart', 'Dreamshield', 'Weaversong', 'Grimmchild', 'Sly', 'Sly', 'Sly_(Key)', 'Sly_(Key)', 'Iselda', 'Salubra', 'Salubra', 'Salubra', 'Salubra', 'Salubra', 'Leg_Eater', 'Leg_Eater', 'Leg_Eater', 'Unbreakable_Heart', 'Unbreakable_Greed', 'Unbreakable_Strength']), 'RandomizeKeys': (['City_Crest', 'Tram_Pass', 'Simple_Key', 'Simple_Key', 'Simple_Key', "Shopkeeper's_Key", 'Love_Key', "King's_Brand", 'Godtuner', "Collector's_Map", 'Lumafly_Lantern', 'Simple_Key', 'Elegant_Key'], ['City_Crest', 'Tram_Pass', 'Simple_Key-Basin', 'Simple_Key-City', 'Simple_Key-Lurker', "Shopkeeper's_Key", 'Love_Key', "King's_Brand", 'Godtuner', "Collector's_Map", 'Sly', 'Sly', 'Sly_(Key)']), 'RandomizeMaskShards': (['Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard', 'Mask_Shard'], ['Seer', 'Grubfather', 'Mask_Shard-Brooding_Mawlek', 'Mask_Shard-Crossroads_Goam', 'Mask_Shard-Stone_Sanctuary', "Mask_Shard-Queen's_Station", 'Mask_Shard-Deepnest', 'Mask_Shard-Waterways', 'Mask_Shard-Enraged_Guardian', 'Mask_Shard-Hive', 'Mask_Shard-Grey_Mourner', 'Mask_Shard-Bretta', 'Sly', 'Sly', 'Sly_(Key)', 'Sly_(Key)']), 'RandomizeVesselFragments': (['Vessel_Fragment', 'Vessel_Fragment', 'Vessel_Fragment', 'Vessel_Fragment', 'Vessel_Fragment', 'Vessel_Fragment', 'Vessel_Fragment', 'Vessel_Fragment', 'Vessel_Fragment'], ['Seer', 'Vessel_Fragment-Greenpath', 'Vessel_Fragment-City', 'Vessel_Fragment-Crossroads', 'Vessel_Fragment-Basin', 'Vessel_Fragment-Deepnest', 'Vessel_Fragment-Stag_Nest', 'Sly', 'Sly_(Key)']), 'RandomizeCharmNotches': (['Charm_Notch', 'Charm_Notch', 'Charm_Notch', 'Charm_Notch', 'Charm_Notch', 'Charm_Notch', 'Charm_Notch', 'Charm_Notch', "Salubra's_Blessing"], ['Charm_Notch-Shrumal_Ogres', 'Charm_Notch-Fog_Canyon', 'Charm_Notch-Colosseum', 'Charm_Notch-Grimm', 'Salubra_(Requires_Charms)', 'Salubra_(Requires_Charms)', 'Salubra_(Requires_Charms)', 'Salubra_(Requires_Charms)', 'Salubra_(Requires_Charms)']), 'RandomizePaleOre': (['Pale_Ore', 'Pale_Ore', 'Pale_Ore', 'Pale_Ore', 'Pale_Ore', 'Pale_Ore'], ['Pale_Ore-Basin', 'Pale_Ore-Crystal_Peak', 'Pale_Ore-Nosk', 'Seer', 'Grubfather', 'Pale_Ore-Colosseum']), 'RandomizeGeoChests': (['Geo_Chest-False_Knight', 'Geo_Chest-Soul_Master', 'Geo_Chest-Watcher_Knights', 'Geo_Chest-Greenpath', 'Geo_Chest-Mantis_Lords', 'Geo_Chest-Resting_Grounds', 'Geo_Chest-Crystal_Peak', 'Geo_Chest-Weavers_Den'], ['Geo_Chest-False_Knight', 'Geo_Chest-Soul_Master', 'Geo_Chest-Watcher_Knights', 'Geo_Chest-Greenpath', 'Geo_Chest-Mantis_Lords', 'Geo_Chest-Resting_Grounds', 'Geo_Chest-Crystal_Peak', 'Geo_Chest-Weavers_Den']), 'RandomizeJunkPitChests': (['Geo_Chest-Junk_Pit_1', 'Geo_Chest-Junk_Pit_2', 'Geo_Chest-Junk_Pit_3', 'Geo_Chest-Junk_Pit_5', 'Lumafly_Escape'], ['Geo_Chest-Junk_Pit_1', 'Geo_Chest-Junk_Pit_2', 'Geo_Chest-Junk_Pit_3', 'Geo_Chest-Junk_Pit_5', 'Lumafly_Escape-Junk_Pit_Chest_4']), 'RandomizeRancidEggs': (['Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg', 'Rancid_Egg'], ['Grubfather', 'Rancid_Egg-Sheo', 'Rancid_Egg-Fungal_Core', "Rancid_Egg-Queen's_Gardens", 'Rancid_Egg-Blue_Lake', 'Rancid_Egg-Crystal_Peak_Dive_Entrance', 'Rancid_Egg-Crystal_Peak_Dark_Room', 'Rancid_Egg-Crystal_Peak_Tall_Room', 'Rancid_Egg-City_of_Tears_Left', 'Rancid_Egg-City_of_Tears_Pleasure_House', "Rancid_Egg-Beast's_Den", 'Rancid_Egg-Dark_Deepnest', "Rancid_Egg-Weaver's_Den", 'Rancid_Egg-Near_Quick_Slash', "Rancid_Egg-Upper_Kingdom's_Edge", 'Rancid_Egg-Waterways_East', 'Rancid_Egg-Waterways_Main', 'Rancid_Egg-Waterways_West_Bluggsac', 'Rancid_Egg-Waterways_West_Pickup', 'Sly']), 'RandomizeRelics': (["Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", "Wanderer's_Journal", 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', 'Hallownest_Seal', "King's_Idol", "King's_Idol", "King's_Idol", "King's_Idol", "King's_Idol", "King's_Idol", "King's_Idol", "King's_Idol", 'Arcane_Egg', 'Arcane_Egg', 'Arcane_Egg', 'Arcane_Egg'], ["Wanderer's_Journal-Cliffs", "Wanderer's_Journal-Greenpath_Stag", "Wanderer's_Journal-Greenpath_Lower", "Wanderer's_Journal-Fungal_Wastes_Thorns_Gauntlet", "Wanderer's_Journal-Above_Mantis_Village", "Wanderer's_Journal-Crystal_Peak_Crawlers", "Wanderer's_Journal-Resting_Grounds_Catacombs", "Wanderer's_Journal-King's_Station", "Wanderer's_Journal-Pleasure_House", "Wanderer's_Journal-City_Storerooms", "Wanderer's_Journal-Ancient_Basin", "Wanderer's_Journal-Kingdom's_Edge_Entrance", "Wanderer's_Journal-Kingdom's_Edge_Camp", "Wanderer's_Journal-Kingdom's_Edge_Requires_Dive", 'Hallownest_Seal-Crossroads_Well', 'Grubfather', 'Hallownest_Seal-Greenpath', 'Hallownest_Seal-Fog_Canyon_West', 'Hallownest_Seal-Fog_Canyon_East', "Hallownest_Seal-Queen's_Station", 'Hallownest_Seal-Fungal_Wastes_Sporgs', 'Hallownest_Seal-Mantis_Lords', 'Seer', 'Hallownest_Seal-Resting_Grounds_Catacombs', "Hallownest_Seal-King's_Station", 'Hallownest_Seal-City_Rafters', 'Hallownest_Seal-Soul_Sanctum', 'Hallownest_Seal-Watcher_Knight', 'Hallownest_Seal-Deepnest_By_Mantis_Lords', "Hallownest_Seal-Beast's_Den", "Hallownest_Seal-Queen's_Gardens", 'Grubfather', "King's_Idol-Cliffs", "King's_Idol-Crystal_Peak", "King's_Idol-Glade_of_Hope", "King's_Idol-Dung_Defender", "King's_Idol-Great_Hopper", "King's_Idol-Pale_Lurker", "King's_Idol-Deepnest", 'Seer', 'Arcane_Egg-Lifeblood_Core', 'Arcane_Egg-Shade_Cloak', 'Arcane_Egg-Birthplace']), 'RandomizeWhisperingRoots': (['Whispering_Root-Crossroads', 'Whispering_Root-Greenpath', 'Whispering_Root-Leg_Eater', 'Whispering_Root-Mantis_Village', 'Whispering_Root-Deepnest', 'Whispering_Root-Queens_Gardens', 'Whispering_Root-Kingdoms_Edge', 'Whispering_Root-Waterways', 'Whispering_Root-City', 'Whispering_Root-Resting_Grounds', 'Whispering_Root-Spirits_Glade', 'Whispering_Root-Crystal_Peak', 'Whispering_Root-Howling_Cliffs', 'Whispering_Root-Ancestral_Mound', 'Whispering_Root-Hive'], ['Whispering_Root-Crossroads', 'Whispering_Root-Greenpath', 'Whispering_Root-Leg_Eater', 'Whispering_Root-Mantis_Village', 'Whispering_Root-Deepnest', 'Whispering_Root-Queens_Gardens', 'Whispering_Root-Kingdoms_Edge', 'Whispering_Root-Waterways', 'Whispering_Root-City', 'Whispering_Root-Resting_Grounds', 'Whispering_Root-Spirits_Glade', 'Whispering_Root-Crystal_Peak', 'Whispering_Root-Howling_Cliffs', 'Whispering_Root-Ancestral_Mound', 'Whispering_Root-Hive']), 'RandomizeBossEssence': (['Boss_Essence-Elder_Hu', 'Boss_Essence-Xero', 'Boss_Essence-Gorb', 'Boss_Essence-Marmu', 'Boss_Essence-No_Eyes', 'Boss_Essence-Galien', 'Boss_Essence-Markoth', 'Boss_Essence-Failed_Champion', 'Boss_Essence-Soul_Tyrant', 'Boss_Essence-Lost_Kin', 'Boss_Essence-White_Defender', 'Boss_Essence-Grey_Prince_Zote'], ['Boss_Essence-Elder_Hu', 'Boss_Essence-Xero', 'Boss_Essence-Gorb', 'Boss_Essence-Marmu', 'Boss_Essence-No_Eyes', 'Boss_Essence-Galien', 'Boss_Essence-Markoth', 'Boss_Essence-Failed_Champion', 'Boss_Essence-Soul_Tyrant', 'Boss_Essence-Lost_Kin', 'Boss_Essence-White_Defender', 'Boss_Essence-Grey_Prince_Zote']), 'RandomizeGrubs': (['Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub', 'Grub'], ['Grub-Crossroads_Acid', 'Grub-Crossroads_Center', 'Grub-Crossroads_Stag', 'Grub-Crossroads_Spike', 'Grub-Crossroads_Guarded', 'Grub-Greenpath_Cornifer', 'Grub-Greenpath_Journal', 'Grub-Greenpath_MMC', 'Grub-Greenpath_Stag', 'Grub-Fog_Canyon', 'Grub-Fungal_Bouncy', 'Grub-Fungal_Spore_Shroom', 'Grub-Deepnest_Mimic', 'Grub-Deepnest_Nosk', 'Grub-Deepnest_Spike', 'Grub-Dark_Deepnest', "Grub-Beast's_Den", "Grub-Kingdom's_Edge_Oro", "Grub-Kingdom's_Edge_Camp", 'Grub-Hive_External', 'Grub-Hive_Internal', 'Grub-Basin_Requires_Wings', 'Grub-Basin_Requires_Dive', 'Grub-Waterways_Main', "Grub-Isma's_Grove", 'Grub-Waterways_Requires_Tram', 'Grub-City_of_Tears_Left', 'Grub-Soul_Sanctum', "Grub-Watcher's_Spire", 'Grub-City_of_Tears_Guarded', "Grub-King's_Station", 'Grub-Resting_Grounds', 'Grub-Crystal_Peak_Below_Chest', 'Grub-Crystallized_Mound', 'Grub-Crystal_Peak_Spike', 'Grub-Crystal_Peak_Mimic', 'Grub-Crystal_Peak_Crushers', 'Grub-Crystal_Heart', 'Grub-Hallownest_Crown', 'Grub-Howling_Cliffs', "Grub-Queen's_Gardens_Stag", "Grub-Queen's_Gardens_Marmu", "Grub-Queen's_Gardens_Top", 'Grub-Collector_1', 'Grub-Collector_2', 'Grub-Collector_3']), 'RandomizeMimics': (['Mimic_Grub', 'Mimic_Grub', 'Mimic_Grub', 'Mimic_Grub'], ['Mimic_Grub-Deepnest_1', 'Mimic_Grub-Deepnest_2', 'Mimic_Grub-Deepnest_3', 'Mimic_Grub-Crystal_Peak']), 'RandomizeMaps': (['Crossroads_Map', 'Greenpath_Map', 'Fog_Canyon_Map', 'Fungal_Wastes_Map', 'Deepnest_Map', 'Deepnest_Map', 'Ancient_Basin_Map', "Kingdom's_Edge_Map", 'City_of_Tears_Map', 'Royal_Waterways_Map', 'Howling_Cliffs_Map', 'Crystal_Peak_Map', "Queen's_Gardens_Map", 'Resting_Grounds_Map', 'Quill'], ['Crossroads_Map', 'Greenpath_Map', 'Fog_Canyon_Map', 'Fungal_Wastes_Map', 'Deepnest_Map-Upper', 'Deepnest_Map-Right', 'Ancient_Basin_Map', "Kingdom's_Edge_Map", 'City_of_Tears_Map', 'Royal_Waterways_Map', 'Howling_Cliffs_Map', 'Crystal_Peak_Map', "Queen's_Gardens_Map", 'Resting_Grounds_Map', 'Iselda']), 'RandomizeStags': (['Dirtmouth_Stag', 'Crossroads_Stag', 'Greenpath_Stag', "Queen's_Station_Stag", "Queen's_Gardens_Stag", 'City_Storerooms_Stag', "King's_Station_Stag", 'Resting_Grounds_Stag', 'Distant_Village_Stag', 'Hidden_Station_Stag', 'Stag_Nest_Stag'], ['Dirtmouth_Stag', 'Crossroads_Stag', 'Greenpath_Stag', "Queen's_Station_Stag", "Queen's_Gardens_Stag", 'City_Storerooms_Stag', "King's_Station_Stag", 'Resting_Grounds_Stag', 'Distant_Village_Stag', 'Hidden_Station_Stag', 'Stag_Nest_Stag']), 'RandomizeLifebloodCocoons': (['Lifeblood_Cocoon_Small', 'Lifeblood_Cocoon_Small', 'Lifeblood_Cocoon_Small', 'Lifeblood_Cocoon_Large', 'Lifeblood_Cocoon_Small', 'Lifeblood_Cocoon_Small', 'Lifeblood_Cocoon_Large', 'Lifeblood_Cocoon_Large'], ["Lifeblood_Cocoon-King's_Pass", 'Lifeblood_Cocoon-Ancestral_Mound', 'Lifeblood_Cocoon-Greenpath', 'Lifeblood_Cocoon-Fog_Canyon_West', 'Lifeblood_Cocoon-Mantis_Village', 'Lifeblood_Cocoon-Failed_Tramway', 'Lifeblood_Cocoon-Galien', "Lifeblood_Cocoon-Kingdom's_Edge"]), 'RandomizeGrimmkinFlames': (['Grimmkin_Flame', 'Grimmkin_Flame', 'Grimmkin_Flame', 'Grimmkin_Flame', 'Grimmkin_Flame', 'Grimmkin_Flame', 'Grimmkin_Flame', 'Grimmkin_Flame', 'Grimmkin_Flame', 'Grimmkin_Flame'], ['Grimmkin_Flame-City_Storerooms', 'Grimmkin_Flame-Greenpath', 'Grimmkin_Flame-Crystal_Peak', "Grimmkin_Flame-King's_Pass", 'Grimmkin_Flame-Resting_Grounds', "Grimmkin_Flame-Kingdom's_Edge", 'Grimmkin_Flame-Fungal_Core', 'Grimmkin_Flame-Ancient_Basin', 'Grimmkin_Flame-Hive', 'Grimmkin_Flame-Brumm']), 'RandomizeJournalEntries': (["Hunter's_Journal", 'Journal_Entry-Void_Tendrils', 'Journal_Entry-Charged_Lumafly', 'Journal_Entry-Goam', 'Journal_Entry-Garpede', 'Journal_Entry-Seal_of_Binding'], ["Hunter's_Journal", 'Journal_Entry-Void_Tendrils', 'Journal_Entry-Charged_Lumafly', 'Journal_Entry-Goam', 'Journal_Entry-Garpede', 'Journal_Entry-Seal_of_Binding']), 'RandomizeNail': (['Leftslash', 'Rightslash', 'Upslash', 'Downslash'], ['Start', 'Start', 'Start', 'Start']), 'RandomizeGeoRocks': (['Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Abyss', 'Geo_Rock-Abyss', 'Geo_Rock-Abyss', 'Geo_Rock-Abyss', 'Geo_Rock-Abyss', 'Geo_Rock-Abyss', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Outskirts', 'Geo_Rock-Outskirts', 'Geo_Rock-Outskirts', 'Geo_Rock-Outskirts', 'Geo_Rock-Outskirts', 'Geo_Rock-Outskirts', 'Geo_Rock-Outskirts', 'Geo_Rock-Outskirts420', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-Default', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath02', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath02', 'Geo_Rock-GreenPath02', 'Geo_Rock-GreenPath02', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Fung01', 'Geo_Rock-Fung01', 'Geo_Rock-Fung01', 'Geo_Rock-Fung01', 'Geo_Rock-Fung02', 'Geo_Rock-Fung01', 'Geo_Rock-Fung02', 'Geo_Rock-Fung01', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Fung01', 'Geo_Rock-Fung02', 'Geo_Rock-Fung02', 'Geo_Rock-Fung01', 'Geo_Rock-Default', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Deepnest', 'Geo_Rock-Fung01', 'Geo_Rock-Fung01', 'Geo_Rock-Fung01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath01', 'Geo_Rock-GreenPath02', 'Geo_Rock-Outskirts', 'Geo_Rock-City', 'Geo_Rock-Hive', 'Geo_Rock-Hive', 'Geo_Rock-Hive', 'Geo_Rock-Hive', 'Geo_Rock-Hive', 'Geo_Rock-Hive', 'Geo_Rock-Hive', 'Geo_Rock-Hive', 'Geo_Rock-Hive', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Default', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Mine', 'Geo_Rock-Mine', 'Geo_Rock-Grave02', 'Geo_Rock-Grave02', 'Geo_Rock-Grave01', 'Geo_Rock-GreenPath02', 'Geo_Rock-Fung02', 'Geo_Rock-Fung01', 'Geo_Rock-City', 'Geo_Rock-City', 'Geo_Rock-City', 'Geo_Rock-City', 'Geo_Rock-City', 'Geo_Rock-City', 'Geo_Rock-City', 'Geo_Rock-City', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-Default', 'Geo_Rock-City', 'Geo_Rock-City', 'Geo_Rock-City', 'Geo_Rock-City', 'Geo_Rock-City'], ['Geo_Rock-Broken_Elevator_1', 'Geo_Rock-Broken_Elevator_2', 'Geo_Rock-Broken_Elevator_3', 'Geo_Rock-Broken_Bridge_Upper', 'Geo_Rock-Broken_Bridge_Lower', 'Geo_Rock-Broken_Bridge_Lower_Dupe', 'Geo_Rock-Abyss_1', 'Geo_Rock-Abyss_2', 'Geo_Rock-Abyss_3', 'Geo_Rock-Basin_Tunnel', 'Geo_Rock-Basin_Grub', 'Geo_Rock-Basin_Before_Broken_Vessel', 'Geo_Rock-Cliffs_Main_1', 'Geo_Rock-Cliffs_Main_2', 'Geo_Rock-Cliffs_Main_3', 'Geo_Rock-Cliffs_Main_4', 'Geo_Rock-Below_Gorb_Dupe', 'Geo_Rock-Below_Gorb', 'Geo_Rock-Crossroads_Well', 'Geo_Rock-Crossroads_Center_Grub', 'Geo_Rock-Crossroads_Root', 'Geo_Rock-Crossroads_Root_Dupe_1', 'Geo_Rock-Crossroads_Root_Dupe_2', 'Geo_Rock-Crossroads_Aspid_Arena', 'Geo_Rock-Crossroads_Aspid_Arena_Dupe_1', 'Geo_Rock-Crossroads_Aspid_Arena_Dupe_2', 'Geo_Rock-Crossroads_Aspid_Arena_Hidden', 'Geo_Rock-Crossroads_Above_False_Knight', 'Geo_Rock-Crossroads_Before_Acid_Grub', 'Geo_Rock-Crossroads_Below_Goam_Mask_Shard', 'Geo_Rock-Crossroads_After_Goam_Mask_Shard', 'Geo_Rock-Crossroads_Above_Lever', 'Geo_Rock-Crossroads_Before_Fungal', 'Geo_Rock-Crossroads_Before_Fungal_Dupe_1', 'Geo_Rock-Crossroads_Before_Fungal_Dupe_2', 'Geo_Rock-Crossroads_Before_Shops', 'Geo_Rock-Crossroads_Before_Glowing_Womb', 'Geo_Rock-Crossroads_Above_Tram', 'Geo_Rock-Crossroads_Above_Mawlek', 'Geo_Rock-Crossroads_Vessel_Fragment', 'Geo_Rock-Crossroads_Goam_Alcove', 'Geo_Rock-Crossroads_Goam_Damage_Boost', 'Geo_Rock-Crossroads_Tram', 'Geo_Rock-Crossroads_Goam_Journal', 'Geo_Rock-Crossroads_Goam_Journal_Dupe', 'Geo_Rock-Ancestral_Mound', 'Geo_Rock-Ancestral_Mound_Dupe', 'Geo_Rock-Ancestral_Mound_Tree', 'Geo_Rock-Ancestral_Mound_Tree_Dupe', 'Geo_Rock-Moss_Prophet', 'Geo_Rock-Moss_Prophet_Dupe', 'Geo_Rock-Deepnest_Below_Mimics', 'Geo_Rock-Deepnest_Below_Mimics_Dupe', 'Geo_Rock-Deepnest_Below_Spike_Grub', 'Geo_Rock-Deepnest_Below_Spike_Grub_Dupe', 'Geo_Rock-Deepnest_Spike_Grub_Right', 'Geo_Rock-Deepnest_By_Mantis_Lords_Garpede_Pogo', 'Geo_Rock-Deepnest_By_Mantis_Lords_Garpede_Pogo_Dupe', 'Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_1', 'Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_2', 'Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_3', 'Geo_Rock-Deepnest_Nosk_1', 'Geo_Rock-Deepnest_Nosk_2', 'Geo_Rock-Deepnest_Nosk_3', 'Geo_Rock-Deepnest_Above_Galien', 'Geo_Rock-Deepnest_Galien_Spike', 'Geo_Rock-Deepnest_Garpede_1', 'Geo_Rock-Deepnest_Garpede_2', 'Geo_Rock-Dark_Deepnest_Above_Grub_1', 'Geo_Rock-Dark_Deepnest_Above_Grub_2', 'Geo_Rock-Dark_Deepnest_Bottom_Left', 'Geo_Rock-Above_Mask_Maker_1', 'Geo_Rock-Above_Mask_Maker_2', "Geo_Rock-Lower_Kingdom's_Edge_1", "Geo_Rock-Lower_Kingdom's_Edge_2", "Geo_Rock-Lower_Kingdom's_Edge_3", "Geo_Rock-Lower_Kingdom's_Edge_Dive", "Geo_Rock-Kingdom's_Edge_Below_Bardoon", "Geo_Rock-Kingdom's_Edge_Oro_Far_Left", "Geo_Rock-Kingdom's_Edge_Oro_Middle_Left", "Geo_Rock-Kingdom's_Edge_Above_Root", "Geo_Rock-Kingdom's_Edge_Above_Tower", "Geo_Rock-Kingdom's_Edge_Below_Colosseum", "Geo_Rock-Kingdom's_Edge_Above_420_Geo_Rock", "Geo_Rock-Kingdom's_Edge_420_Geo_Rock", "Geo_Rock-Beast's_Den_Above_Trilobite", "Geo_Rock-Beast's_Den_Above_Trilobite_Dupe", "Geo_Rock-Beast's_Den_Below_Herrah", "Geo_Rock-Beast's_Den_Below_Egg", "Geo_Rock-Beast's_Den_Below_Egg_Dupe", "Geo_Rock-Beast's_Den_Bottom", "Geo_Rock-Beast's_Den_Bottom_Dupe", "Geo_Rock-Beast's_Den_After_Herrah", 'Geo_Rock-Greenpath_Entrance', 'Geo_Rock-Greenpath_Waterfall', 'Geo_Rock-Greenpath_Below_Skip_Squit', 'Geo_Rock-Greenpath_Skip_Squit', 'Geo_Rock-Greenpath_Second_Skip_Fool_Eater', 'Geo_Rock-Greenpath_Second_Skip_Fool_Eater_Dupe', 'Geo_Rock-Greenpath_Second_Skip_Lower', 'Geo_Rock-Greenpath_Below_Hornet', 'Geo_Rock-Greenpath_Above_Thorns', "Geo_Rock-Greenpath_Hunter's_Journal", 'Geo_Rock-Greenpath_Acid_Bridge', 'Geo_Rock-Greenpath_After_MMC_Hidden', 'Geo_Rock-Greenpath_After_MMC', 'Geo_Rock-Greenpath_After_MMC_Dupe', 'Geo_Rock-Greenpath_Obbles_Fool_Eater', 'Geo_Rock-Greenpath_Moss_Knights', 'Geo_Rock-Greenpath_Moss_Knights_Dupe_1', 'Geo_Rock-Greenpath_Moss_Knights_Dupe_2', 'Geo_Rock-Greenpath_Below_Stag', 'Geo_Rock-Greenpath_Below_Stag_Fool_Eater', 'Geo_Rock-Baldur_Shell_Top_Left', 'Geo_Rock-Baldur_Shell_Alcove', 'Geo_Rock-Greenpath_MMC', 'Geo_Rock-Greenpath_Below_Toll', 'Geo_Rock-Greenpath_Toll_Hidden', 'Geo_Rock-Greenpath_Toll_Hidden_Dupe', 'Geo_Rock-Fungal_Below_Shrumal_Ogres', 'Geo_Rock-Fungal_Above_Cloth', 'Geo_Rock-Fungal_After_Cloth', "Geo_Rock-Fungal_Below_Pilgrim's_Way", "Geo_Rock-Fungal_Below_Pilgrim's_Way_Dupe", 'Geo_Rock-Mantis_Outskirts_Guarded', 'Geo_Rock-Mantis_Outskirts_Guarded_Dupe', 'Geo_Rock-Mantis_Outskirts_Alcove', 'Geo_Rock-Mantis_Village_After_Lever', 'Geo_Rock-Mantis_Village_Above_Claw', 'Geo_Rock-Mantis_Village_Above_Claw_Dupe', 'Geo_Rock-Mantis_Village_Below_Lore', 'Geo_Rock-Mantis_Village_Above_Lever', 'Geo_Rock-Above_Mantis_Lords_1', 'Geo_Rock-Above_Mantis_Lords_2', 'Geo_Rock-Fungal_After_Bouncy_Grub', 'Geo_Rock-Fungal_After_Bouncy_Grub_Dupe', 'Geo_Rock-Fungal_Bouncy_Grub_Lever', 'Geo_Rock-Fungal_After_Cornifer', 'Geo_Rock-Fungal_Above_City_Entrance', 'Geo_Rock-Deepnest_By_Mantis_Lords_1', 'Geo_Rock-Deepnest_By_Mantis_Lords_2', 'Geo_Rock-Deepnest_Lower_Cornifer', 'Geo_Rock-Fungal_Core_Entrance', 'Geo_Rock-Fungal_Core_Hidden', 'Geo_Rock-Fungal_Core_Above_Elder', "Geo_Rock-Queen's_Gardens_Acid_Entrance", "Geo_Rock-Queen's_Gardens_Below_Stag", 'Geo_Rock-Fog_Canyon_East', 'Geo_Rock-Love_Key', 'Geo_Rock-Love_Key_Dupe', "Geo_Rock-Queen's_Gardens_Above_Marmu", 'Geo_Rock-Pale_Lurker', 'Geo_Rock-Godhome_Pipeway', 'Geo_Rock-Hive_Entrance', 'Geo_Rock-Hive_Outside_Bench', 'Geo_Rock-Hive_Below_Root', 'Geo_Rock-Hive_After_Root', 'Geo_Rock-Hive_Below_Stash', 'Geo_Rock-Hive_Stash', 'Geo_Rock-Hive_Stash_Dupe', 'Geo_Rock-Hive_Below_Grub', 'Geo_Rock-Hive_Above_Mask', 'Geo_Rock-Crystal_Peak_Lower_Middle', 'Geo_Rock-Crystal_Peak_Lower_Conveyer_1', 'Geo_Rock-Crystal_Peak_Lower_Conveyer_2', 'Geo_Rock-Crystal_Peak_Before_Dark_Room', 'Geo_Rock-Crystal_Peak_Before_Dark_Room_Dupe', 'Geo_Rock-Crystal_Peak_Above_Spike_Grub', 'Geo_Rock-Crystal_Peak_Mimic_Grub', 'Geo_Rock-Crystal_Peak_Dive_Egg', 'Geo_Rock-Crystal_Peak_Dive_Egg_Dupe', 'Geo_Rock-Crystal_Peak_Conga_Line', 'Geo_Rock-Hallownest_Crown_Dive', 'Geo_Rock-Hallownest_Crown_Dive_Dupe', 'Geo_Rock-Hallownest_Crown_Hidden', 'Geo_Rock-Hallownest_Crown_Hidden_Dupe_1', 'Geo_Rock-Hallownest_Crown_Hidden_Dupe_2', 'Geo_Rock-Crystal_Peak_Before_Crystal_Heart', 'Geo_Rock-Crystal_Peak_Entrance', 'Geo_Rock-Crystal_Peak_Entrance_Dupe_1', 'Geo_Rock-Crystal_Peak_Entrance_Dupe_2', 'Geo_Rock-Crystal_Peak_Above_Crushers_Lower', 'Geo_Rock-Crystal_Peak_Above_Crushers_Higher', 'Geo_Rock-Resting_Grounds_Catacombs_Grub', 'Geo_Rock-Resting_Grounds_Catacombs_Left_Dupe', 'Geo_Rock-Resting_Grounds_Catacombs_Left', 'Geo_Rock-Overgrown_Mound', 'Geo_Rock-Fluke_Hermit_Dupe', 'Geo_Rock-Fluke_Hermit', 'Geo_Rock-Pleasure_House', 'Geo_Rock-City_of_Tears_Quirrel', 'Geo_Rock-City_of_Tears_Lemm', 'Geo_Rock-City_of_Tears_Above_Lemm', 'Geo_Rock-Soul_Sanctum', "Geo_Rock-Watcher's_Spire", "Geo_Rock-Above_King's_Station", "Geo_Rock-King's_Station", "Geo_Rock-King's_Pass_Left", "Geo_Rock-King's_Pass_Below_Fury", "Geo_Rock-King's_Pass_Hidden", "Geo_Rock-King's_Pass_Collapse", "Geo_Rock-King's_Pass_Above_Fury", 'Geo_Rock-Waterways_Tuk', 'Geo_Rock-Waterways_Tuk_Alcove', 'Geo_Rock-Waterways_Left', 'Geo_Rock-Waterways_East', 'Geo_Rock-Waterways_Flukemarm']), 'RandomizeBossGeo': (['Boss_Geo-Massive_Moss_Charger', 'Boss_Geo-Gorgeous_Husk', 'Boss_Geo-Sanctum_Soul_Warrior', 'Boss_Geo-Elegant_Soul_Warrior', 'Boss_Geo-Crystal_Guardian', 'Boss_Geo-Enraged_Guardian', 'Boss_Geo-Gruz_Mother', 'Boss_Geo-Vengefly_King'], ['Boss_Geo-Massive_Moss_Charger', 'Boss_Geo-Gorgeous_Husk', 'Boss_Geo-Sanctum_Soul_Warrior', 'Boss_Geo-Elegant_Soul_Warrior', 'Boss_Geo-Crystal_Guardian', 'Boss_Geo-Enraged_Guardian', 'Boss_Geo-Gruz_Mother', 'Boss_Geo-Vengefly_King']), 'RandomizeSoulTotems': (['Soul_Totem-C', 'Soul_Totem-B', 'Soul_Totem-A', 'Soul_Totem-C', 'Soul_Totem-C', 'Soul_Totem-B', 'Soul_Totem-B', 'Soul_Totem-C', 'Soul_Totem-E', 'Soul_Totem-A', 'Soul_Totem-F', 'Soul_Totem-D', 'Soul_Totem-E', 'Soul_Totem-B', 'Soul_Totem-B', 'Soul_Totem-C', 'Soul_Totem-B', 'Soul_Totem-A', 'Soul_Totem-C', 'Soul_Totem-B', 'Soul_Totem-A', 'Soul_Totem-B', 'Soul_Totem-A', 'Soul_Totem-C', 'Soul_Totem-C', 'Soul_Totem-C', 'Soul_Totem-C', 'Soul_Totem-A', 'Soul_Totem-C', 'Soul_Totem-C', 'Soul_Totem-B', 'Soul_Totem-A', 'Soul_Totem-B', 'Soul_Totem-A', 'Soul_Totem-B', 'Soul_Totem-C', 'Soul_Totem-C', 'Soul_Totem-E', 'Soul_Totem-B', 'Soul_Totem-D', 'Soul_Totem-A', 'Soul_Totem-G', 'Soul_Totem-C', 'Soul_Totem-B', 'Soul_Totem-C', 'Soul_Totem-B', 'Soul_Totem-Palace', 'Soul_Totem-Palace', 'Soul_Totem-Palace', 'Soul_Totem-Palace', 'Soul_Totem-Palace', 'Soul_Totem-Path_of_Pain', 'Soul_Totem-Path_of_Pain', 'Soul_Totem-Path_of_Pain', 'Soul_Totem-Path_of_Pain', 'Soul_Totem-Path_of_Pain', 'Soul_Totem-Path_of_Pain', 'Soul_Totem-Path_of_Pain', 'Soul_Totem-G'], ['Soul_Totem-Basin', 'Soul_Totem-Cliffs_Main', 'Soul_Totem-Cliffs_Gorb', "Soul_Totem-Cliffs_Joni's", 'Soul_Totem-Crossroads_Goam_Journal', 'Soul_Totem-Crossroads_Shops', 'Soul_Totem-Crossroads_Mawlek_Upper', 'Soul_Totem-Crossroads_Acid', 'Soul_Totem-Crossroads_Mawlek_Lower', 'Soul_Totem-Crossroads_Myla', 'Soul_Totem-Ancestral_Mound', 'Soul_Totem-Distant_Village', 'Soul_Totem-Deepnest_Vessel', 'Soul_Totem-Mask_Maker', "Soul_Totem-Lower_Kingdom's_Edge_1", "Soul_Totem-Lower_Kingdom's_Edge_2", "Soul_Totem-Upper_Kingdom's_Edge", "Soul_Totem-Kingdom's_Edge_Camp", 'Soul_Totem-Oro_Dive_2', 'Soul_Totem-Oro_Dive_1', 'Soul_Totem-Oro', 'Soul_Totem-420_Geo_Rock', "Soul_Totem-Beast's_Den", "Soul_Totem-Greenpath_Hunter's_Journal", 'Soul_Totem-Greenpath_MMC', 'Soul_Totem-Greenpath_Below_Toll', "Soul_Totem-Before_Pilgrim's_Way", "Soul_Totem-Pilgrim's_Way", 'Soul_Totem-Fungal_Core', "Soul_Totem-Top_Left_Queen's_Gardens", 'Soul_Totem-Below_Marmu', 'Soul_Totem-Upper_Crystal_Peak', 'Soul_Totem-Hallownest_Crown', 'Soul_Totem-Outside_Crystallized_Mound', 'Soul_Totem-Crystal_Heart_1', 'Soul_Totem-Crystal_Heart_2', 'Soul_Totem-Crystallized_Mound', 'Soul_Totem-Resting_Grounds', 'Soul_Totem-Below_Xero', 'Soul_Totem-Sanctum_Below_Soul_Master', 'Soul_Totem-Sanctum_Below_Chest', 'Soul_Totem-Sanctum_Above_Grub', 'Soul_Totem-Waterways_Entrance', 'Soul_Totem-Top_Left_Waterways', 'Soul_Totem-Waterways_East', 'Soul_Totem-Waterways_Flukemarm', 'Soul_Totem-White_Palace_Entrance', 'Soul_Totem-White_Palace_Hub', 'Soul_Totem-White_Palace_Left', 'Soul_Totem-White_Palace_Final', 'Soul_Totem-White_Palace_Right', 'Soul_Totem-Path_of_Pain_Below_Lever', 'Soul_Totem-Path_of_Pain_Left_of_Lever', 'Soul_Totem-Path_of_Pain_Entrance', 'Soul_Totem-Path_of_Pain_Second', 'Soul_Totem-Path_of_Pain_Hidden', 'Soul_Totem-Path_of_Pain_Below_Thornskip', 'Soul_Totem-Path_of_Pain_Final', 'Soul_Totem-Pale_Lurker']), 'RandomizeLoreTablets': (['Lore_Tablet-City_Entrance', 'Lore_Tablet-Pleasure_House', 'Lore_Tablet-Sanctum_Entrance', 'Lore_Tablet-Sanctum_Past_Soul_Master', "Lore_Tablet-Watcher's_Spire", 'Lore_Tablet-Archives_Upper', 'Lore_Tablet-Archives_Left', 'Lore_Tablet-Archives_Right', "Lore_Tablet-Pilgrim's_Way_1", "Lore_Tablet-Pilgrim's_Way_2", 'Lore_Tablet-Mantis_Outskirts', 'Lore_Tablet-Mantis_Village', 'Lore_Tablet-Greenpath_Upper_Hidden', 'Lore_Tablet-Greenpath_Below_Toll', 'Lore_Tablet-Greenpath_Lifeblood', 'Lore_Tablet-Greenpath_Stag', 'Lore_Tablet-Greenpath_QG', 'Lore_Tablet-Greenpath_Lower_Hidden', 'Lore_Tablet-Dung_Defender', 'Lore_Tablet-Spore_Shroom', 'Lore_Tablet-Fungal_Wastes_Hidden', 'Lore_Tablet-Fungal_Wastes_Below_Shrumal_Ogres', 'Lore_Tablet-Fungal_Core', 'Lore_Tablet-Ancient_Basin', "Lore_Tablet-King's_Pass_Focus", "Lore_Tablet-King's_Pass_Fury", "Lore_Tablet-King's_Pass_Exit", 'Lore_Tablet-World_Sense', 'Lore_Tablet-Howling_Cliffs', "Lore_Tablet-Kingdom's_Edge", 'Lore_Tablet-Palace_Workshop', 'Lore_Tablet-Palace_Throne', 'Lore_Tablet-Path_of_Pain_Entrance'], ['Lore_Tablet-City_Entrance', 'Lore_Tablet-Pleasure_House', 'Lore_Tablet-Sanctum_Entrance', 'Lore_Tablet-Sanctum_Past_Soul_Master', "Lore_Tablet-Watcher's_Spire", 'Lore_Tablet-Archives_Upper', 'Lore_Tablet-Archives_Left', 'Lore_Tablet-Archives_Right', "Lore_Tablet-Pilgrim's_Way_1", "Lore_Tablet-Pilgrim's_Way_2", 'Lore_Tablet-Mantis_Outskirts', 'Lore_Tablet-Mantis_Village', 'Lore_Tablet-Greenpath_Upper_Hidden', 'Lore_Tablet-Greenpath_Below_Toll', 'Lore_Tablet-Greenpath_Lifeblood', 'Lore_Tablet-Greenpath_Stag', 'Lore_Tablet-Greenpath_QG', 'Lore_Tablet-Greenpath_Lower_Hidden', 'Lore_Tablet-Dung_Defender', 'Lore_Tablet-Spore_Shroom', 'Lore_Tablet-Fungal_Wastes_Hidden', 'Lore_Tablet-Fungal_Wastes_Below_Shrumal_Ogres', 'Lore_Tablet-Fungal_Core', 'Lore_Tablet-Ancient_Basin', "Lore_Tablet-King's_Pass_Focus", "Lore_Tablet-King's_Pass_Fury", "Lore_Tablet-King's_Pass_Exit", 'Lore_Tablet-World_Sense', 'Lore_Tablet-Howling_Cliffs', "Lore_Tablet-Kingdom's_Edge", 'Lore_Tablet-Palace_Workshop', 'Lore_Tablet-Palace_Throne', 'Lore_Tablet-Path_of_Pain_Entrance'])} region_names = {'Abyss_01', 'Abyss_02', 'Abyss_03', 'Abyss_03_b', 'Abyss_03_c', 'Abyss_04', 'Abyss_05', 'Abyss_06_Core', 'Abyss_08', 'Abyss_09', 'Abyss_10', 'Abyss_12', 'Abyss_15', 'Abyss_16', 'Abyss_17', 'Abyss_18', 'Abyss_19', 'Abyss_20', 'Abyss_21', 'Abyss_22', 'Abyss_Lighthouse_room', 'Cliffs_01', 'Cliffs_02', 'Cliffs_03', 'Cliffs_04', 'Cliffs_05', 'Cliffs_06', 'Crossroads_01', 'Crossroads_02', 'Crossroads_03', 'Crossroads_04', 'Crossroads_05', 'Crossroads_06', 'Crossroads_07', 'Crossroads_08', 'Crossroads_09', 'Crossroads_10', 'Crossroads_11_alt', 'Crossroads_12', 'Crossroads_13', 'Crossroads_14', 'Crossroads_15', 'Crossroads_16', 'Crossroads_18', 'Crossroads_19', 'Crossroads_21', 'Crossroads_22', 'Crossroads_25', 'Crossroads_27', 'Crossroads_30', 'Crossroads_31', 'Crossroads_33', 'Crossroads_35', 'Crossroads_36', 'Crossroads_37', 'Crossroads_38', 'Crossroads_39', 'Crossroads_40', 'Crossroads_42', 'Crossroads_43', 'Crossroads_45', 'Crossroads_46', 'Crossroads_46b', 'Crossroads_47', 'Crossroads_48', 'Crossroads_49', 'Crossroads_49b', 'Crossroads_50', 'Crossroads_52', 'Crossroads_ShamanTemple', 'Deepnest_01', 'Deepnest_01b', 'Deepnest_02', 'Deepnest_03', 'Deepnest_09', 'Deepnest_10', 'Deepnest_14', 'Deepnest_16', 'Deepnest_17', 'Deepnest_26', 'Deepnest_26b', 'Deepnest_30', 'Deepnest_31', 'Deepnest_32', 'Deepnest_33', 'Deepnest_34', 'Deepnest_35', 'Deepnest_36', 'Deepnest_37', 'Deepnest_38', 'Deepnest_39', 'Deepnest_40', 'Deepnest_41', 'Deepnest_42', 'Deepnest_43', 'Deepnest_44', 'Deepnest_45_v02', 'Deepnest_East_01', 'Deepnest_East_02', 'Deepnest_East_03', 'Deepnest_East_04', 'Deepnest_East_06', 'Deepnest_East_07', 'Deepnest_East_08', 'Deepnest_East_09', 'Deepnest_East_10', 'Deepnest_East_11', 'Deepnest_East_12', 'Deepnest_East_13', 'Deepnest_East_14', 'Deepnest_East_14b', 'Deepnest_East_15', 'Deepnest_East_16', 'Deepnest_East_17', 'Deepnest_East_18', 'Deepnest_East_Hornet', 'Deepnest_Spider_Town', 'Fungus1_01', 'Fungus1_01b', 'Fungus1_02', 'Fungus1_03', 'Fungus1_04', 'Fungus1_05', 'Fungus1_06', 'Fungus1_07', 'Fungus1_08', 'Fungus1_09', 'Fungus1_10', 'Fungus1_11', 'Fungus1_12', 'Fungus1_13', 'Fungus1_14', 'Fungus1_15', 'Fungus1_16_alt', 'Fungus1_17', 'Fungus1_19', 'Fungus1_20_v02', 'Fungus1_21', 'Fungus1_22', 'Fungus1_23', 'Fungus1_24', 'Fungus1_25', 'Fungus1_26', 'Fungus1_28', 'Fungus1_29', 'Fungus1_30', 'Fungus1_31', 'Fungus1_32', 'Fungus1_34', 'Fungus1_35', 'Fungus1_36', 'Fungus1_37', 'Fungus1_Slug', 'Fungus2_01', 'Fungus2_02', 'Fungus2_03', 'Fungus2_04', 'Fungus2_05', 'Fungus2_06', 'Fungus2_07', 'Fungus2_08', 'Fungus2_09', 'Fungus2_10', 'Fungus2_11', 'Fungus2_12', 'Fungus2_13', 'Fungus2_14', 'Fungus2_15', 'Fungus2_17', 'Fungus2_18', 'Fungus2_19', 'Fungus2_20', 'Fungus2_21', 'Fungus2_23', 'Fungus2_25', 'Fungus2_26', 'Fungus2_28', 'Fungus2_29', 'Fungus2_30', 'Fungus2_31', 'Fungus2_32', 'Fungus2_33', 'Fungus2_34', 'Fungus3_01', 'Fungus3_02', 'Fungus3_03', 'Fungus3_04', 'Fungus3_05', 'Fungus3_08', 'Fungus3_10', 'Fungus3_11', 'Fungus3_13', 'Fungus3_21', 'Fungus3_22', 'Fungus3_23', 'Fungus3_24', 'Fungus3_25', 'Fungus3_25b', 'Fungus3_26', 'Fungus3_27', 'Fungus3_28', 'Fungus3_30', 'Fungus3_34', 'Fungus3_35', 'Fungus3_39', 'Fungus3_40', 'Fungus3_44', 'Fungus3_47', 'Fungus3_48', 'Fungus3_49', 'Fungus3_50', 'Fungus3_archive', 'Fungus3_archive_02', 'GG_Lurker', 'GG_Pipeway', 'GG_Waterways', 'Grimm_Divine', 'Grimm_Main_Tent', 'Hive_01', 'Hive_02', 'Hive_03', 'Hive_03_c', 'Hive_04', 'Hive_05', 'Mines_01', 'Mines_02', 'Mines_03', 'Mines_04', 'Mines_05', 'Mines_06', 'Mines_07', 'Mines_10', 'Mines_11', 'Mines_13', 'Mines_16', 'Mines_17', 'Mines_18', 'Mines_19', 'Mines_20', 'Mines_23', 'Mines_24', 'Mines_25', 'Mines_28', 'Mines_29', 'Mines_30', 'Mines_31', 'Mines_32', 'Mines_33', 'Mines_34', 'Mines_35', 'Mines_36', 'Mines_37', 'RestingGrounds_02', 'RestingGrounds_04', 'RestingGrounds_05', 'RestingGrounds_06', 'RestingGrounds_07', 'RestingGrounds_08', 'RestingGrounds_09', 'RestingGrounds_10', 'RestingGrounds_12', 'RestingGrounds_17', 'Room_Bretta', 'Room_Charm_Shop', 'Room_Colosseum_01', 'Room_Colosseum_02', 'Room_Colosseum_Spectate', 'Room_Fungus_Shaman', 'Room_GG_Shortcut', 'Room_Mansion', 'Room_Mask_Maker', 'Room_Mender_House', 'Room_Ouiji', 'Room_Queen', 'Room_Slug_Shrine', 'Room_Town_Stag_Station', 'Room_Wyrm', 'Room_mapper', 'Room_nailmaster', 'Room_nailmaster_02', 'Room_nailmaster_03', 'Room_nailsmith', 'Room_ruinhouse', 'Room_shop', 'Room_spider_small', 'Room_temple', 'Ruins1_01', 'Ruins1_02', 'Ruins1_03', 'Ruins1_04', 'Ruins1_05', 'Ruins1_05b', 'Ruins1_05c', 'Ruins1_06', 'Ruins1_09', 'Ruins1_17', 'Ruins1_18', 'Ruins1_23', 'Ruins1_24', 'Ruins1_25', 'Ruins1_27', 'Ruins1_28', 'Ruins1_29', 'Ruins1_30', 'Ruins1_31', 'Ruins1_31b', 'Ruins1_32', 'Ruins2_01', 'Ruins2_01_b', 'Ruins2_03', 'Ruins2_03b', 'Ruins2_04', 'Ruins2_05', 'Ruins2_06', 'Ruins2_07', 'Ruins2_08', 'Ruins2_09', 'Ruins2_10', 'Ruins2_10b', 'Ruins2_11', 'Ruins2_11_b', 'Ruins2_Watcher_Room', 'Ruins_Bathhouse', 'Ruins_Elevator', 'Ruins_House_01', 'Ruins_House_02', 'Ruins_House_03', 'Start', 'Town', 'Tutorial_01', 'Unknown', 'Waterways_01', 'Waterways_02', 'Waterways_03', 'Waterways_04', 'Waterways_04b', 'Waterways_05', 'Waterways_06', 'Waterways_07', 'Waterways_08', 'Waterways_09', 'Waterways_12', 'Waterways_13', 'Waterways_14', 'Waterways_15', 'White_Palace_01', 'White_Palace_02', 'White_Palace_03_hub', 'White_Palace_04', 'White_Palace_05', 'White_Palace_06', 'White_Palace_07', 'White_Palace_08', 'White_Palace_09', 'White_Palace_11', 'White_Palace_12', 'White_Palace_13', 'White_Palace_14', 'White_Palace_15', 'White_Palace_16', 'White_Palace_17', 'White_Palace_18', 'White_Palace_19', 'White_Palace_20'} starts = {"king's_pass": 'Tutorial_01'} +vanilla_location_costs = {'Dash_Slash': {'GEO': 800}, 'Unbreakable_Heart': {'GEO': 600}, 'Unbreakable_Greed': {'GEO': 450}, 'Unbreakable_Strength': {'GEO': 750}, 'Vessel_Fragment-Basin': {'GEO': 3000}, 'Crossroads_Map': {'GEO': 30}, 'Greenpath_Map': {'GEO': 60}, 'Fog_Canyon_Map': {'GEO': 150}, 'Fungal_Wastes_Map': {'GEO': 75}, 'Deepnest_Map-Upper': {'GEO': 38}, 'Deepnest_Map-Right': {'GEO': 38}, 'Ancient_Basin_Map': {'GEO': 112}, "Kingdom's_Edge_Map": {'GEO': 112}, 'City_of_Tears_Map': {'GEO': 90}, 'Royal_Waterways_Map': {'GEO': 75}, 'Howling_Cliffs_Map': {'GEO': 75}, 'Crystal_Peak_Map': {'GEO': 112}, "Queen's_Gardens_Map": {'GEO': 150}, 'Resting_Grounds_Map': {'GEO': 56}, 'Crossroads_Stag': {'GEO': 50}, 'Greenpath_Stag': {'GEO': 140}, "Queen's_Station_Stag": {'GEO': 120}, "Queen's_Gardens_Stag": {'GEO': 200}, 'City_Storerooms_Stag': {'GEO': 200}, "King's_Station_Stag": {'GEO': 300}, 'Distant_Village_Stag': {'GEO': 250}, 'Hidden_Station_Stag': {'GEO': 300}, 'Stag_Nest_Stag': {'GEO': 300}, 'Elevator_Pass': {'GEO': 150}} +vanilla_shop_costs = {('Sly', 'Simple_Key'): [{'GEO': 950}], ('Sly', 'Rancid_Egg'): [{'GEO': 60}], ('Sly', 'Lumafly_Lantern'): [{'GEO': 1800}], ('Sly', 'Gathering_Swarm'): [{'GEO': 300}], ('Sly', 'Stalwart_Shell'): [{'GEO': 200}], ('Sly', 'Mask_Shard'): [{'GEO': 500}, {'GEO': 150}], ('Sly', 'Vessel_Fragment'): [{'GEO': 550}], ('Sly_(Key)', 'Heavy_Blow'): [{'GEO': 350}], ('Sly_(Key)', 'Elegant_Key'): [{'GEO': 800}], ('Sly_(Key)', 'Mask_Shard'): [{'GEO': 1500}, {'GEO': 800}], ('Sly_(Key)', 'Vessel_Fragment'): [{'GEO': 900}], ('Sly_(Key)', 'Sprintmaster'): [{'GEO': 400}], ('Iselda', 'Wayward_Compass'): [{'GEO': 220}], ('Iselda', 'Quill'): [{'GEO': 120}], ('Salubra', 'Lifeblood_Heart'): [{'GEO': 250}], ('Salubra', 'Longnail'): [{'GEO': 300}], ('Salubra', 'Steady_Body'): [{'GEO': 120}], ('Salubra', 'Shaman_Stone'): [{'GEO': 220}], ('Salubra', 'Quick_Focus'): [{'GEO': 800}], ('Leg_Eater', 'Fragile_Heart'): [{'GEO': 350}], ('Leg_Eater', 'Fragile_Greed'): [{'GEO': 250}], ('Leg_Eater', 'Fragile_Strength'): [{'GEO': 600}], ('Seer', 'Dream_Gate'): [{'ESSENCE': 900}], ('Seer', 'Awoken_Dream_Nail'): [{'ESSENCE': 1800}], ('Grubfather', 'Grubsong'): [{'GRUBS': 10}], ('Grubfather', "Grubberfly's_Elegy"): [{'GRUBS': 46}], ('Seer', 'Mask_Shard'): [{'ESSENCE': 1500}], ('Grubfather', 'Mask_Shard'): [{'GRUBS': 5}], ('Seer', 'Vessel_Fragment'): [{'ESSENCE': 700}], ('Salubra', 'Charm_Notch'): [{'CHARMS': 25, 'GEO': 1400}, {'CHARMS': 18, 'GEO': 900}, {'CHARMS': 10, 'GEO': 500}, {'CHARMS': 5, 'GEO': 120}], ('Salubra', "Salubra's_Blessing"): [{'CHARMS': 40, 'GEO': 800}], ('Seer', 'Pale_Ore'): [{'ESSENCE': 300}], ('Grubfather', 'Pale_Ore'): [{'GRUBS': 31}], ('Grubfather', 'Rancid_Egg'): [{'GRUBS': 16}], ('Seer', 'Hallownest_Seal'): [{'ESSENCE': 100}], ('Grubfather', "King's_Idol"): [{'GRUBS': 38}], ('Seer', 'Arcane_Egg'): [{'ESSENCE': 1200}]} diff --git a/worlds/hk/Extractor.py b/worlds/hk/Extractor.py index 6f6038e2e6..61fabc4da0 100644 --- a/worlds/hk/Extractor.py +++ b/worlds/hk/Extractor.py @@ -74,7 +74,7 @@ class Absorber(ast.NodeTransformer): self.truth_values = truth_values self.truth_values |= {"True", "None", "ANY", "ITEMRANDO"} self.false_values = false_values - self.false_values |= {"False", "NONE", "RANDOMELEVATORS"} + self.false_values |= {"False", "NONE"} super(Absorber, self).__init__() @@ -203,7 +203,58 @@ logic_folder = os.path.join(resources_source, "Logic") logic_options: typing.Dict[str, str] = hk_loads(os.path.join(data_folder, "logic_settings.json")) for logic_key, logic_value in logic_options.items(): logic_options[logic_key] = logic_value.split(".", 1)[-1] -del (logic_options["RANDOMELEVATORS"]) + +vanilla_cost_data: typing.Dict[str, typing.Dict[str, typing.Any]] = hk_loads(os.path.join(data_folder, "costs.json")) +vanilla_location_costs = { + key: { + value["term"]: int(value["amount"]) + } + for key, value in vanilla_cost_data.items() + if value["amount"] > 0 and value["term"] == "GEO" +} + +salubra_geo_costs_by_charm_count = { + 5: 120, + 10: 500, + 18: 900, + 25: 1400, + 40: 800 +} + +# Can't extract this data, so supply it ourselves. Source: the wiki +vanilla_shop_costs = { + ('Sly', 'Simple_Key'): [{'GEO': 950}], + ('Sly', 'Rancid_Egg'): [{'GEO': 60}], + ('Sly', 'Lumafly_Lantern'): [{'GEO': 1800}], + ('Sly', 'Gathering_Swarm'): [{'GEO': 300}], + ('Sly', 'Stalwart_Shell'): [{'GEO': 200}], + ('Sly', 'Mask_Shard'): [ + {'GEO': 150}, + {'GEO': 500}, + ], + ('Sly', 'Vessel_Fragment'): [{'GEO': 550}], + ('Sly_(Key)', 'Heavy_Blow'): [{'GEO': 350}], + ('Sly_(Key)', 'Elegant_Key'): [{'GEO': 800}], + ('Sly_(Key)', 'Mask_Shard'): [ + {'GEO': 800}, + {'GEO': 1500}, + ], + ('Sly_(Key)', 'Vessel_Fragment'): [{'GEO': 900}], + ('Sly_(Key)', 'Sprintmaster'): [{'GEO': 400}], + + ('Iselda', 'Wayward_Compass'): [{'GEO': 220}], + ('Iselda', 'Quill'): [{'GEO': 120}], + + ('Salubra', 'Lifeblood_Heart'): [{'GEO': 250}], + ('Salubra', 'Longnail'): [{'GEO': 300}], + ('Salubra', 'Steady_Body'): [{'GEO': 120}], + ('Salubra', 'Shaman_Stone'): [{'GEO': 220}], + ('Salubra', 'Quick_Focus'): [{'GEO': 800}], + + ('Leg_Eater', 'Fragile_Heart'): [{'GEO': 350}], + ('Leg_Eater', 'Fragile_Greed'): [{'GEO': 250}], + ('Leg_Eater', 'Fragile_Strength'): [{'GEO': 600}], +} extra_pool_options: typing.List[typing.Dict[str, typing.Any]] = hk_loads(os.path.join(data_folder, "pools.json")) pool_options: typing.Dict[str, typing.Tuple[typing.List[str], typing.List[str]]] = {} for option in extra_pool_options: @@ -213,8 +264,23 @@ for option in extra_pool_options: for pairing in option["Vanilla"]: items.append(pairing["item"]) location_name = pairing["location"] - if any(cost_entry["term"] == "CHARMS" for cost_entry in pairing.get("costs", [])): - location_name += "_(Requires_Charms)" + item_costs = pairing.get("costs", []) + if item_costs: + if any(cost_entry["term"] == "CHARMS" for cost_entry in item_costs): + location_name += "_(Requires_Charms)" + #vanilla_shop_costs[pairing["location"], pairing["item"]] = \ + cost = { + entry["term"]: int(entry["amount"]) for entry in item_costs + } + # Rando4 doesn't include vanilla geo costs for Salubra charms, so dirty hardcode here. + if 'CHARMS' in cost: + geo = salubra_geo_costs_by_charm_count.get(cost['CHARMS']) + if geo: + cost['GEO'] = geo + + key = (pairing["location"], pairing["item"]) + vanilla_shop_costs.setdefault(key, []).append(cost) + locations.append(location_name) if option["Path"]: # basename carries over from prior entry if no Path given @@ -229,6 +295,12 @@ for option in extra_pool_options: pool_options[basename] = items, locations del extra_pool_options +# reverse all the vanilla shop costs (really, this is just for Salubra). +# When we use these later, we pop off the end of the list so this ensures they are still sorted. +vanilla_shop_costs = { + k: list(reversed(v)) for k, v in vanilla_shop_costs.items() +} + # items items: typing.Dict[str, typing.Dict] = hk_loads(os.path.join(data_folder, "items.json")) logic_items: typing.Set[str] = set() @@ -364,9 +436,15 @@ for event in events: event_rules.update(connectors_rules) connectors_rules = {} + +# Apply some final fixes +item_effects.update({ + 'Left_Mothwing_Cloak': {'LEFTDASH': 1}, + 'Right_Mothwing_Cloak': {'RIGHTDASH': 1}, +}) names = sorted({"logic_options", "starts", "pool_options", "locations", "multi_locations", "location_to_region_lookup", "event_names", "item_effects", "items", "logic_items", "region_names", - "exits", "connectors", "one_ways"}) + "exits", "connectors", "one_ways", "vanilla_shop_costs", "vanilla_location_costs"}) warning = "# This module is written by Extractor.py, do not edit manually!.\n\n" with open(os.path.join(os.path.dirname(__file__), "ExtractedData.py"), "wt") as py: py.write(warning) @@ -385,6 +463,6 @@ rules_template = template_env.get_template("RulesTemplate.pyt") rules = rules_template.render(location_rules=location_rules, one_ways=one_ways, connectors_rules=connectors_rules, event_rules=event_rules) -with open("Rules.py", "wt") as py: +with open("GeneratedRules.py", "wt") as py: py.write(warning) py.write(rules) diff --git a/worlds/hk/GeneratedRules.py b/worlds/hk/GeneratedRules.py new file mode 100644 index 0000000000..9b8041c74a --- /dev/null +++ b/worlds/hk/GeneratedRules.py @@ -0,0 +1,1699 @@ +# This module is written by Extractor.py, do not edit manually!. + +# This module is written by Extractor.py, do not edit manually!. +from functools import partial + +def set_generated_rules(hk_world, hk_set_rule): + player = hk_world.player + fn = partial(hk_set_rule, hk_world) + + # Events + + fn("Can_Replenish_Geo", lambda state: state.count('Tutorial_01', player) or state.count('Can_Replenish_Geo-Crossroads', player) or state.count('Fungus1_01[right1]', player) or state.count('Fungus2_03[left1]', player) or state.count('Fungus2_06[top1]', player) or state.count('Fungus2_12[left1]', player) or state.count('Fungus2_14[top1]', player) or (state.count('Deepnest_41[left1]', player) and (state._hk_option(player, 'DarkRooms') or state.count('LANTERN', player))) or state.count('Ruins1_01[left1]', player) or state.count('Ruins1_17[right1]', player) or state.count('Ruins2_04[right2]', player) or state.count('Ruins2_06[right2]', player) or state.count('Abyss_04[left1]', player) or state.count('Abyss_12[right1]', player) or state.count('Fungus3_40[top1]', player) or state.count('Mines_02[left1]', player) or state.count('Cliffs_02[left1]', player) or state.count('Deepnest_East_01[bot1]', player) or state.count('Deepnest_East_03[left1]', player) or state.count('Deepnest_East_07[left2]', player) or state.count('Deepnest_East_08[top1]', player) or state.count('Waterways_02[top1]', player) or state.count('Waterways_01[right1]', player) or state.count('Waterways_04b[left1]', player)) + fn("Can_Replenish_Geo-Crossroads", lambda state: state.count('Crossroads_01[top1]', player) or state.count('Crossroads_03', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_05[left1]', player) or state.count('Crossroads_07', player) or state.count('Crossroads_08', player) or (state.count('Crossroads_11_alt[left1]', player) and (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) or (state.count('Crossroads_12[right1]', player) and (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) or state.count('Crossroads_13[left1]', player) or state.count('Crossroads_15[left1]', player) or state.count('Crossroads_16[left1]', player) or state.count('Crossroads_19', player) or state.count('Crossroads_21', player) or state.count('Crossroads_22[bot1]', player) or state.count('Crossroads_25[right1]', player) or state.count('Crossroads_27', player) or state.count('Crossroads_35[right1]', player) or state.count('Crossroads_37[right1]', player) or state.count('Crossroads_39[left1]', player) or state.count('Crossroads_40[left1]', player) or state.count('Crossroads_42[left1]', player) or state.count('Crossroads_48[left1]', player) or state.count('Crossroads_ShamanTemple[left1]', player)) + fn("Rescued_Sly", lambda state: state.count('Room_ruinhouse[left1]', player)) + fn("Rescued_Bretta", lambda state: state.count('Fungus2_23', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or state.count('WINGS', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15))) or ((state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) and state.count('WINGS', player)))) + fn("Rescued_Deepnest_Zote", lambda state: state.count('Deepnest_33[top1]', player)) + fn("Defeated_Colosseum_Zote", lambda state: state.count('Room_Colosseum_01[left1]', player) and state.count('Rescued_Deepnest_Zote', player) and state.count('Defeated_Colosseum_1', player)) + fn("Lever-Shade_Soul", lambda state: state.count('Ruins1_31b[right1]', player) or (state.count('Ruins1_31b[right2]', player) and state.count('Defeated_Elegant_Warrior', player))) + fn("Completed_Path_of_Pain", lambda state: state.count('White_Palace_20[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTDASH', player) and state.count('WINGS', player) and state.count('Defeated_Path_of_Pain_Arena', player)) + fn("Lever-Dung_Defender", lambda state: state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Dung_Defender', player) or state.count('Waterways_05[bot2]', player) or state.count('Waterways_05[right1]', player)) + fn("Warp-Lifeblood_Core_to_Abyss", lambda state: state.count('Abyss_08[right1]', player) and (state._hk_option(player, 'PreciseMovement') or state.count('LEFTDASH', player))) + fn("Warp-Palace_Grounds_to_White_Palace", lambda state: state.count('Abyss_05', player) and state.count('DREAMNAIL', player) > 2) + fn("Warp-White_Palace_Entrance_to_Palace_Grounds", lambda state: state.count('White_Palace_11[door2]', player) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Warp-White_Palace_Atrium_to_Palace_Grounds", lambda state: state.count('White_Palace_03_hub[left1]', player) or (state.count('White_Palace_03_hub[top1]', player) and state.count('Palace_Atrium_Gates_Opened', player)) or (state.count('White_Palace_03_hub[right1]', player) and state.count('Palace_Atrium_Gates_Opened', player)) or (state.count('White_Palace_03_hub', player) and (state._hk_option(player, 'PreciseMovement') or state.count('LEFTCLAW', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state.count('WINGS', player)))) + fn("Warp-Path_of_Pain_Complete", lambda state: state.count('White_Palace_20[bot1]', player) and state.count('Completed_Path_of_Pain', player)) + fn("Upper_Tram", lambda state: state.count('TRAM', player) and (state.count('Crossroads_46[left1]', player) or state.count('Crossroads_46b[right1]', player))) + fn("Lower_Tram", lambda state: state.count('TRAM', player) and (state.count('Abyss_03', player) or state.count('Abyss_03_b', player) or state.count('Abyss_03_c', player))) + fn("Left_Elevator", lambda state: (state.count('Crossroads_49[left1]', player) or state.count('Crossroads_49[right1]', player) or state.count('Crossroads_49b[right1]', player)) and (state.count('Crossroads_49b[right1]', player) and state._hk_option(player, 'RandomizeElevatorPass') == 0 or state.count('Elevator_Pass', player))) + fn("Right_Elevator", lambda state: (state.count('Ruins2_10[right1]', player) or state.count('Ruins2_10[left1]', player) or state.count('Ruins2_10b[right1]', player) or state.count('Ruins2_10b[right2]', player) or state.count('Ruins2_10b[left1]', player)) and (state._hk_option(player, 'RandomizeElevatorPass') == 0 or state.count('Elevator_Pass', player))) + fn("Defeated_Gruz_Mother", lambda state: (state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[top1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player)) and True) + fn("Defeated_False_Knight", lambda state: (state.count('Crossroads_10[right1]', player) or (state.count('Crossroads_10[left1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and True) + fn("Defeated_Brooding_Mawlek", lambda state: (state.count('Crossroads_09[left1]', player) or state.count('Crossroads_09[right1]', player)) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Hornet_1", lambda state: state.count('Fungus1_04[right1]', player) and True) + fn("Defeated_Mantis_Lords", lambda state: (state.count('Fungus2_15[top3]', player) or state.count('Fungus2_15[right1]', player) or state.count('Fungus2_15[left1]', player)) and True) + fn("Defeated_Sanctum_Warrior", lambda state: (state.count('Ruins1_23', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'EnemyPogos'))) or state.count('Ruins1_23[top1]', player)) and True) + fn("Defeated_Soul_Master", lambda state: state.count('Ruins1_24[right1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))) + fn("Defeated_Elegant_Warrior", lambda state: (state.count('Ruins1_31b[right1]', player) or state.count('Ruins1_31b[right2]', player)) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Crystal_Guardian", lambda state: (state.count('Mines_18[left1]', player) or state.count('Mines_18[right1]', player) or state.count('Mines_18[top1]', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('Great_Slash', player) or state.count('Cyclone_Slash', player) or ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) and state.count('Dash_Slash', player))) and True) + fn("Defeated_Enraged_Guardian", lambda state: state.count('Mines_32[bot1]', player) and state.count('Defeated_Crystal_Guardian', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Flukemarm", lambda state: state.count('Waterways_12[right1]', player) and (state.count('SWIM', player) or state.count('LEFTSUPERDASH', player)) and (state.count('FIREBALL', player) > 1 or state.count('SCREAM', player) > 1 or ((state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'RemoveSpellUpgrades') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) + fn("Defeated_Dung_Defender", lambda state: state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Broken_Vessel", lambda state: state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Hornet_2", lambda state: state.count('Deepnest_East_Hornet[left1]', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Watcher_Knights", lambda state: (state.count('Ruins2_03[bot1]', player) or state.count('Ruins2_03[top1]', player)) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Uumuu", lambda state: state.count('Fungus3_archive_02[top1]', player) and ((state.count('LEFTSUPERDASH', player) or state.count('RIGHTSUPERDASH', player)) or state.count('ACID', player) or (state._hk_option(player, 'AcidSkips') and state.count('LEFTDASH', player) and state.count('LEFTCLAW', player) and state.count('WINGS', player))) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) + fn("Defeated_Nosk", lambda state: state.count('Deepnest_32[left1]', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Traitor_Lord", lambda state: (state.count('Fungus3_23[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or (state.count('Fungus3_23[right1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Grimm", lambda state: state.count('Grimm_Main_Tent[left1]', player) and state.count('GRIMMCHILD', player) and (state.count('FLAMES', player) > 5) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Collector", lambda state: state.count('Ruins2_11[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Hive_Knight", lambda state: state.count('Hive_05[left1]', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Pale_Lurker", lambda state: state.count('GG_Lurker[left1]', player) and (state.count('SWIM', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player))) and state.count('RIGHTCLAW', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Elder_Hu", lambda state: state.count('Fungus2_32[left1]', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) + fn("Defeated_Xero", lambda state: state.count('RestingGrounds_02', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) + fn("Defeated_Gorb", lambda state: state.count('Cliffs_02', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) + fn("Defeated_Marmu", lambda state: (state.count('Fungus3_40[top1]', player) or (state.count('Fungus3_40[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)))) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) + fn("Defeated_No_Eyes", lambda state: (state.count('Fungus1_35[left1]', player) or state.count('Fungus1_35[right1]', player)) and state.count('LANTERN', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) + fn("Defeated_Galien", lambda state: state.count('Deepnest_40[right1]', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) + fn("Defeated_Markoth", lambda state: state.count('Deepnest_East_10[left1]', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) + fn("Defeated_Failed_Champion", lambda state: (state.count('Crossroads_10[left1]', player) or state.count('Crossroads_10[right1]', player)) and state.count('Defeated_False_Knight', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player))) and state.count('DREAMNAIL', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Soul_Tyrant", lambda state: (state.count('Ruins1_24[right1]', player) or state.count('Ruins1_24[left1]', player)) and state.count('Defeated_Soul_Master', player) and (state.count('LEFTCLAW', player) and state._hk_option(player, 'PreciseMovement') or state.count('WINGS', player) or state.count('LEFTDASH', player)) and state.count('DREAMNAIL', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Lost_Kin", lambda state: (state.count('Abyss_19[left1]', player) or state.count('Abyss_19[bot1]', player)) and state.count('Defeated_Broken_Vessel', player) and state.count('DREAMNAIL', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_White_Defender", lambda state: state.count('Waterways_15[top1]', player) and state.count('DREAMNAIL', player) and (state.count('DREAMER', player) > 2) and state.count('Defeated_Dung_Defender', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Grey_Prince_Zote", lambda state: state.count('Room_Bretta[right1]', player) and state.count('DREAMNAIL', player) and state.count('WINGS', player) and state.count('Rescued_Bretta', player) and state.count('Defeated_Colosseum_Zote', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Colosseum_1", lambda state: state.count('Room_Colosseum_01[left1]', player) and state.count('Can_Replenish_Geo', player) and ((state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))) and (state.count('FOCUS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Colosseum_2", lambda state: state.count('Room_Colosseum_01[left1]', player) and state.count('Can_Replenish_Geo', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')) and state.count('WINGS', player))) and ((state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))) and (state.count('FOCUS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Shrumal_Ogre_Arena", lambda state: (state.count('Fungus2_05[bot1]', player) or state.count('Fungus2_05[right1]', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))) + fn("Defeated_King's_Station_Arena", lambda state: state.count('Ruins2_09[bot1]', player) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_West_Queen's_Gardens_Arena", lambda state: (state.count('Fungus3_10[bot1]', player) or (state.count('Fungus3_10[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player)))) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Defeated_Path_of_Pain_Arena", lambda state: state.count('White_Palace_20[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTDASH', player) and state.count('WINGS', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Can_Bench", lambda state: state.count('Town', player) or state.count('Room_nailmaster[left1]', player) or state.count('Crossroads_30[left1]', player) or state.count('Crossroads_47[right1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_ShamanTemple[left1]', player) or (state.count('Room_temple[left1]', player) and state.count('Opened_Black_Egg_Temple', player)) or state.count('Fungus1_01b[left1]', player) or state.count('Fungus1_37[left1]', player) or state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_16_alt[right1]', player) or state.count('Room_Slug_Shrine[left1]', player) or state.count('Fungus1_15[door1]', player) or (state.count('Fungus3_archive[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or state.count('Fungus2_02[right1]', player) or state.count('Fungus2_26[left1]', player) or state.count('Fungus2_13', player) or (state.count('Fungus2_31[left1]', player) and state.count('Defeated_Mantis_Lords', player)) or (state.count('Ruins1_02[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or state.count('Ruins1_02[top1]', player) or (state.count('Ruins1_31[left1]', player) and state.count('Can_Replenish_Geo', player)) or state.count('Ruins1_29[left1]', player) or state.count('Ruins1_18[right2]', player) or state.count('Ruins2_08[left1]', player) or state.count('Ruins_Bathhouse[door1]', player) or state.count('Deepnest_30[left1]', player) or state.count('Deepnest_14[left1]', player) or (state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) or (state.count('Waterways_02[top3]', player) and state.count('QUAKE', player)) or (state.count('Waterways_02', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips') and (state.count('WINGS', player) or state.count('RIGHTCLAW', player))))) or (state.count('Abyss_18[right1]', player) and state.count('Can_Replenish_Geo', player)) or state.count('Abyss_22[left1]', player) or state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_13[bot1]', player) or state.count('Room_Colosseum_02[top1]', player) or state.count('Room_Colosseum_02[top2]', player) or state.count('Hive_01[right2]', player) or state.count('Mines_29[left1]', player) or (state.count('Mines_18[left1]', player) and state.count('Defeated_Crystal_Guardian', player)) or state.count('RestingGrounds_09[left1]', player) or state.count('RestingGrounds_12[door_Mansion]', player) or (state.count('Fungus1_24[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Fungus3_50[right1]', player) and state.count('Can_Replenish_Geo', player)) or state.count('Fungus3_40[right1]', player) or state.count('White_Palace_01', player) or state.count('White_Palace_03_hub', player) or state.count('White_Palace_06[top1]', player) or state.count('Upper_Tram', player) or state.count('Lower_Tram', player)) + fn("Can_Stag", lambda state: state.count('Room_Town_Stag_Station[left1]', player) or state.count('Crossroads_47[right1]', player) or state.count('Fungus1_16_alt[right1]', player) or state.count('Fungus2_02[right1]', player) or (state.count('Fungus3_40[top1]', player) or state.count('Fungus3_40[right1]', player)) or state.count('Ruins1_29[left1]', player) or state.count('Ruins2_08[left1]', player) or state.count('RestingGrounds_09[left1]', player) or state.count('Deepnest_09[left1]', player) or state.count('Abyss_22[left1]', player)) + fn("Can_Repair_Fragile_Charms", lambda state: state.count('Fungus2_26[left1]', player) and state.count('Can_Replenish_Geo', player)) + fn("First_Grimmchild_Upgrade", lambda state: state.count('Grimm_Main_Tent[left1]', player) and state.count('GRIMMCHILD', player) and (state.count('FLAMES', player) > 2)) + fn("Second_Grimmchild_Upgrade", lambda state: state.count('Grimm_Main_Tent[left1]', player) and state.count('GRIMMCHILD', player) and (state.count('FLAMES', player) > 5) and state.count('Defeated_Grimm', player)) + fn("Nightmare_Lantern_Lit", lambda state: state.count('Cliffs_06[left1]', player) and state.count('DREAMNAIL', player) or state.count('GRIMMCHILD', player)) + fn("Opened_Waterways_Manhole", lambda state: state.count('Ruins1_05b', player) and state.count('SIMPLE', player) > 3) + fn("Opened_Dung_Defender_Wall", lambda state: state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Dung_Defender', player) or state.count('Waterways_05[bot2]', player) or state.count('Waterways_05[right1]', player)) + fn("Opened_Resting_Grounds_Floor", lambda state: (state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[right1]', player)) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or state.count('RestingGrounds_06[top1]', player)) + fn("Opened_Resting_Grounds_Catacombs_Wall", lambda state: state.count('RestingGrounds_10', player)) + fn("Opened_Pleasure_House_Wall", lambda state: state.count('Ruins_Bathhouse[door1]', player) or state.count('Ruins_Bathhouse[right1]', player)) + fn("Opened_Gardens_Stag_Exit", lambda state: state.count('Fungus3_40[top1]', player) or state.count('Fungus3_40[right1]', player) or (state.count("Queen's_Gardens_Stag", player) and state.count('Can_Stag', player))) + fn("Opened_Mawlek_Wall", lambda state: state.count('Crossroads_09[right1]', player) or (state.count('Crossroads_09[left1]', player) and state.count('Defeated_Brooding_Mawlek', player))) + fn("Opened_Shaman_Pillar", lambda state: state.count('Crossroads_06[left1]', player) or state.count('Crossroads_06[door1]', player) or state.count('Crossroads_06[right1]', player) or state.count('DREAMER', player)) + fn("Opened_Archives_Exit_Wall", lambda state: state.count('Fungus3_47', player)) + fn("Opened_Tramway_Exit_Gate", lambda state: state.count('Deepnest_26b[right2]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos'))))) + fn("Broke_Sanctum_Glass_Floor", lambda state: state.count('Ruins1_30', player) and state.count('QUAKE', player)) + fn("Opened_Emilitia_Door", lambda state: state.count('Ruins_House_03[left1]', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('Ruins_House_03[left2]', player))) + fn("Lit_Abyss_Lighthouse", lambda state: state.count('Abyss_Lighthouse_room[left1]', player)) + fn("Opened_Lower_Kingdom's_Edge_Wall", lambda state: state.count('Deepnest_East_02', player)) + fn("Opened_Glade_Door", lambda state: state.count('RestingGrounds_07[right1]', player) and state.count('ESSENCE', player) > 199) + fn("Opened_Waterways_Exit", lambda state: (state.count('Waterways_09[left1]', player) or state.count('Waterways_09[right1]', player)) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))) or False) + fn("Palace_Entrance_Lantern_Lit", lambda state: state.count('White_Palace_02[left1]', player) and state.count('LEFTCLAW', player) and state.count('WINGS', player) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("Palace_Left_Lantern_Lit", lambda state: state.count('White_Palace_14[right1]', player)) + fn("Palace_Right_Lantern_Lit", lambda state: state.count('White_Palace_15[right1]', player)) + fn("Palace_Atrium_Gates_Opened", lambda state: state.count('Palace_Left_Lantern_Lit', player) and state.count('Palace_Right_Lantern_Lit', player)) + fn("Opened_Black_Egg_Temple", lambda state: state.count('Room_temple[left1]', player) and state.count('DREAMER', player) > 2) + fn("Tutorial_01", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) + fn("Town", lambda state: state.count('Town[left1]', player) or state.count('Town[top1]', player) or state.count('Town[bot1]', player) or state.count('Town[right1]', player) or state.count('Town[door_station]', player) or state.count('Town[door_sly]', player) or state.count('Town[door_mapper]', player) or state.count('Town[door_bretta]', player) or state.count('Town[door_jiji]', player)) + fn("Crossroads_03", lambda state: state.count('Crossroads_03[right1]', player) or state.count('Crossroads_03[right2]', player) or state.count('Crossroads_03[left1]', player) or state.count('Crossroads_03[left2]', player) or state.count('Crossroads_03[bot1]', player)) + fn("Crossroads_07", lambda state: state.count('Crossroads_07[left1]', player) or state.count('Crossroads_07[left2]', player) or state.count('Crossroads_07[left3]', player) or state.count('Crossroads_07[right1]', player) or state.count('Crossroads_07[right2]', player) or state.count('Crossroads_07[bot1]', player)) + fn("Crossroads_08", lambda state: state.count('Crossroads_08[left1]', player) or state.count('Crossroads_08[left2]', player) or state.count('Crossroads_08[right1]', player) or state.count('Crossroads_08[right2]', player)) + fn("Crossroads_14", lambda state: state.count('Crossroads_14[left1]', player) or state.count('Crossroads_14[left2]', player) or state.count('Crossroads_14[right1]', player) or state.count('Crossroads_14[right2]', player)) + fn("Crossroads_18", lambda state: state.count('Crossroads_18[right1]', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) or state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18[right2]', player)) + fn("Crossroads_19", lambda state: state.count('Crossroads_19[left1]', player) or state.count('Crossroads_19[left2]', player) or state.count('Crossroads_19[right1]', player) or state.count('Crossroads_19[top1]', player)) + fn("Crossroads_21", lambda state: state.count('Crossroads_21[left1]', player) or state.count('Crossroads_21[right1]', player) or state.count('Crossroads_21[top1]', player)) + fn("Crossroads_27", lambda state: state.count('Crossroads_27[right1]', player) or state.count('Crossroads_27[bot1]', player) or state.count('Crossroads_27[left1]', player) or state.count('Crossroads_27[left2]', player)) + fn("Crossroads_33", lambda state: state.count('Crossroads_33[top1]', player) or state.count('Crossroads_33[left1]', player) or state.count('Crossroads_33[left2]', player) or state.count('Crossroads_33[right1]', player) or state.count('Crossroads_33[right2]', player)) + fn("Fungus1_11", lambda state: state.count('Fungus1_11[left1]', player) or state.count('Fungus1_11[top1]', player) or state.count('Fungus1_11[bot1]', player) or state.count('Fungus1_11[right1]', player) or state.count('Fungus1_11[right2]', player)) + fn("Fungus1_21", lambda state: state.count('Fungus1_21[left1]', player) or state.count('Fungus1_21[top1]', player) or (state.count('Fungus1_21[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player))) or state.count('Fungus1_21[bot1]', player)) + fn("Fungus1_30", lambda state: state.count('Fungus1_30[left1]', player) or state.count('Fungus1_30[right1]', player) or state.count('Fungus1_30[top1]', player) or state.count('Fungus1_30[top3]', player)) + fn("Fungus3_01", lambda state: state.count('Fungus3_01[left1]', player) or state.count('Fungus3_01[top1]', player) or state.count('Fungus3_01[right1]', player) or state.count('Fungus3_01[right2]', player)) + fn("Fungus3_02", lambda state: state.count('Fungus3_02[left1]', player) or state.count('Fungus3_02[left2]', player) or state.count('Fungus3_02[left3]', player) or state.count('Fungus3_02[right1]', player) or state.count('Fungus3_02[right2]', player)) + fn("Fungus3_26", lambda state: state.count('Fungus3_26[top1]', player) or state.count('Fungus3_26[left1]', player) or state.count('Fungus3_26[left2]', player) or state.count('Fungus3_26[left3]', player) or state.count('Fungus3_26[right1]', player)) + fn("Fungus3_44", lambda state: state.count('Fungus3_44[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or state.count('Fungus3_44[door1]', player) or state.count('Fungus3_44[right1]', player)) + fn("Fungus3_47", lambda state: state.count('Fungus3_47[left1]', player) or state.count('Fungus3_47[door1]', player) or state.count('Fungus3_47[right1]', player)) + fn("Fungus2_01", lambda state: state.count('Fungus2_01[left1]', player) or state.count('Fungus2_01[left2]', player) or state.count('Fungus2_01[left3]', player) or state.count('Fungus2_01[right1]', player)) + fn("Fungus2_03", lambda state: state.count('Fungus2_03[left1]', player) or state.count('Fungus2_03[bot1]', player) or state.count('Fungus2_03[right1]', player)) + fn("Fungus2_04", lambda state: state.count('Fungus2_04[left1]', player) or state.count('Fungus2_04[right1]', player) or state.count('Fungus2_04[right2]', player) or state.count('Fungus2_04[top1]', player)) + fn("Fungus2_06", lambda state: state.count('Fungus2_06[left1]', player) or (state.count('Fungus2_06[left2]', player) and state.count('ACID', player)) or state.count('Fungus2_06[top1]', player) or state.count('Fungus2_06[right1]', player) or state.count('Fungus2_06[right2]', player)) + fn("Fungus2_11", lambda state: state.count('Fungus2_11[top1]', player) or state.count('Fungus2_11[left1]', player) or state.count('Fungus2_11[left2]', player) or state.count('Fungus2_11[right1]', player)) + fn("Fungus2_13", lambda state: state.count('Fungus2_13[top1]', player) or state.count('Fungus2_13[left2]', player) or (state.count('Fungus2_13[left3]', player) and (state.count('RIGHTDASH', player) or state.count('ACID', player) or state.count('WINGS', player) or state.count('LEFTCLAW', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or state._hk_option(player, 'ShadeSkips')))) + fn("Fungus2_14", lambda state: state.count('Fungus2_14[top1]', player) or state.count('Fungus2_14[bot3]', player) or (state.count('Fungus2_14[right1]', player) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player) or state.count('ACID', player)))) + fn("Fungus2_17", lambda state: state.count('Fungus2_17[right1]', player) or state.count('Fungus2_17[left1]', player) or state.count('Fungus2_17[bot1]', player)) + fn("Fungus2_20", lambda state: state.count('Fungus2_20[left1]', player) or state.count('Fungus2_20[right1]', player)) + fn("Fungus2_23", lambda state: state.count('Fungus2_23[right1]', player) or (state.count('Fungus2_23[right2]', player) and state.count('Opened_Waterways_Exit', player))) + fn("Deepnest_01", lambda state: state.count('Deepnest_01[left1]', player) or state.count('Deepnest_01[bot1]', player) or state.count('Deepnest_01[right1]', player)) + fn("Deepnest_01b", lambda state: state.count('Deepnest_01b[top1]', player) or state.count('Deepnest_01b[top2]', player) or state.count('Deepnest_01b[right1]', player) or (state.count('Deepnest_01b[right2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Deepnest_01b[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_02", lambda state: state.count('Deepnest_02[left1]', player) or state.count('Deepnest_02[left2]', player) or state.count('Deepnest_02[right1]', player)) + fn("Deepnest_03", lambda state: state.count('Deepnest_03[right1]', player) or state.count('Deepnest_03[top1]', player) or state.count('Deepnest_03[left1]', player) or state.count('Deepnest_03[left2]', player)) + fn("Deepnest_10", lambda state: state.count('Deepnest_10[right1]', player) or state.count('Deepnest_10[right2]', player) or state.count('Deepnest_10[door1]', player) or state.count('Deepnest_10[door2]', player)) + fn("Deepnest_14", lambda state: state.count('Deepnest_14[left1]', player) or state.count('Deepnest_14[bot1]', player) or state.count('Deepnest_14[bot2]', player)) + fn("Deepnest_17", lambda state: state.count('Deepnest_17[left1]', player) or state.count('Deepnest_17[right1]', player) or state.count('Deepnest_17[top1]', player) or state.count('Deepnest_17[bot1]', player)) + fn("Deepnest_26", lambda state: state.count('Deepnest_26[right1]', player) or state.count('Deepnest_26[bot1]', player) or (state.count('Deepnest_26[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or state.count('WINGS', player)) and state.count('Opened_Tramway_Exit_Gate', player))) + fn("Deepnest_34", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_34[left1]', player) or state.count('Deepnest_34[right1]', player) or state.count('Deepnest_34[top1]', player))) + fn("Deepnest_35", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_35[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('Deepnest_35[left1]', player) or state.count('Deepnest_35[top1]', player))) + fn("Deepnest_37", lambda state: state.count('Deepnest_37[left1]', player) or state.count('Deepnest_37[top1]', player) or state.count('Deepnest_37[right1]', player) or state.count('Deepnest_37[bot1]', player)) + fn("Deepnest_39", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39[right1]', player) or state.count('Deepnest_39[door1]', player) or state.count('Deepnest_39[top1]', player) or state.count('Deepnest_39[left1]', player))) + fn("Deepnest_41", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_41[left1]', player) and (state.count('RIGHTCLAW', player) or ((state.count('LEFTCLAW', player) or state.count('WINGS', player)) and state._hk_option(player, 'EnemyPogos'))) or (state.count('Deepnest_41[left2]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) or (state.count('Deepnest_41[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))))) + fn("Deepnest_42", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_42[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('Deepnest_42[left1]', player) or state.count('Deepnest_42[top1]', player))) + fn("Deepnest_East_02", lambda state: state.count('Deepnest_East_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) or state.count('Deepnest_East_02[top1]', player) or state.count('Deepnest_East_02[right1]', player)) + fn("Deepnest_East_03", lambda state: state.count('Deepnest_East_03[left1]', player) or state.count('Deepnest_East_03[left2]', player) or state.count('Deepnest_East_03[top1]', player) or state.count('Deepnest_East_03[right1]', player) or state.count('Deepnest_East_03[right2]', player) or state.count('Deepnest_East_03[top2]', player)) + fn("Deepnest_East_04", lambda state: state.count('Deepnest_East_04[left1]', player) and state.count('ACID', player) or state.count('Deepnest_East_04[left2]', player) or state.count('Deepnest_East_04[right2]', player) or (state.count('Deepnest_East_04[right1]', player) and (state.count('ACID', player) or state.count('LEFTDASH', player) or state.count('WINGS', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or (state.count('MASKSHARDS', player) > 7)))) + fn("Deepnest_East_07", lambda state: state.count('Deepnest_East_07[right1]', player) or state.count('Deepnest_East_07[left1]', player) or state.count('Deepnest_East_07[left2]', player)) + fn("Deepnest_East_11", lambda state: state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[bot1]', player) or (state.count('Deepnest_East_11[top1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or state.count('FIREBALL', player) or state.count('QUAKE', player))) or state.count('Deepnest_East_11[right1]', player)) + fn("Deepnest_East_18", lambda state: state.count('Deepnest_East_18[top1]', player) or state.count('Deepnest_East_18[bot1]', player) or (state.count('Deepnest_East_18[right2]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)))) + fn("Hive_03_c", lambda state: state.count('Hive_03_c[left1]', player) or state.count('Hive_03_c[top1]', player) or state.count('Hive_03_c[right2]', player) or state.count('Hive_03_c[right3]', player)) + fn("Abyss_03", lambda state: state.count('Abyss_03[top1]', player) or (state.count('Abyss_03[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) or state.count('Abyss_03[bot2]', player)) + fn("Abyss_03_b", lambda state: state.count('Abyss_03_b[left1]', player)) + fn("Abyss_03_c", lambda state: state.count('Abyss_03_c[top1]', player) or state.count('Abyss_03_c[right1]', player)) + fn("Abyss_04", lambda state: state.count('Abyss_04[top1]', player) or state.count('Abyss_04[right1]', player) or state.count('Abyss_04[bot1]', player) or state.count('Abyss_04[left1]', player)) + fn("Abyss_06_Core", lambda state: state.count('Abyss_06_Core[top1]', player) and state.count('BRAND', player) or state.count('Abyss_06_Core[left1]', player) or state.count('Abyss_06_Core[left3]', player) or state.count('Abyss_06_Core[bot1]', player) or state.count('Abyss_06_Core[right2]', player)) + fn("Abyss_09", lambda state: state.count('Abyss_09[left1]', player) and (state.count('RIGHTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or (state.count('SWIM', player) and state.count('WHITEFRAGMENT', player) > 2)) or state.count('WINGS', player)) or (state.count('Abyss_09[right1]', player) and (state.count('Lit_Abyss_Lighthouse', player) or state.count('WHITEFRAGMENT', player) > 2) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player))) or state.count('Abyss_09[right2]', player)) + fn("Abyss_19", lambda state: state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or state.count('Abyss_19[right1]', player)) + fn("Abyss_01", lambda state: state.count('Abyss_01[left1]', player) or state.count('Abyss_01[right1]', player) or (state.count('Abyss_01[left3]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player)))) or (state.count('Abyss_01[left2]', player) and (state._hk_option(player, 'SpikeTunnels') and state.count('RIGHTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or state.count('RIGHTSUPERDASH', player))) or (state.count('Abyss_01[right2]', player) and (state._hk_option(player, 'SpikeTunnels') and state.count('LEFTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or state.count('LEFTSUPERDASH', player)))) + fn("Waterways_01", lambda state: state.count('Waterways_01[top1]', player) or state.count('Waterways_01[right1]', player) or state.count('Waterways_01[bot1]', player) or state.count('Waterways_01[left1]', player)) + fn("Waterways_02", lambda state: state.count('Waterways_02[top1]', player) or state.count('Waterways_02[top2]', player) or (state.count('Waterways_02[top3]', player) and state.count('QUAKE', player)) or state.count('Waterways_02[bot1]', player) or state.count('Waterways_02[bot2]', player)) + fn("Waterways_04", lambda state: state.count('Waterways_04[right1]', player) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or state.count('Waterways_04[left2]', player)) + fn("Waterways_04b", lambda state: state.count('Waterways_04b[right1]', player) or state.count('Waterways_04b[right2]', player) or state.count('Waterways_04b[left1]', player)) + fn("Waterways_07", lambda state: state.count('Waterways_07[left1]', player) and (state.count('ACID', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTSUPERDASH', player)) or (state.count('WINGS', player) and state.count('RIGHTDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or (state.count('Waterways_07[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Waterways_07[right2]', player) and state.count('ACID', player)) or state.count('Waterways_07[door1]', player) or state.count('Waterways_07[top1]', player)) + fn("Ruins1_03", lambda state: state.count('Ruins1_03[top1]', player) or state.count('Ruins1_03[left1]', player) or state.count('Ruins1_03[right1]', player) or state.count('Ruins1_03[right2]', player)) + fn("Ruins1_05b", lambda state: state.count('Ruins1_05b[top1]', player) or state.count('Ruins1_05b[right1]', player) or state.count('Ruins1_05b[left1]', player) or state.count('Ruins1_05b[bot1]', player)) + fn("Ruins1_05c", lambda state: state.count('Ruins1_05c[bot1]', player) or state.count('Ruins1_05c[left2]', player) or state.count('Ruins1_05c[top1]', player) or state.count('Ruins1_05c[top2]', player) or state.count('Ruins1_05c[top3]', player)) + fn("Ruins1_05", lambda state: state.count('Ruins1_05[bot3]', player) or state.count('Ruins1_05[right1]', player) or state.count('Ruins1_05[right2]', player) or state.count('Ruins1_05[top1]', player)) + fn("Ruins1_23", lambda state: state.count('Ruins1_23[right2]', player) or state.count('Ruins1_23[left1]', player) or state.count('Ruins1_23[bot1]', player)) + fn("Ruins1_28", lambda state: state.count('Ruins1_28[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or state._hk_option(player, 'BackgroundObjectPogos') or (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips')))) or state.count('Ruins1_28[bot1]', player) or state.count('Ruins1_28[right1]', player)) + fn("Ruins1_30", lambda state: state.count('Ruins1_30[left1]', player) or (state.count('Ruins1_30[left2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('QUAKE', player)) or state.count('Ruins1_30[bot1]', player) or state.count('Ruins1_30[right1]', player)) + fn("Ruins1_31", lambda state: state.count('Ruins1_31[right1]', player) or state.count('Ruins1_31[left2]', player) or state.count('Ruins1_31[left3]', player)) + fn("Ruins2_01", lambda state: state.count('Ruins2_01[top1]', player) or state.count('Ruins2_01[bot1]', player) or state.count('Ruins2_01[left2]', player)) + fn("Ruins2_01_b", lambda state: state.count('Ruins2_01_b[top1]', player) or state.count('Ruins2_01_b[left1]', player) or state.count('Ruins2_01_b[right1]', player)) + fn("Ruins2_03b", lambda state: state.count('Ruins2_03b[top1]', player) or state.count('Ruins2_03b[top2]', player) or state.count('Ruins2_03b[left1]', player) or state.count('Ruins2_03b[bot1]', player)) + fn("Ruins2_04", lambda state: state.count('Ruins2_04[left1]', player) or state.count('Ruins2_04[left2]', player) or state.count('Ruins2_04[right1]', player) or state.count('Ruins2_04[right2]', player) or state.count('Ruins2_04[door_Ruin_House_01]', player) or state.count('Ruins2_04[door_Ruin_House_02]', player) or state.count('Ruins2_04[door_Ruin_House_03]', player) or state.count('Ruins2_04[door_Ruin_Elevator]', player)) + fn("Ruins2_10", lambda state: state.count('Ruins2_10[right1]', player) or state.count('Ruins2_10[left1]', player) or state.count('Right_Elevator', player)) + fn("RestingGrounds_02", lambda state: state.count('RestingGrounds_02[top1]', player) or state.count('RestingGrounds_02[left1]', player) or state.count('RestingGrounds_02[bot1]', player) or state.count('RestingGrounds_02[right1]', player)) + fn("RestingGrounds_05", lambda state: state.count('RestingGrounds_05[left1]', player) or state.count('RestingGrounds_05[left2]', player) or state.count('RestingGrounds_05[left3]', player) or state.count('RestingGrounds_05[right1]', player) or state.count('RestingGrounds_05[right2]', player) or state.count('RestingGrounds_05[bot1]', player)) + fn("RestingGrounds_10", lambda state: state.count('RestingGrounds_10[left1]', player) or state.count('RestingGrounds_10[top1]', player) or state.count('RestingGrounds_10[top2]', player)) + fn("Mines_02", lambda state: state.count('Mines_02[top1]', player) or state.count('Mines_02[top2]', player) or state.count('Mines_02[left1]', player) or state.count('Mines_02[right1]', player)) + fn("Mines_03", lambda state: state.count('Mines_03[right1]', player) or state.count('Mines_03[top1]', player) or state.count('Mines_03[bot1]', player)) + fn("Mines_04", lambda state: state.count('Mines_04[left1]', player) or state.count('Mines_04[left2]', player) or (state.count('Mines_04[left3]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos'))))) or state.count('Mines_04[right1]', player) or state.count('Mines_04[top1]', player)) + fn("Mines_05", lambda state: state.count('Mines_05[right1]', player) or state.count('Mines_05[top1]', player) or state.count('Mines_05[bot1]', player) or state.count('Mines_05[left1]', player) or state.count('Mines_05[left2]', player)) + fn("Mines_10", lambda state: state.count('Mines_10[left1]', player) and (state.count('RIGHTDASH', player) and state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)) or (state.count('Mines_10[bot1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) or (state.count('Mines_10[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTSUPERDASH', player))) + fn("Mines_11", lambda state: state.count('Mines_11[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or state.count('Mines_11[right1]', player) or state.count('Mines_11[top1]', player)) + fn("Mines_18", lambda state: state.count('Mines_18[left1]', player) or state.count('Mines_18[right1]', player) or state.count('Mines_18[top1]', player)) + fn("Mines_20", lambda state: state.count('Mines_20[left1]', player) or state.count('Mines_20[right1]', player) or (state.count('Mines_20[right2]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) + fn("Mines_23", lambda state: (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player))) or state.count('Mines_23[right1]', player)) and (state.count('Mines_23[left1]', player) or state.count('Mines_23[top1]', player) or state.count('Mines_23[right1]', player) or state.count('Mines_23[right2]', player))) + fn("Fungus3_04", lambda state: state.count('Fungus3_04[left1]', player) or state.count('Fungus3_04[left2]', player) or state.count('Fungus3_04[right1]', player) or state.count('Fungus3_04[right2]', player)) + fn("Fungus3_11", lambda state: state.count('Fungus3_11[left1]', player) or (state.count('Fungus3_11[left2]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) or (state.count('Fungus3_11[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) + fn("Fungus3_13", lambda state: state.count('Fungus3_13[left1]', player) or state.count('Fungus3_13[left2]', player) or state.count('Fungus3_13[left3]', player) or state.count('Fungus3_13[bot1]', player) or state.count('Fungus3_13[right1]', player)) + fn("Fungus3_22", lambda state: state.count('Fungus3_22[right1]', player) or state.count('Fungus3_22[left1]', player) or state.count('Fungus3_22[bot1]', player)) + fn("Fungus3_34", lambda state: state.count('Fungus3_34[left1]', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player)) or state.count('Fungus3_34[right1]', player) or state.count('Fungus3_34[top1]', player)) + fn("Fungus3_40", lambda state: state.count('Fungus3_40[top1]', player) or state.count('Fungus3_40[right1]', player)) + fn("Cliffs_01", lambda state: state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player) or state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) + fn("Cliffs_02", lambda state: state.count('Cliffs_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')))) or state.count('Cliffs_02[door1]', player) or state.count('Cliffs_02[left1]', player) or state.count('Cliffs_02[left2]', player)) + fn("White_Palace_01", lambda state: state.count('White_Palace_01[left1]', player) and (state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player))) or (state.count('White_Palace_01[right1]', player) and (state.count('LEFTDASH', player) and (state._hk_option(player, 'BackgroundObjectPogos') or state.count('LEFTCLAW', player)) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player))) or (state.count('White_Palace_01[top1]', player) and state.count('Palace_Entrance_Lantern_Lit', player))) + fn("White_Palace_03_hub", lambda state: state.count('White_Palace_03_hub[left1]', player) or state.count('White_Palace_03_hub[left2]', player) or (state.count('White_Palace_03_hub[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or state.count('White_Palace_03_hub[right1]', player) or (state.count('White_Palace_03_hub[top1]', player) and state.count('Palace_Atrium_Gates_Opened', player))) + fn("White_Palace_13", lambda state: state.count('White_Palace_13[right1]', player) and state._hk_option(player, 'ObscureSkips') and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state.count('LEFTCLAW', player) and (state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or (state.count('White_Palace_13[left1]', player) and state.count('RIGHTCLAW', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player))) or (state.count('White_Palace_13[left2]', player) and state.count('LEFTCLAW', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)))) or state.count('White_Palace_13[left3]', player)) + fn("Abyss_05", lambda state: state.count('Abyss_05[left1]', player) or state.count('Abyss_05[right1]', player) or state.count('Warp-White_Palace_Entrance_to_Palace_Grounds', player) or state.count('Warp-White_Palace_Atrium_to_Palace_Grounds', player)) + fn("Room_temple[left1]", lambda state: state.count('Room_temple[left1]', player)) + fn("Tutorial_01[right1]", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01', player)) + fn("Tutorial_01[top1]", lambda state: False) + fn("Tutorial_01[top2]", lambda state: state.count('Tutorial_01[top2]', player) or (((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips'))) and state.count('Tutorial_01', player))) + fn("Town[left1]", lambda state: state.count('Town[left1]', player) or (state.count('Town', player) and (state.count('LEFTCLAW', player) or (state.count('Town[right1]', player) and state.count('LEFTSUPERDASH', player))))) + fn("Town[bot1]", lambda state: state.count('Town[bot1]', player) or state.count('Town', player)) + fn("Town[right1]", lambda state: state.count('Town[right1]', player) or (state.count('Town', player) and (state.count('LEFTCLAW', player) or state.count('Town[left1]', player)) and state.count('WINGS', player) and state.count('RIGHTSUPERDASH', player))) + fn("Town[top1]", lambda state: False) + fn("Town[door_station]", lambda state: state.count('Town[door_station]', player) or (state.count('Town', player) and state.count('Dirtmouth_Stag', player))) + fn("Town[door_sly]", lambda state: state.count('Town[door_sly]', player) or (state.count('Town', player) and state.count('Rescued_Sly', player))) + fn("Town[door_mapper]", lambda state: state.count('Town[door_mapper]', player) or state.count('Town', player)) + fn("Town[door_jiji]", lambda state: state.count('Town[door_jiji]', player) or (state.count('Town', player) and state.count('SIMPLE', player) > 3)) + fn("Town[door_bretta]", lambda state: state.count('Town[door_bretta]', player) or (state.count('Town', player) and state.count('Rescued_Bretta', player))) + fn("Town[room_divine]", lambda state: state.count('Town[room_divine]', player) or (state.count('Town', player) and state.count('Nightmare_Lantern_Lit', player))) + fn("Town[room_grimm]", lambda state: state.count('Town[room_grimm]', player) or (state.count('Town', player) and state.count('Nightmare_Lantern_Lit', player))) + fn("Room_shop[left1]", lambda state: state.count('Room_shop[left1]', player)) + fn("Room_Town_Stag_Station[left1]", lambda state: state.count('Room_Town_Stag_Station[left1]', player) or (state.count('Dirtmouth_Stag', player) and state.count('Can_Stag', player))) + fn("Room_mapper[left1]", lambda state: state.count('Room_mapper[left1]', player)) + fn("Room_Bretta[right1]", lambda state: state.count('Room_Bretta[right1]', player)) + fn("Room_Ouiji[left1]", lambda state: state.count('Room_Ouiji[left1]', player)) + fn("Grimm_Divine[left1]", lambda state: state.count('Grimm_Divine[left1]', player)) + fn("Grimm_Main_Tent[left1]", lambda state: state.count('Grimm_Main_Tent[left1]', player)) + fn("Crossroads_01[top1]", lambda state: state.count('Crossroads_01[top1]', player) or state.count('Crossroads_01[left1]', player) or state.count('Crossroads_01[right1]', player)) + fn("Crossroads_01[left1]", lambda state: state.count('Crossroads_01[left1]', player) or state.count('Crossroads_01[top1]', player) or state.count('Crossroads_01[right1]', player)) + fn("Crossroads_01[right1]", lambda state: state.count('Crossroads_01[right1]', player) or state.count('Crossroads_01[top1]', player) or state.count('Crossroads_01[left1]', player)) + fn("Crossroads_02[left1]", lambda state: state.count('Crossroads_02[left1]', player) or state.count('Crossroads_02[door1]', player) or state.count('Crossroads_02[right1]', player)) + fn("Crossroads_02[door1]", lambda state: state.count('Crossroads_02[door1]', player) or state.count('Crossroads_02[left1]', player) or state.count('Crossroads_02[right1]', player)) + fn("Crossroads_02[right1]", lambda state: state.count('Crossroads_02[right1]', player) or state.count('Crossroads_02[left1]', player) or state.count('Crossroads_02[door1]', player)) + fn("Crossroads_03[right1]", lambda state: state.count('Crossroads_03[right1]', player) or state.count('Crossroads_03', player)) + fn("Crossroads_03[right2]", lambda state: state.count('Crossroads_03[right2]', player) or state.count('Crossroads_03', player)) + fn("Crossroads_03[left1]", lambda state: state.count('Crossroads_03[left1]', player) or state.count('Crossroads_03', player)) + fn("Crossroads_03[left2]", lambda state: state.count('Crossroads_03[left2]', player) or state.count('Crossroads_03', player)) + fn("Crossroads_03[bot1]", lambda state: state.count('Crossroads_03[bot1]', player) or state.count('Crossroads_03', player)) + fn("Crossroads_03[top1]", lambda state: state.count('Crossroads_03[top1]', player) or state.count('Crossroads_03', player)) + fn("Crossroads_04[left1]", lambda state: state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or state.count('Crossroads_04[top1]', player)) + fn("Crossroads_04[top1]", lambda state: state.count('Crossroads_04[top1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or state.count('Crossroads_04[left1]', player)) + fn("Crossroads_04[door_Mender_House]", lambda state: state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or ((state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[top1]', player)) and state.count('Defeated_Gruz_Mother', player))) + fn("Crossroads_04[door1]", lambda state: state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or ((state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[top1]', player)) and state.count('Defeated_Gruz_Mother', player))) + fn("Crossroads_04[door_charmshop]", lambda state: state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or ((state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or ((state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[top1]', player)) and state.count('Defeated_Gruz_Mother', player))) and (state.count('RIGHTCLAW', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or state._hk_option(player, 'ShadeSkips') or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))))) + fn("Crossroads_04[right1]", lambda state: state.count('Crossroads_04[right1]', player) or ((state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or ((state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[top1]', player)) and state.count('Defeated_Gruz_Mother', player))) and (state.count('RIGHTCLAW', player) and state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player)) or ((state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'ComplexSkips') and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and True)))))) + fn("Crossroads_05[left1]", lambda state: state.count('Crossroads_05[left1]', player) or state.count('Crossroads_05[right1]', player)) + fn("Crossroads_05[right1]", lambda state: state.count('Crossroads_05[right1]', player) or state.count('Crossroads_05[left1]', player)) + fn("Crossroads_06[left1]", lambda state: state.count('Crossroads_06[left1]', player) or state.count('Crossroads_06[door1]', player) or state.count('Crossroads_06[right1]', player)) + fn("Crossroads_06[door1]", lambda state: state.count('Crossroads_06[door1]', player) or state.count('Crossroads_06[left1]', player) or state.count('Crossroads_06[right1]', player)) + fn("Crossroads_06[right1]", lambda state: state.count('Crossroads_06[right1]', player) or state.count('Crossroads_06[left1]', player) or state.count('Crossroads_06[door1]', player)) + fn("Crossroads_07[left1]", lambda state: state.count('Crossroads_07[left1]', player) or state.count('Crossroads_07', player)) + fn("Crossroads_07[left2]", lambda state: state.count('Crossroads_07[left2]', player) or state.count('Crossroads_07', player)) + fn("Crossroads_07[left3]", lambda state: state.count('Crossroads_07[left3]', player) or state.count('Crossroads_07', player)) + fn("Crossroads_07[right1]", lambda state: state.count('Crossroads_07[right1]', player) or state.count('Crossroads_07', player)) + fn("Crossroads_07[right2]", lambda state: state.count('Crossroads_07[right2]', player) or state.count('Crossroads_07', player)) + fn("Crossroads_07[bot1]", lambda state: state.count('Crossroads_07[bot1]', player) or state.count('Crossroads_07', player)) + fn("Crossroads_08[left1]", lambda state: state.count('Crossroads_08[left1]', player) or state.count('Crossroads_08', player)) + fn("Crossroads_08[left2]", lambda state: state.count('Crossroads_08[left2]', player) or state.count('Crossroads_08', player)) + fn("Crossroads_08[right1]", lambda state: state.count('Crossroads_08[right1]', player) or state.count('Crossroads_08', player)) + fn("Crossroads_08[right2]", lambda state: state.count('Crossroads_08[right2]', player) or state.count('Crossroads_08', player)) + fn("Crossroads_09[left1]", lambda state: state.count('Crossroads_09[left1]', player) or (state.count('Crossroads_09[right1]', player) and state.count('Defeated_Brooding_Mawlek', player))) + fn("Crossroads_09[right1]", lambda state: state.count('Crossroads_09[right1]', player) or (state.count('Crossroads_09[left1]', player) and state.count('Defeated_Brooding_Mawlek', player))) + fn("Crossroads_10[left1]", lambda state: state.count('Crossroads_10[left1]', player) or (state.count('Crossroads_10[right1]', player) and state.count('Defeated_False_Knight', player))) + fn("Crossroads_10[right1]", lambda state: state.count('Crossroads_10[right1]', player) or (state.count('Crossroads_10[left1]', player) and state.count('Defeated_False_Knight', player))) + fn("Crossroads_11_alt[left1]", lambda state: state.count('Crossroads_11_alt[left1]', player) or (state.count('Crossroads_11_alt[right1]', player) and ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('LEFTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player) or (state.count('LEFTDASH', player) and state.count('LEFTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))))) + fn("Crossroads_11_alt[right1]", lambda state: state.count('Crossroads_11_alt[right1]', player)) + fn("Crossroads_12[left1]", lambda state: state.count('Crossroads_12[left1]', player) or state.count('Crossroads_12[right1]', player)) + fn("Crossroads_12[right1]", lambda state: state.count('Crossroads_12[right1]', player) or state.count('Crossroads_12[left1]', player)) + fn("Crossroads_13[left1]", lambda state: state.count('Crossroads_13[left1]', player) or state.count('Crossroads_13[right1]', player)) + fn("Crossroads_13[right1]", lambda state: state.count('Crossroads_13[right1]', player) or state.count('Crossroads_13[left1]', player)) + fn("Crossroads_14[left1]", lambda state: state.count('Crossroads_14[left1]', player) or state.count('Crossroads_14', player)) + fn("Crossroads_14[left2]", lambda state: state.count('Crossroads_14[left2]', player) or state.count('Crossroads_14', player)) + fn("Crossroads_14[right1]", lambda state: state.count('Crossroads_14[right1]', player) or state.count('Crossroads_14', player)) + fn("Crossroads_14[right2]", lambda state: state.count('Crossroads_14[right2]', player) or state.count('Crossroads_14', player)) + fn("Crossroads_15[left1]", lambda state: state.count('Crossroads_15[left1]', player) or state.count('Crossroads_15[right1]', player)) + fn("Crossroads_15[right1]", lambda state: state.count('Crossroads_15[right1]', player) or state.count('Crossroads_15[left1]', player)) + fn("Crossroads_16[left1]", lambda state: state.count('Crossroads_16[left1]', player) or state.count('Crossroads_16[right1]', player) or state.count('Crossroads_16[bot1]', player)) + fn("Crossroads_16[right1]", lambda state: state.count('Crossroads_16[right1]', player) or state.count('Crossroads_16[left1]', player) or state.count('Crossroads_16[bot1]', player)) + fn("Crossroads_16[bot1]", lambda state: state.count('Crossroads_16[bot1]', player) or state.count('Crossroads_16[left1]', player) or state.count('Crossroads_16[right1]', player)) + fn("Crossroads_18[right1]", lambda state: state.count('Crossroads_18[right1]', player) or state.count('Crossroads_18', player)) + fn("Crossroads_18[right2]", lambda state: state.count('Crossroads_18[right2]', player) or state.count('Crossroads_18', player)) + fn("Crossroads_18[bot1]", lambda state: state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18', player)) + fn("Crossroads_19[right1]", lambda state: state.count('Crossroads_19[right1]', player) or state.count('Crossroads_19', player)) + fn("Crossroads_19[top1]", lambda state: state.count('Crossroads_19[top1]', player) or state.count('Crossroads_19', player)) + fn("Crossroads_19[left1]", lambda state: state.count('Crossroads_19[left1]', player) or state.count('Crossroads_19', player)) + fn("Crossroads_19[left2]", lambda state: state.count('Crossroads_19[left2]', player) or state.count('Crossroads_19', player)) + fn("Crossroads_21[left1]", lambda state: state.count('Crossroads_21[left1]', player) or state.count('Crossroads_21', player)) + fn("Crossroads_21[right1]", lambda state: state.count('Crossroads_21[right1]', player) or state.count('Crossroads_21', player)) + fn("Crossroads_21[top1]", lambda state: state.count('Crossroads_21[top1]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) or (state.count('Crossroads_21', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) and (state.count('LEFTSUPERDASH', player) or (state._hk_option(player, 'SpikeTunnels') and state.count('LEFTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))))) + fn("Crossroads_22[bot1]", lambda state: state.count('Crossroads_22[bot1]', player)) + fn("Crossroads_25[right1]", lambda state: state.count('Crossroads_25[right1]', player) or state.count('Crossroads_25[left1]', player)) + fn("Crossroads_25[left1]", lambda state: state.count('Crossroads_25[left1]', player) or state.count('Crossroads_25[right1]', player)) + fn("Crossroads_27[right1]", lambda state: state.count('Crossroads_27[right1]', player) or state.count('Crossroads_27', player)) + fn("Crossroads_27[bot1]", lambda state: state.count('Crossroads_27[bot1]', player) or state.count('Crossroads_27', player)) + fn("Crossroads_27[left1]", lambda state: state.count('Crossroads_27[left1]', player) or state.count('Crossroads_27', player)) + fn("Crossroads_27[left2]", lambda state: state.count('Crossroads_27[left2]', player) or state.count('Crossroads_27', player)) + fn("Crossroads_30[left1]", lambda state: state.count('Crossroads_30[left1]', player)) + fn("Crossroads_31[right1]", lambda state: state.count('Crossroads_31[right1]', player)) + fn("Crossroads_33[top1]", lambda state: state.count('Crossroads_33[top1]', player) or state.count('Crossroads_33', player)) + fn("Crossroads_33[left1]", lambda state: state.count('Crossroads_33[left1]', player) or (state.count('Crossroads_33', player) and state.count('Opened_Mawlek_Wall', player))) + fn("Crossroads_33[left2]", lambda state: state.count('Crossroads_33[left2]', player) or state.count('Crossroads_33', player)) + fn("Crossroads_33[right1]", lambda state: state.count('Crossroads_33[right1]', player) or (state.count('Crossroads_33', player) and state.count('Opened_Shaman_Pillar', player))) + fn("Crossroads_33[right2]", lambda state: state.count('Crossroads_33[right2]', player) or state.count('Crossroads_33', player)) + fn("Crossroads_35[bot1]", lambda state: state.count('Crossroads_35[bot1]', player) or (state.count('Crossroads_35[right1]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state.count('RIGHTDASH', player))) and state._hk_option(player, 'AcidSkips'))))) + fn("Crossroads_35[right1]", lambda state: state.count('Crossroads_35[right1]', player) or (state.count('Crossroads_35[bot1]', player) and state.count('RIGHTCLAW', player) and (state.count('ACID', player) or ((state.count('LEFTSUPERDASH', player) and state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTDASH', player))) and state._hk_option(player, 'AcidSkips'))))) + fn("Crossroads_36[right1]", lambda state: state.count('Crossroads_36[right1]', player) or state.count('Crossroads_36[right2]', player)) + fn("Crossroads_36[right2]", lambda state: state.count('Crossroads_36[right2]', player) or state.count('Crossroads_36[right1]', player)) + fn("Crossroads_37[right1]", lambda state: state.count('Crossroads_37[right1]', player)) + fn("Crossroads_38[right1]", lambda state: state.count('Crossroads_38[right1]', player)) + fn("Crossroads_39[right1]", lambda state: state.count('Crossroads_39[right1]', player) or state.count('Crossroads_39[left1]', player)) + fn("Crossroads_39[left1]", lambda state: state.count('Crossroads_39[left1]', player) or state.count('Crossroads_39[right1]', player)) + fn("Crossroads_40[right1]", lambda state: state.count('Crossroads_40[right1]', player) or state.count('Crossroads_40[left1]', player)) + fn("Crossroads_40[left1]", lambda state: state.count('Crossroads_40[left1]', player) or state.count('Crossroads_40[right1]', player)) + fn("Crossroads_42[left1]", lambda state: state.count('Crossroads_42[left1]', player) or state.count('Crossroads_42[right1]', player)) + fn("Crossroads_42[right1]", lambda state: state.count('Crossroads_42[right1]', player) or state.count('Crossroads_42[left1]', player)) + fn("Crossroads_43[left1]", lambda state: state.count('Crossroads_43[left1]', player) or state.count('Crossroads_43[right1]', player)) + fn("Crossroads_43[right1]", lambda state: state.count('Crossroads_43[right1]', player) or state.count('Crossroads_43[left1]', player)) + fn("Crossroads_45[right1]", lambda state: state.count('Crossroads_45[right1]', player) or state.count('Crossroads_45[left1]', player)) + fn("Crossroads_45[left1]", lambda state: state.count('Crossroads_45[left1]', player) or state.count('Crossroads_45[right1]', player)) + fn("Crossroads_46[left1]", lambda state: state.count('Crossroads_46[left1]', player) or state.count('Upper_Tram', player)) + fn("Crossroads_46b[right1]", lambda state: state.count('Crossroads_46b[right1]', player) or state.count('Upper_Tram', player)) + fn("Crossroads_ShamanTemple[left1]", lambda state: state.count('Crossroads_ShamanTemple[left1]', player)) + fn("Crossroads_47[right1]", lambda state: state.count('Crossroads_47[right1]', player) or (state.count('Can_Stag', player) and state.count('Crossroads_Stag', player))) + fn("Crossroads_48[left1]", lambda state: state.count('Crossroads_48[left1]', player)) + fn("Crossroads_49[right1]", lambda state: state.count('Crossroads_49[right1]', player) or state.count('Left_Elevator', player)) + fn("Crossroads_49[left1]", lambda state: state.count('Crossroads_49[left1]', player) or state.count('Left_Elevator', player)) + fn("Crossroads_49b[right1]", lambda state: state.count('Crossroads_49b[right1]', player) or state.count('Left_Elevator', player)) + fn("Crossroads_50[right1]", lambda state: state.count('Crossroads_50[right1]', player) or (state.count('Crossroads_50[left1]', player) and (state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player)))) + fn("Crossroads_50[left1]", lambda state: state.count('Crossroads_50[left1]', player) or (state.count('Crossroads_50[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Crossroads_52[left1]", lambda state: state.count('Crossroads_52[left1]', player)) + fn("Room_ruinhouse[left1]", lambda state: state.count('Room_ruinhouse[left1]', player)) + fn("Room_Charm_Shop[left1]", lambda state: state.count('Room_Charm_Shop[left1]', player)) + fn("Room_Mender_House[left1]", lambda state: state.count('Room_Mender_House[left1]', player)) + fn("Fungus1_01[left1]", lambda state: state.count('Fungus1_01[left1]', player) or state.count('Fungus1_01[right1]', player)) + fn("Fungus1_01[right1]", lambda state: state.count('Fungus1_01[right1]', player) or state.count('Fungus1_01[left1]', player)) + fn("Fungus1_01b[left1]", lambda state: state.count('Fungus1_01b[left1]', player) or state.count('Fungus1_01b[right1]', player)) + fn("Fungus1_01b[right1]", lambda state: state.count('Fungus1_01b[right1]', player) or state.count('Fungus1_01b[left1]', player)) + fn("Fungus1_02[left1]", lambda state: state.count('Fungus1_02[left1]', player) or ((state.count('Fungus1_02[right1]', player) or state.count('Fungus1_02[right2]', player)) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Fungus1_02[right1]", lambda state: state.count('Fungus1_02[right1]', player) or state.count('Fungus1_02[left1]', player) or state.count('Fungus1_02[right2]', player)) + fn("Fungus1_02[right2]", lambda state: state.count('Fungus1_02[right2]', player) or state.count('Fungus1_02[left1]', player) or state.count('Fungus1_02[right1]', player)) + fn("Fungus1_03[left1]", lambda state: state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[right1]', player) or state.count('Fungus1_03[bot1]', player)) + fn("Fungus1_03[right1]", lambda state: state.count('Fungus1_03[right1]', player) or state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[bot1]', player)) + fn("Fungus1_03[bot1]", lambda state: state.count('Fungus1_03[bot1]', player) or state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[right1]', player)) + fn("Fungus1_04[left1]", lambda state: state.count('Fungus1_04[left1]', player) or (state.count('Fungus1_04[right1]', player) and state.count('Defeated_Hornet_1', player) and ((state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)) or state.count('WINGS', player) or state.count('ACID', player)))) + fn("Fungus1_04[right1]", lambda state: state.count('Fungus1_04[right1]', player) or (state.count('Fungus1_04[left1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('ACID', player) and state.count('RIGHTCLAW', player)) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) or (state.count('RIGHTDASH', player) and state.count('LEFTCLAW', player) and state._hk_option(player, 'PreciseMovement'))))) + fn("Fungus1_05[right1]", lambda state: state.count('Fungus1_05[right1]', player) or state.count('Fungus1_05[bot1]', player) or state.count('Fungus1_05[top1]', player)) + fn("Fungus1_05[bot1]", lambda state: state.count('Fungus1_05[bot1]', player) or state.count('Fungus1_05[right1]', player) or state.count('Fungus1_05[top1]', player)) + fn("Fungus1_05[top1]", lambda state: state.count('Fungus1_05[top1]', player) or state.count('Fungus1_05[right1]', player) or state.count('Fungus1_05[bot1]', player)) + fn("Fungus1_06[left1]", lambda state: state.count('Fungus1_06[left1]', player) or state.count('Fungus1_06[bot1]', player)) + fn("Fungus1_06[bot1]", lambda state: state.count('Fungus1_06[bot1]', player) or state.count('Fungus1_06[left1]', player)) + fn("Fungus1_07[top1]", lambda state: state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[left1]', player) or state.count('Fungus1_07[right1]', player)) + fn("Fungus1_07[left1]", lambda state: state.count('Fungus1_07[left1]', player) or state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[right1]', player)) + fn("Fungus1_07[right1]", lambda state: state.count('Fungus1_07[right1]', player) or state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[left1]', player)) + fn("Fungus1_08[left1]", lambda state: state.count('Fungus1_08[left1]', player)) + fn("Fungus1_09[left1]", lambda state: state.count('Fungus1_09[left1]', player) or (state.count('Fungus1_09[right1]', player) and (state.count('LEFTCLAW', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player)) or (state.count('WINGS', player) and state.count('LEFTDASH', player))) or (state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player) and state.count('WINGS', player) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'DangerousSkips') and state._hk_option(player, 'PreciseMovement'))))) + fn("Fungus1_09[right1]", lambda state: state.count('Fungus1_09[right1]', player) or (state.count('Fungus1_09[left1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Great_Slash', player) or state.count('Cyclone_Slash', player) or (state.count('RIGHTDASH', player) and state.count('Dash_Slash', player))))) + fn("Fungus1_10[left1]", lambda state: state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[right1]', player) or state.count('Fungus1_10[top1]', player)) + fn("Fungus1_10[right1]", lambda state: state.count('Fungus1_10[right1]', player) or state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[top1]', player)) + fn("Fungus1_10[top1]", lambda state: state.count('Fungus1_10[top1]', player) or state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[right1]', player)) + fn("Fungus1_11[top1]", lambda state: state.count('Fungus1_11[top1]', player) or state.count('Fungus1_11', player)) + fn("Fungus1_11[right1]", lambda state: state.count('Fungus1_11[right1]', player) or state.count('Fungus1_11', player)) + fn("Fungus1_11[right2]", lambda state: state.count('Fungus1_11[right2]', player) or state.count('Fungus1_11', player)) + fn("Fungus1_11[left1]", lambda state: state.count('Fungus1_11[left1]', player) or (state.count('Fungus1_11', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player) or state.count('LEFTDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips')))))) + fn("Fungus1_11[bot1]", lambda state: state.count('Fungus1_11[bot1]', player) or state.count('Fungus1_11', player)) + fn("Fungus1_12[left1]", lambda state: state.count('Fungus1_12[left1]', player) or state.count('Fungus1_12[right1]', player)) + fn("Fungus1_12[right1]", lambda state: state.count('Fungus1_12[right1]', player) or state.count('Fungus1_12[left1]', player)) + fn("Fungus1_13[right1]", lambda state: state.count('Fungus1_13[right1]', player)) + fn("Fungus1_13[left1]", lambda state: state.count('Fungus1_13[left1]', player)) + fn("Fungus1_14[left1]", lambda state: state.count('Fungus1_14[left1]', player)) + fn("Fungus1_15[door1]", lambda state: state.count('Fungus1_15[door1]', player) or (state.count('Fungus1_15[right1]', player) and (state.count('RIGHTSUPERDASH', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player))))) + fn("Fungus1_15[right1]", lambda state: state.count('Fungus1_15[right1]', player) or state.count('Fungus1_15[door1]', player)) + fn("Fungus1_16_alt[right1]", lambda state: state.count('Fungus1_16_alt[right1]', player) or (state.count('Can_Stag', player) and state.count('Greenpath_Stag', player))) + fn("Fungus1_17[left1]", lambda state: state.count('Fungus1_17[left1]', player) or state.count('Fungus1_17[right1]', player)) + fn("Fungus1_17[right1]", lambda state: state.count('Fungus1_17[right1]', player) or state.count('Fungus1_17[left1]', player)) + fn("Fungus1_19[left1]", lambda state: state.count('Fungus1_19[left1]', player) or state.count('Fungus1_19[right1]', player) or state.count('Fungus1_19[bot1]', player)) + fn("Fungus1_19[right1]", lambda state: state.count('Fungus1_19[right1]', player) or state.count('Fungus1_19[left1]', player) or state.count('Fungus1_19[bot1]', player)) + fn("Fungus1_19[bot1]", lambda state: state.count('Fungus1_19[bot1]', player) or state.count('Fungus1_19[left1]', player) or state.count('Fungus1_19[right1]', player)) + fn("Fungus1_20_v02[bot1]", lambda state: state.count('Fungus1_20_v02[bot1]', player) or state.count('Fungus1_20_v02[bot2]', player) or state.count('Fungus1_20_v02[right1]', player)) + fn("Fungus1_20_v02[bot2]", lambda state: state.count('Fungus1_20_v02[bot2]', player) or state.count('Fungus1_20_v02[bot1]', player) or state.count('Fungus1_20_v02[right1]', player)) + fn("Fungus1_20_v02[right1]", lambda state: state.count('Fungus1_20_v02[right1]', player) or state.count('Fungus1_20_v02[bot1]', player) or state.count('Fungus1_20_v02[bot2]', player)) + fn("Fungus1_21[bot1]", lambda state: state.count('Fungus1_21[bot1]', player) or state.count('Fungus1_21', player)) + fn("Fungus1_21[top1]", lambda state: state.count('Fungus1_21[top1]', player) or state.count('Fungus1_21', player)) + fn("Fungus1_21[left1]", lambda state: state.count('Fungus1_21[left1]', player) or state.count('Fungus1_21', player)) + fn("Fungus1_21[right1]", lambda state: state.count('Fungus1_21[right1]', player) or state.count('Fungus1_21', player)) + fn("Fungus1_22[bot1]", lambda state: state.count('Fungus1_22[bot1]', player) or state.count('Fungus1_22[top1]', player) or state.count('Fungus1_22[left1]', player)) + fn("Fungus1_22[top1]", lambda state: state.count('Fungus1_22[top1]', player) or state.count('Fungus1_22[left1]', player)) + fn("Fungus1_22[left1]", lambda state: state.count('Fungus1_22[left1]', player) or state.count('Fungus1_22[top1]', player)) + fn("Fungus1_23[left1]", lambda state: state.count('Fungus1_23[left1]', player) or state.count('Fungus1_23[right1]', player)) + fn("Fungus1_23[right1]", lambda state: state.count('Fungus1_23[right1]', player) or state.count('Fungus1_23[left1]', player)) + fn("Fungus1_24[left1]", lambda state: state.count('Fungus1_24[left1]', player)) + fn("Fungus1_25[right1]", lambda state: state.count('Fungus1_25[right1]', player) or state.count('Fungus1_25[left1]', player)) + fn("Fungus1_25[left1]", lambda state: state.count('Fungus1_25[left1]', player) or state.count('Fungus1_25[right1]', player)) + fn("Fungus1_26[right1]", lambda state: state.count('Fungus1_26[right1]', player) or (state.count('Fungus1_26[left1]', player) and (state.count('ACID', player) or (state._hk_option(player, 'AcidSkips') and state.count('LEFTCLAW', player) and state.count('WINGS', player) and state.count('RIGHTSUPERDASH', player)))) or state.count('Fungus1_26[door_SlugShrine]', player)) + fn("Fungus1_26[left1]", lambda state: state.count('Fungus1_26[left1]', player) or ((state.count('Fungus1_26[right1]', player) or state.count('Fungus1_26[door_SlugShrine]', player)) and (state.count('ACID', player) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'AcidSkips') and state.count('WINGS', player) and state.count('LEFTSUPERDASH', player) and state.count('LEFTDASH', player) and (state.count('FIREBALL', player) and state._hk_option(player, 'FireballSkips') or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and state.count('Can_Bench', player)) and True)))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Fungus1_26[door_SlugShrine]", lambda state: state.count('Fungus1_26[door_SlugShrine]', player) or (state.count('Fungus1_26[left1]', player) and (state.count('ACID', player) or (state._hk_option(player, 'AcidSkips') and state.count('LEFTCLAW', player) and state.count('WINGS', player) and state.count('RIGHTSUPERDASH', player)))) or state.count('Fungus1_26[right1]', player)) + fn("Fungus1_28[left1]", lambda state: state.count('Fungus1_28[left1]', player) or (state.count('Fungus1_28[left2]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('RIGHTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))) or (state.count('WINGS', player) and state.count('LEFTCLAW', player)) or (state.count('WINGS', player) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state._hk_option(player, 'DifficultSkips') and (state.count('MASKSHARDS', player) > 15))))) + fn("Fungus1_28[left2]", lambda state: state.count('Fungus1_28[left2]', player) or state.count('Fungus1_28[left1]', player)) + fn("Fungus1_29[left1]", lambda state: state.count('Fungus1_29[left1]', player) or state.count('Fungus1_29[right1]', player)) + fn("Fungus1_29[right1]", lambda state: state.count('Fungus1_29[right1]', player) or state.count('Fungus1_29[left1]', player)) + fn("Fungus1_30[top1]", lambda state: state.count('Fungus1_30[top1]', player) or state.count('Fungus1_30', player)) + fn("Fungus1_30[top3]", lambda state: state.count('Fungus1_30[top3]', player) or state.count('Fungus1_30', player)) + fn("Fungus1_30[left1]", lambda state: state.count('Fungus1_30[left1]', player) or state.count('Fungus1_30', player)) + fn("Fungus1_30[right1]", lambda state: state.count('Fungus1_30[right1]', player) or state.count('Fungus1_30', player)) + fn("Fungus1_31[top1]", lambda state: state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_31[right1]', player)) + fn("Fungus1_31[bot1]", lambda state: state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[right1]', player)) + fn("Fungus1_31[right1]", lambda state: state.count('Fungus1_31[right1]', player) or state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[bot1]', player)) + fn("Fungus1_32[bot1]", lambda state: state.count('Fungus1_32[bot1]', player) or state.count('Fungus1_32[top1]', player) or state.count('Fungus1_32[left1]', player)) + fn("Fungus1_32[top1]", lambda state: state.count('Fungus1_32[top1]', player) or state.count('Fungus1_32[bot1]', player) or state.count('Fungus1_32[left1]', player)) + fn("Fungus1_32[left1]", lambda state: state.count('Fungus1_32[left1]', player) or state.count('Fungus1_32[bot1]', player) or state.count('Fungus1_32[top1]', player)) + fn("Fungus1_34[door1]", lambda state: state.count('Fungus1_34[door1]', player) or state.count('Fungus1_34[left1]', player)) + fn("Fungus1_34[left1]", lambda state: state.count('Fungus1_34[left1]', player) or state.count('Fungus1_34[door1]', player)) + fn("Fungus1_35[left1]", lambda state: state.count('Fungus1_35[left1]', player) or (state.count('Fungus1_35[right1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')))) + fn("Fungus1_35[right1]", lambda state: state.count('Fungus1_35[right1]', player) or (state.count('Fungus1_35[left1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')))) + fn("Fungus1_36[left1]", lambda state: state.count('Fungus1_36[left1]', player)) + fn("Fungus1_37[left1]", lambda state: state.count('Fungus1_37[left1]', player)) + fn("Fungus1_Slug[right1]", lambda state: state.count('Fungus1_Slug[right1]', player)) + fn("Room_Slug_Shrine[left1]", lambda state: state.count('Room_Slug_Shrine[left1]', player)) + fn("Room_nailmaster_02[left1]", lambda state: state.count('Room_nailmaster_02[left1]', player)) + fn("Fungus3_01[top1]", lambda state: state.count('Fungus3_01[top1]', player) or state.count('Fungus3_01', player)) + fn("Fungus3_01[right1]", lambda state: state.count('Fungus3_01[right1]', player) or state.count('Fungus3_01', player)) + fn("Fungus3_01[left1]", lambda state: state.count('Fungus3_01[left1]', player) or state.count('Fungus3_01', player)) + fn("Fungus3_01[right2]", lambda state: state.count('Fungus3_01[right2]', player) or state.count('Fungus3_01', player)) + fn("Fungus3_02[left1]", lambda state: state.count('Fungus3_02[left1]', player) or state.count('Fungus3_02', player)) + fn("Fungus3_02[left2]", lambda state: state.count('Fungus3_02[left2]', player) or state.count('Fungus3_02', player)) + fn("Fungus3_02[left3]", lambda state: state.count('Fungus3_02[left3]', player) or state.count('Fungus3_02', player)) + fn("Fungus3_02[right1]", lambda state: state.count('Fungus3_02[right1]', player) or (state.count('Fungus3_02', player) and state.count('Opened_Archives_Exit_Wall', player))) + fn("Fungus3_02[right2]", lambda state: state.count('Fungus3_02[right2]', player) or state.count('Fungus3_02', player)) + fn("Fungus3_03[right1]", lambda state: state.count('Fungus3_03[right1]', player) or (state.count('Fungus3_03[left1]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) + fn("Fungus3_03[left1]", lambda state: state.count('Fungus3_03[left1]', player) or (state.count('Fungus3_03[right1]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) + fn("Fungus3_24[right1]", lambda state: state.count('Fungus3_24[right1]', player) or state.count('Fungus3_24[left1]', player) or state.count('Fungus3_24[top1]', player)) + fn("Fungus3_24[left1]", lambda state: state.count('Fungus3_24[left1]', player) or state.count('Fungus3_24[right1]', player) or state.count('Fungus3_24[top1]', player)) + fn("Fungus3_24[top1]", lambda state: state.count('Fungus3_24[top1]', player) or state.count('Fungus3_24[right1]', player) or state.count('Fungus3_24[left1]', player)) + fn("Fungus3_25[right1]", lambda state: state.count('Fungus3_25[right1]', player) or (state.count('Fungus3_25[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)))) + fn("Fungus3_25[left1]", lambda state: state.count('Fungus3_25[left1]', player) or (state.count('Fungus3_25[right1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)))) + fn("Fungus3_25b[right1]", lambda state: state.count('Fungus3_25b[right1]', player) or state.count('Fungus3_25b[left1]', player)) + fn("Fungus3_25b[left1]", lambda state: state.count('Fungus3_25b[left1]', player) or state.count('Fungus3_25b[right1]', player)) + fn("Fungus3_26[top1]", lambda state: state.count('Fungus3_26[top1]', player) or (state.count('Fungus3_26', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and (state.count('LEFTDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) and state._hk_option(player, 'EnemyPogos'))))) + fn("Fungus3_26[left1]", lambda state: state.count('Fungus3_26[left1]', player) or state.count('Fungus3_26', player)) + fn("Fungus3_26[left2]", lambda state: state.count('Fungus3_26[left2]', player) or state.count('Fungus3_26', player)) + fn("Fungus3_26[left3]", lambda state: state.count('Fungus3_26[left3]', player) or state.count('Fungus3_26', player)) + fn("Fungus3_26[right1]", lambda state: state.count('Fungus3_26[right1]', player) or state.count('Fungus3_26', player)) + fn("Fungus3_27[left1]", lambda state: state.count('Fungus3_27[left1]', player) or state.count('Fungus3_27[right1]', player)) + fn("Fungus3_27[right1]", lambda state: state.count('Fungus3_27[right1]', player) or state.count('Fungus3_27[left1]', player)) + fn("Fungus3_28[right1]", lambda state: state.count('Fungus3_28[right1]', player)) + fn("Fungus3_30[bot1]", lambda state: state.count('Fungus3_30[bot1]', player)) + fn("Fungus3_35[right1]", lambda state: state.count('Fungus3_35[right1]', player)) + fn("Fungus3_44[bot1]", lambda state: state.count('Fungus3_44[bot1]', player) or (state.count('Fungus3_44', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)))) + fn("Fungus3_44[door1]", lambda state: state.count('Fungus3_44[door1]', player) or (state.count('Fungus3_44', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("Fungus3_44[right1]", lambda state: state.count('Fungus3_44[right1]', player) or state.count('Fungus3_44', player)) + fn("Fungus3_47[left1]", lambda state: state.count('Fungus3_47[left1]', player) or state.count('Fungus3_47', player)) + fn("Fungus3_47[right1]", lambda state: state.count('Fungus3_47[right1]', player) or state.count('Fungus3_47', player)) + fn("Fungus3_47[door1]", lambda state: state.count('Fungus3_47[door1]', player) or state.count('Fungus3_47', player)) + fn("Room_Fungus_Shaman[left1]", lambda state: state.count('Room_Fungus_Shaman[left1]', player)) + fn("Fungus3_archive[left1]", lambda state: state.count('Fungus3_archive[left1]', player) or state.count('Fungus3_archive[bot1]', player)) + fn("Fungus3_archive[bot1]", lambda state: state.count('Fungus3_archive[bot1]', player) or state.count('Fungus3_archive[left1]', player)) + fn("Fungus3_archive_02[top1]", lambda state: state.count('Fungus3_archive_02[top1]', player)) + fn("Fungus2_01[left1]", lambda state: state.count('Fungus2_01[left1]', player) or state.count('Fungus2_01', player)) + fn("Fungus2_01[left2]", lambda state: state.count('Fungus2_01[left2]', player) or state.count('Fungus2_01', player)) + fn("Fungus2_01[left3]", lambda state: state.count('Fungus2_01[left3]', player) or state.count('Fungus2_01', player)) + fn("Fungus2_01[right1]", lambda state: state.count('Fungus2_01[right1]', player) or (state.count('Fungus2_01', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)))) + fn("Fungus2_02[right1]", lambda state: state.count('Fungus2_02[right1]', player) or (state.count('Can_Stag', player) and state.count("Queen's_Station_Stag", player))) + fn("Fungus2_34[right1]", lambda state: state.count('Fungus2_34[right1]', player)) + fn("Fungus2_03[left1]", lambda state: state.count('Fungus2_03[left1]', player) or state.count('Fungus2_03', player)) + fn("Fungus2_03[bot1]", lambda state: state.count('Fungus2_03[bot1]', player) or state.count('Fungus2_03', player)) + fn("Fungus2_03[right1]", lambda state: state.count('Fungus2_03[right1]', player) or state.count('Fungus2_03', player)) + fn("Fungus2_04[top1]", lambda state: state.count('Fungus2_04[top1]', player) or state.count('Fungus2_04[right1]', player)) + fn("Fungus2_04[right1]", lambda state: state.count('Fungus2_04[right1]', player) or state.count('Fungus2_04[top1]', player)) + fn("Fungus2_04[left1]", lambda state: state.count('Fungus2_04[left1]', player) or state.count('Fungus2_04', player)) + fn("Fungus2_04[right2]", lambda state: state.count('Fungus2_04[right2]', player) or state.count('Fungus2_04', player)) + fn("Fungus2_05[bot1]", lambda state: state.count('Fungus2_05[bot1]', player) or (state.count('Fungus2_05[right1]', player) and state.count('Defeated_Shrumal_Ogre_Arena', player))) + fn("Fungus2_05[right1]", lambda state: state.count('Fungus2_05[right1]', player) or (state.count('Fungus2_05[bot1]', player) and state.count('Defeated_Shrumal_Ogre_Arena', player))) + fn("Fungus2_06[top1]", lambda state: state.count('Fungus2_06[top1]', player) or (state.count('Fungus2_06', player) and (state.count('ACID', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or state.count('Fungus2_06[right1]', player)))) + fn("Fungus2_06[left1]", lambda state: state.count('Fungus2_06[left1]', player) or state.count('Fungus2_06', player)) + fn("Fungus2_06[left2]", lambda state: state.count('Fungus2_06[left2]', player) or (state.count('Fungus2_06', player) and state.count('ACID', player))) + fn("Fungus2_06[right1]", lambda state: state.count('Fungus2_06[right1]', player) or (state.count('Fungus2_06', player) and (state.count('ACID', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or state.count('Fungus2_06[top1]', player)))) + fn("Fungus2_06[right2]", lambda state: state.count('Fungus2_06[right2]', player) or state.count('Fungus2_06', player)) + fn("Fungus2_07[left1]", lambda state: state.count('Fungus2_07[left1]', player) or (state.count('Fungus2_07[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('LEFTDASH', player) or state.count('WINGS', player) or state.count('ACID', player)))) + fn("Fungus2_07[right1]", lambda state: state.count('Fungus2_07[right1]', player) or state.count('Fungus2_07[left1]', player)) + fn("Fungus2_08[left1]", lambda state: state.count('Fungus2_08[left1]', player) or state.count('Fungus2_08[left2]', player) or state.count('Fungus2_08[right1]', player)) + fn("Fungus2_08[left2]", lambda state: state.count('Fungus2_08[left2]', player) or state.count('Fungus2_08[left1]', player) or state.count('Fungus2_08[right1]', player)) + fn("Fungus2_08[right1]", lambda state: state.count('Fungus2_08[right1]', player) or state.count('Fungus2_08[left1]', player) or state.count('Fungus2_08[left2]', player)) + fn("Fungus2_09[left1]", lambda state: state.count('Fungus2_09[left1]', player) or state.count('Fungus2_09[right1]', player)) + fn("Fungus2_09[right1]", lambda state: state.count('Fungus2_09[right1]', player) or state.count('Fungus2_09[left1]', player)) + fn("Fungus2_10[right1]", lambda state: state.count('Fungus2_10[right1]', player) or state.count('Fungus2_10[right2]', player) or state.count('Fungus2_10[bot1]', player)) + fn("Fungus2_10[right2]", lambda state: state.count('Fungus2_10[right2]', player) or state.count('Fungus2_10[right1]', player) or state.count('Fungus2_10[bot1]', player)) + fn("Fungus2_10[bot1]", lambda state: state.count('Fungus2_10[bot1]', player) or state.count('Fungus2_10[right1]', player) or state.count('Fungus2_10[right2]', player)) + fn("Fungus2_11[top1]", lambda state: state.count('Fungus2_11[top1]', player) or state.count('Fungus2_11', player)) + fn("Fungus2_11[left1]", lambda state: state.count('Fungus2_11[left1]', player) or state.count('Fungus2_11', player)) + fn("Fungus2_11[left2]", lambda state: state.count('Fungus2_11[left2]', player) or (state.count('Fungus2_11', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and (state._hk_option(player, 'ObscureSkips') or state.count('LEFTDASH', player))) or ((state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state.count('MASKSHARDS', player) > 15)))) + fn("Fungus2_11[right1]", lambda state: state.count('Fungus2_11[right1]', player) or state.count('Fungus2_11', player)) + fn("Fungus2_12[left1]", lambda state: state.count('Fungus2_12[left1]', player) or (state.count('Fungus2_12[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Fungus2_12[bot1]", lambda state: state.count('Fungus2_12[bot1]', player) or state.count('Fungus2_12[left1]', player)) + fn("Fungus2_13[top1]", lambda state: state.count('Fungus2_13[top1]', player) or (state.count('Fungus2_13', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Fungus2_13[left2]", lambda state: state.count('Fungus2_13[left2]', player) or state.count('Fungus2_13', player)) + fn("Fungus2_13[left3]", lambda state: state.count('Fungus2_13[left3]', player) or (state.count('Fungus2_13', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('ACID', player) or state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'PreciseMovement')))) + fn("Fungus2_14[top1]", lambda state: state.count('Fungus2_14[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Fungus2_14', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("Fungus2_14[right1]", lambda state: state.count('Fungus2_14[right1]', player) or (state.count('Fungus2_14', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('ACID', player) or (state.count('RIGHTDASH', player) and state._hk_option(player, 'EnemyPogos')) or state.count('RIGHTSUPERDASH', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips'))))) + fn("Fungus2_14[bot3]", lambda state: state.count('Fungus2_14[bot3]', player) or ((state.count('Fungus2_14', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) or state.count('Fungus2_14[top1]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'BackgroundObjectPogos')))))) + fn("Fungus2_15[top3]", lambda state: state.count('Fungus2_15[top3]', player) or ((state.count('Fungus2_15[right1]', player) or (state.count('Fungus2_15[left1]', player) and state.count('RIGHTCLAW', player))) and (state.count('RIGHTCLAW', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')) or state.count('WINGS', player)))) + fn("Fungus2_15[right1]", lambda state: state.count('Fungus2_15[right1]', player) or (state.count('Fungus2_15[top3]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos')))) or (state.count('Fungus2_15[left1]', player) and state.count('RIGHTCLAW', player))) + fn("Fungus2_15[left1]", lambda state: state.count('Fungus2_15[left1]', player) or ((state.count('Fungus2_15[top3]', player) or state.count('Fungus2_15[right1]', player)) and state.count('Defeated_Mantis_Lords', player))) + fn("Fungus2_17[left1]", lambda state: state.count('Fungus2_17[left1]', player) or (state.count('Fungus2_17', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTDASH', player) and state.count('Fungus2_17[right1]', player))))) + fn("Fungus2_17[right1]", lambda state: state.count('Fungus2_17[right1]', player) or (state.count('Fungus2_17', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))))) + fn("Fungus2_17[bot1]", lambda state: state.count('Fungus2_17[bot1]', player) or state.count('Fungus2_17', player)) + fn("Fungus2_18[right1]", lambda state: state.count('Fungus2_18[right1]', player)) + fn("Fungus2_18[bot1]", lambda state: state.count('Fungus2_18[bot1]', player) or ((state.count('Fungus2_18[right1]', player) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos')) or state.count('Fungus2_18[top1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'ObscureSkips') or (state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips')))))))) + fn("Fungus2_18[top1]", lambda state: state.count('Fungus2_18[top1]', player) or (state.count('Fungus2_18[right1]', player) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Fungus2_18[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) + fn("Fungus2_19[top1]", lambda state: state.count('Fungus2_19[top1]', player) or (state.count('Fungus2_19[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) + fn("Fungus2_19[left1]", lambda state: state.count('Fungus2_19[left1]', player) or (state.count('Fungus2_19[top1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTDASH', player))))) + fn("Fungus2_20[right1]", lambda state: state.count('Fungus2_20[right1]', player) or state.count('Fungus2_20', player)) + fn("Fungus2_20[left1]", lambda state: state.count('Fungus2_20[left1]', player) or state.count('Fungus2_20', player)) + fn("Fungus2_21[right1]", lambda state: state.count('Fungus2_21[right1]', player) or (state.count('Fungus2_21[left1]', player) and (state.count('RIGHTCLAW', player) and (state.count('RIGHTDASH', player) or (state.count('WINGS', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) or state.count('RIGHTSUPERDASH', player) or state.count('ACID', player)) and state.count('CREST', player))) + fn("Fungus2_21[left1]", lambda state: state.count('Fungus2_21[left1]', player) or (state.count('Fungus2_21[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) and state.count('QUAKE', player))) + fn("Fungus2_23[right1]", lambda state: state.count('Fungus2_23[right1]', player) or state.count('Fungus2_23', player)) + fn("Fungus2_23[right2]", lambda state: state.count('Fungus2_23[right2]', player) or (state.count('Fungus2_23', player) and state.count('Opened_Waterways_Exit', player))) + fn("Fungus2_26[left1]", lambda state: state.count('Fungus2_26[left1]', player)) + fn("Fungus2_28[left1]", lambda state: state.count('Fungus2_28[left1]', player) or state.count('Fungus2_28[left2]', player)) + fn("Fungus2_28[left2]", lambda state: state.count('Fungus2_28[left2]', player) or state.count('Fungus2_28[left1]', player)) + fn("Fungus2_29[right1]", lambda state: state.count('Fungus2_29[right1]', player) or (state.count('Fungus2_29[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) + fn("Fungus2_29[bot1]", lambda state: state.count('Fungus2_29[bot1]', player) or (state.count('Fungus2_29[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) + fn("Fungus2_30[bot1]", lambda state: state.count('Fungus2_30[bot1]', player) or state.count('Fungus2_30[top1]', player)) + fn("Fungus2_30[top1]", lambda state: state.count('Fungus2_30[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) + fn("Fungus2_31[left1]", lambda state: state.count('Fungus2_31[left1]', player)) + fn("Fungus2_32[left1]", lambda state: state.count('Fungus2_32[left1]', player)) + fn("Fungus2_33[right1]", lambda state: state.count('Fungus2_33[right1]', player) or state.count('Fungus2_33[left1]', player)) + fn("Fungus2_33[left1]", lambda state: state.count('Fungus2_33[left1]', player) or state.count('Fungus2_33[right1]', player)) + fn("Deepnest_01[right1]", lambda state: state.count('Deepnest_01[right1]', player) or state.count('Deepnest_01', player)) + fn("Deepnest_01[bot1]", lambda state: state.count('Deepnest_01[bot1]', player)) + fn("Deepnest_01[bot2]", lambda state: state.count('Deepnest_01[bot2]', player) or state.count('Deepnest_01', player)) + fn("Deepnest_01[left1]", lambda state: state.count('Deepnest_01[left1]', player) or state.count('Deepnest_01', player)) + fn("Deepnest_01b[top1]", lambda state: state.count('Deepnest_01b[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))) or (state.count('Deepnest_01b', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and (state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips')))) or (state.count('Deepnest_01b[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))))) + fn("Deepnest_01b[top2]", lambda state: False) + fn("Deepnest_01b[right1]", lambda state: state.count('Deepnest_01b[right1]', player)) + fn("Deepnest_01b[right2]", lambda state: state.count('Deepnest_01b[right2]', player) or state.count('Deepnest_01b[top1]', player) or state.count('Deepnest_01b[top2]', player) or (state.count('Deepnest_01b', player) and (state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) + fn("Deepnest_01b[bot1]", lambda state: state.count('Deepnest_01b[bot1]', player) or state.count('Deepnest_01b', player)) + fn("Deepnest_02[left1]", lambda state: state.count('Deepnest_02[left1]', player) or (state.count('Deepnest_02', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) + fn("Deepnest_02[left2]", lambda state: state.count('Deepnest_02[left2]', player) or state.count('Deepnest_02', player)) + fn("Deepnest_02[right1]", lambda state: state.count('Deepnest_02[right1]', player) or state.count('Deepnest_02[left1]', player) or (state.count('Deepnest_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'BackgroundObjectPogos')))) + fn("Deepnest_03[right1]", lambda state: state.count('Deepnest_03[right1]', player) or state.count('Deepnest_03', player)) + fn("Deepnest_03[left1]", lambda state: state.count('Deepnest_03[left1]', player) or (state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('Deepnest_03[top1]', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'ObscureSkips'))))) + fn("Deepnest_03[top1]", lambda state: state.count('Deepnest_03[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('Deepnest_03[left1]', player)) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'ObscureSkips')) or (state.count('LEFTCLAW', player) and (state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))))))) + fn("Deepnest_03[left2]", lambda state: state.count('Deepnest_03[left2]', player) or (state.count('Deepnest_03', player) and (state.count('LEFTSUPERDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))))))) + fn("Deepnest_09[left1]", lambda state: state.count('Deepnest_09[left1]', player) or (state.count('Can_Stag', player) and state.count('Distant_Village_Stag', player))) + fn("Deepnest_10[right1]", lambda state: state.count('Deepnest_10[right1]', player) or (state.count('Deepnest_10', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('Deepnest_10[door1]', player) and (state.count('RIGHTCLAW', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))))) + fn("Deepnest_10[right2]", lambda state: state.count('Deepnest_10[right2]', player) or state.count('Deepnest_10', player)) + fn("Deepnest_10[right3]", lambda state: state.count('Deepnest_10[right3]', player) or state.count('Deepnest_10', player)) + fn("Deepnest_10[door1]", lambda state: state.count('Deepnest_10[door1]', player) or (state.count('Deepnest_10', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('Deepnest_10[right1]', player)))) + fn("Deepnest_10[door2]", lambda state: state.count('Deepnest_10[door2]', player) or (state.count('Deepnest_10', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('Deepnest_10[door1]', player) or state.count('Deepnest_10[right1]', player)))) + fn("Room_spider_small[left1]", lambda state: state.count('Room_spider_small[left1]', player)) + fn("Deepnest_Spider_Town[left1]", lambda state: state.count('Deepnest_Spider_Town[left1]', player)) + fn("Deepnest_14[right1]", lambda state: state.count('Deepnest_14[right1]', player) or (state.count('Deepnest_14', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('Deepnest_14[left1]', player)))) + fn("Deepnest_14[left1]", lambda state: state.count('Deepnest_14[left1]', player) or (state.count('Deepnest_14', player) and (state.count('WINGS', player) or ((state.count('RIGHTCLAW', player) or state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player))) and (state.count('LEFTCLAW', player) or state.count('LEFTDASH', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player))))))) + fn("Deepnest_14[bot1]", lambda state: state.count('Deepnest_14[bot1]', player) or state.count('Deepnest_14', player)) + fn("Deepnest_14[bot2]", lambda state: state.count('Deepnest_14[bot2]', player) or state.count('Deepnest_14', player)) + fn("Deepnest_16[left1]", lambda state: state.count('Deepnest_16[left1]', player) or (state.count('Deepnest_16[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player))))) + fn("Deepnest_16[bot1]", lambda state: state.count('Deepnest_16[bot1]', player)) + fn("Deepnest_17[left1]", lambda state: state.count('Deepnest_17[left1]', player) or state.count('Deepnest_17', player)) + fn("Deepnest_17[right1]", lambda state: state.count('Deepnest_17[right1]', player) or state.count('Deepnest_17', player)) + fn("Deepnest_17[top1]", lambda state: state.count('Deepnest_17[top1]', player) or state.count('Deepnest_17', player)) + fn("Deepnest_17[bot1]", lambda state: state.count('Deepnest_17[bot1]', player) or state.count('Deepnest_17', player)) + fn("Fungus2_25[top1]", lambda state: state.count('Fungus2_25[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or ((state.count('Fungus2_25[top2]', player) or state.count('Fungus2_25[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Fungus2_25[top2]", lambda state: False) + fn("Fungus2_25[right1]", lambda state: state.count('Fungus2_25[right1]', player) or ((state.count('Fungus2_25[top1]', player) or state.count('Fungus2_25[top2]', player)) and state.count('Defeated_Mantis_Lords', player))) + fn("Deepnest_26[left1]", lambda state: state.count('Deepnest_26[left1]', player) or (state.count('Deepnest_26', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))) and state.count('Opened_Tramway_Exit_Gate', player))) + fn("Deepnest_26[left2]", lambda state: state.count('Deepnest_26[left2]', player) or (state.count('Deepnest_26', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("Deepnest_26[right1]", lambda state: state.count('Deepnest_26[right1]', player) or state.count('Deepnest_26', player)) + fn("Deepnest_26[bot1]", lambda state: state.count('Deepnest_26[bot1]', player) or state.count('Deepnest_26', player)) + fn("Deepnest_26b[right2]", lambda state: state.count('Deepnest_26b[right2]', player)) + fn("Deepnest_26b[right1]", lambda state: state.count('Deepnest_26b[right1]', player) or (state.count('Deepnest_26b[right2]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')))))) + fn("Deepnest_30[left1]", lambda state: state.count('Deepnest_30[left1]', player) or state.count('Deepnest_30[right1]', player) or (state.count('Deepnest_30[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_30[top1]", lambda state: state.count('Deepnest_30[top1]', player)) + fn("Deepnest_30[right1]", lambda state: state.count('Deepnest_30[right1]', player) or state.count('Deepnest_30[left1]', player) or (state.count('Deepnest_30[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_31[right1]", lambda state: state.count('Deepnest_31[right1]', player) or (state.count('Deepnest_31[right2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTDASH', player))))) + fn("Deepnest_31[right2]", lambda state: state.count('Deepnest_31[right2]', player) or (state.count('Deepnest_31[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) + fn("Deepnest_32[left1]", lambda state: state.count('Deepnest_32[left1]', player)) + fn("Deepnest_33[top1]", lambda state: state.count('Deepnest_33[top1]', player)) + fn("Deepnest_33[top2]", lambda state: state.count('Deepnest_33[top2]', player) or ((state.count('Deepnest_33[top1]', player) or state.count('Deepnest_33[bot1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_33[bot1]", lambda state: state.count('Deepnest_33[bot1]', player) or state.count('Deepnest_33[top1]', player) or state.count('Deepnest_33[top2]', player)) + fn("Deepnest_34[left1]", lambda state: state.count('Deepnest_34[left1]', player) or (state.count('Deepnest_34', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_34[right1]", lambda state: state.count('Deepnest_34[right1]', player) or (state.count('Deepnest_34', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player)))) + fn("Deepnest_34[top1]", lambda state: state.count('Deepnest_34[top1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or (state.count('Deepnest_34', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player))))))) + fn("Deepnest_35[left1]", lambda state: state.count('Deepnest_35[left1]', player) or state.count('Deepnest_35', player)) + fn("Deepnest_35[top1]", lambda state: state.count('Deepnest_35[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Deepnest_35', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) + fn("Deepnest_35[bot1]", lambda state: state.count('Deepnest_35[bot1]', player) or state.count('Deepnest_35', player)) + fn("Deepnest_36[left1]", lambda state: state.count('Deepnest_36[left1]', player)) + fn("Deepnest_37[left1]", lambda state: state.count('Deepnest_37[left1]', player) or state.count('Deepnest_37', player)) + fn("Deepnest_37[right1]", lambda state: state.count('Deepnest_37[right1]', player) or state.count('Deepnest_37', player)) + fn("Deepnest_37[top1]", lambda state: state.count('Deepnest_37[top1]', player) or state.count('Deepnest_37', player)) + fn("Deepnest_37[bot1]", lambda state: state.count('Deepnest_37[bot1]', player) or state.count('Deepnest_37', player)) + fn("Deepnest_38[bot1]", lambda state: state.count('Deepnest_38[bot1]', player)) + fn("Deepnest_39[left1]", lambda state: state.count('Deepnest_39[left1]', player) or ((state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) or (state.count('Deepnest_39[top1]', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))))) + fn("Deepnest_39[top1]", lambda state: state.count('Deepnest_39[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) or ((state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) or state.count('WINGS', player)) and (state.count('Deepnest_39', player) and (state.count('Deepnest_39[left1]', player) or state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos'))))))) + fn("Deepnest_39[door1]", lambda state: state.count('Deepnest_39[door1]', player) or ((state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)))) and (state.count('Deepnest_39[right1]', player) and (state.count('RIGHTCLAW', player) or ((state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')) and state.count('WINGS', player))) or state.count('Deepnest_39[left1]', player) or state.count('Deepnest_39[top1]', player)))) + fn("Deepnest_39[right1]", lambda state: state.count('Deepnest_39[right1]', player) or ((state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and state.count('Deepnest_39', player))) + fn("Deepnest_40[right1]", lambda state: state.count('Deepnest_40[right1]', player)) + fn("Deepnest_41[right1]", lambda state: state.count('Deepnest_41[right1]', player) or (state.count('Deepnest_41[left1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos')))) or (state.count('Deepnest_41[left2]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) + fn("Deepnest_41[left1]", lambda state: state.count('Deepnest_41[left1]', player) or (state.count('Deepnest_41[right1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos')))) or (state.count('Deepnest_41[left2]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) + fn("Deepnest_41[left2]", lambda state: state.count('Deepnest_41[left2]', player)) + fn("Deepnest_42[bot1]", lambda state: state.count('Deepnest_42[bot1]', player) or state.count('Deepnest_42', player)) + fn("Deepnest_42[left1]", lambda state: state.count('Deepnest_42[left1]', player) or state.count('Deepnest_42', player)) + fn("Deepnest_42[top1]", lambda state: state.count('Deepnest_42[top1]', player) or (state.count('Deepnest_42', player) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Deepnest_43[bot1]", lambda state: state.count('Deepnest_43[bot1]', player) or ((state.count('Deepnest_43[left1]', player) or state.count('Deepnest_43[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_43[left1]", lambda state: state.count('Deepnest_43[left1]', player) or state.count('Deepnest_43[right1]', player) or (state.count('Deepnest_43[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) + fn("Deepnest_43[right1]", lambda state: state.count('Deepnest_43[right1]', player) or state.count('Deepnest_43[left1]', player) or (state.count('Deepnest_43[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) + fn("Deepnest_44[top1]", lambda state: state.count('Deepnest_44[top1]', player)) + fn("Deepnest_45_v02[left1]", lambda state: state.count('Deepnest_45_v02[left1]', player)) + fn("Room_Mask_Maker[right1]", lambda state: state.count('Room_Mask_Maker[right1]', player)) + fn("Deepnest_East_01[bot1]", lambda state: state.count('Deepnest_East_01[bot1]', player) or state.count('Deepnest_East_01[right1]', player) or state.count('Deepnest_East_01[top1]', player)) + fn("Deepnest_East_01[right1]", lambda state: state.count('Deepnest_East_01[right1]', player)) + fn("Deepnest_East_01[top1]", lambda state: state.count('Deepnest_East_01[top1]', player) or ((state.count('Deepnest_East_01[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or state.count('Deepnest_East_01[right1]', player)) and (state.count('RIGHTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player)))) + fn("Deepnest_East_02[bot1]", lambda state: state.count('Deepnest_East_02[bot1]', player) or state.count('Deepnest_East_02', player)) + fn("Deepnest_East_02[bot2]", lambda state: state.count('Deepnest_East_02[bot2]', player) or (state.count('Deepnest_East_02', player) and state.count('QUAKE', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state.count('LEFTDASH', player) and state.count('WINGS', player) and state._hk_option(player, 'AcidSkips'))))) + fn("Deepnest_East_02[top1]", lambda state: state.count('Deepnest_East_02[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Deepnest_East_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_East_02[right1]", lambda state: state.count('Deepnest_East_02[right1]', player) or state.count('Deepnest_East_02', player)) + fn("Deepnest_East_03[left1]", lambda state: state.count('Deepnest_East_03[left1]', player) or state.count('Deepnest_East_03', player)) + fn("Deepnest_East_03[left2]", lambda state: state.count('Deepnest_East_03[left2]', player) or (state.count('Deepnest_East_03', player) and state.count("Opened_Lower_Kingdom's_Edge_Wall", player))) + fn("Deepnest_East_03[top1]", lambda state: state.count('Deepnest_East_03[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) or (state.count('Deepnest_East_03', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or (state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'ObscureSkips'))) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state.count('MASKSHARDS', player) > 15))))) + fn("Deepnest_East_03[top2]", lambda state: False) + fn("Deepnest_East_03[right1]", lambda state: state.count('Deepnest_East_03[right1]', player) or (state.count('Deepnest_East_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('Deepnest_East_03[top2]', player)))) + fn("Deepnest_East_03[right2]", lambda state: state.count('Deepnest_East_03[right2]', player) or state.count('Deepnest_East_03', player)) + fn("Deepnest_East_04[left1]", lambda state: state.count('Deepnest_East_04[left1]', player) or (state.count('Deepnest_East_04', player) and state.count('ACID', player))) + fn("Deepnest_East_04[left2]", lambda state: state.count('Deepnest_East_04[left2]', player) or (state.count('Deepnest_East_04', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos') or state.count('Deepnest_East_04[right2]', player)))) + fn("Deepnest_East_04[right2]", lambda state: state.count('Deepnest_East_04[right2]', player) or (state.count('Deepnest_East_04', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos') or state.count('Deepnest_East_04[left2]', player)) and (state.count('WINGS', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state._hk_option(player, 'EnemyPogos'))))) + fn("Deepnest_East_04[right1]", lambda state: state.count('Deepnest_East_04[right1]', player) or state.count('Deepnest_East_04', player)) + fn("Deepnest_East_06[top1]", lambda state: state.count('Deepnest_East_06[top1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Deepnest_East_06[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos')))) or ((state.count('Deepnest_East_06[bot1]', player) or state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_06[right1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("Deepnest_East_06[left1]", lambda state: state.count('Deepnest_East_06[left1]', player) or state.count('Deepnest_East_06[top1]', player) or ((state.count('Deepnest_East_06[bot1]', player) or state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_06[right1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("Deepnest_East_06[bot1]", lambda state: state.count('Deepnest_East_06[bot1]', player)) + fn("Deepnest_East_06[door1]", lambda state: state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_06[right1]', player) or (state.count('Deepnest_East_06[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'BackgroundObjectPogos')))) or ((state.count('Deepnest_East_06[top1]', player) or state.count('Deepnest_East_06[bot1]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) + fn("Deepnest_East_06[right1]", lambda state: state.count('Deepnest_East_06[right1]', player) or state.count('Deepnest_East_06[door1]', player) or (state.count('Deepnest_East_06[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'BackgroundObjectPogos')))) or ((state.count('Deepnest_East_06[top1]', player) or state.count('Deepnest_East_06[bot1]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) + fn("Deepnest_East_07[bot1]", lambda state: state.count('Deepnest_East_07[bot1]', player)) + fn("Deepnest_East_07[bot2]", lambda state: state.count('Deepnest_East_07[bot2]', player) or state.count('Deepnest_East_07', player)) + fn("Deepnest_East_07[left1]", lambda state: state.count('Deepnest_East_07[left1]', player) or (state.count('Deepnest_East_07', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_East_07[left2]", lambda state: state.count('Deepnest_East_07[left2]', player) or state.count('Deepnest_East_07', player)) + fn("Deepnest_East_07[right1]", lambda state: state.count('Deepnest_East_07[right1]', player) or state.count('Deepnest_East_07', player)) + fn("Deepnest_East_08[right1]", lambda state: state.count('Deepnest_East_08[right1]', player) or state.count('Deepnest_East_08[top1]', player)) + fn("Deepnest_East_08[top1]", lambda state: state.count('Deepnest_East_08[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Deepnest_East_08[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_East_09[right1]", lambda state: state.count('Deepnest_East_09[right1]', player) or (state.count('Deepnest_East_09[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_East_09[left1]", lambda state: state.count('Deepnest_East_09[left1]', player) or state.count('Deepnest_East_09[right1]', player) or (state.count('Deepnest_East_09[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_East_09[bot1]", lambda state: state.count('Deepnest_East_09[bot1]', player) or state.count('Deepnest_East_09[right1]', player)) + fn("Deepnest_East_10[left1]", lambda state: state.count('Deepnest_East_10[left1]', player)) + fn("Deepnest_East_11[right1]", lambda state: state.count('Deepnest_East_11[right1]', player) or (state.count('Deepnest_East_11[top1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or state.count('FIREBALL', player) or state.count('QUAKE', player))) or ((state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[bot1]', player)) and (state.count('WINGS', player) or ((state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) + fn("Deepnest_East_11[left1]", lambda state: state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[top1]', player) or state.count('Deepnest_East_11[right1]', player) or (state.count('Deepnest_East_11[bot1]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos')) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos')) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) + fn("Deepnest_East_11[top1]", lambda state: state.count('Deepnest_East_11[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) or (state.count('Deepnest_East_11[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'BackgroundObjectPogos'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) or ((state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[bot1]', player)) and (state.count('WINGS', player) or ((True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'BackgroundObjectPogos'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) + fn("Deepnest_East_11[bot1]", lambda state: state.count('Deepnest_East_11[bot1]', player) or state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[top1]', player) or state.count('Deepnest_East_11[right1]', player)) + fn("Deepnest_East_12[right1]", lambda state: state.count('Deepnest_East_12[right1]', player) or state.count('Deepnest_East_12[left1]', player)) + fn("Deepnest_East_12[left1]", lambda state: state.count('Deepnest_East_12[left1]', player) or state.count('Deepnest_East_12[right1]', player)) + fn("Deepnest_East_13[bot1]", lambda state: state.count('Deepnest_East_13[bot1]', player)) + fn("Deepnest_East_14[top2]", lambda state: state.count('Deepnest_East_14[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) + fn("Deepnest_East_14[left1]", lambda state: state.count('Deepnest_East_14[left1]', player) or ((state.count('Deepnest_East_14[top2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and state.count('QUAKE', player) or state.count('Deepnest_East_14[door1]', player)) and (state.count('LEFTDASH', player) or state._hk_option(player, 'SpikeTunnels')))) + fn("Deepnest_East_14[door1]", lambda state: state.count('Deepnest_East_14[door1]', player) or (state.count('Deepnest_East_14[top2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and state.count('QUAKE', player) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'PreciseMovement'))) or (state.count('Deepnest_East_14[left1]', player) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'SpikeTunnels')))) + fn("Deepnest_East_14b[right1]", lambda state: state.count('Deepnest_East_14b[right1]', player) or state.count('Deepnest_East_14b[top1]', player)) + fn("Deepnest_East_14b[top1]", lambda state: state.count('Deepnest_East_14b[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or (state.count('Deepnest_East_14b[right1]', player) and (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips') or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_East_15[left1]", lambda state: state.count('Deepnest_East_15[left1]', player)) + fn("Deepnest_East_16[left1]", lambda state: state.count('Deepnest_East_16[left1]', player) or state.count('Deepnest_East_16[bot1]', player)) + fn("Deepnest_East_16[bot1]", lambda state: state.count('Deepnest_East_16[bot1]', player) or (state.count('Deepnest_East_16[left1]', player) and state.count('QUAKE', player))) + fn("Deepnest_East_17[left1]", lambda state: state.count('Deepnest_East_17[left1]', player)) + fn("Deepnest_East_18[top1]", lambda state: state.count('Deepnest_East_18[top1]', player) or (state.count('Deepnest_East_18', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Deepnest_East_18[bot1]", lambda state: state.count('Deepnest_East_18[bot1]', player) or state.count('Deepnest_East_18', player)) + fn("Deepnest_East_18[right2]", lambda state: state.count('Deepnest_East_18[right2]', player) or (state.count('Deepnest_East_18', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)))) + fn("Room_nailmaster_03[left1]", lambda state: state.count('Room_nailmaster_03[left1]', player)) + fn("Deepnest_East_Hornet[left1]", lambda state: state.count('Deepnest_East_Hornet[left1]', player)) + fn("Deepnest_East_Hornet[left2]", lambda state: state.count('Deepnest_East_Hornet[left2]', player) or (state.count('Deepnest_East_Hornet[left1]', player) and state.count('Defeated_Hornet_2', player))) + fn("Room_Wyrm[right1]", lambda state: state.count('Room_Wyrm[right1]', player)) + fn("GG_Lurker[left1]", lambda state: state.count('GG_Lurker[left1]', player)) + fn("Hive_01[left1]", lambda state: state.count('Hive_01[left1]', player) or state.count('Hive_01[right1]', player)) + fn("Hive_01[right1]", lambda state: state.count('Hive_01[right1]', player) or (state.count('Hive_01[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))))))) + fn("Hive_01[right2]", lambda state: state.count('Hive_01[right2]', player)) + fn("Hive_02[left1]", lambda state: state.count('Hive_02[left1]', player) or ((state.count('Hive_02[left2]', player) or state.count('Hive_02[left3]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTCLAW', player))))) + fn("Hive_02[left2]", lambda state: state.count('Hive_02[left2]', player) or ((state.count('Hive_02[left1]', player) or state.count('Hive_02[left3]', player)) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos'))) or state.count('WINGS', player)))) + fn("Hive_02[left3]", lambda state: state.count('Hive_02[left3]', player) or state.count('Hive_02[left2]', player) or state.count('Hive_02[left1]', player)) + fn("Hive_03_c[left1]", lambda state: state.count('Hive_03_c[left1]', player) or (state.count('Hive_03_c', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) + fn("Hive_03_c[right2]", lambda state: state.count('Hive_03_c[right2]', player)) + fn("Hive_03_c[right3]", lambda state: state.count('Hive_03_c[right3]', player) or state.count('Hive_03_c', player)) + fn("Hive_03_c[top1]", lambda state: state.count('Hive_03_c[top1]', player) or (state.count('Hive_03_c', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) or (state.count('Hive_03_c[right2]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) + fn("Hive_03[bot1]", lambda state: state.count('Hive_03[bot1]', player) or state.count('Hive_03[right1]', player)) + fn("Hive_03[right1]", lambda state: state.count('Hive_03[right1]', player) or (state.count('Hive_03[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))))) + fn("Hive_03[top1]", lambda state: state.count('Hive_03[top1]', player)) + fn("Hive_04[left1]", lambda state: state.count('Hive_04[left1]', player) or (state.count('Hive_04[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTDASH', player) or state.count('WINGS', player)))) + fn("Hive_04[left2]", lambda state: state.count('Hive_04[left2]', player) or state.count('Hive_04[left1]', player) or state.count('Hive_04[right1]', player)) + fn("Hive_04[right1]", lambda state: state.count('Hive_04[right1]', player) or (state.count('Hive_04[left1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')) or state.count('WINGS', player)))) + fn("Hive_05[left1]", lambda state: state.count('Hive_05[left1]', player)) + fn("Room_Colosseum_01[left1]", lambda state: state.count('Room_Colosseum_01[left1]', player) or state.count('Room_Colosseum_01[bot1]', player)) + fn("Room_Colosseum_01[bot1]", lambda state: state.count('Room_Colosseum_01[bot1]', player) or state.count('Room_Colosseum_01[left1]', player)) + fn("Room_Colosseum_02[top1]", lambda state: state.count('Room_Colosseum_02[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Room_Colosseum_02[top2]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) + fn("Room_Colosseum_02[top2]", lambda state: state.count('Room_Colosseum_02[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Room_Colosseum_02[top1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) + fn("Room_Colosseum_Spectate[bot1]", lambda state: state.count('Room_Colosseum_Spectate[bot1]', player) or state.count('Room_Colosseum_Spectate[right1]', player)) + fn("Room_Colosseum_Spectate[right1]", lambda state: state.count('Room_Colosseum_Spectate[right1]', player) or state.count('Room_Colosseum_Spectate[bot1]', player)) + fn("Abyss_01[left1]", lambda state: state.count('Abyss_01[left1]', player) or (state.count('Abyss_01', player) and state.count('Opened_Dung_Defender_Wall', player) and ((state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or state.count('WINGS', player) or state.count('Abyss_01[right1]', player)))) + fn("Abyss_01[left2]", lambda state: state.count('Abyss_01[left2]', player) or (state.count('Abyss_01', player) and (state._hk_option(player, 'SpikeTunnels') and state.count('LEFTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state._hk_option(player, 'SpikeTunnels') and state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player)))) or (state.count('Abyss_01[right2]', player) and state.count('LEFTSUPERDASH', player))) + fn("Abyss_01[left3]", lambda state: state.count('Abyss_01[left3]', player) or state.count('Abyss_01', player)) + fn("Abyss_01[right1]", lambda state: state.count('Abyss_01[right1]', player) or (state.count('Abyss_01', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)) or (state.count('LEFTCLAW', player) and (state.count('WINGS', player) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos')))) or (state.count('Abyss_01[left1]', player) and state.count('LEFTCLAW', player) and (state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Abyss_01[right2]", lambda state: state.count('Abyss_01[right2]', player) or (state.count('Abyss_01', player) and (state._hk_option(player, 'SpikeTunnels') and state.count('RIGHTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state._hk_option(player, 'SpikeTunnels') and state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player) and state.count('RIGHTSUPERDASH', player)))) or (state.count('Abyss_01[left2]', player) and state.count('RIGHTSUPERDASH', player))) + fn("Abyss_02[right1]", lambda state: state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Abyss_02[bot1]", lambda state: state.count('Abyss_02[bot1]', player) or state.count('Abyss_02[right1]', player)) + fn("Abyss_03[bot1]", lambda state: state.count('Abyss_03[bot1]', player) or state.count('Abyss_03', player) or state.count('Lower_Tram', player)) + fn("Abyss_03[bot2]", lambda state: state.count('Abyss_03[bot2]', player) or state.count('Abyss_03', player) or state.count('Lower_Tram', player)) + fn("Abyss_03[top1]", lambda state: state.count('Abyss_03[top1]', player) or state.count('Abyss_03', player) or state.count('Lower_Tram', player)) + fn("Abyss_03_b[left1]", lambda state: state.count('Abyss_03_b[left1]', player) or state.count('Abyss_03_b', player) or state.count('Lower_Tram', player)) + fn("Abyss_03_c[right1]", lambda state: state.count('Abyss_03_c[right1]', player) or state.count('Abyss_03_c', player) or state.count('Lower_Tram', player)) + fn("Abyss_03_c[top1]", lambda state: state.count('Abyss_03_c[top1]', player) or ((state.count('Abyss_03_c', player) or state.count('Lower_Tram', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Abyss_04[top1]", lambda state: state.count('Abyss_04[top1]', player) or (state.count('Abyss_04', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("Abyss_04[left1]", lambda state: state.count('Abyss_04[left1]', player) or state.count('Abyss_04', player)) + fn("Abyss_04[bot1]", lambda state: state.count('Abyss_04[bot1]', player) or state.count('Abyss_04', player)) + fn("Abyss_04[right1]", lambda state: state.count('Abyss_04[right1]', player) or (state.count('Abyss_04', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) + fn("Abyss_05[left1]", lambda state: state.count('Abyss_05[left1]', player) or state.count('Abyss_05', player)) + fn("Abyss_05[right1]", lambda state: state.count('Abyss_05[right1]', player) or state.count('Abyss_05', player)) + fn("Abyss_06_Core[top1]", lambda state: state.count('Abyss_06_Core[top1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'PreciseMovement'))))) + fn("Abyss_06_Core[left1]", lambda state: state.count('Abyss_06_Core[left1]', player) or state.count('Warp-Lifeblood_Core_to_Abyss', player) or (state.count('Abyss_06_Core', player) and (state.count('Lifeblood_Heart', player) or state.count('Lifeblood_Core', player) or state.count("Joni's_Blessing", player)) and (state.count('LEFTCLAW', player) and (state._hk_option(player, 'PreciseMovement') or state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('WINGS', player) or (state.count('Abyss_06_Core[top1]', player) and state.count('BRAND', player))))) + fn("Abyss_06_Core[left3]", lambda state: state.count('Abyss_06_Core[left3]', player) or state.count('Abyss_06_Core', player)) + fn("Abyss_06_Core[right2]", lambda state: state.count('Abyss_06_Core[right2]', player) or state.count('Abyss_06_Core', player)) + fn("Abyss_06_Core[bot1]", lambda state: state.count('Abyss_06_Core[bot1]', player) or (state.count('Abyss_06_Core', player) and (state.count('WHITEFRAGMENT', player) > 1 and state.count('Can_Bench', player) or state.count('WHITEFRAGMENT', player) > 2))) + fn("Abyss_08[right1]", lambda state: state.count('Abyss_08[right1]', player)) + fn("Abyss_09[right1]", lambda state: state.count('Abyss_09[right1]', player) or (state.count('Abyss_09', player) and (state.count('Lit_Abyss_Lighthouse', player) or state.count('WHITEFRAGMENT', player) > 2) and (state.count('SWIM', player) or state.count('RIGHTSUPERDASH', player)))) + fn("Abyss_09[right2]", lambda state: state.count('Abyss_09[right2]', player) or (state.count('Abyss_09', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('WINGS', player)))) + fn("Abyss_09[right3]", lambda state: state.count('Abyss_09[right3]', player)) + fn("Abyss_09[left1]", lambda state: state.count('Abyss_09[left1]', player) or state.count('Abyss_09', player)) + fn("Abyss_10[left1]", lambda state: state.count('Abyss_10[left1]', player) or (state.count('Abyss_10[left2]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)))) + fn("Abyss_10[left2]", lambda state: state.count('Abyss_10[left2]', player) or (state.count('Abyss_10[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips')))) or ((state.count('WINGS', player) or state.count('LEFTCLAW', player)) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player) or state.count('WHITEFRAGMENT', player) > 2))))) + fn("Abyss_12[right1]", lambda state: state.count('Abyss_12[right1]', player)) + fn("Abyss_15[top1]", lambda state: state.count('Abyss_15[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) + fn("Abyss_16[left1]", lambda state: state.count('Abyss_16[left1]', player) or (state.count('Abyss_16[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))) + fn("Abyss_16[right1]", lambda state: state.count('Abyss_16[right1]', player) or (state.count('Abyss_16[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player)))) + fn("Abyss_17[top1]", lambda state: state.count('Abyss_17[top1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) + fn("Abyss_18[left1]", lambda state: state.count('Abyss_18[left1]', player) or (state.count('Abyss_18[right1]', player) and (state.count('WINGS', player) or state.count('LEFTSUPERDASH', player)))) + fn("Abyss_18[right1]", lambda state: state.count('Abyss_18[right1]', player) or (state.count('Abyss_18[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)))) + fn("Abyss_19[left1]", lambda state: state.count('Abyss_19[left1]', player) or (state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Broken_Vessel', player))) + fn("Abyss_19[right1]", lambda state: state.count('Abyss_19[right1]', player) or (state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Abyss_19[bot2]', player) and state.count('WINGS', player))) + fn("Abyss_19[bot1]", lambda state: state.count('Abyss_19[bot1]', player)) + fn("Abyss_19[bot2]", lambda state: state.count('Abyss_19[bot2]', player) or (state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or state.count('Abyss_19[right1]', player)) + fn("Abyss_20[top1]", lambda state: state.count('Abyss_20[top1]', player) or (state.count('Abyss_20[top2]', player) and (state.count('LEFTCLAW', player) or (state._hk_option(player, 'EnemyPogos') and state.count('WINGS', player))))) + fn("Abyss_20[top2]", lambda state: state.count('Abyss_20[top2]', player) or (state.count('Abyss_20[top1]', player) and state.count('RIGHTCLAW', player))) + fn("Abyss_21[right1]", lambda state: state.count('Abyss_21[right1]', player)) + fn("Abyss_22[left1]", lambda state: state.count('Abyss_22[left1]', player) or (state.count('Can_Stag', player) and state.count('Hidden_Station_Stag', player))) + fn("Abyss_Lighthouse_room[left1]", lambda state: state.count('Abyss_Lighthouse_room[left1]', player)) + fn("Waterways_01[top1]", lambda state: state.count('Waterways_01[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Waterways_01', player) and state.count('Opened_Waterways_Manhole', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) + fn("Waterways_01[left1]", lambda state: state.count('Waterways_01[left1]', player) or state.count('Waterways_01', player)) + fn("Waterways_01[right1]", lambda state: state.count('Waterways_01[right1]', player) or (state.count('Waterways_01', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Waterways_01[bot1]", lambda state: state.count('Waterways_01[bot1]', player) or state.count('Waterways_01', player)) + fn("Waterways_02[top1]", lambda state: state.count('Waterways_02[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Waterways_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state._hk_option(player, 'EnemyPogos') and state.count('WINGS', player))))) + fn("Waterways_02[top2]", lambda state: state.count('Waterways_02[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Waterways_02', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player)) or ((state.count('WINGS', player) or state.count('LEFTCLAW', player)) and state._hk_option(player, 'EnemyPogos'))))) + fn("Waterways_02[top3]", lambda state: state.count('Waterways_02[top3]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) + fn("Waterways_02[bot1]", lambda state: state.count('Waterways_02[bot1]', player) or (state.count('Waterways_02[top1]', player) and state.count('QUAKE', player)) or (state.count('Waterways_02[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('SWIM', player)) and state.count('QUAKE', player)) or (state.count('Waterways_02[top3]', player) and state.count('QUAKE', player)) or (state.count('Waterways_02[bot1]', player) and state.count('QUAKE', player)) or (state.count('Waterways_02[bot2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('SWIM', player)) and state.count('QUAKE', player))) + fn("Waterways_02[bot2]", lambda state: state.count('Waterways_02[bot2]', player) or state.count('Waterways_02[top1]', player) or state.count('Waterways_02[top2]', player) or (state.count('Waterways_02[top3]', player) and state.count('QUAKE', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or (state._hk_option(player, 'EnemyPogos') and state.count('SWIM', player)) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips') and state.count('RIGHTDASH', player)))) or (state.count('Waterways_02[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state.count('SWIM', player)) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips') and state.count('RIGHTDASH', player)))) or state.count('Waterways_02[bot2]', player)) + fn("Waterways_03[left1]", lambda state: state.count('Waterways_03[left1]', player)) + fn("Waterways_04[bot1]", lambda state: state.count('Waterways_04[bot1]', player) or (state.count('Waterways_04[right1]', player) and state.count('QUAKE', player)) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) and state.count('QUAKE', player)) or (state.count('Waterways_04[left2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))) and state.count('QUAKE', player))) + fn("Waterways_04[right1]", lambda state: state.count('Waterways_04[right1]', player) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) or (state.count('Waterways_04[left2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) + fn("Waterways_04[left1]", lambda state: state.count('Waterways_04[left1]', player) or (state.count('Waterways_04[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state.count('WINGS', player))) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos')))) or (state.count('Waterways_04[left2]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("Waterways_04[left2]", lambda state: state.count('Waterways_04[left2]', player) or (state.count('Waterways_04[right1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')))) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) + fn("Waterways_04b[right1]", lambda state: state.count('Waterways_04b[right1]', player) or (state.count('Waterways_04b[left1]', player) and state.count('WINGS', player)) or (state.count('Waterways_04b[right2]', player) and state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player))))) + fn("Waterways_04b[right2]", lambda state: state.count('Waterways_04b[right2]', player) or (state.count('Waterways_04b[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player))) or (state.count('Waterways_04b[right1]', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('LEFTSUPERDASH', player))) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player)))) + fn("Waterways_04b[left1]", lambda state: state.count('Waterways_04b[left1]', player) or (state.count('Waterways_04b[right1]', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('LEFTSUPERDASH', player)))) or (state.count('Waterways_04b[right2]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player))))) + fn("Waterways_05[right1]", lambda state: state.count('Waterways_05[right1]', player) or (state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Dung_Defender', player)) or state.count('Waterways_05[bot2]', player)) + fn("Waterways_05[bot1]", lambda state: state.count('Waterways_05[bot1]', player)) + fn("Waterways_05[bot2]", lambda state: state.count('Waterways_05[bot2]', player) or ((state.count('Waterways_05[right1]', player) or (state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Dung_Defender', player))) and state.count('QUAKE', player))) + fn("Waterways_06[right1]", lambda state: state.count('Waterways_06[right1]', player) or (state.count('Waterways_06[top1]', player) and (state.count('ACID', player) or state.count('RIGHTSUPERDASH', player)))) + fn("Waterways_06[top1]", lambda state: state.count('Waterways_06[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Waterways_06[right1]', player) and (state.count('ACID', player) or state.count('LEFTSUPERDASH', player)) and (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips') or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) or state._hk_option(player, 'EnemyPogos') or state.count('RIGHTCLAW', player))) or state.count('WINGS', player)))) + fn("Waterways_07[right1]", lambda state: state.count('Waterways_07[right1]', player) or (state.count('Lever-Dung_Defender', player) and (state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state.count('Waterways_07[door1]', player) or state.count('Waterways_07[top1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))))) + fn("Waterways_07[right2]", lambda state: state.count('Waterways_07[right2]', player) or (state.count('Waterways_07', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) + fn("Waterways_07[left1]", lambda state: state.count('Waterways_07[left1]', player) or (state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('ACID', player) or (state.count('LEFTDASH', player) and state.count('WINGS', player)))) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and (state.count('ACID', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))) and (state.count('LEFTSUPERDASH', player) or (state.count('ACID', player) and state.count('WINGS', player))))) + fn("Waterways_07[door1]", lambda state: state.count('Waterways_07[door1]', player) or (state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('Waterways_07[top1]', player) and state.count('WINGS', player))) + fn("Waterways_07[top1]", lambda state: state.count('Waterways_07[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Waterways_08[top1]", lambda state: state.count('Waterways_08[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Waterways_08[left1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))) or (state.count('Waterways_08[left2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Waterways_08[left1]", lambda state: state.count('Waterways_08[left1]', player) or (state.count('Waterways_08[top1]', player) and (state._hk_option(player, 'EnemyPogos') or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player))) or state.count('Waterways_08[left2]', player)) + fn("Waterways_08[left2]", lambda state: state.count('Waterways_08[left2]', player) or (state.count('Waterways_08[left1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) + fn("Waterways_09[right1]", lambda state: state.count('Waterways_09[right1]', player) or state.count('Waterways_09[left1]', player)) + fn("Waterways_09[left1]", lambda state: state.count('Waterways_09[left1]', player) or (state.count('Waterways_09[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))))) + fn("Waterways_12[right1]", lambda state: state.count('Waterways_12[right1]', player)) + fn("Waterways_13[left1]", lambda state: state.count('Waterways_13[left1]', player) or (state.count('Waterways_13[left2]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state._hk_option(player, 'AcidSkips'))))) + fn("Waterways_13[left2]", lambda state: state.count('Waterways_13[left2]', player) or (state.count('Waterways_13[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) + fn("Waterways_14[bot1]", lambda state: state.count('Waterways_14[bot1]', player) or (state.count('Waterways_14[bot2]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and (state.count('ACID', player) or state.count('LEFTSUPERDASH', player)))) + fn("Waterways_14[bot2]", lambda state: state.count('Waterways_14[bot2]', player) or (state.count('Waterways_14[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('ACID', player) or state.count('RIGHTSUPERDASH', player)))) + fn("Waterways_15[top1]", lambda state: state.count('Waterways_15[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) + fn("GG_Pipeway[right1]", lambda state: state.count('GG_Pipeway[right1]', player) or (state.count('GG_Pipeway[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("GG_Pipeway[left1]", lambda state: state.count('GG_Pipeway[left1]', player) or (state.count('GG_Pipeway[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("GG_Waterways[right1]", lambda state: state.count('GG_Waterways[right1]', player) or (state.count('GG_Waterways[door1]', player) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))))) + fn("GG_Waterways[door1]", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and ((state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('RIGHTSUPERDASH', player) and state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('WINGS', player) and state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player) and state._hk_option(player, 'DifficultSkips'))))) + fn("Room_GG_Shortcut[left1]", lambda state: state.count('Room_GG_Shortcut[left1]', player) or (state.count('Room_GG_Shortcut[top1]', player) and (state.count('WINGS', player) or state.count('SWIM', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) + fn("Room_GG_Shortcut[top1]", lambda state: state.count('Room_GG_Shortcut[top1]', player) and (state.count('WINGS', player) or state.count('LEFTCLAW', player)) or (state.count('Room_GG_Shortcut[left1]', player) and (state.count('WINGS', player) or state.count('LEFTCLAW', player)) and (state.count('RIGHTCLAW', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and state.count('SWIM', player))) or (state.count('LEFTCLAW', player) and state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))))) + fn("Ruins1_01[left1]", lambda state: state.count('Ruins1_01[left1]', player) or state.count('Ruins1_01[top1]', player) or (state.count('Ruins1_01[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Ruins1_01[top1]", lambda state: state.count('Ruins1_01[top1]', player) or state.count('Ruins1_01[left1]', player) or (state.count('Ruins1_01[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Ruins1_01[bot1]", lambda state: state.count('Ruins1_01[bot1]', player) or state.count('Ruins1_01[top1]', player) or state.count('Ruins1_01[left1]', player)) + fn("Ruins1_02[top1]", lambda state: state.count('Ruins1_02[top1]', player) or (state.count('Ruins1_02[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Ruins1_02[bot1]", lambda state: state.count('Ruins1_02[bot1]', player) or state.count('Ruins1_02[top1]', player)) + fn("Ruins1_03[top1]", lambda state: state.count('Ruins1_03[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Ruins1_03', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Ruins1_03[left1]", lambda state: state.count('Ruins1_03[left1]', player) or state.count('Ruins1_03', player)) + fn("Ruins1_03[right1]", lambda state: state.count('Ruins1_03[right1]', player) or state.count('Ruins1_03', player)) + fn("Ruins1_03[right2]", lambda state: state.count('Ruins1_03[right2]', player) or state.count('Ruins1_03', player)) + fn("Ruins1_04[right1]", lambda state: state.count('Ruins1_04[right1]', player) or state.count('Ruins1_04[door1]', player) or (state.count('Ruins1_04[bot1]', player) and (state._hk_option(player, 'EnemyPogos') or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'PreciseMovement'))))) + fn("Ruins1_04[door1]", lambda state: state.count('Ruins1_04[door1]', player) or ((state.count('Ruins1_04[bot1]', player) or (state.count('Ruins1_04[right1]', player) and (state._hk_option(player, 'EnemyPogos') or state.count('LEFTDASH', player) or state.count('WINGS', player) or state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'PreciseMovement'))))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('RIGHTDASH', player)))))) + fn("Ruins1_04[bot1]", lambda state: state.count('Ruins1_04[bot1]', player)) + fn("Ruins1_05b[left1]", lambda state: state.count('Ruins1_05b[left1]', player) or state.count('Ruins1_05b', player)) + fn("Ruins1_05b[top1]", lambda state: state.count('Ruins1_05b[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) + fn("Ruins1_05b[bot1]", lambda state: state.count('Ruins1_05b[bot1]', player) or (state.count('Ruins1_05b', player) and state.count('Opened_Waterways_Manhole', player))) + fn("Ruins1_05b[right1]", lambda state: state.count('Ruins1_05b[right1]', player) or state.count('Ruins1_05b', player)) + fn("Ruins1_05c[left2]", lambda state: state.count('Ruins1_05c[left2]', player) or state.count('Ruins1_05c', player)) + fn("Ruins1_05c[bot1]", lambda state: state.count('Ruins1_05c[bot1]', player) or state.count('Ruins1_05c', player)) + fn("Ruins1_05c[top1]", lambda state: state.count('Ruins1_05c[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Ruins1_05c', player) and (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips'))) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos') or state.count('Ruins1_05c[top2]', player)))))) + fn("Ruins1_05c[top2]", lambda state: state.count('Ruins1_05c[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Ruins1_05c[top3]", lambda state: state.count('Ruins1_05c[top3]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or (state.count('Ruins1_05c[top2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("Ruins1_05[bot1]", lambda state: state.count('Ruins1_05[bot1]', player)) + fn("Ruins1_05[bot2]", lambda state: state.count('Ruins1_05[bot2]', player) or (state.count('Ruins1_05[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')))))) + fn("Ruins1_05[bot3]", lambda state: state.count('Ruins1_05[bot3]', player) or state.count('Ruins1_05', player)) + fn("Ruins1_05[right1]", lambda state: state.count('Ruins1_05[right1]', player) or (state.count('Ruins1_05', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('Ruins1_05[top1]', player)))) + fn("Ruins1_05[right2]", lambda state: state.count('Ruins1_05[right2]', player) or state.count('Ruins1_05', player)) + fn("Ruins1_05[top1]", lambda state: state.count('Ruins1_05[top1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state._hk_option(player, 'PreciseMovement')))) or (state.count('Ruins1_05', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and (state.count('WINGS', player) or state.count('LEFTCLAW', player) or state.count('Ruins1_05[right1]', player)))) + fn("Ruins1_06[left1]", lambda state: state.count('Ruins1_06[left1]', player) or state.count('Ruins1_06[right1]', player)) + fn("Ruins1_06[right1]", lambda state: state.count('Ruins1_06[right1]', player) or state.count('Ruins1_06[left1]', player)) + fn("Ruins1_09[top1]", lambda state: state.count('Ruins1_09[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Ruins1_09[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Ruins1_09[left1]", lambda state: state.count('Ruins1_09[left1]', player) or state.count('Ruins1_09[top1]', player)) + fn("Ruins1_17[top1]", lambda state: state.count('Ruins1_17[top1]', player) or state.count('Ruins1_17[right1]', player)) + fn("Ruins1_17[right1]", lambda state: state.count('Ruins1_17[right1]', player) or state.count('Ruins1_17[top1]', player)) + fn("Ruins1_17[bot1]", lambda state: state.count('Ruins1_17[bot1]', player) or state.count('Ruins1_17[top1]', player) or state.count('Ruins1_17[right1]', player)) + fn("Ruins1_18[left1]", lambda state: state.count('Ruins1_18[left1]', player) or state.count('Ruins1_18[right1]', player)) + fn("Ruins1_18[right1]", lambda state: state.count('Ruins1_18[right1]', player)) + fn("Ruins1_18[right2]", lambda state: state.count('Ruins1_18[right2]', player)) + fn("Ruins1_23[top1]", lambda state: state.count('Ruins1_23[top1]', player) and state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement') or (state.count('Ruins1_23', player) and state.count('Defeated_Sanctum_Warrior', player) and state.count('Broke_Sanctum_Glass_Floor', player) and state.count('WINGS', player) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player))) or state._hk_option(player, 'BackgroundObjectPogos')))) + fn("Ruins1_23[right1]", lambda state: state.count('Ruins1_23[right1]', player) or ((state.count('Ruins1_23', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'EnemyPogos'))) or state.count('Ruins1_23[top1]', player)) and state.count('Defeated_Sanctum_Warrior', player))) + fn("Ruins1_23[right2]", lambda state: state.count('Ruins1_23[right2]', player)) + fn("Ruins1_23[bot1]", lambda state: state.count('Ruins1_23[bot1]', player) or state.count('Ruins1_23', player)) + fn("Ruins1_23[left1]", lambda state: state.count('Ruins1_23[left1]', player) or state.count('Ruins1_23', player)) + fn("Ruins1_24[left1]", lambda state: state.count('Ruins1_24[left1]', player) or (state.count('Ruins1_24[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player))) and state.count('Defeated_Soul_Master', player))) + fn("Ruins1_24[right1]", lambda state: state.count('Ruins1_24[right1]', player)) + fn("Ruins1_24[left2]", lambda state: state.count('Ruins1_24[left2]', player) or state.count('Ruins1_24[right2]', player)) + fn("Ruins1_24[right2]", lambda state: state.count('Ruins1_24[right2]', player) or state.count('Ruins1_24[left2]', player)) + fn("Ruins1_25[left1]", lambda state: state.count('Ruins1_25[left1]', player) or ((state.count('Ruins1_25[left2]', player) or state.count('Ruins1_25[left3]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Ruins1_25[left2]", lambda state: state.count('Ruins1_25[left2]', player) or ((state.count('Ruins1_25[left1]', player) or state.count('Ruins1_25[left3]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Ruins1_25[left3]", lambda state: state.count('Ruins1_25[left3]', player) or (state.count('Ruins1_25[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or state.count('Ruins1_25[left2]', player)) + fn("Ruins1_27[left1]", lambda state: state.count('Ruins1_27[left1]', player) or state.count('Ruins1_27[right1]', player)) + fn("Ruins1_27[right1]", lambda state: state.count('Ruins1_27[right1]', player) or (state.count('Ruins1_27[left1]', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player))) + fn("Ruins1_28[left1]", lambda state: state.count('Ruins1_28[left1]', player) or state.count('Ruins1_28', player)) + fn("Ruins1_28[right1]", lambda state: state.count('Ruins1_28[right1]', player) or state.count('Ruins1_28', player)) + fn("Ruins1_28[bot1]", lambda state: state.count('Ruins1_28[bot1]', player) or state.count('Ruins1_28', player)) + fn("Ruins1_29[left1]", lambda state: state.count('Ruins1_29[left1]', player) or (state.count('Can_Stag', player) and state.count('City_Storerooms_Stag', player))) + fn("Ruins1_30[left1]", lambda state: state.count('Ruins1_30[left1]', player) or (state.count('Ruins1_30', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Ruins1_30[left2]", lambda state: state.count('Ruins1_30[left2]', player)) + fn("Ruins1_30[bot1]", lambda state: state.count('Ruins1_30[bot1]', player) or (state.count('Ruins1_30', player) and state.count('QUAKE', player))) + fn("Ruins1_30[right1]", lambda state: state.count('Ruins1_30[right1]', player) or (state.count('Ruins1_30', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Ruins1_30[left1]', player)))) + fn("Ruins1_31[bot1]", lambda state: state.count('Ruins1_31[bot1]', player) or state.count('Ruins1_31', player) or state.count('Ruins1_31[left1]', player)) + fn("Ruins1_31[left1]", lambda state: state.count('Ruins1_31[left1]', player) or state.count('Ruins1_31', player) or state.count('Ruins1_31[bot1]', player)) + fn("Ruins1_31[left2]", lambda state: state.count('Ruins1_31[left2]', player) or (state.count('Ruins1_31', player) and state.count('Lever-Shade_Soul', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) + fn("Ruins1_31[left3]", lambda state: state.count('Ruins1_31[left3]', player) or (state.count('Ruins1_31', player) and state.count('ELEGANT', player))) + fn("Ruins1_31[right1]", lambda state: state.count('Ruins1_31[right1]', player) or state.count('Ruins1_31', player)) + fn("Ruins1_31b[right1]", lambda state: state.count('Ruins1_31b[right1]', player) or (state.count('Ruins1_31b[right2]', player) and state.count('Defeated_Elegant_Warrior', player))) + fn("Ruins1_31b[right2]", lambda state: state.count('Ruins1_31b[right2]', player) or (state.count('Ruins1_31b[right1]', player) and state.count('Defeated_Elegant_Warrior', player))) + fn("Ruins1_32[right1]", lambda state: state.count('Ruins1_32[right1]', player)) + fn("Ruins1_32[right2]", lambda state: state.count('Ruins1_32[right2]', player) or (state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player))) + fn("Room_nailsmith[left1]", lambda state: state.count('Room_nailsmith[left1]', player)) + fn("Ruins2_01[top1]", lambda state: state.count('Ruins2_01[top1]', player) or (state.count('Ruins2_01', player) and (state.count('Ruins2_01[left2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player))) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips'))))) + fn("Ruins2_01[bot1]", lambda state: state.count('Ruins2_01[bot1]', player) or state.count('Ruins2_01', player)) + fn("Ruins2_01[left2]", lambda state: state.count('Ruins2_01[left2]', player) or (state.count('Ruins2_01', player) and (state.count('Ruins2_01[top1]', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player))) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips'))))) + fn("Ruins2_01_b[top1]", lambda state: state.count('Ruins2_01_b[top1]', player) or (state.count('Ruins2_01_b', player) and (state.count('LEFTCLAW', player) and state._hk_option(player, 'BackgroundObjectPogos') or state.count('WINGS', player)))) + fn("Ruins2_01_b[left1]", lambda state: state.count('Ruins2_01_b[left1]', player) or state.count('Ruins2_01_b', player)) + fn("Ruins2_01_b[right1]", lambda state: state.count('Ruins2_01_b[right1]', player) or state.count('Ruins2_01_b', player)) + fn("Ruins2_03b[top1]", lambda state: state.count('Ruins2_03b[top1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or (state.count('Ruins2_03b', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))))) + fn("Ruins2_03b[top2]", lambda state: state.count('Ruins2_03b[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Ruins2_03b', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Ruins2_03b[left1]", lambda state: state.count('Ruins2_03b[left1]', player) or state.count('Ruins2_03b', player)) + fn("Ruins2_03b[bot1]", lambda state: state.count('Ruins2_03b[bot1]', player) or state.count('Ruins2_03b', player)) + fn("Ruins2_03[top1]", lambda state: state.count('Ruins2_03[top1]', player) or (state.count('Ruins2_03[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('Defeated_Watcher_Knights', player))) + fn("Ruins2_03[bot1]", lambda state: state.count('Ruins2_03[bot1]', player) or (state.count('Ruins2_03[top1]', player) and state.count('Defeated_Watcher_Knights', player))) + fn("Ruins2_03[bot2]", lambda state: state.count('Ruins2_03[bot2]', player)) + fn("Ruins2_04[left1]", lambda state: state.count('Ruins2_04[left1]', player) or state.count('Ruins2_04', player)) + fn("Ruins2_04[left2]", lambda state: state.count('Ruins2_04[left2]', player) or state.count('Ruins2_04', player)) + fn("Ruins2_04[right1]", lambda state: state.count('Ruins2_04[right1]', player) or (state.count('Ruins2_04', player) and ((state.count('LEFTDASH', player) or state.count('LEFTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Ruins2_04[door_Ruin_House_02]', player) or (state.count('Ruins2_04[door_Ruin_Elevator]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) + fn("Ruins2_04[right2]", lambda state: state.count('Ruins2_04[right2]', player) or state.count('Ruins2_04', player)) + fn("Ruins2_04[door_Ruin_House_01]", lambda state: state.count('Ruins2_04[door_Ruin_House_01]', player) or (state.count('Ruins2_04', player) and ((state.count('LEFTDASH', player) or state.count('LEFTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Ruins2_04[right1]', player) or state.count('Ruins2_04[door_Ruin_House_02]', player) or (state.count('Ruins2_04[door_Ruin_Elevator]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('RIGHTSUPERDASH', player)))))) + fn("Ruins2_04[door_Ruin_House_02]", lambda state: state.count('Ruins2_04[door_Ruin_House_02]', player) or (state.count('Ruins2_04', player) and ((state.count('LEFTDASH', player) or state.count('LEFTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Ruins2_04[right1]', player) or (state.count('Ruins2_04[door_Ruin_Elevator]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) + fn("Ruins2_04[door_Ruin_House_03]", lambda state: state.count('Ruins2_04[door_Ruin_House_03]', player) or (state.count('Ruins2_04', player) and state.count('Opened_Emilitia_Door', player))) + fn("Ruins2_04[door_Ruin_Elevator]", lambda state: state.count('Ruins2_04[door_Ruin_Elevator]', player) or (state.count('Ruins2_04', player) and state.count('SIMPLE', player) > 3 and ((state.count('LEFTDASH', player) or state.count('LEFTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Ruins2_04[right1]', player) or state.count('Ruins2_04[door_Ruin_House_02]', player)))) + fn("Ruins2_05[left1]", lambda state: state.count('Ruins2_05[left1]', player) or state.count('Ruins2_05[top1]', player) or (state.count('Ruins2_05[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Ruins2_05[top1]", lambda state: state.count('Ruins2_05[top1]', player) or ((state.count('Ruins2_05[left1]', player) or state.count('Ruins2_05[bot1]', player)) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Ruins2_05[bot1]", lambda state: state.count('Ruins2_05[bot1]', player) or state.count('Ruins2_05[left1]', player) or state.count('Ruins2_05[top1]', player)) + fn("Ruins2_06[left1]", lambda state: state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or (state.count('Ruins2_06[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[right2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[left2]', player) and (state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Ruins2_06[left2]", lambda state: state.count('Ruins2_06[left2]', player) or ((state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or state.count('Ruins2_06[right1]', player) or state.count('Ruins2_06[right2]', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state.count('WINGS', player) or state.count('SWIM', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips')) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)))) + fn("Ruins2_06[right1]", lambda state: state.count('Ruins2_06[right1]', player) or state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or state.count('Ruins2_06[right1]', player) or (state.count('Ruins2_06[right2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[left2]', player) and (state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) or state._hk_option(player, 'EnemyPogos')))) + fn("Ruins2_06[right2]", lambda state: state.count('Ruins2_06[right2]', player) or state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or state.count('Ruins2_06[right1]', player) or state.count('Ruins2_06[right2]', player) or (state.count('Ruins2_06[left2]', player) and (state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'PreciseMovement'))))) + fn("Ruins2_06[top1]", lambda state: state.count('Ruins2_06[top1]', player) or state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or (state.count('Ruins2_06[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[right2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[left2]', player) and (state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Ruins2_07[right1]", lambda state: state.count('Ruins2_07[right1]', player) or (state.count('Ruins2_07[left1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'AcidSkips') and state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and state.count('Can_Bench', player)) and True))))) or state.count('Ruins2_07[right1]', player) or state.count('Ruins2_07[top1]', player)) + fn("Ruins2_07[left1]", lambda state: state.count('Ruins2_07[left1]', player) or state.count('Ruins2_07[left1]', player) or (state.count('Ruins2_07[right1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'AcidSkips') and state.count('LEFTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and state.count('Can_Bench', player)) and True))))) or (state.count('Ruins2_07[top1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'AcidSkips') and state.count('LEFTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and state.count('Can_Bench', player)) and True)))))) + fn("Ruins2_07[top1]", lambda state: state.count('Ruins2_07[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Ruins2_07[left1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'AcidSkips') and state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and state.count('Can_Bench', player)) and True)))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Ruins2_07[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('SWIM', player) or state.count('LEFTDASH', player))))) or (state.count('Ruins2_07[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Ruins2_08[left1]", lambda state: state.count('Ruins2_08[left1]', player) or (state.count('Can_Stag', player) and state.count("King's_Station_Stag", player))) + fn("Ruins2_09[bot1]", lambda state: state.count('Ruins2_09[bot1]', player)) + fn("Ruins2_10[right1]", lambda state: state.count('Ruins2_10[right1]', player) or (state.count('Right_Elevator', player) and state.count('Opened_Resting_Grounds_Catacombs_Wall', player))) + fn("Ruins2_10[left1]", lambda state: state.count('Ruins2_10[left1]', player) or state.count('Right_Elevator', player)) + fn("Ruins2_10b[right1]", lambda state: state.count('Ruins2_10b[right1]', player) or ((state.count('Right_Elevator', player) or state.count('Ruins2_10b[right2]', player)) and (state.count('LEFTCLAW', player) and state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and state.count('LEFTDASH', player)) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)))) or (state.count('Ruins2_10b[left1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and state.count('LEFTDASH', player))))) + fn("Ruins2_10b[right2]", lambda state: state.count('Ruins2_10b[right2]', player) or state.count('Ruins2_10b[left1]', player) or state.count('Ruins2_10b[right1]', player) or state.count('Right_Elevator', player)) + fn("Ruins2_10b[left1]", lambda state: state.count('Ruins2_10b[left1]', player) or ((state.count('Right_Elevator', player) or state.count('Ruins2_10b[right1]', player) or state.count('Ruins2_10b[right2]', player)) and state.count('Opened_Pleasure_House_Wall', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('Ruins2_10b[right1]', player)))) + fn("Ruins2_11_b[right1]", lambda state: state.count('Ruins2_11_b[right1]', player) or state.count('Ruins2_11_b[left1]', player)) + fn("Ruins2_11_b[left1]", lambda state: state.count('Ruins2_11_b[left1]', player) or (state.count('Ruins2_11_b[right1]', player) and state.count('LOVE', player))) + fn("Ruins2_11_b[bot1]", lambda state: state.count('Ruins2_11_b[bot1]', player) or state.count('Ruins2_11_b[right1]', player) or state.count('Ruins2_11_b[left1]', player)) + fn("Ruins2_11[right1]", lambda state: state.count('Ruins2_11[right1]', player)) + fn("Ruins2_Watcher_Room[bot1]", lambda state: state.count('Ruins2_Watcher_Room[bot1]', player)) + fn("Ruins_House_01[left1]", lambda state: state.count('Ruins_House_01[left1]', player)) + fn("Ruins_House_02[left1]", lambda state: state.count('Ruins_House_02[left1]', player)) + fn("Ruins_House_03[left1]", lambda state: state.count('Ruins_House_03[left1]', player) or (state.count('Ruins_House_03[left2]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) + fn("Ruins_House_03[left2]", lambda state: state.count('Ruins_House_03[left2]', player) or state.count('Ruins_House_03[left1]', player)) + fn("Ruins_Elevator[left1]", lambda state: state.count('Ruins_Elevator[left1]', player) or state.count('Ruins_Elevator[left2]', player)) + fn("Ruins_Elevator[left2]", lambda state: state.count('Ruins_Elevator[left2]', player) or state.count('Ruins_Elevator[left1]', player)) + fn("Ruins_Bathhouse[door1]", lambda state: state.count('Ruins_Bathhouse[door1]', player) or state.count('Ruins_Bathhouse[right1]', player)) + fn("Ruins_Bathhouse[right1]", lambda state: state.count('Ruins_Bathhouse[right1]', player) or state.count('Ruins_Bathhouse[door1]', player)) + fn("RestingGrounds_02[right1]", lambda state: state.count('RestingGrounds_02[right1]', player) or state.count('RestingGrounds_02', player)) + fn("RestingGrounds_02[left1]", lambda state: state.count('RestingGrounds_02[left1]', player) or state.count('RestingGrounds_02', player)) + fn("RestingGrounds_02[bot1]", lambda state: state.count('RestingGrounds_02[bot1]', player) or (state.count('RestingGrounds_02', player) and state.count('Opened_Resting_Grounds_Floor', player))) + fn("RestingGrounds_02[top1]", lambda state: False) + fn("RestingGrounds_04[left1]", lambda state: state.count('RestingGrounds_04[left1]', player) or state.count('RestingGrounds_04[right1]', player)) + fn("RestingGrounds_04[right1]", lambda state: state.count('RestingGrounds_04[right1]', player) or state.count('RestingGrounds_04[left1]', player)) + fn("RestingGrounds_05[left1]", lambda state: state.count('RestingGrounds_05[left1]', player) or state.count('RestingGrounds_05', player)) + fn("RestingGrounds_05[left2]", lambda state: state.count('RestingGrounds_05[left2]', player) or state.count('RestingGrounds_05', player)) + fn("RestingGrounds_05[left3]", lambda state: state.count('RestingGrounds_05[left3]', player) or state.count('RestingGrounds_05', player)) + fn("RestingGrounds_05[right1]", lambda state: state.count('RestingGrounds_05[right1]', player) or (state.count('RestingGrounds_05', player) and state.count('Opened_Glade_Door', player))) + fn("RestingGrounds_05[right2]", lambda state: state.count('RestingGrounds_05[right2]', player) or state.count('RestingGrounds_05', player)) + fn("RestingGrounds_05[bot1]", lambda state: state.count('RestingGrounds_05[bot1]', player) or (state.count('RestingGrounds_05', player) and state.count('QUAKE', player))) + fn("RestingGrounds_06[left1]", lambda state: state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[right1]', player) or state.count('RestingGrounds_06[top1]', player)) + fn("RestingGrounds_06[right1]", lambda state: state.count('RestingGrounds_06[right1]', player) or state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[top1]', player)) + fn("RestingGrounds_06[top1]", lambda state: state.count('RestingGrounds_06[top1]', player) or ((state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[right1]', player)) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state._hk_option(player, 'EnemyPogos')))) + fn("RestingGrounds_07[right1]", lambda state: state.count('RestingGrounds_07[right1]', player)) + fn("RestingGrounds_08[left1]", lambda state: state.count('RestingGrounds_08[left1]', player)) + fn("RestingGrounds_09[left1]", lambda state: state.count('RestingGrounds_09[left1]', player) or (state.count('Can_Stag', player) and state.count('Resting_Grounds_Stag', player))) + fn("RestingGrounds_10[left1]", lambda state: state.count('RestingGrounds_10[left1]', player) or state.count('RestingGrounds_10', player)) + fn("RestingGrounds_10[top1]", lambda state: state.count('RestingGrounds_10[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) + fn("RestingGrounds_10[top2]", lambda state: state.count('RestingGrounds_10[top2]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or state._hk_option(player, 'PreciseMovement')))) or (state.count('RestingGrounds_10', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) + fn("RestingGrounds_12[bot1]", lambda state: state.count('RestingGrounds_12[bot1]', player) or state.count('RestingGrounds_12[door_Mansion]', player)) + fn("RestingGrounds_12[door_Mansion]", lambda state: state.count('RestingGrounds_12[door_Mansion]', player) or state.count('RestingGrounds_12[bot1]', player)) + fn("RestingGrounds_17[right1]", lambda state: state.count('RestingGrounds_17[right1]', player)) + fn("Room_Mansion[left1]", lambda state: state.count('Room_Mansion[left1]', player)) + fn("Mines_01[bot1]", lambda state: state.count('Mines_01[bot1]', player) or (state.count('Mines_01[left1]', player) and state.count('QUAKE', player))) + fn("Mines_01[left1]", lambda state: state.count('Mines_01[left1]', player)) + fn("Mines_02[top1]", lambda state: state.count('Mines_02[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Mines_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Mines_02[top2]", lambda state: state.count('Mines_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Mines_02[left1]", lambda state: state.count('Mines_02[left1]', player) or state.count('Mines_02', player)) + fn("Mines_02[right1]", lambda state: state.count('Mines_02[right1]', player) or state.count('Mines_02', player)) + fn("Mines_03[right1]", lambda state: state.count('Mines_03[right1]', player) or (state.count('Mines_03', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('Mines_03[top1]', player)))) + fn("Mines_03[bot1]", lambda state: state.count('Mines_03[bot1]', player) or state.count('Mines_03', player)) + fn("Mines_03[top1]", lambda state: state.count('Mines_03[top1]', player) or (state.count('Mines_03', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('Mines_03[right1]', player)) or (state._hk_option(player, 'SpikeTunnels') and state.count('WINGS', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)))))) + fn("Mines_04[right1]", lambda state: state.count('Mines_04[right1]', player) or state.count('Mines_04', player)) + fn("Mines_04[top1]", lambda state: state.count('Mines_04[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Mines_04[left1]", lambda state: state.count('Mines_04[left1]', player) or (state.count('Mines_04', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTDASH', player) and state._hk_option(player, 'EnemyPogos')) or state.count('Mines_04[top1]', player)))) + fn("Mines_04[left2]", lambda state: state.count('Mines_04[left2]', player) or state.count('Mines_04', player)) + fn("Mines_04[left3]", lambda state: state.count('Mines_04[left3]', player) or state.count('Mines_04', player)) + fn("Mines_05[right1]", lambda state: state.count('Mines_05[right1]', player) or (state.count('Mines_05', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and ((True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) or state._hk_option(player, 'BackgroundObjectPogos'))) or state.count('Mines_05[left1]', player) or state.count('Mines_05[top1]', player)))) + fn("Mines_05[top1]", lambda state: state.count('Mines_05[top1]', player) or (state.count('Mines_05', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and ((True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) or state._hk_option(player, 'BackgroundObjectPogos'))) or (state.count('RIGHTCLAW', player) and state.count('Mines_05[right1]', player)) or state.count('Mines_05[left1]', player)))) + fn("Mines_05[bot1]", lambda state: state.count('Mines_05[bot1]', player) or state.count('Mines_05', player)) + fn("Mines_05[left1]", lambda state: state.count('Mines_05[left1]', player) or (state.count('Mines_05', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and ((True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) or state._hk_option(player, 'BackgroundObjectPogos'))) or (state.count('RIGHTCLAW', player) and state.count('Mines_05[right1]', player)) or state.count('Mines_05[top1]', player)))) + fn("Mines_05[left2]", lambda state: state.count('Mines_05[left2]', player) or state.count('Mines_05', player)) + fn("Mines_06[right1]", lambda state: state.count('Mines_06[right1]', player) or state.count('Mines_06[left1]', player)) + fn("Mines_06[left1]", lambda state: state.count('Mines_06[left1]', player) or (state.count('Mines_06[right1]', player) and (state.count('LEFTSUPERDASH', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('WINGS', player) and state.count('LEFTDASH', player) and state._hk_option(player, 'BackgroundObjectPogos') and state._hk_option(player, 'PreciseMovement') and state._hk_option(player, 'ComplexSkips'))))) + fn("Mines_07[right1]", lambda state: state.count('Mines_07[right1]', player) or (state.count('Mines_07[left1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')))) + fn("Mines_07[left1]", lambda state: state.count('Mines_07[left1]', player) or (state.count('Mines_07[right1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')))) + fn("Mines_10[right1]", lambda state: state.count('Mines_10[right1]', player) or (state.count('Mines_10', player) and state.count('RIGHTCLAW', player) and state.count('RIGHTSUPERDASH', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTDASH', player) and state.count('WINGS', player))))) + fn("Mines_10[left1]", lambda state: state.count('Mines_10[left1]', player) or state.count('Mines_10', player)) + fn("Mines_10[bot1]", lambda state: state.count('Mines_10[bot1]', player) or state.count('Mines_10', player)) + fn("Mines_11[right1]", lambda state: state.count('Mines_11[right1]', player) or state.count('Mines_11', player)) + fn("Mines_11[top1]", lambda state: state.count('Mines_11[top1]', player) or state.count('Mines_11', player)) + fn("Mines_11[bot1]", lambda state: state.count('Mines_11[bot1]', player) or state.count('Mines_11', player)) + fn("Mines_13[right1]", lambda state: state.count('Mines_13[right1]', player) or (state.count('Mines_13[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or state.count('Mines_13[top1]', player)) + fn("Mines_13[top1]", lambda state: False) + fn("Mines_13[bot1]", lambda state: state.count('Mines_13[bot1]', player) or state.count('Mines_13[top1]', player) or state.count('Mines_13[right1]', player)) + fn("Mines_16[top1]", lambda state: state.count('Mines_16[top1]', player)) + fn("Mines_17[right1]", lambda state: state.count('Mines_17[right1]', player) or state.count('Mines_17[left1]', player)) + fn("Mines_17[left1]", lambda state: state.count('Mines_17[left1]', player) or state.count('Mines_17[right1]', player)) + fn("Mines_18[top1]", lambda state: state.count('Mines_18[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Mines_18', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) + fn("Mines_18[left1]", lambda state: state.count('Mines_18[left1]', player) or state.count('Mines_18', player)) + fn("Mines_18[right1]", lambda state: state.count('Mines_18[right1]', player) or state.count('Mines_18', player)) + fn("Mines_19[left1]", lambda state: state.count('Mines_19[left1]', player) or state.count('Mines_19[right1]', player)) + fn("Mines_19[right1]", lambda state: state.count('Mines_19[right1]', player) or state.count('Mines_19[left1]', player)) + fn("Mines_20[left1]", lambda state: state.count('Mines_20[left1]', player) or state.count('Mines_20', player)) + fn("Mines_20[left2]", lambda state: state.count('Mines_20[left2]', player) or state.count('Mines_20', player)) + fn("Mines_20[left3]", lambda state: state.count('Mines_20[left3]', player) or state.count('Mines_20', player) or state.count('Mines_20[bot1]', player) or state.count('Mines_20[left2]', player) or state.count('Mines_20[right2]', player)) + fn("Mines_20[bot1]", lambda state: state.count('Mines_20[bot1]', player) or state.count('Mines_20', player) or state.count('Mines_20[left3]', player) or state.count('Mines_20[left2]', player) or state.count('Mines_20[right2]', player)) + fn("Mines_20[right1]", lambda state: state.count('Mines_20[right1]', player) or (state.count('Mines_20', player) and (state.count('RIGHTCLAW', player) and state._hk_option(player, 'BackgroundObjectPogos') or (state.count('LEFTDASH', player) and state.count('LEFTCLAW', player) and state._hk_option(player, 'BackgroundObjectPogos')) or state.count('WINGS', player)))) + fn("Mines_20[right2]", lambda state: state.count('Mines_20[right2]', player) or state.count('Mines_20', player)) + fn("Mines_23[left1]", lambda state: state.count('Mines_23[left1]', player) or (state.count('Mines_23[right1]', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player) or state.count('LEFTCLAW', player) or state._hk_option(player, 'PreciseMovement') or state._hk_option(player, 'EnemyPogos'))) or state.count('Mines_23[top1]', player) or (state.count('Mines_23[right2]', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('LEFTSUPERDASH', player))))) + fn("Mines_23[right1]", lambda state: state.count('Mines_23[right1]', player) or (state.count('Mines_23[top1]', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('RIGHTSUPERDASH', player) and state.count('RIGHTCLAW', player)))) or (state.count('Mines_23[left1]', player) and (state.count('WINGS', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player)) or (state.count('RIGHTSUPERDASH', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))))) or (state.count('Mines_23[right2]', player) and (state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player))) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) + fn("Mines_23[right2]", lambda state: state.count('Mines_23[right2]', player) or state.count('Mines_23[right1]', player) or (state.count('Mines_23[top1]', player) and (state.count('RIGHTDASH', player) or (state.count('RIGHTSUPERDASH', player) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Mines_23[left1]', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTSUPERDASH', player))))) + fn("Mines_23[top1]", lambda state: False) + fn("Mines_24[left1]", lambda state: state.count('Mines_24[left1]', player)) + fn("Mines_25[left1]", lambda state: state.count('Mines_25[left1]', player) or state.count('Mines_25[top1]', player)) + fn("Mines_25[top1]", lambda state: state.count('Mines_25[top1]', player) and (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state._hk_option(player, 'PreciseMovement')) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'ComplexSkips'))) or (state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) and (state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'ComplexSkips'))))) + fn("Mines_28[left1]", lambda state: state.count('Mines_28[left1]', player) or (state.count('Mines_28[door1]', player) and (state.count('LEFTSUPERDASH', player) or (state.count('WINGS', player) and state.count('LEFTDASH', player)) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True and (state.count('WINGS', player) or state.count('LEFTDASH', player)))))) + fn("Mines_28[bot1]", lambda state: state.count('Mines_28[bot1]', player) or state.count('Mines_28[left1]', player) or state.count('Mines_28[door1]', player)) + fn("Mines_28[door1]", lambda state: state.count('Mines_28[door1]', player) or (state.count('Mines_28[left1]', player) and (state.count('RIGHTSUPERDASH', player) or (state.count('WINGS', player) and state.count('RIGHTDASH', player)) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True and (state.count('WINGS', player) or state.count('RIGHTDASH', player)))))) + fn("Mines_29[left1]", lambda state: state.count('Mines_29[left1]', player) or state.count('Mines_29[right1]', player) or state.count('Mines_29[right2]', player)) + fn("Mines_29[right1]", lambda state: state.count('Mines_29[right1]', player) or state.count('Mines_29[left1]', player) or state.count('Mines_29[right2]', player)) + fn("Mines_29[right2]", lambda state: state.count('Mines_29[right2]', player) or state.count('Mines_29[left1]', player) or state.count('Mines_29[right1]', player)) + fn("Mines_30[left1]", lambda state: state.count('Mines_30[left1]', player) or (state.count('Mines_30[right1]', player) and state.count('LEFTSUPERDASH', player))) + fn("Mines_30[right1]", lambda state: state.count('Mines_30[right1]', player) or (state.count('Mines_30[left1]', player) and state.count('RIGHTSUPERDASH', player))) + fn("Mines_31[left1]", lambda state: state.count('Mines_31[left1]', player)) + fn("Mines_32[bot1]", lambda state: state.count('Mines_32[bot1]', player)) + fn("Mines_33[right1]", lambda state: state.count('Mines_33[right1]', player) or (state.count('Mines_33[left1]', player) and state.count('LANTERN', player))) + fn("Mines_33[left1]", lambda state: state.count('Mines_33[left1]', player) or (state.count('Mines_33[right1]', player) and state.count('LANTERN', player))) + fn("Mines_34[bot1]", lambda state: state.count('Mines_34[bot1]', player)) + fn("Mines_34[bot2]", lambda state: state.count('Mines_34[bot2]', player) or (state.count('Mines_34[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player))) and (state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Mines_34[left1]", lambda state: state.count('Mines_34[left1]', player) or ((state.count('Mines_34[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player))) and (state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) and (state.count('LEFTSUPERDASH', player) or (state.count('WINGS', player) and state.count('LEFTDASH', player))))) + fn("Mines_35[left1]", lambda state: state.count('Mines_35[left1]', player)) + fn("Mines_36[right1]", lambda state: state.count('Mines_36[right1]', player)) + fn("Mines_37[bot1]", lambda state: state.count('Mines_37[bot1]', player) or (state.count('Mines_37[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state.count('RIGHTCLAW', player) and state._hk_option(player, 'ObscureSkips') and state._hk_option(player, 'PreciseMovement') and state._hk_option(player, 'ComplexSkips')) or ((state.count('Dashmaster', player) and state.count('Sprintmaster', player) and (state.count('NOTCHES', player) > state._hk_notches(player, 30, 36)) and state.count('Can_Bench', player)) and state._hk_option(player, 'ObscureSkips'))))) + fn("Mines_37[top1]", lambda state: state.count('Mines_37[top1]', player) or (state.count('Mines_37[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) + fn("Fungus3_04[left1]", lambda state: state.count('Fungus3_04[left1]', player) or state.count('Fungus3_04[left2]', player)) + fn("Fungus3_04[left2]", lambda state: state.count('Fungus3_04[left2]', player) or state.count('Fungus3_04[left1]', player)) + fn("Fungus3_04[right1]", lambda state: state.count('Fungus3_04[right1]', player) or state.count('Fungus3_04', player)) + fn("Fungus3_04[right2]", lambda state: state.count('Fungus3_04[right2]', player) or state.count('Fungus3_04', player)) + fn("Fungus3_05[left1]", lambda state: state.count('Fungus3_05[left1]', player) or state.count('Fungus3_05[right1]', player)) + fn("Fungus3_05[right1]", lambda state: state.count('Fungus3_05[right1]', player) or (state.count('Fungus3_05[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Fungus3_05[right2]", lambda state: state.count('Fungus3_05[right2]', player) or ((state.count('Fungus3_05[left1]', player) or state.count('Fungus3_05[right1]', player)) and (state.count('LEFTDASH', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)) or ((state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and state.count('LEFTSUPERDASH', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))))) + fn("Fungus3_08[left1]", lambda state: state.count('Fungus3_08[left1]', player) or state.count('Fungus3_08[right1]', player) or state.count('Fungus3_08[top1]', player)) + fn("Fungus3_08[right1]", lambda state: state.count('Fungus3_08[right1]', player) or state.count('Fungus3_08[left1]', player) or state.count('Fungus3_08[top1]', player)) + fn("Fungus3_08[top1]", lambda state: state.count('Fungus3_08[top1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state._hk_option(player, 'PreciseMovement')))) or ((state.count('Fungus3_08[right1]', player) or state.count('Fungus3_08[left1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or state._hk_option(player, 'EnemyPogos')))))) + fn("Fungus3_10[top1]", lambda state: state.count('Fungus3_10[top1]', player) or (state.count('Fungus3_10[bot1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player)) and state.count("Defeated_West_Queen's_Gardens_Arena", player))) + fn("Fungus3_10[bot1]", lambda state: state.count('Fungus3_10[bot1]', player) or (state.count('Fungus3_10[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player)) and state.count("Defeated_West_Queen's_Gardens_Arena", player))) + fn("Fungus3_11[left1]", lambda state: state.count('Fungus3_11[left1]', player) or state.count('Fungus3_11', player)) + fn("Fungus3_11[left2]", lambda state: state.count('Fungus3_11[left2]', player) or state.count('Fungus3_11', player)) + fn("Fungus3_11[right1]", lambda state: state.count('Fungus3_11[right1]', player) or state.count('Fungus3_11', player)) + fn("Fungus3_13[left1]", lambda state: state.count('Fungus3_13[left1]', player) or (state.count('Fungus3_13', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('Fungus3_13[left3]', player) and state._hk_option(player, 'EnemyPogos')) or state.count('Fungus3_13[right1]', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state._hk_option(player, 'DifficultSkips') and (state.count('MASKSHARDS', player) > 15))))) + fn("Fungus3_13[left2]", lambda state: state.count('Fungus3_13[left2]', player) or (state.count('Fungus3_13', player) and state.count('Opened_Gardens_Stag_Exit', player))) + fn("Fungus3_13[left3]", lambda state: state.count('Fungus3_13[left3]', player) or (state.count('Fungus3_13', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('Fungus3_13[right1]', player) or state.count('Fungus3_13[left1]', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state._hk_option(player, 'DifficultSkips') and (state.count('MASKSHARDS', player) > 15))))) + fn("Fungus3_13[bot1]", lambda state: state.count('Fungus3_13[bot1]', player) or state.count('Fungus3_13', player)) + fn("Fungus3_13[right1]", lambda state: state.count('Fungus3_13[right1]', player) or (state.count('Fungus3_13', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('Fungus3_13[left3]', player) and state._hk_option(player, 'EnemyPogos')) or state.count('Fungus3_13[left1]', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state._hk_option(player, 'DifficultSkips') and (state.count('MASKSHARDS', player) > 15))))) + fn("Fungus3_21[right1]", lambda state: state.count('Fungus3_21[right1]', player) or (state.count('Fungus3_21[top1]', player) and state.count('RIGHTDASH', player))) + fn("Fungus3_21[top1]", lambda state: state.count('Fungus3_21[top1]', player) or (state.count('Fungus3_21[right1]', player) and state.count('LEFTDASH', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) + fn("Fungus3_22[right1]", lambda state: state.count('Fungus3_22[right1]', player) or (state.count('Fungus3_22', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Fungus3_22[left1]", lambda state: state.count('Fungus3_22[left1]', player) or state.count('Fungus3_22', player)) + fn("Fungus3_22[bot1]", lambda state: state.count('Fungus3_22[bot1]', player) or state.count('Fungus3_22', player)) + fn("Fungus3_23[right1]", lambda state: state.count('Fungus3_23[right1]', player) or (state.count('Fungus3_23[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and state.count('Defeated_Traitor_Lord', player))) + fn("Fungus3_23[left1]", lambda state: state.count('Fungus3_23[left1]', player) or (state.count('Fungus3_23[right1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Traitor_Lord', player))) + fn("Fungus3_34[right1]", lambda state: state.count('Fungus3_34[right1]', player) or state.count('Fungus3_34', player)) + fn("Fungus3_34[left1]", lambda state: state.count('Fungus3_34[left1]', player) or (state.count('Fungus3_34', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'BackgroundObjectPogos') or state._hk_option(player, 'EnemyPogos')))))) + fn("Fungus3_34[top1]", lambda state: state.count('Fungus3_34[top1]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('Fungus3_34', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) + fn("Fungus3_39[right1]", lambda state: state.count('Fungus3_39[right1]', player) or state.count('Fungus3_39[left1]', player)) + fn("Fungus3_39[left1]", lambda state: state.count('Fungus3_39[left1]', player)) + fn("Fungus3_40[right1]", lambda state: state.count('Fungus3_40[right1]', player) or (state.count('Fungus3_40[top1]', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'ShadeSkips') or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True))) or (state.count('Can_Stag', player) and state.count("Queen's_Gardens_Stag", player))) + fn("Fungus3_40[top1]", lambda state: state.count('Fungus3_40[top1]', player) or ((state.count('Fungus3_40[right1]', player) or (state.count('Can_Stag', player) and state.count("Queen's_Gardens_Stag", player))) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)))) + fn("Fungus3_48[right1]", lambda state: state.count('Fungus3_48[right1]', player) or state.count('Fungus3_48[door1]', player)) + fn("Fungus3_48[right2]", lambda state: state.count('Fungus3_48[right2]', player) or (state.count('Fungus3_48[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Fungus3_48[door1]", lambda state: state.count('Fungus3_48[door1]', player) or state.count('Fungus3_48[right1]', player)) + fn("Fungus3_48[bot1]", lambda state: state.count('Fungus3_48[bot1]', player) or state.count('Fungus3_48[right2]', player)) + fn("Fungus3_49[right1]", lambda state: state.count('Fungus3_49[right1]', player)) + fn("Fungus3_50[right1]", lambda state: state.count('Fungus3_50[right1]', player)) + fn("Room_Queen[left1]", lambda state: state.count('Room_Queen[left1]', player)) + fn("Cliffs_01[right1]", lambda state: state.count('Cliffs_01[right1]', player) or (state.count('Cliffs_01', player) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or state.count('WINGS', player)))) + fn("Cliffs_01[right2]", lambda state: state.count('Cliffs_01[right2]', player) or (state.count('Cliffs_01', player) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Cliffs_01[right1]', player)))) + fn("Cliffs_01[right3]", lambda state: state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01', player)) + fn("Cliffs_01[right4]", lambda state: state.count('Cliffs_01[right4]', player) or (state.count('Cliffs_01', player) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player)))) + fn("Cliffs_02[right1]", lambda state: state.count('Cliffs_02[right1]', player) or (state.count('Cliffs_02', player) and (state.count('RIGHTSUPERDASH', player) or (state.count('WINGS', player) and state.count('RIGHTDASH', player))))) + fn("Cliffs_02[bot1]", lambda state: state.count('Cliffs_02[bot1]', player)) + fn("Cliffs_02[bot2]", lambda state: state.count('Cliffs_02[bot2]', player) or state.count('Cliffs_02', player) or (state.count('Cliffs_02[bot1]', player) and state.count('RIGHTCLAW', player))) + fn("Cliffs_02[door1]", lambda state: state.count('Cliffs_02[door1]', player) or state.count('Cliffs_02', player)) + fn("Cliffs_02[left1]", lambda state: state.count('Cliffs_02[left1]', player) or state.count('Cliffs_02', player)) + fn("Cliffs_02[left2]", lambda state: state.count('Cliffs_02[left2]', player) or (state.count('Cliffs_02', player) and state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))) + fn("Cliffs_03[right1]", lambda state: state.count('Cliffs_03[right1]', player) or ((state.count('STAGS', player) > 8 or state.count('Stag_Nest_Stag', player)) and state.count('Can_Stag', player))) + fn("Cliffs_04[right1]", lambda state: state.count('Cliffs_04[right1]', player) or (state.count('Cliffs_04[left1]', player) and (state._hk_option(player, 'DarkRooms') or state.count('LANTERN', player)))) + fn("Cliffs_04[left1]", lambda state: state.count('Cliffs_04[left1]', player) or (state.count('Cliffs_04[right1]', player) and (state._hk_option(player, 'DarkRooms') or state.count('LANTERN', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('QUAKE', player)))) + fn("Cliffs_05[left1]", lambda state: state.count('Cliffs_05[left1]', player)) + fn("Cliffs_06[left1]", lambda state: state.count('Cliffs_06[left1]', player)) + fn("Room_nailmaster[left1]", lambda state: state.count('Room_nailmaster[left1]', player)) + fn("White_Palace_01[left1]", lambda state: state.count('White_Palace_01[left1]', player) or state.count('White_Palace_01', player)) + fn("White_Palace_01[right1]", lambda state: state.count('White_Palace_01[right1]', player) or state.count('White_Palace_01', player)) + fn("White_Palace_01[top1]", lambda state: state.count('White_Palace_01[top1]', player) or (state.count('White_Palace_01', player) and state.count('Palace_Entrance_Lantern_Lit', player))) + fn("White_Palace_02[left1]", lambda state: state.count('White_Palace_02[left1]', player)) + fn("White_Palace_03_hub[left1]", lambda state: state.count('White_Palace_03_hub[left1]', player)) + fn("White_Palace_03_hub[left2]", lambda state: state.count('White_Palace_03_hub[left2]', player) or state.count('White_Palace_03_hub', player)) + fn("White_Palace_03_hub[right1]", lambda state: state.count('White_Palace_03_hub[right1]', player) or (state.count('White_Palace_03_hub', player) and (state.count('RIGHTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('LEFTCLAW', player)) or state.count('WINGS', player)))) + fn("White_Palace_03_hub[top1]", lambda state: state.count('White_Palace_03_hub[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('White_Palace_03_hub', player) and state.count('Palace_Atrium_Gates_Opened', player) and (state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTSUPERDASH', player))))) + fn("White_Palace_03_hub[bot1]", lambda state: state.count('White_Palace_03_hub[bot1]', player) or state.count('White_Palace_03_hub', player)) + fn("White_Palace_04[top1]", lambda state: state.count('White_Palace_04[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('White_Palace_04[right2]', player) and state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('WINGS', player))) + fn("White_Palace_04[right2]", lambda state: state.count('White_Palace_04[right2]', player) or (state.count('White_Palace_04[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('WINGS', player))) + fn("White_Palace_05[left1]", lambda state: state.count('White_Palace_05[left1]', player) or (state.count('White_Palace_05[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) + fn("White_Palace_05[left2]", lambda state: state.count('White_Palace_05[left2]', player) or state.count('White_Palace_05[right2]', player)) + fn("White_Palace_05[right1]", lambda state: state.count('White_Palace_05[right1]', player) or (state.count('White_Palace_05[left1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) + fn("White_Palace_05[right2]", lambda state: state.count('White_Palace_05[right2]', player) or state.count('White_Palace_05[left2]', player)) + fn("White_Palace_06[left1]", lambda state: state.count('White_Palace_06[left1]', player) or state.count('White_Palace_06[top1]', player) or state.count('White_Palace_06[bot1]', player) or state.count('Warp-Path_of_Pain_Complete', player)) + fn("White_Palace_06[top1]", lambda state: state.count('White_Palace_06[top1]', player) or ((state.count('White_Palace_06[left1]', player) or state.count('White_Palace_06[bot1]', player) or state.count('Warp-Path_of_Pain_Complete', player)) and (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state.count('LEFTCLAW', player))))) + fn("White_Palace_06[bot1]", lambda state: state.count('White_Palace_06[bot1]', player) or state.count('White_Palace_06[left1]', player) or state.count('White_Palace_06[top1]', player) or state.count('Warp-Path_of_Pain_Complete', player)) + fn("White_Palace_07[top1]", lambda state: state.count('White_Palace_07[top1]', player) or (state.count('White_Palace_07[bot1]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) and state.count('WINGS', player))) + fn("White_Palace_07[bot1]", lambda state: state.count('White_Palace_07[bot1]', player) or state.count('White_Palace_07[top1]', player)) + fn("White_Palace_08[left1]", lambda state: state.count('White_Palace_08[left1]', player) or state.count('White_Palace_08[right1]', player)) + fn("White_Palace_08[right1]", lambda state: state.count('White_Palace_08[right1]', player) or (state.count('White_Palace_08[left1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) + fn("White_Palace_09[right1]", lambda state: state.count('White_Palace_09[right1]', player)) + fn("White_Palace_11[door2]", lambda state: (state.count('White_Palace_11[door2]', player) or state.count('Warp-Palace_Grounds_to_White_Palace', player)) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) + fn("White_Palace_12[right1]", lambda state: state.count('White_Palace_12[right1]', player) or (state.count('White_Palace_12[bot1]', player) and (state._hk_option(player, 'SpikeTunnels') or state.count('RIGHTDASH', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player)) or state.count('WINGS', player)) and state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player))) + fn("White_Palace_12[bot1]", lambda state: state.count('White_Palace_12[bot1]', player)) + fn("White_Palace_13[right1]", lambda state: state.count('White_Palace_13[right1]', player) or ((state.count('White_Palace_13', player) or state.count('White_Palace_13[left1]', player)) and state.count('RIGHTSUPERDASH', player) and (state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTCLAW', player))))) + fn("White_Palace_13[left1]", lambda state: state.count('White_Palace_13[left1]', player) or (state.count('White_Palace_13', player) and state.count('RIGHTCLAW', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) + fn("White_Palace_13[left2]", lambda state: state.count('White_Palace_13[left2]', player) or (state.count('White_Palace_13', player) and (state.count('LEFTCLAW', player) and state.count('WINGS', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('LEFTSUPERDASH', player)) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player))))) + fn("White_Palace_13[left3]", lambda state: state.count('White_Palace_13[left3]', player) or (state.count('White_Palace_13', player) and state.count('WINGS', player))) + fn("White_Palace_14[bot1]", lambda state: state.count('White_Palace_14[bot1]', player) or (state.count('White_Palace_14[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) + fn("White_Palace_14[right1]", lambda state: state.count('White_Palace_14[right1]', player) or (state.count('White_Palace_14[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) + fn("White_Palace_15[left1]", lambda state: state.count('White_Palace_15[left1]', player) or state.count('White_Palace_15[right1]', player) or ((state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) and state.count('White_Palace_15[right2]', player))) + fn("White_Palace_15[right1]", lambda state: state.count('White_Palace_15[right1]', player)) + fn("White_Palace_15[right2]", lambda state: state.count('White_Palace_15[right2]', player) or state.count('White_Palace_15[right1]', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('White_Palace_15[left1]', player))) + fn("White_Palace_16[left1]", lambda state: state.count('White_Palace_16[left1]', player) or (state.count('White_Palace_16[left2]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) + fn("White_Palace_16[left2]", lambda state: state.count('White_Palace_16[left2]', player) or state.count('White_Palace_16[left1]', player)) + fn("White_Palace_17[right1]", lambda state: state.count('White_Palace_17[right1]', player) or (state.count('White_Palace_17[bot1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) + fn("White_Palace_17[bot1]", lambda state: state.count('White_Palace_17[bot1]', player)) + fn("White_Palace_18[top1]", lambda state: state.count('White_Palace_18[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) or (state.count('White_Palace_18[right1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) + fn("White_Palace_18[right1]", lambda state: state.count('White_Palace_18[right1]', player) or (state.count('White_Palace_18[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) + fn("White_Palace_19[top1]", lambda state: state.count('White_Palace_19[top1]', player) or (state.count('White_Palace_19[left1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state.count('WINGS', player))) + fn("White_Palace_19[left1]", lambda state: state.count('White_Palace_19[left1]', player) or (state.count('White_Palace_19[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state.count('WINGS', player))) + fn("White_Palace_20[bot1]", lambda state: state.count('White_Palace_20[bot1]', player)) + + # Locations + + fn("Sly", lambda state: state.count('Room_shop[left1]', player) and state.count('Rescued_Sly', player)) + fn("Sly_(Key)", lambda state: state.count('Room_shop[left1]', player) and state.count('Rescued_Sly', player) and state.count('SHOPKEY', player)) + fn("Iselda", lambda state: state.count('Room_mapper[left1]', player)) + fn("Salubra", lambda state: state.count('Room_Charm_Shop[left1]', player)) + fn("Leg_Eater", lambda state: state.count('Fungus2_26[left1]', player)) + fn("Grubfather", lambda state: state.count('Crossroads_38[right1]', player)) + fn("Seer", lambda state: state.count('RestingGrounds_07[right1]', player)) + fn("Lurien", lambda state: state.count('Ruins2_Watcher_Room[bot1]', player) and state.count('DREAMNAIL', player)) + fn("Monomon", lambda state: state.count('Fungus3_archive_02[top1]', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Uumuu', player) and (state.count('ACID', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) or (state.count('LEFTSUPERDASH', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))))) + fn("Herrah", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and state.count('DREAMNAIL', player) and (state.count('RIGHTSLASH', player) or ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or state.count('LEFTDASH', player) or state.count('Herrah', player) or ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) + fn("World_Sense", lambda state: state.count('Room_temple[left1]', player) and state.count('Opened_Black_Egg_Temple', player)) + fn("Mothwing_Cloak", lambda state: state.count('Fungus1_04[right1]', player) and state.count('Defeated_Hornet_1', player)) + fn("Mantis_Claw", lambda state: state.count('Fungus2_14', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or state._hk_option(player, 'EnemyPogos'))) + fn("Crystal_Heart", lambda state: state.count('Mines_31[left1]', player) and (state.count('RIGHTSUPERDASH', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) + fn("Monarch_Wings", lambda state: state.count('Abyss_21[right1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) + fn("Shade_Cloak", lambda state: (state.count('Abyss_10[left2]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or (state.count('Abyss_10[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15))))) and (state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or (state.count('RIGHTDASH', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'PreciseMovement') or state._hk_option(player, 'BackgroundObjectPogos')))) or ((state.count('Abyss_10[left2]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or state.count('Abyss_10[left1]', player)) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player) or (state.count('WHITEFRAGMENT', player) > 2 and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))))) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or (state.count('LEFTCLAW', player) and state.count('RIGHTDASH', player)) or (state._hk_option(player, 'BackgroundObjectPogos') and state.count('RIGHTDASH', player))))) + fn("Isma's_Tear", lambda state: state.count('Waterways_13[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) or (state.count('Waterways_13[left2]', player) and (state.count('ACID', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or (state._hk_option(player, 'AcidSkips') and state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player)))))) + fn("Dream_Nail", lambda state: state.count('RestingGrounds_04[left1]', player) or state.count('RestingGrounds_04[right1]', player)) + fn("Vengeful_Spirit", lambda state: state.count('Crossroads_ShamanTemple[left1]', player)) + fn("Shade_Soul", lambda state: state.count('Ruins1_31b[right1]', player) or (state.count('Ruins1_31b[right2]', player) and state.count('Defeated_Elegant_Warrior', player))) + fn("Desolate_Dive", lambda state: state.count('Ruins1_24[right1]', player) and state.count('Defeated_Soul_Master', player)) + fn("Descending_Dark", lambda state: state.count('Mines_35[left1]', player) and state.count('QUAKE', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'PreciseMovement') and (state.count('RIGHTDASH', player) or (state._hk_option(player, 'DifficultSkips') and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))) or state.count('WINGS', player))) + fn("Howling_Wraiths", lambda state: state.count('Room_Fungus_Shaman[left1]', player)) + fn("Abyss_Shriek", lambda state: state.count('Abyss_12[right1]', player) and state.count('SCREAM', player)) + fn("Cyclone_Slash", lambda state: state.count('Room_nailmaster[left1]', player)) + fn("Dash_Slash", lambda state: state.count('Room_nailmaster_03[left1]', player) and state.count('Ruins1_05b[top1]', player)) + fn("Great_Slash", lambda state: state.count('Room_nailmaster_02[left1]', player)) + fn("Focus", lambda state: state.count('Tutorial_01', player)) + fn("Baldur_Shell", lambda state: ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('RIGHTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))) and (state.count('Fungus1_28[left1]', player) or (state.count('Fungus1_28[left2]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'ShadeSkips'))))) + fn("Fury_of_the_Fallen", lambda state: state.count('Tutorial_01', player)) + fn("Lifeblood_Core", lambda state: state.count('Abyss_08[right1]', player) and (state._hk_option(player, 'PreciseMovement') or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('WINGS', player)))) + fn("Defender's_Crest", lambda state: state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Dung_Defender', player)) + fn("Flukenest", lambda state: state.count('Waterways_12[right1]', player) and (state.count('SWIM', player) or state.count('LEFTSUPERDASH', player)) and state.count('Defeated_Flukemarm', player)) + fn("Thorns_of_Agony", lambda state: state.count('Fungus1_14[left1]', player) and (state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)))) + fn("Mark_of_Pride", lambda state: state.count('Fungus2_31[left1]', player) and state.count('Defeated_Mantis_Lords', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'ShadeSkips')))) + fn("Sharp_Shadow", lambda state: state.count('Deepnest_44[top1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player) or state.count('MASKSHARDS', player) > 15)) + fn("Spore_Shroom", lambda state: (state.count('Fungus2_20[left1]', player) or state.count('Fungus2_20[right1]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('ACID', player) or state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)))) + fn("Soul_Catcher", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('LEFTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player) or (state.count('LEFTDASH', player) and state.count('LEFTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips'))) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or (((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('LEFTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player) or (state.count('LEFTDASH', player) and state.count('LEFTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) + fn("Soul_Eater", lambda state: state.count('RestingGrounds_10', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Glowing_Womb", lambda state: state.count('Crossroads_22[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'BackgroundObjectPogos') or state._hk_option(player, 'EnemyPogos'))) + fn("Nailmaster's_Glory", lambda state: state.count('Room_shop[left1]', player) and state.count('Rescued_Sly', player) and state.count('Cyclone_Slash', player) and state.count('Dash_Slash', player) and state.count('Great_Slash', player)) + fn("Joni's_Blessing", lambda state: state.count('Cliffs_05[left1]', player)) + fn("Shape_of_Unn", lambda state: state.count('Fungus1_Slug[right1]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state._hk_option(player, 'AcidSkips')))) + fn("Hiveblood", lambda state: state.count('Hive_05[left1]', player) and state.count('Defeated_Hive_Knight', player)) + fn("Dashmaster", lambda state: state.count('Fungus2_23', player)) + fn("Quick_Slash", lambda state: state.count('Deepnest_East_14b[top1]', player) or (state.count('Deepnest_East_14b[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) + fn("Spell_Twister", lambda state: state.count('Ruins1_30', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Deep_Focus", lambda state: state.count('Mines_36[right1]', player)) + fn("Queen_Fragment", lambda state: state.count('Room_Queen[left1]', player)) + fn("King_Fragment", lambda state: state.count('White_Palace_09[right1]', player) and state.count('LEFTSUPERDASH', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player))) + fn("Void_Heart", lambda state: state.count('Abyss_15[top1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and state.count('DREAMNAIL', player) and (state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'ObscureSkips') and state.count('RIGHTCLAW', player)) or (state._hk_option(player, 'ObscureSkips') and state.count('LEFTCLAW', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player))))) + fn("Dreamshield", lambda state: state.count('RestingGrounds_17[right1]', player)) + fn("Weaversong", lambda state: state.count('Deepnest_45_v02[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos')))) + fn("Grimmchild", lambda state: state.count('Nightmare_Lantern_Lit', player) and state.count('Grimm_Main_Tent[left1]', player)) + fn("Unbreakable_Heart", lambda state: state.count('Grimm_Divine[left1]', player) and (state.count('Fragile_Heart', player) and state.count('Can_Bench', player) and (state.count('Can_Repair_Fragile_Charms', player) or state.count('Fragile_Heart', player) > 1))) + fn("Unbreakable_Greed", lambda state: state.count('Grimm_Divine[left1]', player) and (state.count('Fragile_Greed', player) and state.count('Can_Bench', player) and (state.count('Can_Repair_Fragile_Charms', player) or state.count('Fragile_Greed', player) > 1))) + fn("Unbreakable_Strength", lambda state: state.count('Grimm_Divine[left1]', player) and (state.count('Fragile_Strength', player) and state.count('Can_Bench', player) and (state.count('Can_Repair_Fragile_Charms', player) or state.count('Fragile_Strength', player) > 1))) + fn("City_Crest", lambda state: (state.count('Crossroads_10[left1]', player) or state.count('Crossroads_10[right1]', player)) and state.count('Defeated_False_Knight', player)) + fn("Tram_Pass", lambda state: state.count('Deepnest_26b[right2]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))) + fn("Simple_Key-Basin", lambda state: state.count('Abyss_20[top1]', player) or state.count('Abyss_20[top2]', player)) + fn("Simple_Key-City", lambda state: (state.count('Ruins1_17[top1]', player) or state.count('Ruins1_17[right1]', player)) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos'))) + fn("Simple_Key-Lurker", lambda state: state.count('GG_Lurker[left1]', player) and (state.count('SWIM', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player))) and state.count('RIGHTCLAW', player) and state.count('Defeated_Pale_Lurker', player)) + fn("Shopkeeper's_Key", lambda state: state.count('Mines_11', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) + fn("Love_Key", lambda state: state.count('Fungus3_39[left1]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state._hk_option(player, 'AcidSkips') and state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('WINGS', player) and (state.count('Dashmaster', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'AcidSkips') and (state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and state.count('Can_Bench', player)) and state.count('WINGS', player)))) + fn("King's_Brand", lambda state: state.count('Room_Wyrm[right1]', player)) + fn("Godtuner", lambda state: (state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) and state.count('SIMPLE', player) > 3) + fn("Collector's_Map", lambda state: state.count('Ruins2_11[right1]', player) and (state.count('LEFTCLAW', player) or ((state.count('WINGS', player) or state.count('RIGHTDASH', player)) and state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips'))) and state.count('Defeated_Collector', player)) + fn("Mask_Shard-Brooding_Mawlek", lambda state: (state.count('Crossroads_09[left1]', player) or state.count('Crossroads_09[right1]', player)) and state.count('Defeated_Brooding_Mawlek', player)) + fn("Mask_Shard-Crossroads_Goam", lambda state: (state.count('Crossroads_13[left1]', player) or state.count('Crossroads_13[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) + fn("Mask_Shard-Stone_Sanctuary", lambda state: state.count('Fungus1_36[left1]', player)) + fn("Mask_Shard-Queen's_Station", lambda state: state.count('Fungus2_01', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) and state._hk_option(player, 'ObscureSkips')))) + fn("Mask_Shard-Deepnest", lambda state: state.count('Fungus2_25[top2]', player)) + fn("Mask_Shard-Waterways", lambda state: state.count('Waterways_04b[left1]', player) and (state.count('SWIM', player) or (state.count('LEFTCLAW', player) and state.count('LEFTDASH', player))) or (state.count('Waterways_04b[right1]', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('LEFTSUPERDASH', player))) and (state.count('SWIM', player) or (state.count('LEFTCLAW', player) and state.count('LEFTDASH', player)))) or (state.count('Waterways_04b[right2]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) + fn("Mask_Shard-Enraged_Guardian", lambda state: state.count('Mines_32[bot1]', player) and state.count('Defeated_Enraged_Guardian', player)) + fn("Mask_Shard-Hive", lambda state: state.count('Hive_04[left1]', player) or state.count('Hive_04[left2]', player) or state.count('Hive_04[right1]', player)) + fn("Mask_Shard-Grey_Mourner", lambda state: state.count('Room_Mansion[left1]', player) and state.count('Fungus3_49[right1]', player) and state.count('QUAKE', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and state.count('ACID', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and (((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player))) + fn("Mask_Shard-Bretta", lambda state: state.count('Room_Bretta[right1]', player)) + fn("Vessel_Fragment-Greenpath", lambda state: state.count('Fungus1_13[right1]', player) and (state.count('LEFTCLAW', player) or (state._hk_option(player, 'DamageBoosts') and state.count('MASKSHARDS', player) > 7 and state.count('WINGS', player)) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))) or False) + fn("Vessel_Fragment-City", lambda state: state.count('Ruins2_09[bot1]', player) and state.count("Defeated_King's_Station_Arena", player)) + fn("Vessel_Fragment-Crossroads", lambda state: state.count('Crossroads_37[right1]', player)) + fn("Vessel_Fragment-Basin", lambda state: state.count('Abyss_04', player) and state.count('Ruins1_05b[top1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('Abyss_04[top1]', player) or state._hk_option(player, 'EnemyPogos'))))) + fn("Vessel_Fragment-Deepnest", lambda state: state.count('Deepnest_38[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) + fn("Vessel_Fragment-Stag_Nest", lambda state: state.count('Cliffs_03[right1]', player) or ((state.count('STAGS', player) > 8 or state.count('Stag_Nest_Stag', player)) and state.count('Can_Stag', player))) + fn("Charm_Notch-Shrumal_Ogres", lambda state: (state.count('Fungus2_05[bot1]', player) or state.count('Fungus2_05[right1]', player)) and state.count('Defeated_Shrumal_Ogre_Arena', player)) + fn("Charm_Notch-Fog_Canyon", lambda state: state.count('Fungus3_28[right1]', player) and (state.count('ACID', player) or (state._hk_option(player, 'AcidSkips') and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips') or (state.count('WINGS', player) and state.count('LEFTDASH', player)) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state._hk_option(player, 'DamageBoosts') and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player)) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos')))) + fn("Charm_Notch-Colosseum", lambda state: state.count('Room_Colosseum_01[left1]', player) and state.count('Can_Replenish_Geo', player) and state.count('Defeated_Colosseum_1', player)) + fn("Charm_Notch-Grimm", lambda state: state.count('Grimm_Main_Tent[left1]', player) and state.count('Defeated_Grimm', player)) + fn("Pale_Ore-Basin", lambda state: state.count('Abyss_17[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state.count('LEFTDASH', player) and state._hk_option(player, 'ObscureSkips')) or (state._hk_option(player, 'DamageBoosts') and state.count('MASKSHARDS', player) > 7))) + fn("Pale_Ore-Crystal_Peak", lambda state: state.count('Mines_34[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) and (state.count('WINGS', player) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) + fn("Pale_Ore-Nosk", lambda state: state.count('Deepnest_32[left1]', player) and state.count('Defeated_Nosk', player)) + fn("Pale_Ore-Colosseum", lambda state: state.count('Room_Colosseum_01[left1]', player) and state.count('Can_Replenish_Geo', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')) and state.count('WINGS', player))) and state.count('Defeated_Colosseum_2', player)) + fn("Geo_Chest-False_Knight", lambda state: (state.count('Crossroads_10[left1]', player) or state.count('Crossroads_10[right1]', player)) and state.count('Defeated_False_Knight', player)) + fn("Geo_Chest-Soul_Master", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) + fn("Geo_Chest-Watcher_Knights", lambda state: state.count('Ruins2_03[top1]', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('Defeated_Watcher_Knights', player) and state.count('Ruins2_03[bot1]', player))) + fn("Geo_Chest-Greenpath", lambda state: state.count('Fungus1_13[right1]', player)) + fn("Geo_Chest-Mantis_Lords", lambda state: state.count('Fungus2_31[left1]', player) and state.count('Defeated_Mantis_Lords', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Geo_Chest-Resting_Grounds", lambda state: state.count('RestingGrounds_10', player)) + fn("Geo_Chest-Crystal_Peak", lambda state: ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state.count("Grubberfly's_Elegy", player) and state.count('LEFTSLASH', player) and state._hk_option(player, 'ShadeSkips') and state._hk_option(player, 'ComplexSkips'))) and (state.count('Mines_37[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state.count('RIGHTCLAW', player) and state._hk_option(player, 'ObscureSkips') and state._hk_option(player, 'PreciseMovement')) or ((state.count('Dashmaster', player) and state.count('Sprintmaster', player) and (state.count('NOTCHES', player) > state._hk_notches(player, 30, 36)) and state.count('Can_Bench', player)) and state._hk_option(player, 'ObscureSkips'))) or state.count('Mines_37[bot1]', player))) + fn("Geo_Chest-Weavers_Den", lambda state: state.count('Deepnest_45_v02[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) and (state.count('LEFTDASH', player) and state.count('WINGS', player) or state.count('LEFTSUPERDASH', player)) and (state.count('LEFTDASH', player) or state._hk_option(player, 'SpikeTunnels')) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('LEFTSLASH', player) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player))) + fn("Geo_Chest-Junk_Pit_1", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) + fn("Geo_Chest-Junk_Pit_2", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) + fn("Geo_Chest-Junk_Pit_3", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) + fn("Geo_Chest-Junk_Pit_5", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) + fn("Lumafly_Escape-Junk_Pit_Chest_4", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) + fn("Rancid_Egg-Sheo", lambda state: state.count('Fungus1_15[right1]', player) or state.count('Fungus1_15[door1]', player)) + fn("Rancid_Egg-Fungal_Core", lambda state: state.count('Fungus2_29[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state.count('Fungus2_29[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) + fn("Rancid_Egg-Queen's_Gardens", lambda state: state.count('Fungus3_34', player) and (state.count('RIGHTCLAW', player) and state._hk_option(player, 'BackgroundObjectPogos') or state.count('WINGS', player) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or (state.count('Fungus3_34[left1]', player) and state.count('RIGHTDASH', player))) + fn("Rancid_Egg-Blue_Lake", lambda state: state.count('Crossroads_50[left1]', player) and state.count('RIGHTSUPERDASH', player) or ((state.count('Crossroads_50[left1]', player) or state.count('Crossroads_50[right1]', player)) and state.count('SWIM', player) and state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))) + fn("Rancid_Egg-Crystal_Peak_Dive_Entrance", lambda state: state.count('Mines_01[left1]', player) and state.count('QUAKE', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player))) or (state.count('Mines_01[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player))) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'PreciseMovement')) or (state.count('LEFTCLAW', player) and state.count('WINGS', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))))) + fn("Rancid_Egg-Crystal_Peak_Dark_Room", lambda state: state.count('Mines_29[left1]', player) or state.count('Mines_29[right1]', player) or state.count('Mines_29[right2]', player)) + fn("Rancid_Egg-Crystal_Peak_Tall_Room", lambda state: state.count('Mines_20', player) and state.count('QUAKE', player)) + fn("Rancid_Egg-City_of_Tears_Left", lambda state: state.count('Ruins1_05c', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'BackgroundObjectPogos'))) + fn("Rancid_Egg-City_of_Tears_Pleasure_House", lambda state: state.count('Ruins_Elevator[left1]', player) or state.count('Ruins_Elevator[left2]', player)) + fn("Rancid_Egg-Beast's_Den", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) + fn("Rancid_Egg-Dark_Deepnest", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39[left1]', player) or state.count('Deepnest_39[top1]', player) or state.count('Deepnest_39[door1]', player) or (state.count('Deepnest_39[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)) or ((state.count('WINGS', player) or state.count('RIGHTCLAW', player)) and state._hk_option(player, 'EnemyPogos')))))) + fn("Rancid_Egg-Weaver's_Den", lambda state: state.count('Deepnest_45_v02[left1]', player) and (state._hk_option(player, 'SpikeTunnels') or state.count('LEFTDASH', player))) + fn("Rancid_Egg-Near_Quick_Slash", lambda state: state.count('Deepnest_East_14[top2]', player) and state.count('QUAKE', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) + fn("Rancid_Egg-Upper_Kingdom's_Edge", lambda state: state.count('Deepnest_East_07', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Rancid_Egg-Waterways_East", lambda state: state.count('Waterways_07', player)) + fn("Rancid_Egg-Waterways_Main", lambda state: state.count('Waterways_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Waterways_02[top1]', player) or (state.count('QUAKE', player) and state.count('Waterways_02[top3]', player)))) + fn("Rancid_Egg-Waterways_West_Bluggsac", lambda state: state.count('Waterways_04[right1]', player) and (state.count('SWIM', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')) or (((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) and state.count('WINGS', player)) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'FireballSkips') and state._hk_option(player, 'AcidSkips') and state.count('FIREBALL', player) and state.count('LEFTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player))) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')) or (((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) and state.count('WINGS', player)) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'FireballSkips') and state._hk_option(player, 'AcidSkips') and state.count('FIREBALL', player) and state.count('LEFTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) or (state.count('Waterways_04[left2]', player) and (state.count('SWIM', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')) or (((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) and state.count('WINGS', player))))) + fn("Rancid_Egg-Waterways_West_Pickup", lambda state: state.count('Waterways_04b[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips')))) + fn("Rancid_Egg-Tuk_Defender's_Crest", lambda state: state.count('Waterways_03[left1]', player) and (state.count("Defender's_Crest", player) and state.count('Can_Bench', player))) + fn("Wanderer's_Journal-Cliffs", lambda state: state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player) or (state.count('Cliffs_01[right3]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos')))) or state.count('Cliffs_01[right4]', player)) + fn("Wanderer's_Journal-Greenpath_Stag", lambda state: state.count('Fungus1_22[left1]', player) or state.count('Fungus1_22[top1]', player)) + fn("Wanderer's_Journal-Greenpath_Lower", lambda state: state.count('Fungus1_11', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) + fn("Wanderer's_Journal-Fungal_Wastes_Thorns_Gauntlet", lambda state: state.count('Fungus2_04', player) and (state.count('LEFTCLAW', player) and state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state.count('RIGHTDASH', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player)) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))))) + fn("Wanderer's_Journal-Above_Mantis_Village", lambda state: state.count('Fungus2_17', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) + fn("Wanderer's_Journal-Crystal_Peak_Crawlers", lambda state: state.count('Mines_20', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) + fn("Wanderer's_Journal-Resting_Grounds_Catacombs", lambda state: state.count('RestingGrounds_10', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Wanderer's_Journal-King's_Station", lambda state: state.count('Ruins2_05[bot1]', player) and state._hk_option(player, 'EnemyPogos') or state.count('Ruins2_05[left1]', player) or state.count('Ruins2_05[top1]', player)) + fn("Wanderer's_Journal-Pleasure_House", lambda state: state.count('Ruins_Elevator[left1]', player) or state.count('Ruins_Elevator[left2]', player)) + fn("Wanderer's_Journal-City_Storerooms", lambda state: state.count('Ruins1_28', player) or state.count('Ruins1_28[left1]', player)) + fn("Wanderer's_Journal-Ancient_Basin", lambda state: (state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'SpikeTunnels'))) + fn("Wanderer's_Journal-Kingdom's_Edge_Entrance", lambda state: state.count('Deepnest_East_07[bot1]', player)) + fn("Wanderer's_Journal-Kingdom's_Edge_Camp", lambda state: state.count('Deepnest_East_13[bot1]', player)) + fn("Wanderer's_Journal-Kingdom's_Edge_Requires_Dive", lambda state: state.count('Deepnest_East_18', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Deepnest_East_18[top1]', player)) and state.count('QUAKE', player)) + fn("Hallownest_Seal-Crossroads_Well", lambda state: (state.count('Crossroads_01[left1]', player) or state.count('Crossroads_01[top1]', player) or state.count('Crossroads_01[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and (state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15 or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or (state.count('LEFTDASH', player) or state.count('RIGHTDASH', player))) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player)))) or ((state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player)) and (state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))) + fn("Hallownest_Seal-Greenpath", lambda state: (state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[top1]', player) or state.count('Fungus1_10[right1]', player)) and (state.count('ACID', player) or (state.count('WINGS', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state.count('LEFTDASH', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)) or (state.count('Dashmaster', player) and state._hk_option(player, 'ObscureSkips')) or state.count('WINGS', player) or state.count('LEFTCLAW', player))) or state.count('LEFTSUPERDASH', player))) + fn("Hallownest_Seal-Fog_Canyon_West", lambda state: state.count('Fungus3_30[bot1]', player)) + fn("Hallownest_Seal-Fog_Canyon_East", lambda state: (state.count('Fungus3_26', player) and (state.count('Fungus3_26[top1]', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and (state.count('LEFTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) and state._hk_option(player, 'EnemyPogos')))) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player) or state.count('LEFTDASH', player) or (state._hk_option(player, 'DamageBoosts') and state.count('MASKSHARDS', player) > 7))) + fn("Hallownest_Seal-Queen's_Station", lambda state: state.count('Fungus2_34[right1]', player) and state.count('WINGS', player)) + fn("Hallownest_Seal-Fungal_Wastes_Sporgs", lambda state: state.count('Fungus2_03', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('LEFTCLAW', player) or state._hk_option(player, 'PreciseMovement') or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips')))) + fn("Hallownest_Seal-Mantis_Lords", lambda state: state.count('Fungus2_31[left1]', player) and state.count('Defeated_Mantis_Lords', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Hallownest_Seal-Resting_Grounds_Catacombs", lambda state: state.count('RestingGrounds_10', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Hallownest_Seal-King's_Station", lambda state: state.count('Ruins2_08[left1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player)))) + fn("Hallownest_Seal-City_Rafters", lambda state: state.count('Ruins1_03', player)) + fn("Hallownest_Seal-Soul_Sanctum", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player)) + fn("Hallownest_Seal-Watcher_Knight", lambda state: (state.count('Ruins2_03[top1]', player) or (state.count('Ruins2_03[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('Defeated_Watcher_Knights', player))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or (state.count('RIGHTDASH', player) and state._hk_option(player, 'BackgroundObjectPogos')))) + fn("Hallownest_Seal-Deepnest_By_Mantis_Lords", lambda state: state.count('Deepnest_16[bot1]', player) and (state.count('LEFTCLAW', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player)))) + fn("Hallownest_Seal-Beast's_Den", lambda state: state.count('Deepnest_Spider_Town[left1]', player)) + fn("Hallownest_Seal-Queen's_Gardens", lambda state: (state.count('Fungus3_48[right2]', player) or state.count('Fungus3_48[bot1]', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips')))) + fn("King's_Idol-Cliffs", lambda state: state.count('Cliffs_01', player)) + fn("King's_Idol-Crystal_Peak", lambda state: (state.count('Mines_30[right1]', player) or (state.count('RIGHTSUPERDASH', player) and state.count('Mines_30[left1]', player))) and (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'BackgroundObjectPogos') or state.count('WINGS', player))) + fn("King's_Idol-Glade_of_Hope", lambda state: state.count('RestingGrounds_08[left1]', player) and (state.count('SWIM', player) and state.count('LEFTCLAW', player) or (state.count('SWIM', player) and state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('RIGHTSUPERDASH', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) or (state.count('RIGHTSUPERDASH', player) and state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state.count('RIGHTDASH', player)) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'DifficultSkips') and (state.count('SWIM', player) or state.count('RIGHTSUPERDASH', player))))) + fn("King's_Idol-Dung_Defender", lambda state: state.count('Waterways_15[top1]', player)) + fn("King's_Idol-Great_Hopper", lambda state: state.count('Deepnest_East_08[top1]', player) or state.count('Deepnest_East_08[right1]', player)) + fn("King's_Idol-Pale_Lurker", lambda state: state.count('GG_Lurker[left1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')))) + fn("King's_Idol-Deepnest", lambda state: state.count('Deepnest_33[top1]', player)) + fn("Arcane_Egg-Lifeblood_Core", lambda state: state.count('Abyss_08[right1]', player) and (state._hk_option(player, 'PreciseMovement') or state.count('LEFTDASH', player)) and (state.count('RIGHTSUPERDASH', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) + fn("Arcane_Egg-Shade_Cloak", lambda state: state.count('Abyss_10[left2]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or (state.count('Abyss_10[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player) or (state.count('WHITEFRAGMENT', player) > 2 and (state.count('SWIM', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))))) + fn("Arcane_Egg-Birthplace", lambda state: state.count('Abyss_15[top1]', player)) + fn("Whispering_Root-Crossroads", lambda state: state.count('Crossroads_07', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and (state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or (state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) and state.count('DREAMNAIL', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Whispering_Root-Greenpath", lambda state: state.count('Fungus1_13[left1]', player) and state.count('Fungus1_13[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or (state.count('MASKSHARDS', player) > 7 and state._hk_option(player, 'DamageBoosts'))))) and state.count('DREAMNAIL', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Great_Slash', player) or state.count('Cyclone_Slash', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('Dash_Slash', player)))) + fn("Whispering_Root-Leg_Eater", lambda state: (state.count('Fungus2_33[left1]', player) or state.count('Fungus2_33[right1]', player)) and state.count('DREAMNAIL', player)) + fn("Whispering_Root-Mantis_Village", lambda state: state.count('Fungus2_17', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('DREAMNAIL', player)) + fn("Whispering_Root-Deepnest", lambda state: state.count('Deepnest_39', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))) and state.count('DREAMNAIL', player)) + fn("Whispering_Root-Queens_Gardens", lambda state: state.count('Fungus3_11', player) and state.count('LEFTCLAW', player) and state.count('DREAMNAIL', player)) + fn("Whispering_Root-Kingdoms_Edge", lambda state: state.count('Deepnest_East_07', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('DREAMNAIL', player)) + fn("Whispering_Root-Waterways", lambda state: state.count('Abyss_01[left3]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and state.count('DREAMNAIL', player)) + fn("Whispering_Root-City", lambda state: (state.count('Ruins1_17[top1]', player) or state.count('Ruins1_17[right1]', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos')) and state.count('DREAMNAIL', player)) + fn("Whispering_Root-Resting_Grounds", lambda state: state.count('RestingGrounds_05', player) and state.count('DREAMNAIL', player)) + fn("Whispering_Root-Spirits_Glade", lambda state: state.count('RestingGrounds_08[left1]', player) and state.count('DREAMNAIL', player) and (state.count('WINGS', player) and (state.count('SWIM', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('RIGHTDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('RIGHTSUPERDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or (state.count('LEFTCLAW', player) and state.count('SWIM', player) and state.count('RIGHTDASH', player)) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTSUPERDASH', player) and state.count('RIGHTDASH', player)) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'DifficultSkips') and (state.count('SWIM', player) or state.count('RIGHTSUPERDASH', player))))) + fn("Whispering_Root-Crystal_Peak", lambda state: (state.count('Mines_23[left1]', player) or state.count('Mines_23[top1]', player) or state.count('Mines_23[right1]', player) or state.count('Mines_23[right2]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player)) and state.count('DREAMNAIL', player)) + fn("Whispering_Root-Howling_Cliffs", lambda state: state.count('Cliffs_01', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))) and state.count('DREAMNAIL', player)) + fn("Whispering_Root-Ancestral_Mound", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and (state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state._hk_option(player, 'EnemyPogos'))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('LEFTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player) or (state.count('LEFTDASH', player) and state.count('LEFTSLASH', player))) and state._hk_option(player, 'DifficultSkips')))) and state.count('DREAMNAIL', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Whispering_Root-Hive", lambda state: (state.count('Hive_02[left1]', player) or state.count('Hive_02[left2]', player) or state.count('Hive_02[left3]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTCLAW', player))) and state.count('DREAMNAIL', player)) + fn("Boss_Essence-Elder_Hu", lambda state: state.count('Fungus2_32[left1]', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Elder_Hu', player)) + fn("Boss_Essence-Xero", lambda state: state.count('RestingGrounds_02', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Xero', player)) + fn("Boss_Essence-Gorb", lambda state: state.count('Cliffs_02', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Gorb', player)) + fn("Boss_Essence-Marmu", lambda state: (state.count('Fungus3_40[top1]', player) or (state.count('Fungus3_40[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)))) and state.count('DREAMNAIL', player) and state.count('Defeated_Marmu', player)) + fn("Boss_Essence-No_Eyes", lambda state: (state.count('Fungus1_35[left1]', player) or state.count('Fungus1_35[right1]', player)) and state.count('LANTERN', player) and state.count('DREAMNAIL', player) and state.count('Defeated_No_Eyes', player)) + fn("Boss_Essence-Galien", lambda state: state.count('Deepnest_40[right1]', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Galien', player)) + fn("Boss_Essence-Markoth", lambda state: state.count('Deepnest_East_10[left1]', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Markoth', player)) + fn("Boss_Essence-Failed_Champion", lambda state: (state.count('Crossroads_10[left1]', player) or state.count('Crossroads_10[right1]', player)) and state.count('Defeated_False_Knight', player) and state.count('Defeated_Failed_Champion', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player)))) and state.count('DREAMNAIL', player)) + fn("Boss_Essence-Soul_Tyrant", lambda state: (state.count('Ruins1_24[right1]', player) or state.count('Ruins1_24[left1]', player)) and state.count('Defeated_Soul_Master', player) and state.count('Defeated_Soul_Tyrant', player) and state.count('DREAMNAIL', player)) + fn("Boss_Essence-Lost_Kin", lambda state: state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('DREAMNAIL', player) and state.count('Defeated_Broken_Vessel', player) and state.count('Defeated_Lost_Kin', player)) + fn("Boss_Essence-White_Defender", lambda state: state.count('Waterways_15[top1]', player) and state.count('DREAMNAIL', player) and (state.count('DREAMER', player) > 2) and state.count('Defeated_Dung_Defender', player) and state.count('Defeated_White_Defender', player)) + fn("Boss_Essence-Grey_Prince_Zote", lambda state: state.count('Room_Bretta[right1]', player) and state.count('DREAMNAIL', player) and state.count('WINGS', player) and state.count('Rescued_Bretta', player) and state.count('Defeated_Colosseum_Zote', player) and state.count('Defeated_Grey_Prince_Zote', player)) + fn("Grub-Crossroads_Acid", lambda state: state.count('Crossroads_35[right1]', player) or (state.count('Crossroads_35[bot1]', player) and state.count('RIGHTCLAW', player) and (state.count('ACID', player) or ((state.count('LEFTSUPERDASH', player) and state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTDASH', player))) and state._hk_option(player, 'AcidSkips'))))) + fn("Grub-Crossroads_Center", lambda state: (state.count('Crossroads_05[left1]', player) or state.count('Crossroads_05[right1]', player)) and (state._hk_option(player, 'EnemyPogos') or state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player))) + fn("Grub-Crossroads_Stag", lambda state: state.count('Crossroads_03', player)) + fn("Grub-Crossroads_Spike", lambda state: state.count('Crossroads_31[right1]', player)) + fn("Grub-Crossroads_Guarded", lambda state: state.count('Crossroads_48[left1]', player)) + fn("Grub-Greenpath_Cornifer", lambda state: (state.count('Fungus1_06[left1]', player) or state.count('Fungus1_06[bot1]', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Great_Slash', player) or state.count('Cyclone_Slash', player) or state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos'))) + fn("Grub-Greenpath_Journal", lambda state: (state.count('Fungus1_07[left1]', player) or state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[right1]', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Great_Slash', player) or state.count('Cyclone_Slash', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('ACID', player) and (state.count('RIGHTCLAW', player) or state._hk_option(player, 'EnemyPogos'))) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips')))) + fn("Grub-Greenpath_MMC", lambda state: state.count('Fungus1_13[right1]', player)) + fn("Grub-Greenpath_Stag", lambda state: state.count('Fungus1_21', player)) + fn("Grub-Fog_Canyon", lambda state: state.count('LEFTSUPERDASH', player) and state.count('Fungus3_47', player)) + fn("Grub-Fungal_Bouncy", lambda state: state.count('Fungus2_18[right1]', player)) + fn("Grub-Fungal_Spore_Shroom", lambda state: state.count('Fungus2_20[left1]', player) or state.count('Fungus2_20[right1]', player)) + fn("Grub-Deepnest_Mimic", lambda state: state.count('Deepnest_36[left1]', player)) + fn("Grub-Deepnest_Nosk", lambda state: state.count('Deepnest_31[right1]', player) or (state.count('Deepnest_31[right2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Grub-Deepnest_Spike", lambda state: state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('Deepnest_03[top1]', player)))) + fn("Grub-Dark_Deepnest", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) or state.count('Deepnest_39[top1]', player) or (state.count('Deepnest_39[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player))))) + fn("Grub-Beast's_Den", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) + fn("Grub-Kingdom's_Edge_Oro", lambda state: ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and (state.count('Deepnest_East_14[top2]', player) and state.count('QUAKE', player) and (state._hk_option(player, 'PreciseMovement') or state.count('RIGHTDASH', player)) or (state.count('Deepnest_East_14[left1]', player) and (state._hk_option(player, 'SpikeTunnels') or state.count('RIGHTDASH', player))) or state.count('Deepnest_East_14[door1]', player))) + fn("Grub-Kingdom's_Edge_Camp", lambda state: state.count('Deepnest_East_11', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state._hk_option(player, 'PreciseMovement') and state.count('LEFTDASH', player)))) + fn("Grub-Hive_External", lambda state: state.count('Hive_03[top1]', player)) + fn("Grub-Hive_Internal", lambda state: (state.count('Hive_04[left1]', player) or state.count('Hive_04[right1]', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips')))) + fn("Grub-Basin_Requires_Wings", lambda state: state.count('Abyss_19', player) and state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and state._hk_option(player, 'EnemyPogos')))) + fn("Grub-Basin_Requires_Dive", lambda state: state.count('Abyss_17[top1]', player) and state.count('QUAKE', player)) + fn("Grub-Waterways_Main", lambda state: state.count('Waterways_04[right1]', player) and (state.count('RIGHTCLAW', player) or state.count('SWIM', player) or state.count('CYCLONE', player) or state.count('FIREBALL', player) or state.count('SCREAM', player)) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('RIGHTCLAW', player) or state.count('SWIM', player) or state.count('CYCLONE', player) or state.count('FIREBALL', player) or state.count('SCREAM', player))) or (state.count('Waterways_04[left2]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) + fn("Grub-Isma's_Grove", lambda state: (state.count('Waterways_13[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) or (state.count('Waterways_13[left2]', player) and (state.count('RIGHTCLAW', player) or ((state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) and state.count('LEFTCLAW', player))))) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')))) + fn("Grub-Waterways_Requires_Tram", lambda state: state.count('Waterways_14[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('RIGHTSUPERDASH', player) and state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) or (state.count('ACID', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))))) or (state.count('Waterways_14[bot2]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and (state.count('LEFTSUPERDASH', player) and state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) or (state.count('ACID', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))))))) + fn("Grub-City_of_Tears_Left", lambda state: state.count('Ruins1_05', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and (state.count('Ruins1_05[top1]', player) or state.count('Ruins1_05[right1]', player))))) + fn("Grub-Soul_Sanctum", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player)) + fn("Grub-Watcher's_Spire", lambda state: state.count('Ruins2_03[bot2]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player)))) + fn("Grub-City_of_Tears_Guarded", lambda state: state.count('Ruins_House_01[left1]', player)) + fn("Grub-King's_Station", lambda state: state.count('Ruins2_07[left1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))) or (state.count('Ruins2_07[top1]', player) and (state.count('LEFTDASH', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) or (state.count('Ruins2_07[right1]', player) and (state.count('LEFTDASH', player) or state.count('SWIM', player) or ((state.count('RIGHTCLAW', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))) and state.count('LEFTSUPERDASH', player)) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))))) + fn("Grub-Resting_Grounds", lambda state: state.count('RestingGrounds_10', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Grub-Crystal_Peak_Below_Chest", lambda state: state.count('Mines_04[top1]', player)) + fn("Grub-Crystallized_Mound", lambda state: state.count('Mines_35[left1]', player) and state.count('QUAKE', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'PreciseMovement') and (state.count('RIGHTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or state.count('WINGS', player))) + fn("Grub-Crystal_Peak_Spike", lambda state: state.count('Mines_03', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or (state.count('WINGS', player) and state._hk_option(player, 'SpikeTunnels') and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))))) + fn("Grub-Crystal_Peak_Mimic", lambda state: state.count('Mines_16[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))) + fn("Grub-Crystal_Peak_Crushers", lambda state: (state.count('Mines_19[left1]', player) and state.count('Mines_19[right1]', player)) and state.count('LEFTDASH', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Grub-Crystal_Heart", lambda state: state.count('Mines_31[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTDASH', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))) + fn("Grub-Hallownest_Crown", lambda state: state.count('Mines_24[left1]', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'SpikeTunnels'))) + fn("Grub-Howling_Cliffs", lambda state: state.count('Fungus1_28[left1]', player) or (state.count('Fungus1_28[left2]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('RIGHTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))))) + fn("Grub-Queen's_Gardens_Stag", lambda state: state.count('Fungus3_10[bot1]', player) and (state.count('WINGS', player) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) and state.count("Defeated_West_Queen's_Gardens_Arena", player) or state.count('Fungus3_10[top1]', player)) + fn("Grub-Queen's_Gardens_Marmu", lambda state: (state.count('Fungus3_48[bot1]', player) or state.count('Fungus3_48[right2]', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) + fn("Grub-Queen's_Gardens_Top", lambda state: state.count('Fungus3_22', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTSUPERDASH', player) and (state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player)) or (state._hk_option(player, 'ComplexSkips') and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and state.count('WINGS', player) and state.count('LEFTCLAW', player) and (state.count('RIGHTCLAW', player) and (state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and state.count('Can_Bench', player)) or (state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player) and state._hk_option(player, 'DifficultSkips')) or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and state.count('Can_Bench', player)) and state._hk_option(player, 'DifficultSkips')))))) + fn("Grub-Collector_1", lambda state: state.count('Ruins2_11[right1]', player) and (state.count('LEFTCLAW', player) or ((state.count('WINGS', player) or state.count('RIGHTDASH', player)) and state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips'))) and state.count('Defeated_Collector', player)) + fn("Grub-Collector_2", lambda state: state.count('Ruins2_11[right1]', player) and (state.count('LEFTCLAW', player) or ((state.count('WINGS', player) or state.count('RIGHTDASH', player)) and state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips'))) and state.count('Defeated_Collector', player)) + fn("Grub-Collector_3", lambda state: state.count('Ruins2_11[right1]', player) and (state.count('LEFTCLAW', player) or ((state.count('WINGS', player) or state.count('RIGHTDASH', player)) and state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips'))) and state.count('Defeated_Collector', player)) + fn("Mimic_Grub-Deepnest_1", lambda state: state.count('Deepnest_36[left1]', player)) + fn("Mimic_Grub-Deepnest_2", lambda state: state.count('Deepnest_36[left1]', player)) + fn("Mimic_Grub-Deepnest_3", lambda state: state.count('Deepnest_36[left1]', player)) + fn("Mimic_Grub-Crystal_Peak", lambda state: state.count('Mines_16[top1]', player)) + fn("Crossroads_Map", lambda state: state.count('Crossroads_33', player)) + fn("Greenpath_Map", lambda state: state.count('Fungus1_06[left1]', player) or state.count('Fungus1_06[bot1]', player)) + fn("Fog_Canyon_Map", lambda state: (state.count('Fungus3_25[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or state.count('Fungus3_25[right1]', player)) and (state.count('LEFTCLAW', player) and state.count('LEFTDASH', player) and state._hk_option(player, 'EnemyPogos') or state.count('WINGS', player)) or (False and state.count('LEFTDASH', player) and state.count('LEFTCLAW', player))) + fn("Fungal_Wastes_Map", lambda state: state.count('Fungus2_18[top1]', player) or state.count('Fungus2_18[right1]', player) or (state.count('Fungus2_18[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) + fn("Deepnest_Map-Upper", lambda state: state.count('Deepnest_01b', player)) + fn("Deepnest_Map-Right", lambda state: (state.count('Fungus2_25[top1]', player) or state.count('Fungus2_25[top2]', player) or state.count('Fungus2_25[right1]', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) + fn("Ancient_Basin_Map", lambda state: state.count('Abyss_04[top1]', player) and (state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'PreciseMovement')) or ((state.count('Abyss_04[left1]', player) or state.count('Abyss_04[right1]', player) or state.count('Abyss_04[bot1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("Kingdom's_Edge_Map", lambda state: state.count('Deepnest_East_03', player)) + fn("City_of_Tears_Map", lambda state: state.count('Ruins1_31', player) or state.count('Ruins1_31[bot1]', player) or state.count('Ruins1_31[left1]', player)) + fn("Royal_Waterways_Map", lambda state: (state.count('Waterways_09[left1]', player) or state.count('Waterways_09[right1]', player)) and (state.count('LEFTCLAW', player) or ((state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or False) + fn("Howling_Cliffs_Map", lambda state: state.count('Cliffs_01', player) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player))) + fn("Crystal_Peak_Map", lambda state: state.count('Mines_30[right1]', player) or (state.count('RIGHTSUPERDASH', player) and state.count('Mines_30[left1]', player))) + fn("Queen's_Gardens_Map", lambda state: state.count('Fungus1_24[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Resting_Grounds_Map", lambda state: state.count('RestingGrounds_09[left1]', player) or (state.count('Resting_Grounds_Stag', player) and state.count('Can_Stag', player))) + fn("Dirtmouth_Stag", lambda state: state.count('Room_Town_Stag_Station[left1]', player) or state.count('Can_Stag', player)) + fn("Crossroads_Stag", lambda state: state.count('Crossroads_47[right1]', player) or (state.count('Crossroads_Stag', player) and state.count('Can_Stag', player))) + fn("Greenpath_Stag", lambda state: state.count('Fungus1_16_alt[right1]', player) or (state.count('Greenpath_Stag', player) and state.count('Can_Stag', player))) + fn("Queen's_Station_Stag", lambda state: state.count('Fungus2_02[right1]', player) or (state.count("Queen's_Station_Stag", player) and state.count('Can_Stag', player))) + fn("Queen's_Gardens_Stag", lambda state: state.count('Fungus3_40[top1]', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'ShadeSkips') or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) or state.count('Fungus3_40[right1]', player) or (state.count("Queen's_Gardens_Stag", player) and state.count('Can_Stag', player))) + fn("City_Storerooms_Stag", lambda state: state.count('Ruins1_29[left1]', player) or (state.count('City_Storerooms_Stag', player) and state.count('Can_Stag', player))) + fn("King's_Station_Stag", lambda state: state.count('Ruins2_08[left1]', player) or (state.count("King's_Station_Stag", player) and state.count('Can_Stag', player))) + fn("Resting_Grounds_Stag", lambda state: state.count('RestingGrounds_09[left1]', player) or (state.count('Resting_Grounds_Stag', player) and state.count('Can_Stag', player))) + fn("Distant_Village_Stag", lambda state: state.count('Deepnest_09[left1]', player) or (state.count('Distant_Village_Stag', player) and state.count('Can_Stag', player))) + fn("Hidden_Station_Stag", lambda state: state.count('Abyss_22[left1]', player) or (state.count('Hidden_Station_Stag', player) and state.count('Can_Stag', player))) + fn("Stag_Nest_Stag", lambda state: state.count('Cliffs_03[right1]', player) or (state.count('STAGS', player) > 8 and state.count('Can_Stag', player))) + fn("Lifeblood_Cocoon-King's_Pass", lambda state: state.count('Tutorial_01', player)) + fn("Lifeblood_Cocoon-Ancestral_Mound", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) + fn("Lifeblood_Cocoon-Greenpath", lambda state: state.count('Fungus1_32[bot1]', player) or state.count('Fungus1_32[top1]', player) or state.count('Fungus1_32[left1]', player)) + fn("Lifeblood_Cocoon-Fog_Canyon_West", lambda state: state.count('Fungus3_30[bot1]', player)) + fn("Lifeblood_Cocoon-Mantis_Village", lambda state: (state.count('Fungus2_15[top3]', player) or state.count('Fungus2_15[right1]', player) or state.count('Fungus2_15[left1]', player)) and (state.count('LEFTCLAW', player) and state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)))) + fn("Lifeblood_Cocoon-Failed_Tramway", lambda state: state.count('Deepnest_26', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and (state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'ShadeSkips'))))) + fn("Lifeblood_Cocoon-Galien", lambda state: state.count('Deepnest_40[right1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player)))) + fn("Lifeblood_Cocoon-Kingdom's_Edge", lambda state: state.count('Deepnest_East_15[left1]', player)) + fn("Grimmkin_Flame-City_Storerooms", lambda state: state.count('Ruins1_28', player) and state.count('GRIMMCHILD', player)) + fn("Grimmkin_Flame-Greenpath", lambda state: (state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[top1]', player) or state.count('Fungus1_10[right1]', player)) and state.count('GRIMMCHILD', player)) + fn("Grimmkin_Flame-Crystal_Peak", lambda state: ((state.count('Mines_10[left1]', player) or state.count('Mines_10[bot1]', player)) and (state.count('WINGS', player) and state.count('RIGHTDASH', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'ShadeSkips') and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and (state.count('MASKSHARDS', player) > 15))) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTSUPERDASH', player))) or (state.count('Mines_10[right1]', player) and (state.count('LEFTSUPERDASH', player) or (state.count('LEFTDASH', player) and state.count('WINGS', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))))) and state.count('GRIMMCHILD', player)) + fn("Grimmkin_Flame-King's_Pass", lambda state: state.count('Tutorial_01', player) and state.count('First_Grimmchild_Upgrade', player)) + fn("Grimmkin_Flame-Resting_Grounds", lambda state: (state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[right1]', player) or state.count('RestingGrounds_06[top1]', player)) and state.count('First_Grimmchild_Upgrade', player)) + fn("Grimmkin_Flame-Kingdom's_Edge", lambda state: state.count('Deepnest_East_03', player) and state.count('First_Grimmchild_Upgrade', player)) + fn("Grimmkin_Flame-Fungal_Core", lambda state: state.count('Fungus2_30[top1]', player) and state.count('Second_Grimmchild_Upgrade', player)) + fn("Grimmkin_Flame-Ancient_Basin", lambda state: (state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')))) and state.count('Second_Grimmchild_Upgrade', player)) + fn("Grimmkin_Flame-Hive", lambda state: (state.count('Hive_03[right1]', player) or (state.count('Hive_03[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))))) and state.count('Second_Grimmchild_Upgrade', player)) + fn("Grimmkin_Flame-Brumm", lambda state: state.count('Room_spider_small[left1]', player) and state.count('Second_Grimmchild_Upgrade', player)) + fn("Hunter's_Journal", lambda state: state.count('Fungus1_08[left1]', player)) + fn("Journal_Entry-Void_Tendrils", lambda state: state.count('Abyss_09[right3]', player)) + fn("Journal_Entry-Charged_Lumafly", lambda state: state.count('Fungus3_archive_02[top1]', player) and state.count('Defeated_Uumuu', player) and ((state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player) or state.count('ACID', player)) or (state._hk_option(player, 'AcidSkips') and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player)))) + fn("Journal_Entry-Goam", lambda state: state.count('Crossroads_52[left1]', player) and state.count('QUAKE', player)) + fn("Journal_Entry-Garpede", lambda state: state.count('Deepnest_44[top1]', player)) + fn("Journal_Entry-Seal_of_Binding", lambda state: state.count('White_Palace_20[bot1]', player) and state.count('Completed_Path_of_Pain', player)) + fn("Elevator_Pass", lambda state: state.count('Crossroads_49b[right1]', player)) + fn("Split_Mothwing_Cloak", lambda state: state.count('Fungus1_04[right1]', player) and state.count('Defeated_Hornet_1', player)) + fn("Left_Mantis_Claw", lambda state: state.count('Fungus2_14', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or state._hk_option(player, 'EnemyPogos'))) + fn("Right_Mantis_Claw", lambda state: state.count('Fungus2_14', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or state._hk_option(player, 'EnemyPogos'))) + fn("Split_Crystal_Heart", lambda state: state.count('Mines_31[left1]', player) and (state.count('RIGHTSUPERDASH', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) + fn("Leftslash", lambda state: state.count('Tutorial_01', player)) + fn("Rightslash", lambda state: state.count('Tutorial_01', player)) + fn("Upslash", lambda state: state.count('Tutorial_01', player)) + fn("Egg_Shop", lambda state: state.count('Room_Ouiji[left1]', player)) + fn("Geo_Rock-Broken_Elevator_1", lambda state: state.count('Abyss_01[right1]', player) or state.count('Abyss_01[left1]', player) or (state.count('Abyss_01', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) + fn("Geo_Rock-Broken_Elevator_2", lambda state: (state.count('Abyss_01[right1]', player) or state.count('Abyss_01[left1]', player) or (state.count('Abyss_01', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'SpikeTunnels'))) + fn("Geo_Rock-Broken_Elevator_3", lambda state: state.count('Abyss_01[right1]', player) or state.count('Abyss_01[left1]', player) or (state.count('Abyss_01', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) + fn("Geo_Rock-Broken_Bridge_Upper", lambda state: (state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) + fn("Geo_Rock-Broken_Bridge_Lower", lambda state: state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) + fn("Geo_Rock-Broken_Bridge_Lower_Dupe", lambda state: state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) + fn("Geo_Rock-Abyss_1", lambda state: state.count('Abyss_06_Core[top1]', player) and state.count('BRAND', player) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)) or ((state.count('Abyss_06_Core[left1]', player) or state.count('Abyss_06_Core[left3]', player) or state.count('Abyss_06_Core[right2]', player) or state.count('Abyss_06_Core[bot1]', player)) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('WINGS', player)))) + fn("Geo_Rock-Abyss_2", lambda state: state.count('Abyss_06_Core[top1]', player) and state.count('BRAND', player) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player)) or ((state.count('Abyss_06_Core[left1]', player) or state.count('Abyss_06_Core[left3]', player) or state.count('Abyss_06_Core[right2]', player) or state.count('Abyss_06_Core[bot1]', player)) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('WINGS', player)))) + fn("Geo_Rock-Abyss_3", lambda state: state.count('Abyss_06_Core[top1]', player) and state.count('BRAND', player) or ((state.count('Abyss_06_Core[left3]', player) or state.count('Abyss_06_Core[right2]', player) or state.count('Abyss_06_Core[bot1]', player)) and (state.count('LEFTCLAW', player) and (state._hk_option(player, 'PreciseMovement') or state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('WINGS', player))) or state.count('Abyss_06_Core[left1]', player)) + fn("Geo_Rock-Basin_Tunnel", lambda state: state.count('Abyss_18[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player)) or (state.count('Abyss_18[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)))) + fn("Geo_Rock-Basin_Grub", lambda state: state.count('Abyss_19', player) and state.count('WINGS', player)) + fn("Geo_Rock-Basin_Before_Broken_Vessel", lambda state: state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or state.count('Abyss_19[bot2]', player) or state.count('Abyss_19[right1]', player)) + fn("Geo_Rock-Cliffs_Main_1", lambda state: state.count('Cliffs_01[right1]', player) or (state.count('Cliffs_01[right2]', player) and (state.count('LEFTDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or ((state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Geo_Rock-Cliffs_Main_2", lambda state: state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player) or ((state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Geo_Rock-Cliffs_Main_3", lambda state: (state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player)) and (state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos') or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or ((state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Geo_Rock-Cliffs_Main_4", lambda state: state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player) or ((state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Geo_Rock-Below_Gorb_Dupe", lambda state: state.count('Cliffs_02', player)) + fn("Geo_Rock-Below_Gorb", lambda state: state.count('Cliffs_02', player)) + fn("Geo_Rock-Crossroads_Well", lambda state: state.count('Crossroads_01[left1]', player) or state.count('Crossroads_01[top1]', player) or state.count('Crossroads_01[right1]', player)) + fn("Geo_Rock-Crossroads_Center_Grub", lambda state: state.count('Crossroads_05[left1]', player) or state.count('Crossroads_05[right1]', player)) + fn("Geo_Rock-Crossroads_Root", lambda state: state.count('Crossroads_07', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Geo_Rock-Crossroads_Root_Dupe_1", lambda state: state.count('Crossroads_07', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Geo_Rock-Crossroads_Root_Dupe_2", lambda state: state.count('Crossroads_07', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Geo_Rock-Crossroads_Aspid_Arena", lambda state: state.count('Crossroads_08', player)) + fn("Geo_Rock-Crossroads_Aspid_Arena_Dupe_1", lambda state: state.count('Crossroads_08', player)) + fn("Geo_Rock-Crossroads_Aspid_Arena_Dupe_2", lambda state: state.count('Crossroads_08', player)) + fn("Geo_Rock-Crossroads_Aspid_Arena_Hidden", lambda state: state.count('Crossroads_08', player)) + fn("Geo_Rock-Crossroads_Above_False_Knight", lambda state: (state.count('Crossroads_10[left1]', player) or state.count('Crossroads_10[right1]', player)) and state.count('Defeated_False_Knight', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) + fn("Geo_Rock-Crossroads_Before_Acid_Grub", lambda state: state.count('Crossroads_12[left1]', player) or state.count('Crossroads_12[right1]', player)) + fn("Geo_Rock-Crossroads_Below_Goam_Mask_Shard", lambda state: state.count('Crossroads_13[left1]', player) or state.count('Crossroads_13[right1]', player)) + fn("Geo_Rock-Crossroads_After_Goam_Mask_Shard", lambda state: state.count('Crossroads_13[left1]', player) or state.count('Crossroads_13[right1]', player)) + fn("Geo_Rock-Crossroads_Above_Lever", lambda state: state.count('Crossroads_16[left1]', player) or state.count('Crossroads_16[right1]', player) or state.count('Crossroads_16[bot1]', player)) + fn("Geo_Rock-Crossroads_Before_Fungal", lambda state: state.count('Crossroads_18[right1]', player) or state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18[right2]', player)) + fn("Geo_Rock-Crossroads_Before_Fungal_Dupe_1", lambda state: state.count('Crossroads_18[right1]', player) or state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18[right2]', player)) + fn("Geo_Rock-Crossroads_Before_Fungal_Dupe_2", lambda state: state.count('Crossroads_18[right1]', player) or state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18[right2]', player)) + fn("Geo_Rock-Crossroads_Before_Shops", lambda state: state.count('Crossroads_19', player)) + fn("Geo_Rock-Crossroads_Before_Glowing_Womb", lambda state: state.count('Crossroads_21', player)) + fn("Geo_Rock-Crossroads_Above_Tram", lambda state: state.count('Crossroads_27', player)) + fn("Geo_Rock-Crossroads_Above_Mawlek", lambda state: state.count('Crossroads_36[right1]', player) or state.count('Crossroads_36[right2]', player)) + fn("Geo_Rock-Crossroads_Vessel_Fragment", lambda state: state.count('Crossroads_37[right1]', player)) + fn("Geo_Rock-Crossroads_Goam_Alcove", lambda state: state.count('Crossroads_42[left1]', player) or state.count('Crossroads_42[right1]', player)) + fn("Geo_Rock-Crossroads_Goam_Damage_Boost", lambda state: (state.count('Crossroads_42[left1]', player) or state.count('Crossroads_42[right1]', player)) and (state.count('MASKSHARDS', player) > 7 or (state.count('Lifeblood_Heart', player) or state.count('Lifeblood_Core', player) or state.count("Joni's_Blessing", player)))) + fn("Geo_Rock-Crossroads_Tram", lambda state: state.count('Crossroads_46[left1]', player) or (state.count('Crossroads_46b[right1]', player) and state.count('TRAM', player))) + fn("Geo_Rock-Crossroads_Goam_Journal", lambda state: state.count('Crossroads_52[left1]', player) and state.count('QUAKE', player)) + fn("Geo_Rock-Crossroads_Goam_Journal_Dupe", lambda state: state.count('Crossroads_52[left1]', player) and state.count('QUAKE', player)) + fn("Geo_Rock-Ancestral_Mound", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) + fn("Geo_Rock-Ancestral_Mound_Dupe", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) + fn("Geo_Rock-Ancestral_Mound_Tree", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and state.count('WINGS', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) + fn("Geo_Rock-Ancestral_Mound_Tree_Dupe", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and state.count('WINGS', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) + fn("Geo_Rock-Moss_Prophet", lambda state: state.count('Deepnest_01', player)) + fn("Geo_Rock-Moss_Prophet_Dupe", lambda state: state.count('Deepnest_01', player)) + fn("Geo_Rock-Deepnest_Below_Mimics", lambda state: state.count('Deepnest_02', player)) + fn("Geo_Rock-Deepnest_Below_Mimics_Dupe", lambda state: state.count('Deepnest_02', player)) + fn("Geo_Rock-Deepnest_Below_Spike_Grub", lambda state: state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('Deepnest_03[left1]', player)) or state.count('Deepnest_03[top1]', player))) + fn("Geo_Rock-Deepnest_Below_Spike_Grub_Dupe", lambda state: state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('Deepnest_03[left1]', player)) or state.count('Deepnest_03[top1]', player))) + fn("Geo_Rock-Deepnest_Spike_Grub_Right", lambda state: state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('Deepnest_03[left1]', player)) or state.count('Deepnest_03[top1]', player))) + fn("Geo_Rock-Deepnest_By_Mantis_Lords_Garpede_Pogo", lambda state: state.count('Deepnest_16[bot1]', player)) + fn("Geo_Rock-Deepnest_By_Mantis_Lords_Garpede_Pogo_Dupe", lambda state: state.count('Deepnest_16[bot1]', player)) + fn("Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_1", lambda state: state.count('Deepnest_16[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) + fn("Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_2", lambda state: state.count('Deepnest_16[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) + fn("Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_3", lambda state: state.count('Deepnest_16[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) + fn("Geo_Rock-Deepnest_Nosk_1", lambda state: state.count('Deepnest_31[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)) or (state.count('Deepnest_31[right2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Geo_Rock-Deepnest_Nosk_2", lambda state: state.count('Deepnest_31[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)) or (state.count('Deepnest_31[right2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Geo_Rock-Deepnest_Nosk_3", lambda state: state.count('Deepnest_31[right2]', player) or (state.count('Deepnest_31[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) + fn("Geo_Rock-Deepnest_Above_Galien", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_35[top1]', player) or (state.count('Deepnest_35', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) + fn("Geo_Rock-Deepnest_Galien_Spike", lambda state: state.count('Deepnest_35', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player)))) + fn("Geo_Rock-Deepnest_Garpede_1", lambda state: state.count('Deepnest_37', player)) + fn("Geo_Rock-Deepnest_Garpede_2", lambda state: state.count('Deepnest_37', player)) + fn("Geo_Rock-Dark_Deepnest_Above_Grub_1", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) or state.count('Deepnest_39[top1]', player) or (state.count('Deepnest_39[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player))))) + fn("Geo_Rock-Dark_Deepnest_Above_Grub_2", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) or state.count('Deepnest_39[top1]', player) or (state.count('Deepnest_39[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player))))) + fn("Geo_Rock-Dark_Deepnest_Bottom_Left", lambda state: state.count('Deepnest_39', player)) + fn("Geo_Rock-Above_Mask_Maker_1", lambda state: (state.count('Deepnest_43[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('Deepnest_43[left1]', player) or state.count('Deepnest_43[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Geo_Rock-Above_Mask_Maker_2", lambda state: (state.count('Deepnest_43[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('Deepnest_43[left1]', player) or state.count('Deepnest_43[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) + fn("Geo_Rock-Lower_Kingdom's_Edge_1", lambda state: (state.count('Deepnest_East_01[bot1]', player) or state.count('Deepnest_East_01[top1]', player) or state.count('Deepnest_East_01[right1]', player)) and (state.count('LEFTDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) + fn("Geo_Rock-Lower_Kingdom's_Edge_2", lambda state: (state.count('Deepnest_East_01[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or state.count('Deepnest_East_01[top1]', player) or state.count('Deepnest_East_01[right1]', player)) and (state.count('LEFTDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) + fn("Geo_Rock-Lower_Kingdom's_Edge_3", lambda state: state.count('Deepnest_East_02', player)) + fn("Geo_Rock-Lower_Kingdom's_Edge_Dive", lambda state: state.count('Deepnest_East_02', player) and state.count('QUAKE', player) or (state.count('Deepnest_East_02[bot2]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) + fn("Geo_Rock-Kingdom's_Edge_Below_Bardoon", lambda state: state.count('Deepnest_East_04', player)) + fn("Geo_Rock-Kingdom's_Edge_Oro_Far_Left", lambda state: (state.count('Deepnest_East_06[left1]', player) or state.count('Deepnest_East_06[top1]', player) or ((state.count('Deepnest_East_06[bot1]', player) or state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_06[right1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos')) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips')))) + fn("Geo_Rock-Kingdom's_Edge_Oro_Middle_Left", lambda state: state.count('Deepnest_East_06[top1]', player) or (state.count('Deepnest_East_06[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'BackgroundObjectPogos')))) or ((state.count('Deepnest_East_06[bot1]', player) or state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_06[right1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("Geo_Rock-Kingdom's_Edge_Above_Root", lambda state: state.count('Deepnest_East_07', player)) + fn("Geo_Rock-Kingdom's_Edge_Above_Tower", lambda state: state.count('Deepnest_East_07', player)) + fn("Geo_Rock-Kingdom's_Edge_Below_Colosseum", lambda state: (state.count('Deepnest_East_08[top1]', player) or (state.count('Deepnest_East_08[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player))) + fn("Geo_Rock-Kingdom's_Edge_Above_420_Geo_Rock", lambda state: state.count('Deepnest_East_17[left1]', player) and state.count('QUAKE', player)) + fn("Geo_Rock-Kingdom's_Edge_420_Geo_Rock", lambda state: state.count('Deepnest_East_17[left1]', player) and state.count('QUAKE', player)) + fn("Geo_Rock-Beast's_Den_Above_Trilobite", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) + fn("Geo_Rock-Beast's_Den_Above_Trilobite_Dupe", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) + fn("Geo_Rock-Beast's_Den_Below_Herrah", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) + fn("Geo_Rock-Beast's_Den_Below_Egg", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) + fn("Geo_Rock-Beast's_Den_Below_Egg_Dupe", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) + fn("Geo_Rock-Beast's_Den_Bottom", lambda state: state.count('Deepnest_Spider_Town[left1]', player)) + fn("Geo_Rock-Beast's_Den_Bottom_Dupe", lambda state: state.count('Deepnest_Spider_Town[left1]', player)) + fn("Geo_Rock-Beast's_Den_After_Herrah", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and (state.count('RIGHTSLASH', player) or ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or state.count('LEFTDASH', player) or state.count('Herrah', player) or ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) + fn("Geo_Rock-Greenpath_Entrance", lambda state: state.count('Fungus1_01[left1]', player) or state.count('Fungus1_01[right1]', player)) + fn("Geo_Rock-Greenpath_Waterfall", lambda state: state.count('Fungus1_01b[left1]', player) or state.count('Fungus1_01b[right1]', player)) + fn("Geo_Rock-Greenpath_Below_Skip_Squit", lambda state: state.count('Fungus1_02[left1]', player) or state.count('Fungus1_02[right1]', player) or state.count('Fungus1_02[right2]', player)) + fn("Geo_Rock-Greenpath_Skip_Squit", lambda state: state.count('Fungus1_02[left1]', player) or state.count('Fungus1_02[right1]', player) or state.count('Fungus1_02[right2]', player)) + fn("Geo_Rock-Greenpath_Second_Skip_Fool_Eater", lambda state: state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[right1]', player) or state.count('Fungus1_03[bot1]', player)) + fn("Geo_Rock-Greenpath_Second_Skip_Fool_Eater_Dupe", lambda state: state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[right1]', player) or state.count('Fungus1_03[bot1]', player)) + fn("Geo_Rock-Greenpath_Second_Skip_Lower", lambda state: state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[right1]', player) or state.count('Fungus1_03[bot1]', player)) + fn("Geo_Rock-Greenpath_Below_Hornet", lambda state: (state.count('Fungus1_04[left1]', player) or (state.count('Fungus1_04[right1]', player) and state.count('Defeated_Hornet_1', player))) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or ((state.count('RIGHTSUPERDASH', player) or state.count('ACID', player)) and state.count('RIGHTCLAW', player)))) + fn("Geo_Rock-Greenpath_Above_Thorns", lambda state: state.count('Fungus1_05[top1]', player) or state.count('Fungus1_05[right1]', player) or state.count('Fungus1_05[bot1]', player)) + fn("Geo_Rock-Greenpath_Hunter's_Journal", lambda state: state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[left1]', player) or state.count('Fungus1_07[right1]', player)) + fn("Geo_Rock-Greenpath_Acid_Bridge", lambda state: (state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[right1]', player) or state.count('Fungus1_10[top1]', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or state._hk_option(player, 'ShadeSkips'))) + fn("Geo_Rock-Greenpath_After_MMC_Hidden", lambda state: state.count('Fungus1_12[left1]', player) or state.count('Fungus1_12[right1]', player)) + fn("Geo_Rock-Greenpath_After_MMC", lambda state: state.count('Fungus1_12[left1]', player) or state.count('Fungus1_12[right1]', player)) + fn("Geo_Rock-Greenpath_After_MMC_Dupe", lambda state: state.count('Fungus1_12[left1]', player) or state.count('Fungus1_12[right1]', player)) + fn("Geo_Rock-Greenpath_Obbles_Fool_Eater", lambda state: state.count('Fungus1_19[left1]', player) or state.count('Fungus1_19[right1]', player) or state.count('Fungus1_19[bot1]', player)) + fn("Geo_Rock-Greenpath_Moss_Knights", lambda state: state.count('Fungus1_21', player)) + fn("Geo_Rock-Greenpath_Moss_Knights_Dupe_1", lambda state: state.count('Fungus1_21', player)) + fn("Geo_Rock-Greenpath_Moss_Knights_Dupe_2", lambda state: state.count('Fungus1_21', player)) + fn("Geo_Rock-Greenpath_Below_Stag", lambda state: state.count('Fungus1_22[top1]', player) or state.count('Fungus1_22[left1]', player)) + fn("Geo_Rock-Greenpath_Below_Stag_Fool_Eater", lambda state: state.count('Fungus1_22[top1]', player) or state.count('Fungus1_22[left1]', player) or state.count('Fungus1_22[bot1]', player)) + fn("Geo_Rock-Baldur_Shell_Top_Left", lambda state: state.count('Fungus1_28[left1]', player) or state.count('Fungus1_28[left2]', player)) + fn("Geo_Rock-Baldur_Shell_Alcove", lambda state: state.count('Fungus1_28[left1]', player) or state.count('Fungus1_28[left2]', player)) + fn("Geo_Rock-Greenpath_MMC", lambda state: state.count('Fungus1_29[left1]', player) or state.count('Fungus1_29[right1]', player)) + fn("Geo_Rock-Greenpath_Below_Toll", lambda state: state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_31[right1]', player)) + fn("Geo_Rock-Greenpath_Toll_Hidden", lambda state: state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_31[right1]', player)) + fn("Geo_Rock-Greenpath_Toll_Hidden_Dupe", lambda state: state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_31[right1]', player)) + fn("Geo_Rock-Fungal_Below_Shrumal_Ogres", lambda state: state.count('Fungus2_04', player)) + fn("Geo_Rock-Fungal_Above_Cloth", lambda state: state.count('Fungus2_08[left1]', player) or state.count('Fungus2_08[left2]', player) or state.count('Fungus2_08[right1]', player)) + fn("Geo_Rock-Fungal_After_Cloth", lambda state: (state.count('Fungus2_10[right1]', player) or state.count('Fungus2_10[right2]', player) or state.count('Fungus2_10[bot1]', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player))) + fn("Geo_Rock-Fungal_Below_Pilgrim's_Way", lambda state: state.count('Fungus2_11[top1]', player) or state.count('Fungus2_11[left1]', player) or state.count('Fungus2_11[left2]', player) or state.count('Fungus2_11[right1]', player)) + fn("Geo_Rock-Fungal_Below_Pilgrim's_Way_Dupe", lambda state: state.count('Fungus2_11[top1]', player) or state.count('Fungus2_11[left1]', player) or state.count('Fungus2_11[left2]', player) or state.count('Fungus2_11[right1]', player)) + fn("Geo_Rock-Mantis_Outskirts_Guarded", lambda state: state.count('Fungus2_13', player)) + fn("Geo_Rock-Mantis_Outskirts_Guarded_Dupe", lambda state: state.count('Fungus2_13', player)) + fn("Geo_Rock-Mantis_Outskirts_Alcove", lambda state: state.count('Fungus2_13', player) and (state.count('Fungus2_13[left3]', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('ACID', player) or state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'PreciseMovement'))) + fn("Geo_Rock-Mantis_Village_After_Lever", lambda state: state.count('Fungus2_14', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player))) or state._hk_option(player, 'EnemyPogos'))) + fn("Geo_Rock-Mantis_Village_Above_Claw", lambda state: state.count('Fungus2_14', player) and (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'EnemyPogos') or state.count('WINGS', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos'))))) + fn("Geo_Rock-Mantis_Village_Above_Claw_Dupe", lambda state: state.count('Fungus2_14', player) and (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'EnemyPogos') or state.count('WINGS', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos'))))) + fn("Geo_Rock-Mantis_Village_Below_Lore", lambda state: state.count('Fungus2_14[top1]', player) or (state.count('Fungus2_14', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')) and (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or state.count('LEFTCLAW', player)))) + fn("Geo_Rock-Mantis_Village_Above_Lever", lambda state: (state.count('Fungus2_14[top1]', player) or (state.count('Fungus2_14', player) and (state.count('LEFTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')) and (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or state.count('LEFTCLAW', player)))) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'BackgroundObjectPogos')) or state.count('WINGS', player) or state.count('RIGHTCLAW', player))) + fn("Geo_Rock-Above_Mantis_Lords_1", lambda state: (state.count('Fungus2_15[top3]', player) or state.count('Fungus2_15[right1]', player) or (state.count('Fungus2_15[left1]', player) and state.count('RIGHTCLAW', player))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player))) + fn("Geo_Rock-Above_Mantis_Lords_2", lambda state: state.count('Fungus2_15[top3]', player) or state.count('Fungus2_15[right1]', player) or (state.count('Fungus2_15[left1]', player) and state.count('RIGHTCLAW', player))) + fn("Geo_Rock-Fungal_After_Bouncy_Grub", lambda state: state.count('Fungus2_18[right1]', player)) + fn("Geo_Rock-Fungal_After_Bouncy_Grub_Dupe", lambda state: state.count('Fungus2_18[right1]', player)) + fn("Geo_Rock-Fungal_Bouncy_Grub_Lever", lambda state: state.count('Fungus2_18[right1]', player)) + fn("Geo_Rock-Fungal_After_Cornifer", lambda state: state.count('Fungus2_18[top1]', player) or state.count('Fungus2_18[right1]', player) or (state.count('Fungus2_18[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) + fn("Geo_Rock-Fungal_Above_City_Entrance", lambda state: state.count('Fungus2_21[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player)))) + fn("Geo_Rock-Deepnest_By_Mantis_Lords_1", lambda state: state.count('Fungus2_25[top1]', player) or ((state.count('Fungus2_25[top2]', player) or state.count('Fungus2_25[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Geo_Rock-Deepnest_By_Mantis_Lords_2", lambda state: state.count('Fungus2_25[top1]', player) or ((state.count('Fungus2_25[top2]', player) or state.count('Fungus2_25[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Geo_Rock-Deepnest_Lower_Cornifer", lambda state: (state.count('Fungus2_25[top1]', player) or state.count('Fungus2_25[top2]', player) or state.count('Fungus2_25[right1]', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) + fn("Geo_Rock-Fungal_Core_Entrance", lambda state: state.count('Fungus2_29[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state.count('Fungus2_29[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) + fn("Geo_Rock-Fungal_Core_Hidden", lambda state: state.count('Fungus2_30[top1]', player)) + fn("Geo_Rock-Fungal_Core_Above_Elder", lambda state: state.count('Fungus2_30[top1]', player) and state.count('WINGS', player)) + fn("Geo_Rock-Queen's_Gardens_Acid_Entrance", lambda state: state.count('Fungus3_03[right1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips')))) + fn("Geo_Rock-Queen's_Gardens_Below_Stag", lambda state: state.count('Fungus3_10[top1]', player)) + fn("Geo_Rock-Fog_Canyon_East", lambda state: state.count('Fungus3_26', player) and (state.count('MASKSHARDS', player) > 15 or state.count('FIREBALL', player))) + fn("Geo_Rock-Love_Key", lambda state: state.count('Fungus3_39[left1]', player)) + fn("Geo_Rock-Love_Key_Dupe", lambda state: state.count('Fungus3_39[left1]', player)) + fn("Geo_Rock-Queen's_Gardens_Above_Marmu", lambda state: state.count('Fungus3_48[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Fungus3_48[right2]', player) and (state.count('RIGHTSUPERDASH', player) or state.count('RIGHTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Geo_Rock-Pale_Lurker", lambda state: state.count('GG_Lurker[left1]', player) and state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player)))) + fn("Geo_Rock-Godhome_Pipeway", lambda state: state.count('GG_Pipeway[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('SWIM', player))) or state.count('WINGS', player)) or (state.count('GG_Pipeway[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('SWIM', player))) or state.count('WINGS', player)))) + fn("Geo_Rock-Hive_Entrance", lambda state: state.count('Hive_01[left1]', player) or state.count('Hive_01[right1]', player)) + fn("Geo_Rock-Hive_Outside_Bench", lambda state: state.count('Hive_02[left2]', player) or ((state.count('Hive_02[left1]', player) or state.count('Hive_02[left3]', player)) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) + fn("Geo_Rock-Hive_Below_Root", lambda state: state.count('Hive_02[left1]', player) or ((state.count('Hive_02[left2]', player) or state.count('Hive_02[left3]', player)) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) + fn("Geo_Rock-Hive_After_Root", lambda state: state.count('Hive_02[left1]', player) or ((state.count('Hive_02[left2]', player) or state.count('Hive_02[left3]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTCLAW', player))))) + fn("Geo_Rock-Hive_Below_Stash", lambda state: state.count('Hive_03[bot1]', player) or state.count('Hive_03[right1]', player)) + fn("Geo_Rock-Hive_Stash", lambda state: state.count('Hive_03[right1]', player) or (state.count('Hive_03[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))))) + fn("Geo_Rock-Hive_Stash_Dupe", lambda state: state.count('Hive_03[right1]', player) or (state.count('Hive_03[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))))) + fn("Geo_Rock-Hive_Below_Grub", lambda state: state.count('Hive_04[left1]', player) or (state.count('Hive_04[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTDASH', player) or state.count('WINGS', player)))) + fn("Geo_Rock-Hive_Above_Mask", lambda state: state.count('Hive_04[left1]', player) or (state.count('Hive_04[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTDASH', player) or state.count('WINGS', player)))) + fn("Geo_Rock-Crystal_Peak_Lower_Middle", lambda state: state.count('Mines_02', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('Mines_02[top2]', player))) + fn("Geo_Rock-Crystal_Peak_Lower_Conveyer_1", lambda state: state.count('Mines_02', player)) + fn("Geo_Rock-Crystal_Peak_Lower_Conveyer_2", lambda state: state.count('Mines_02', player)) + fn("Geo_Rock-Crystal_Peak_Before_Dark_Room", lambda state: state.count('Mines_04', player)) + fn("Geo_Rock-Crystal_Peak_Before_Dark_Room_Dupe", lambda state: state.count('Mines_04', player)) + fn("Geo_Rock-Crystal_Peak_Above_Spike_Grub", lambda state: state.count('Mines_05', player)) + fn("Geo_Rock-Crystal_Peak_Mimic_Grub", lambda state: state.count('Mines_16[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips')))) + fn("Geo_Rock-Crystal_Peak_Dive_Egg", lambda state: state.count('Mines_20', player) and state.count('QUAKE', player)) + fn("Geo_Rock-Crystal_Peak_Dive_Egg_Dupe", lambda state: state.count('Mines_20', player) and state.count('QUAKE', player)) + fn("Geo_Rock-Crystal_Peak_Conga_Line", lambda state: state.count('Mines_20', player)) + fn("Geo_Rock-Hallownest_Crown_Dive", lambda state: (state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or state.count('Mines_25[top1]', player)) and state.count('QUAKE', player)) + fn("Geo_Rock-Hallownest_Crown_Dive_Dupe", lambda state: (state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or state.count('Mines_25[top1]', player)) and state.count('QUAKE', player)) + fn("Geo_Rock-Hallownest_Crown_Hidden", lambda state: state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or (state.count('Mines_25[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('CYCLONE', player)))) + fn("Geo_Rock-Hallownest_Crown_Hidden_Dupe_1", lambda state: state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or (state.count('Mines_25[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('CYCLONE', player)))) + fn("Geo_Rock-Hallownest_Crown_Hidden_Dupe_2", lambda state: state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or (state.count('Mines_25[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('CYCLONE', player)))) + fn("Geo_Rock-Crystal_Peak_Before_Crystal_Heart", lambda state: state.count('Mines_31[left1]', player)) + fn("Geo_Rock-Crystal_Peak_Entrance", lambda state: (state.count('Mines_33[left1]', player) or state.count('Mines_33[right1]', player)) and state.count('LANTERN', player)) + fn("Geo_Rock-Crystal_Peak_Entrance_Dupe_1", lambda state: (state.count('Mines_33[left1]', player) or state.count('Mines_33[right1]', player)) and state.count('LANTERN', player)) + fn("Geo_Rock-Crystal_Peak_Entrance_Dupe_2", lambda state: (state.count('Mines_33[left1]', player) or state.count('Mines_33[right1]', player)) and state.count('LANTERN', player)) + fn("Geo_Rock-Crystal_Peak_Above_Crushers_Lower", lambda state: (state.count('Mines_37[top1]', player) or state.count('Mines_37[bot1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips')))) + fn("Geo_Rock-Crystal_Peak_Above_Crushers_Higher", lambda state: (state.count('Mines_37[top1]', player) or state.count('Mines_37[bot1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)))) + fn("Geo_Rock-Resting_Grounds_Catacombs_Grub", lambda state: state.count('RestingGrounds_10[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Geo_Rock-Resting_Grounds_Catacombs_Left_Dupe", lambda state: state.count('RestingGrounds_10[top1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Geo_Rock-Resting_Grounds_Catacombs_Left", lambda state: state.count('RestingGrounds_10[top1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) + fn("Geo_Rock-Overgrown_Mound", lambda state: state.count('Room_Fungus_Shaman[left1]', player)) + fn("Geo_Rock-Fluke_Hermit_Dupe", lambda state: state.count('Room_GG_Shortcut[top1]', player) or (state.count('Room_GG_Shortcut[left1]', player) and (state.count('RIGHTCLAW', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and state.count('SWIM', player))) or (state.count('LEFTCLAW', player) and state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))))) + fn("Geo_Rock-Fluke_Hermit", lambda state: state.count('Room_GG_Shortcut[top1]', player) or (state.count('Room_GG_Shortcut[left1]', player) and (state.count('RIGHTCLAW', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and state.count('SWIM', player))) or (state.count('LEFTCLAW', player) and state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))))) + fn("Geo_Rock-Pleasure_House", lambda state: state.count('Ruins_Elevator[left1]', player) or state.count('Ruins_Elevator[left2]', player)) + fn("Geo_Rock-City_of_Tears_Quirrel", lambda state: state.count('Ruins1_03', player)) + fn("Geo_Rock-City_of_Tears_Lemm", lambda state: state.count('Ruins1_05b', player)) + fn("Geo_Rock-City_of_Tears_Above_Lemm", lambda state: state.count('Ruins1_05c', player)) + fn("Geo_Rock-Soul_Sanctum", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player)) + fn("Geo_Rock-Watcher's_Spire", lambda state: (state.count('Ruins2_01[top1]', player) or state.count('Ruins2_01[left2]', player) or (state.count('Ruins2_01[bot1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state._hk_option(player, 'EnemyPogos')) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips'))))) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state.count('WINGS', player))) + fn("Geo_Rock-Above_King's_Station", lambda state: state.count('Ruins2_05[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or state.count('Ruins2_05[left1]', player) or state.count('Ruins2_05[top1]', player)) + fn("Geo_Rock-King's_Station", lambda state: (state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or state.count('Ruins2_06[right1]', player) or state.count('Ruins2_06[right2]', player)) and (state.count('RIGHTCLAW', player) or ((state.count('WINGS', player) or state.count('LEFTCLAW', player)) and state._hk_option(player, 'ShadeSkips')) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) or (state.count('Ruins2_06[left2]', player) and (state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))))) + fn("Geo_Rock-King's_Pass_Left", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) + fn("Geo_Rock-King's_Pass_Below_Fury", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) + fn("Geo_Rock-King's_Pass_Hidden", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) + fn("Geo_Rock-King's_Pass_Collapse", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) + fn("Geo_Rock-King's_Pass_Above_Fury", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) + fn("Geo_Rock-Waterways_Tuk", lambda state: state.count('Waterways_01', player) and (state.count('Waterways_01[right1]', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) + fn("Geo_Rock-Waterways_Tuk_Alcove", lambda state: state.count('Waterways_01', player)) + fn("Geo_Rock-Waterways_Left", lambda state: state.count('Waterways_04b[left1]', player) or (state.count('Waterways_04b[right1]', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('LEFTSUPERDASH', player)))) or (state.count('Waterways_04b[right2]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player))))) + fn("Geo_Rock-Waterways_East", lambda state: state.count('Waterways_07[top1]', player) or state.count('Waterways_07[door1]', player) or (state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) + fn("Geo_Rock-Waterways_Flukemarm", lambda state: state.count('Waterways_08[left2]', player) or ((state.count('Waterways_08[top1]', player) and (state._hk_option(player, 'EnemyPogos') or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)) or state.count('Waterways_08[left1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Boss_Geo-Massive_Moss_Charger", lambda state: state.count('Fungus1_29[left1]', player) or state.count('Fungus1_29[right1]', player)) + fn("Boss_Geo-Gorgeous_Husk", lambda state: state.count('Ruins_House_02[left1]', player)) + fn("Boss_Geo-Sanctum_Soul_Warrior", lambda state: state.count('Ruins1_23[top1]', player) or (state.count('Ruins1_23', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'BackgroundObjectPogos'))))) + fn("Boss_Geo-Elegant_Soul_Warrior", lambda state: (state.count('Ruins1_31b[right1]', player) or state.count('Ruins1_31b[right2]', player)) and state.count('Defeated_Elegant_Warrior', player)) + fn("Boss_Geo-Crystal_Guardian", lambda state: (state.count('Mines_18[left1]', player) or state.count('Mines_18[right1]', player) or state.count('Mines_18[top1]', player)) and state.count('Defeated_Crystal_Guardian', player)) + fn("Boss_Geo-Enraged_Guardian", lambda state: state.count('Mines_32[bot1]', player) and state.count('Defeated_Enraged_Guardian', player)) + fn("Boss_Geo-Gruz_Mother", lambda state: (state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or state.count('Crossroads_04[top1]', player)) and state.count('Defeated_Gruz_Mother', player)) + fn("Boss_Geo-Vengefly_King", lambda state: (state.count('Fungus1_20_v02[bot1]', player) or state.count('Fungus1_20_v02[bot2]', player) or state.count('Fungus1_20_v02[right1]', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state._hk_option(player, 'EnemyPogos') or state.count('FIREBALL', player) or state.count('QUAKE', player) or state.count('SCREAM', player) or state.count('WINGS', player) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) and state.count('Dash_Slash', player)))) + fn("Soul_Totem-Basin", lambda state: state.count('Abyss_04[top1]', player) or ((state.count('Abyss_04[left1]', player) or state.count('Abyss_04[right1]', player) or state.count('Abyss_04[bot1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) + fn("Soul_Totem-Cliffs_Main", lambda state: state.count('Cliffs_01', player)) + fn("Soul_Totem-Cliffs_Gorb", lambda state: state.count('Cliffs_02', player)) + fn("Soul_Totem-Cliffs_Joni's", lambda state: (state.count('Cliffs_04[left1]', player) or state.count('Cliffs_04[right1]', player)) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms'))) + fn("Soul_Totem-Crossroads_Goam_Journal", lambda state: state.count('Crossroads_18[right1]', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))))) or ((state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18[right2]', player)) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or state.count('LEFTCLAW', player)))) + fn("Soul_Totem-Crossroads_Shops", lambda state: state.count('Crossroads_19', player)) + fn("Soul_Totem-Crossroads_Mawlek_Upper", lambda state: state.count('Crossroads_25[left1]', player) or state.count('Crossroads_25[right1]', player)) + fn("Soul_Totem-Crossroads_Acid", lambda state: state.count('Crossroads_35[right1]', player) and (state._hk_option(player, 'AcidSkips') and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state.count('RIGHTDASH', player))) or state.count('ACID', player)) or state.count('Crossroads_35[bot1]', player)) + fn("Soul_Totem-Crossroads_Mawlek_Lower", lambda state: state.count('Crossroads_36[right1]', player) or state.count('Crossroads_36[right2]', player)) + fn("Soul_Totem-Crossroads_Myla", lambda state: state.count('Crossroads_45[left1]', player) or state.count('Crossroads_45[right1]', player)) + fn("Soul_Totem-Ancestral_Mound", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) + fn("Soul_Totem-Distant_Village", lambda state: state.count('Deepnest_10[door1]', player) or state.count('Deepnest_10[door2]', player) or state.count('Deepnest_10[right1]', player) or (state.count('Deepnest_10[right2]', player) and (state.count('LEFTDASH', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state._hk_option(player, 'PreciseMovement')) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))) + fn("Soul_Totem-Deepnest_Vessel", lambda state: state.count('Deepnest_38[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) + fn("Soul_Totem-Mask_Maker", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_42[left1]', player) or state.count('Deepnest_42[bot1]', player) or state.count('Deepnest_42[top1]', player))) + fn("Soul_Totem-Lower_Kingdom's_Edge_1", lambda state: state.count('Deepnest_East_01[top1]', player) or state.count('Deepnest_East_01[bot1]', player) or state.count('Deepnest_East_01[right1]', player)) + fn("Soul_Totem-Lower_Kingdom's_Edge_2", lambda state: (state.count('Deepnest_East_02[top1]', player) or state.count('Deepnest_East_02[bot1]', player) or state.count('Deepnest_East_02[right1]', player)) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state.count('ACID', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or state._hk_option(player, 'EnemyPogos'))) + fn("Soul_Totem-Upper_Kingdom's_Edge", lambda state: state.count('Deepnest_East_07', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Deepnest_East_07[left1]', player))) + fn("Soul_Totem-Kingdom's_Edge_Camp", lambda state: (state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[top1]', player) or state.count('Deepnest_East_11[right1]', player) or (state.count('Deepnest_East_11[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'DifficultSkips'))) + fn("Soul_Totem-Oro_Dive_2", lambda state: state.count('Deepnest_East_14[top2]', player) and state.count('QUAKE', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) + fn("Soul_Totem-Oro_Dive_1", lambda state: state.count('Deepnest_East_14[top2]', player)) + fn("Soul_Totem-Oro", lambda state: state.count('Deepnest_East_16[left1]', player) or state.count('Deepnest_East_16[bot1]', player)) + fn("Soul_Totem-420_Geo_Rock", lambda state: state.count('Deepnest_East_17[left1]', player) and state.count('QUAKE', player)) + fn("Soul_Totem-Beast's_Den", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))) + fn("Soul_Totem-Greenpath_Hunter's_Journal", lambda state: state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[right1]', player) or state.count('Fungus1_07[left1]', player)) + fn("Soul_Totem-Greenpath_MMC", lambda state: state.count('Fungus1_29[left1]', player) or state.count('Fungus1_29[right1]', player)) + fn("Soul_Totem-Greenpath_Below_Toll", lambda state: state.count('Fungus1_30', player)) + fn("Soul_Totem-Before_Pilgrim's_Way", lambda state: state.count('Fungus2_10[right1]', player) or state.count('Fungus2_10[right2]', player) or state.count('Fungus2_10[bot1]', player)) + fn("Soul_Totem-Pilgrim's_Way", lambda state: state.count('Fungus2_21[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('ACID', player)) or (state.count('Fungus2_21[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) and state.count('QUAKE', player))) + fn("Soul_Totem-Fungal_Core", lambda state: state.count('Fungus2_29[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state.count('Fungus2_29[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) + fn("Soul_Totem-Top_Left_Queen's_Gardens", lambda state: state.count('Fungus3_21[right1]', player) and (state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))) or (state.count('Fungus3_21[top1]', player) and state.count('RIGHTDASH', player))) + fn("Soul_Totem-Below_Marmu", lambda state: state.count('Fungus3_40[top1]', player) or (state.count('Fungus3_40[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)))) + fn("Soul_Totem-Upper_Crystal_Peak", lambda state: state.count('Mines_20', player) or state.count('Mines_20[left2]', player) or ((state.count('Mines_20[left3]', player) or state.count('Mines_20[bot1]', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) + fn("Soul_Totem-Hallownest_Crown", lambda state: (state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or state.count('Mines_25[top1]', player)) and state.count('QUAKE', player)) + fn("Soul_Totem-Outside_Crystallized_Mound", lambda state: state.count('Mines_28[door1]', player) or (state.count('Mines_28[left1]', player) and (state.count('WINGS', player) and state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and (state.count('WINGS', player) or state.count('RIGHTDASH', player)))))) + fn("Soul_Totem-Crystal_Heart_1", lambda state: state.count('Mines_31[left1]', player) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or (state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('RIGHTCLAW', player) and state.count('RIGHTSUPERDASH', player) and state.count('RIGHTDASH', player) and state.count('WINGS', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) + fn("Soul_Totem-Crystal_Heart_2", lambda state: state.count('Mines_31[left1]', player) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state.count('RIGHTCLAW', player) and state.count('RIGHTSUPERDASH', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('WINGS', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) + fn("Soul_Totem-Crystallized_Mound", lambda state: state.count('Mines_35[left1]', player) and state.count('QUAKE', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'PreciseMovement') and (state.count('RIGHTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or state.count('WINGS', player)) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state._hk_option(player, 'BackgroundObjectPogos'))) + fn("Soul_Totem-Resting_Grounds", lambda state: state.count('RestingGrounds_05', player)) + fn("Soul_Totem-Below_Xero", lambda state: state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[right1]', player) or state.count('RestingGrounds_06[top1]', player)) + fn("Soul_Totem-Sanctum_Below_Soul_Master", lambda state: state.count('Ruins1_24[left2]', player) or state.count('Ruins1_24[right2]', player)) + fn("Soul_Totem-Sanctum_Below_Chest", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) + fn("Soul_Totem-Sanctum_Above_Grub", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player)) + fn("Soul_Totem-Waterways_Entrance", lambda state: state.count('Waterways_01', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or ((state.count('Waterways_01[top1]', player) or state.count('Waterways_01[right1]', player)) and (state.count('LEFTDASH', player) or state._hk_option(player, 'EnemyPogos') or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or state._hk_option(player, 'ShadeSkips')))) + fn("Soul_Totem-Top_Left_Waterways", lambda state: state.count('Waterways_04b[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))) or (state.count('Waterways_04b[right1]', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('LEFTSUPERDASH', player))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips')))) or (state.count('Waterways_04b[right2]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) + fn("Soul_Totem-Waterways_East", lambda state: state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) + fn("Soul_Totem-Waterways_Flukemarm", lambda state: state.count('Waterways_08[top1]', player) and (state._hk_option(player, 'EnemyPogos') or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)) or state.count('Waterways_08[left1]', player) or state.count('Waterways_08[left2]', player)) + fn("Soul_Totem-White_Palace_Entrance", lambda state: state.count('White_Palace_02[left1]', player) and (state.count('LEFTCLAW', player) and state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player)))) + fn("Soul_Totem-White_Palace_Hub", lambda state: state.count('White_Palace_03_hub', player) and (state.count('LEFTDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('White_Palace_03_hub[left1]', player))) + fn("Soul_Totem-White_Palace_Left", lambda state: state.count('White_Palace_04[right2]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or state.count('White_Palace_04[top1]', player)) + fn("Soul_Totem-White_Palace_Final", lambda state: state.count('White_Palace_09[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and state.count('LEFTSUPERDASH', player)) + fn("Soul_Totem-White_Palace_Right", lambda state: state.count('White_Palace_15[right1]', player)) + fn("Soul_Totem-Path_of_Pain_Below_Lever", lambda state: state.count('White_Palace_17[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player)) + fn("Soul_Totem-Path_of_Pain_Left_of_Lever", lambda state: state.count('White_Palace_17[bot1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player)) + fn("Soul_Totem-Path_of_Pain_Entrance", lambda state: state.count('White_Palace_18[right1]', player) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('WINGS', player) or state.count('LEFTSUPERDASH', player)) or (state.count('White_Palace_18[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) + fn("Soul_Totem-Path_of_Pain_Second", lambda state: state.count('White_Palace_18[right1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state.count('White_Palace_18[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) + fn("Soul_Totem-Path_of_Pain_Hidden", lambda state: (state.count('White_Palace_19[left1]', player) or state.count('White_Palace_19[top1]', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) + fn("Soul_Totem-Path_of_Pain_Below_Thornskip", lambda state: state.count('White_Palace_19[left1]', player) or (state.count('White_Palace_19[top1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) + fn("Soul_Totem-Path_of_Pain_Final", lambda state: state.count('White_Palace_20[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) + fn("Soul_Totem-Pale_Lurker", lambda state: state.count('GG_Lurker[left1]', player)) + fn("Lore_Tablet-City_Entrance", lambda state: state.count('Ruins1_02[top1]', player) or (state.count('Ruins1_02[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Lore_Tablet-Pleasure_House", lambda state: state.count('Ruins_Elevator[left1]', player) or state.count('Ruins_Elevator[left2]', player)) + fn("Lore_Tablet-Sanctum_Entrance", lambda state: (state.count('Ruins1_23[left1]', player) or state.count('Ruins1_23[bot1]', player) or state.count('Ruins1_23[right2]', player)) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos')))) + fn("Lore_Tablet-Sanctum_Past_Soul_Master", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player)) + fn("Lore_Tablet-Watcher's_Spire", lambda state: state.count('Ruins2_Watcher_Room[bot1]', player)) + fn("Lore_Tablet-Archives_Upper", lambda state: state.count('Fungus3_archive_02[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) + fn("Lore_Tablet-Archives_Left", lambda state: state.count('Fungus3_archive_02[top1]', player) and state.count('Defeated_Uumuu', player) and ((state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player) or state.count('ACID', player)) or (state._hk_option(player, 'AcidSkips') and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player)))) + fn("Lore_Tablet-Archives_Right", lambda state: state.count('Fungus3_archive_02[top1]', player) and state.count('Defeated_Uumuu', player) and ((state.count('LEFTSUPERDASH', player) or state.count('RIGHTSUPERDASH', player)) or state.count('ACID', player) or (state._hk_option(player, 'AcidSkips') and state.count('LEFTDASH', player) and state.count('LEFTCLAW', player) and state.count('WINGS', player)))) + fn("Lore_Tablet-Pilgrim's_Way_1", lambda state: state.count('Crossroads_11_alt[right1]', player)) + fn("Lore_Tablet-Pilgrim's_Way_2", lambda state: state.count('Fungus2_21[left1]', player) or (((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) and state.count('QUAKE', player) and state.count('Fungus2_21[right1]', player))) + fn("Lore_Tablet-Mantis_Outskirts", lambda state: state.count('Fungus2_12[bot1]', player) or state.count('Fungus2_12[left1]', player)) + fn("Lore_Tablet-Mantis_Village", lambda state: state.count('Fungus2_14[top1]', player) or (state.count('Fungus2_14', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')) and (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or state.count('LEFTCLAW', player)))) + fn("Lore_Tablet-Greenpath_Upper_Hidden", lambda state: state.count('Fungus1_17[left1]', player) or state.count('Fungus1_17[right1]', player)) + fn("Lore_Tablet-Greenpath_Below_Toll", lambda state: state.count('Fungus1_30', player)) + fn("Lore_Tablet-Greenpath_Lifeblood", lambda state: state.count('Fungus1_32[bot1]', player) or state.count('Fungus1_32[top1]', player) or state.count('Fungus1_32[left1]', player)) + fn("Lore_Tablet-Greenpath_Stag", lambda state: state.count('Fungus1_21', player)) + fn("Lore_Tablet-Greenpath_QG", lambda state: state.count('Fungus1_13[left1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or (state.count('RIGHTDASH', player) and state.count('Dash_Slash', player))) or (state.count('Fungus1_13[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player))) or ((state.count('WINGS', player) or state.count('LEFTSUPERDASH', player)) and state._hk_option(player, 'DamageBoosts') and (state.count('MASKSHARDS', player) > 7))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or (state.count('LEFTDASH', player) and state.count('Dash_Slash', player)))) or (False and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or (state.count('LEFTDASH', player) and state.count('Dash_Slash', player))))) + fn("Lore_Tablet-Greenpath_Lower_Hidden", lambda state: state.count('Fungus1_19[bot1]', player) or state.count('Fungus1_19[left1]', player) or state.count('Fungus1_19[right1]', player)) + fn("Lore_Tablet-Dung_Defender", lambda state: state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state.count('Waterways_07[door1]', player) or state.count('Waterways_07[top1]', player) or state.count('Waterways_07[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) + fn("Lore_Tablet-Spore_Shroom", lambda state: (state.count('Fungus2_20[left1]', player) or state.count('Fungus2_20[right1]', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player)) and state.count('Spore_Shroom', player)) + fn("Lore_Tablet-Fungal_Wastes_Hidden", lambda state: (state.count('Fungus2_07[left1]', player) or state.count('Fungus2_07[right1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) and state.count('Spore_Shroom', player)) + fn("Lore_Tablet-Fungal_Wastes_Below_Shrumal_Ogres", lambda state: state.count('Fungus2_04', player) and state.count('Spore_Shroom', player)) + fn("Lore_Tablet-Fungal_Core", lambda state: state.count('Fungus2_30[top1]', player) and state.count('Spore_Shroom', player)) + fn("Lore_Tablet-Ancient_Basin", lambda state: state.count('Abyss_06_Core[top1]', player)) + fn("Lore_Tablet-King's_Pass_Focus", lambda state: state.count('Tutorial_01', player)) + fn("Lore_Tablet-King's_Pass_Fury", lambda state: state.count('Tutorial_01', player)) + fn("Lore_Tablet-King's_Pass_Exit", lambda state: state.count('Tutorial_01', player)) + fn("Lore_Tablet-World_Sense", lambda state: state.count('Room_temple[left1]', player) and state.count('Opened_Black_Egg_Temple', player)) + fn("Lore_Tablet-Howling_Cliffs", lambda state: state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player) or ((state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))))) + fn("Lore_Tablet-Kingdom's_Edge", lambda state: state.count('Deepnest_East_17[left1]', player) and state.count('QUAKE', player) and state.count('Spore_Shroom', player)) + fn("Lore_Tablet-Palace_Workshop", lambda state: state.count('White_Palace_08[right1]', player) or (state.count('White_Palace_08[left1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) + fn("Lore_Tablet-Palace_Throne", lambda state: state.count('White_Palace_09[right1]', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player))) + fn("Lore_Tablet-Path_of_Pain_Entrance", lambda state: state.count('White_Palace_18[right1]', player) or (state.count('White_Palace_18[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) + fn("Salubra_(Requires_Charms)", lambda state: state.count('Room_Charm_Shop[left1]', player)) + + # Connectors + \ No newline at end of file diff --git a/worlds/hk/Options.py b/worlds/hk/Options.py index 38e2e955d3..6c3a9bf548 100644 --- a/worlds/hk/Options.py +++ b/worlds/hk/Options.py @@ -1,5 +1,6 @@ import typing from .ExtractedData import logic_options, starts, pool_options +from .Rules import cost_terms from Options import Option, DefaultOnToggle, Toggle, Choice, Range, OptionDict, SpecialRange from .Charms import vanilla_costs, names as charm_names @@ -11,19 +12,6 @@ else: Random = typing.Any -class Disabled(Toggle): - def __init__(self, value: int): - super(Disabled, self).__init__(0) - - @classmethod - def from_text(cls, text: str) -> Toggle: - return cls(0) - - @classmethod - def from_any(cls, data: typing.Any): - return cls(0) - - locations = {"option_" + start: i for i, start in enumerate(starts)} # This way the dynamic start names are picked up by the MetaClass Choice belongs to StartLocation = type("StartLocation", (Choice,), {"__module__": __name__, "auto_display_name": False, **locations, @@ -36,6 +24,8 @@ option_docstrings = { "randomization.", "RandomizeSkills": "Allow for Skills, such as Mantis Claw or Shade Soul, to be randomized into the item pool. " "Also opens their locations for receiving randomized items.", + "RandomizeFocus": "Removes the ability to focus and randomizes it into the item pool.", + "RandomizeSwim": "Removes the ability to swim in water and randomizes it into the item pool.", "RandomizeCharms": "Allow for Charms to be randomized into the item pool and open their locations for " "randomization. Includes Charms sold in shops.", "RandomizeKeys": "Allow for Keys to be randomized into the item pool. Includes those sold in shops.", @@ -59,6 +49,8 @@ option_docstrings = { "RandomizeBossEssence": "Randomize boss essence drops, such as those for defeating Warrior Dreams, into the item " "pool and open their locations for randomization.", "RandomizeGrubs": "Randomize Grubs into the item pool and open their locations for randomization.", + "RandomizeMimics": "Randomize Mimic Grubs into the item pool and open their locations for randomization." + "Mimic Grubs are always placed in your own game.", "RandomizeMaps": "Randomize Maps into the item pool. This causes Cornifer to give you a message allowing you to see" " and buy an item that is randomized into that location as well.", "RandomizeStags": "Randomize Stag Stations unlocks into the item pool as well as placing randomized items " @@ -70,6 +62,7 @@ option_docstrings = { "RandomizeJournalEntries": "Randomize the Hunter's Journal as well as the findable journal entries into the item " "pool, and open their locations for randomization. Does not include journal entries " "gained by killing enemies.", + "RandomizeNail": "Removes the ability to swing the nail left, right and up, and shuffles these into the item pool.", "RandomizeGeoRocks": "Randomize Geo Rock rewards into the item pool and open their locations for randomization.", "RandomizeBossGeo": "Randomize boss Geo drops into the item pool and open those locations for randomization.", "RandomizeSoulTotems": "Randomize Soul Refill items into the item pool and open the Soul Totem locations for" @@ -110,12 +103,16 @@ default_on = { "RandomizeRelics" } -# not supported at this time -disabled = { - "RandomizeFocus", - "RandomizeSwim", - "RandomizeMimics", - "RandomizeNail", +shop_to_option = { + "Seer": "SeerRewardSlots", + "Grubfather": "GrubfatherRewardSlots", + "Sly": "SlyShopSlots", + "Sly_(Key)": "SlyKeyShopSlots", + "Iselda": "IseldaShopSlots", + "Salubra": "SalubraShopSlots", + "Leg_Eater": "LegEaterShopSlots", + "Salubra_(Requires_Charms)": "IseldaShopSlots", + "Egg_Shop": "EggShopSlots", } hollow_knight_randomize_options: typing.Dict[str, type(Option)] = {} @@ -124,9 +121,6 @@ for option_name, option_data in pool_options.items(): extra_data = {"__module__": __name__, "items": option_data[0], "locations": option_data[1]} if option_name in option_docstrings: extra_data["__doc__"] = option_docstrings[option_name] - if option_name in disabled: - extra_data["__doc__"] = "Disabled Option. Not implemented." - option = type(option_name, (Disabled,), extra_data) if option_name in default_on: option = type(option_name, (DefaultOnToggle,), extra_data) else: @@ -142,13 +136,36 @@ for option_name in logic_options.values(): if option_name in option_docstrings: extra_data["__doc__"] = option_docstrings[option_name] option = type(option_name, (Toggle,), extra_data) - if option_name in disabled: - extra_data["__doc__"] = "Disabled Option. Not implemented." - option = type(option_name, (Disabled,), extra_data) globals()[option.__name__] = option hollow_knight_logic_options[option.__name__] = option +class RandomizeElevatorPass(Toggle): + """Adds an Elevator Pass item to the item pool, which is then required to use the large elevators connecting + City of Tears to the Forgotten Crossroads and Resting Grounds.""" + display_name = "Randomize Elevator Pass" + default = False + + +class SplitMothwingCloak(Toggle): + """Splits the Mothwing Cloak into left- and right-only versions of the item. Randomly adds a second left or + right Mothwing cloak item which functions as the upgrade to Shade Cloak.""" + display_name = "Split Mothwing Cloak" + default = False + + +class SplitMantisClaw(Toggle): + """Splits the Mantis Claw into left- and right-only versions of the item.""" + display_name = "Split Mantis Claw" + default = False + + +class SplitCrystalHeart(Toggle): + """Splits the Crystal Heart into left- and right-only versions of the item.""" + display_name = "Split Crystal Heart" + default = False + + class MinimumGrubPrice(Range): """The minimum grub price in the range of prices that an item should cost from Grubfather.""" display_name = "Minimum Grub Price" @@ -178,7 +195,7 @@ class MaximumEssencePrice(MinimumEssencePrice): class MinimumEggPrice(Range): - """The minimum rancid egg price in the range of prices that an item should cost from Ijii. + """The minimum rancid egg price in the range of prices that an item should cost from Jiji. Only takes effect if the EggSlotShops option is greater than 0.""" display_name = "Minimum Egg Price" range_start = 1 @@ -187,7 +204,7 @@ class MinimumEggPrice(Range): class MaximumEggPrice(MinimumEggPrice): - """The maximum rancid egg price in the range of prices that an item should cost from Ijii. + """The maximum rancid egg price in the range of prices that an item should cost from Jiji. Only takes effect if the EggSlotShops option is greater than 0.""" display_name = "Maximum Egg Price" default = 10 @@ -208,6 +225,22 @@ class MaximumCharmPrice(MinimumCharmPrice): default = 20 +class MinimumGeoPrice(Range): + """The minimum geo price for items in geo shops.""" + display_name = "Minimum Geo Price" + range_start = 1 + range_end = 200 + default = 1 + + +class MaximumGeoPrice(Range): + """The maximum geo price for items in geo shops.""" + display_name = "Minimum Geo Price" + range_start = 1 + range_end = 2000 + default = 400 + + class RandomCharmCosts(SpecialRange): """Total Notch Cost of all Charms together. Vanilla sums to 90. This value is distributed among all charms in a random fashion. @@ -256,13 +289,91 @@ class PlandoCharmCosts(OptionDict): return charm_costs +class SlyShopSlots(Range): + """For each extra slot, add a location to the Sly Shop and a filler item to the item pool.""" + + display_name = "Sly Shop Slots" + default = 8 + range_end = 16 + + +class SlyKeyShopSlots(Range): + """For each extra slot, add a location to the Sly Shop (requiring Shopkeeper's Key) and a filler item to the item pool.""" + + display_name = "Sly Key Shop Slots" + default = 6 + range_end = 16 + + +class IseldaShopSlots(Range): + """For each extra slot, add a location to the Iselda Shop and a filler item to the item pool.""" + + display_name = "Iselda Shop Slots" + default = 2 + range_end = 16 + + +class SalubraShopSlots(Range): + """For each extra slot, add a location to the Salubra Shop, and a filler item to the item pool.""" + + display_name = "Salubra Shop Slots" + default = 5 + range_start = 0 + range_end = 16 + + +class SalubraCharmShopSlots(Range): + """For each extra slot, add a location to the Salubra Shop (requiring Charms), and a filler item to the item pool.""" + + display_name = "Salubra Charm Shop Slots" + default = 5 + range_end = 16 + + +class LegEaterShopSlots(Range): + """For each extra slot, add a location to the Leg Eater Shop and a filler item to the item pool.""" + + display_name = "Leg Eater Shop Slots" + default = 3 + range_end = 16 + + +class GrubfatherRewardSlots(Range): + """For each extra slot, add a location to the Grubfather and a filler item to the item pool.""" + + display_name = "Grubfather Reward Slots" + default = 7 + range_end = 16 + + +class SeerRewardSlots(Range): + """For each extra slot, add a location to the Seer and a filler item to the item pool.""" + + display_name = "Seer Reward Reward Slots" + default = 8 + range_end = 16 + + class EggShopSlots(Range): - """For each slot, add a location to the Egg Shop and a Geo drop to the item pool.""" + """For each slot, add a location to the Egg Shop and a filler item to the item pool.""" display_name = "Egg Shop Item Slots" range_end = 16 +class ExtraShopSlots(Range): + """For each extra slot, add a location to a randomly chosen shop a filler item to the item pool. + + The Egg Shop will be excluded from this list unless it has at least one item. + + Shops are capped at 16 items each. + """ + + display_name = "Additional Shop Slots" + default = 0 + range_end = 9 * 16 # Number of shops x max slots per shop. + + class Goal(Choice): """The goal required of you in order to complete your run in Archipelago.""" display_name = "Goal" @@ -315,19 +426,70 @@ class StartingGeo(Range): default = 0 +class CostSanity(Choice): + """If enabled, most locations with costs (like stag stations) will have randomly determined costs. + If set to shopsonly, CostSanity will only apply to shops (including Grubfather, Seer and Egg Shop). + If set to notshops, CostSanity will only apply to non-shops (e.g. Stag stations and Cornifer locations) + + These costs can be in Geo (except Grubfather, Seer and Eggshop), Grubs, Charms, Essence and/or Rancid Eggs + """ + option_off = 0 + alias_false = 0 + alias_no = 0 + option_on = 1 + alias_true = 1 + alias_yes = 1 + option_shopsonly = 2 + option_notshops = 3 + display_name = "Cost Sanity" + + +class CostSanityHybridChance(Range): + """The chance that a CostSanity cost will include two components instead of one, e.g. Grubs + Essence""" + range_end = 100 + default = 10 + + +cost_sanity_weights: typing.Dict[str, type(Option)] = {} +for term, cost in cost_terms.items(): + option_name = f"CostSanity{cost.option}Weight" + extra_data = { + "__module__": __name__, "range_end": 1000, + "__doc__": ( + f"The likelihood of Costsanity choosing a {cost.option} cost." + " Chosen as a sum of all weights from other types." + ), + "default": cost.weight + } + if cost == 'GEO': + extra_data["__doc__"] += " Geo costs will never be chosen for Grubfather, Seer, or Egg Shop." + + option = type(option_name, (Range,), extra_data) + globals()[option.__name__] = option + cost_sanity_weights[option.__name__] = option + + hollow_knight_options: typing.Dict[str, type(Option)] = { **hollow_knight_randomize_options, + RandomizeElevatorPass.__name__: RandomizeElevatorPass, **hollow_knight_logic_options, **{ option.__name__: option for option in ( StartLocation, Goal, WhitePalace, StartingGeo, DeathLink, + MinimumGeoPrice, MaximumGeoPrice, MinimumGrubPrice, MaximumGrubPrice, MinimumEssencePrice, MaximumEssencePrice, MinimumCharmPrice, MaximumCharmPrice, RandomCharmCosts, PlandoCharmCosts, MinimumEggPrice, MaximumEggPrice, EggShopSlots, - # Add your new options where it makes sense? + SlyShopSlots, SlyKeyShopSlots, IseldaShopSlots, + SalubraShopSlots, SalubraCharmShopSlots, + LegEaterShopSlots, GrubfatherRewardSlots, + SeerRewardSlots, ExtraShopSlots, + SplitCrystalHeart, SplitMothwingCloak, SplitMantisClaw, + CostSanity, CostSanityHybridChance, ) - } + }, + **cost_sanity_weights } diff --git a/worlds/hk/Rules.py b/worlds/hk/Rules.py index fbacc83aab..50c0572e47 100644 --- a/worlds/hk/Rules.py +++ b/worlds/hk/Rules.py @@ -1,1729 +1,52 @@ -# This module is written by Extractor.py, do not edit manually!. - from ..generic.Rules import set_rule, add_rule - -units = { - "Egg": "RANCIDEGGS", - "Grub": "GRUBS", - "Essence": "ESSENCE", - "Charm": "CHARMS", -} +from BaseClasses import MultiWorld +from ..AutoWorld import World +from .GeneratedRules import set_generated_rules +from typing import NamedTuple -def hk_set_rule(hk_world, location: str, rule): - count = hk_world.created_multi_locations[location] - if count: - locations = [f"{location}_{x}" for x in range(1, count+1)] - elif (location, hk_world.player) in hk_world.world._location_cache: - locations = [location] - else: - return - for location in locations: - set_rule(hk_world.world.get_location(location, hk_world.player), rule) +class CostTerm(NamedTuple): + term: str + option: str + singular: str + plural: str + weight: int # CostSanity + sort: int -def set_shop_prices(hk_world): +cost_terms = {x.term: x for x in ( + CostTerm("RANCIDEGGS", "Egg", "Rancid Egg", "Rancid Eggs", 1, 3), + CostTerm("GRUBS", "Grub", "Grub", "Grubs", 1, 2), + CostTerm("ESSENCE", "Essence", "Essence", "Essence", 1, 4), + CostTerm("CHARMS", "Charm", "Charm", "Charms", 1, 1), + CostTerm("GEO", "Geo", "Geo", "Geo", 8, 9999), +)} + + +def hk_set_rule(hk_world: World, location: str, rule): player = hk_world.player - for shop, unit in hk_world.shops.items(): - for i in range(1, 1 + hk_world.created_multi_locations[shop]): - loc = hk_world.world.get_location(f"{shop}_{i}", hk_world.player) - add_rule(loc, lambda state, unit=units[unit], cost=loc.cost: state.count(unit, player) >= cost) + + locations = hk_world.created_multi_locations.get(location) + if locations is None: + try: + locations = [hk_world.world.get_location(location, player)] + except KeyError: + return + + for location in locations: + set_rule(location, rule) -def set_rules(hk_world): +def set_rules(hk_world: World): player = hk_world.player world = hk_world.world + set_generated_rules(hk_world, hk_set_rule) - # Events - - hk_set_rule(hk_world, "Can_Replenish_Geo", lambda state: state.count('Tutorial_01', player) or state.count('Can_Replenish_Geo-Crossroads', player) or state.count('Fungus1_01[right1]', player) or state.count('Fungus2_03[left1]', player) or state.count('Fungus2_06[top1]', player) or state.count('Fungus2_12[left1]', player) or state.count('Fungus2_14[top1]', player) or (state.count('Deepnest_41[left1]', player) and (state._hk_option(player, 'DarkRooms') or state.count('LANTERN', player))) or state.count('Ruins1_01[left1]', player) or state.count('Ruins1_17[right1]', player) or state.count('Ruins2_04[right2]', player) or state.count('Ruins2_06[right2]', player) or state.count('Abyss_04[left1]', player) or state.count('Abyss_12[right1]', player) or state.count('Fungus3_40[top1]', player) or state.count('Mines_02[left1]', player) or state.count('Cliffs_02[left1]', player) or state.count('Deepnest_East_01[bot1]', player) or state.count('Deepnest_East_03[left1]', player) or state.count('Deepnest_East_07[left2]', player) or state.count('Deepnest_East_08[top1]', player) or state.count('Waterways_02[top1]', player) or state.count('Waterways_01[right1]', player) or state.count('Waterways_04b[left1]', player)) - hk_set_rule(hk_world, "Can_Replenish_Geo-Crossroads", lambda state: state.count('Crossroads_01[top1]', player) or state.count('Crossroads_03', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_05[left1]', player) or state.count('Crossroads_07', player) or state.count('Crossroads_08', player) or (state.count('Crossroads_11_alt[left1]', player) and (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) or (state.count('Crossroads_12[right1]', player) and (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) or state.count('Crossroads_13[left1]', player) or state.count('Crossroads_15[left1]', player) or state.count('Crossroads_16[left1]', player) or state.count('Crossroads_19', player) or state.count('Crossroads_21', player) or state.count('Crossroads_22[bot1]', player) or state.count('Crossroads_25[right1]', player) or state.count('Crossroads_27', player) or state.count('Crossroads_35[right1]', player) or state.count('Crossroads_37[right1]', player) or state.count('Crossroads_39[left1]', player) or state.count('Crossroads_40[left1]', player) or state.count('Crossroads_42[left1]', player) or state.count('Crossroads_48[left1]', player) or state.count('Crossroads_ShamanTemple[left1]', player)) - hk_set_rule(hk_world, "Rescued_Sly", lambda state: state.count('Room_ruinhouse[left1]', player)) - hk_set_rule(hk_world, "Rescued_Bretta", lambda state: state.count('Fungus2_23', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or state.count('WINGS', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15))) or ((state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "Rescued_Deepnest_Zote", lambda state: state.count('Deepnest_33[top1]', player)) - hk_set_rule(hk_world, "Defeated_Colosseum_Zote", lambda state: state.count('Room_Colosseum_01[left1]', player) and state.count('Rescued_Deepnest_Zote', player) and state.count('Defeated_Colosseum_1', player)) - hk_set_rule(hk_world, "Lever-Shade_Soul", lambda state: state.count('Ruins1_31b[right1]', player) or (state.count('Ruins1_31b[right2]', player) and state.count('Defeated_Elegant_Warrior', player))) - hk_set_rule(hk_world, "Completed_Path_of_Pain", lambda state: state.count('White_Palace_20[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTDASH', player) and state.count('WINGS', player) and state.count('Defeated_Path_of_Pain_Arena', player)) - hk_set_rule(hk_world, "Lever-Dung_Defender", lambda state: state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Dung_Defender', player) or state.count('Waterways_05[bot2]', player) or state.count('Waterways_05[right1]', player)) - hk_set_rule(hk_world, "Warp-Lifeblood_Core_to_Abyss", lambda state: state.count('Abyss_08[right1]', player) and (state._hk_option(player, 'PreciseMovement') or state.count('LEFTDASH', player))) - hk_set_rule(hk_world, "Warp-Palace_Grounds_to_White_Palace", lambda state: state.count('Abyss_05', player) and state.count('DREAMNAIL', player) > 2) - hk_set_rule(hk_world, "Warp-White_Palace_Entrance_to_Palace_Grounds", lambda state: state.count('White_Palace_11[door2]', player) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Warp-White_Palace_Atrium_to_Palace_Grounds", lambda state: state.count('White_Palace_03_hub[left1]', player) or (state.count('White_Palace_03_hub[top1]', player) and state.count('Palace_Atrium_Gates_Opened', player)) or (state.count('White_Palace_03_hub[right1]', player) and state.count('Palace_Atrium_Gates_Opened', player)) or (state.count('White_Palace_03_hub', player) and (state._hk_option(player, 'PreciseMovement') or state.count('LEFTCLAW', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Warp-Path_of_Pain_Complete", lambda state: state.count('White_Palace_20[bot1]', player) and state.count('Completed_Path_of_Pain', player)) - hk_set_rule(hk_world, "Upper_Tram", lambda state: state.count('TRAM', player) and (state.count('Crossroads_46[left1]', player) or state.count('Crossroads_46b[right1]', player))) - hk_set_rule(hk_world, "Lower_Tram", lambda state: state.count('TRAM', player) and (state.count('Abyss_03', player) or state.count('Abyss_03_b', player) or state.count('Abyss_03_c', player))) - hk_set_rule(hk_world, "Left_Elevator", lambda state: (state.count('Crossroads_49[left1]', player) or state.count('Crossroads_49[right1]', player) or state.count('Crossroads_49b[right1]', player)) and (state.count('Crossroads_49b[right1]', player) and False == 0 or state.count('Elevator_Pass', player))) - hk_set_rule(hk_world, "Right_Elevator", lambda state: (state.count('Ruins2_10[right1]', player) or state.count('Ruins2_10[left1]', player) or state.count('Ruins2_10b[right1]', player) or state.count('Ruins2_10b[right2]', player) or state.count('Ruins2_10b[left1]', player)) and (False == 0 or state.count('Elevator_Pass', player))) - hk_set_rule(hk_world, "Defeated_Gruz_Mother", lambda state: (state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[top1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player)) and True) - hk_set_rule(hk_world, "Defeated_False_Knight", lambda state: (state.count('Crossroads_10[right1]', player) or (state.count('Crossroads_10[left1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and True) - hk_set_rule(hk_world, "Defeated_Brooding_Mawlek", lambda state: (state.count('Crossroads_09[left1]', player) or state.count('Crossroads_09[right1]', player)) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Hornet_1", lambda state: state.count('Fungus1_04[right1]', player) and True) - hk_set_rule(hk_world, "Defeated_Mantis_Lords", lambda state: (state.count('Fungus2_15[top3]', player) or state.count('Fungus2_15[right1]', player) or state.count('Fungus2_15[left1]', player)) and True) - hk_set_rule(hk_world, "Defeated_Sanctum_Warrior", lambda state: (state.count('Ruins1_23', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'EnemyPogos'))) or state.count('Ruins1_23[top1]', player)) and True) - hk_set_rule(hk_world, "Defeated_Soul_Master", lambda state: state.count('Ruins1_24[right1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))) - hk_set_rule(hk_world, "Defeated_Elegant_Warrior", lambda state: (state.count('Ruins1_31b[right1]', player) or state.count('Ruins1_31b[right2]', player)) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Crystal_Guardian", lambda state: (state.count('Mines_18[left1]', player) or state.count('Mines_18[right1]', player) or state.count('Mines_18[top1]', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('Great_Slash', player) or state.count('Cyclone_Slash', player) or ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) and state.count('Dash_Slash', player))) and True) - hk_set_rule(hk_world, "Defeated_Enraged_Guardian", lambda state: state.count('Mines_32[bot1]', player) and state.count('Defeated_Crystal_Guardian', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Flukemarm", lambda state: state.count('Waterways_12[right1]', player) and (state.count('SWIM', player) or state.count('LEFTSUPERDASH', player)) and (state.count('FIREBALL', player) > 1 or state.count('SCREAM', player) > 1 or ((state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'RemoveSpellUpgrades') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) - hk_set_rule(hk_world, "Defeated_Dung_Defender", lambda state: state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Broken_Vessel", lambda state: state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Hornet_2", lambda state: state.count('Deepnest_East_Hornet[left1]', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Watcher_Knights", lambda state: (state.count('Ruins2_03[bot1]', player) or state.count('Ruins2_03[top1]', player)) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Uumuu", lambda state: state.count('Fungus3_archive_02[top1]', player) and ((state.count('LEFTSUPERDASH', player) or state.count('RIGHTSUPERDASH', player)) or state.count('ACID', player) or (state._hk_option(player, 'AcidSkips') and state.count('LEFTDASH', player) and state.count('LEFTCLAW', player) and state.count('WINGS', player))) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) - hk_set_rule(hk_world, "Defeated_Nosk", lambda state: state.count('Deepnest_32[left1]', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Traitor_Lord", lambda state: (state.count('Fungus3_23[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or (state.count('Fungus3_23[right1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Grimm", lambda state: state.count('Grimm_Main_Tent[left1]', player) and state.count('GRIMMCHILD', player) and (state.count('FLAMES', player) > 5) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Collector", lambda state: state.count('Ruins2_11[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Hive_Knight", lambda state: state.count('Hive_05[left1]', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Pale_Lurker", lambda state: state.count('GG_Lurker[left1]', player) and (state.count('SWIM', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player))) and state.count('RIGHTCLAW', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Elder_Hu", lambda state: state.count('Fungus2_32[left1]', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) - hk_set_rule(hk_world, "Defeated_Xero", lambda state: state.count('RestingGrounds_02', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) - hk_set_rule(hk_world, "Defeated_Gorb", lambda state: state.count('Cliffs_02', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) - hk_set_rule(hk_world, "Defeated_Marmu", lambda state: (state.count('Fungus3_40[top1]', player) or (state.count('Fungus3_40[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)))) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) - hk_set_rule(hk_world, "Defeated_No_Eyes", lambda state: (state.count('Fungus1_35[left1]', player) or state.count('Fungus1_35[right1]', player)) and state.count('LANTERN', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) - hk_set_rule(hk_world, "Defeated_Galien", lambda state: state.count('Deepnest_40[right1]', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) - hk_set_rule(hk_world, "Defeated_Markoth", lambda state: state.count('Deepnest_East_10[left1]', player) and state.count('DREAMNAIL', player) and (((state.count('FIREBALL', player) or state.count('SCREAM', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) - hk_set_rule(hk_world, "Defeated_Failed_Champion", lambda state: (state.count('Crossroads_10[left1]', player) or state.count('Crossroads_10[right1]', player)) and state.count('Defeated_False_Knight', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player))) and state.count('DREAMNAIL', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Soul_Tyrant", lambda state: (state.count('Ruins1_24[right1]', player) or state.count('Ruins1_24[left1]', player)) and state.count('Defeated_Soul_Master', player) and (state.count('LEFTCLAW', player) and state._hk_option(player, 'PreciseMovement') or state.count('WINGS', player) or state.count('LEFTDASH', player)) and state.count('DREAMNAIL', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Lost_Kin", lambda state: (state.count('Abyss_19[left1]', player) or state.count('Abyss_19[bot1]', player)) and state.count('Defeated_Broken_Vessel', player) and state.count('DREAMNAIL', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_White_Defender", lambda state: state.count('Waterways_15[top1]', player) and state.count('DREAMNAIL', player) and (state.count('DREAMER', player) > 2) and state.count('Defeated_Dung_Defender', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Grey_Prince_Zote", lambda state: state.count('Room_Bretta[right1]', player) and state.count('DREAMNAIL', player) and state.count('WINGS', player) and state.count('Rescued_Bretta', player) and state.count('Defeated_Colosseum_Zote', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Colosseum_1", lambda state: state.count('Room_Colosseum_01[left1]', player) and state.count('Can_Replenish_Geo', player) and ((state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))) and (state.count('FOCUS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Colosseum_2", lambda state: state.count('Room_Colosseum_01[left1]', player) and state.count('Can_Replenish_Geo', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')) and state.count('WINGS', player))) and ((state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))) and (state.count('FOCUS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Shrumal_Ogre_Arena", lambda state: (state.count('Fungus2_05[bot1]', player) or state.count('Fungus2_05[right1]', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))) - hk_set_rule(hk_world, "Defeated_King's_Station_Arena", lambda state: state.count('Ruins2_09[bot1]', player) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_West_Queen's_Gardens_Arena", lambda state: (state.count('Fungus3_10[bot1]', player) or (state.count('Fungus3_10[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player)))) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Defeated_Path_of_Pain_Arena", lambda state: state.count('White_Palace_20[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTDASH', player) and state.count('WINGS', player) and (state.count('SPELLS', player) > 1 and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state._hk_option(player, 'ProficientCombat')) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Can_Bench", lambda state: state.count('Town', player) or state.count('Room_nailmaster[left1]', player) or state.count('Crossroads_30[left1]', player) or state.count('Crossroads_47[right1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_ShamanTemple[left1]', player) or (state.count('Room_temple[left1]', player) and state.count('Opened_Black_Egg_Temple', player)) or state.count('Fungus1_01b[left1]', player) or state.count('Fungus1_37[left1]', player) or state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_16_alt[right1]', player) or state.count('Room_Slug_Shrine[left1]', player) or state.count('Fungus1_15[door1]', player) or (state.count('Fungus3_archive[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or state.count('Fungus2_02[right1]', player) or state.count('Fungus2_26[left1]', player) or state.count('Fungus2_13', player) or (state.count('Fungus2_31[left1]', player) and state.count('Defeated_Mantis_Lords', player)) or (state.count('Ruins1_02[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or state.count('Ruins1_02[top1]', player) or (state.count('Ruins1_31[left1]', player) and state.count('Can_Replenish_Geo', player)) or state.count('Ruins1_29[left1]', player) or state.count('Ruins1_18[right2]', player) or state.count('Ruins2_08[left1]', player) or state.count('Ruins_Bathhouse[door1]', player) or state.count('Deepnest_30[left1]', player) or state.count('Deepnest_14[left1]', player) or (state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) or (state.count('Waterways_02[top3]', player) and state.count('QUAKE', player)) or (state.count('Waterways_02', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips') and (state.count('WINGS', player) or state.count('RIGHTCLAW', player))))) or (state.count('Abyss_18[right1]', player) and state.count('Can_Replenish_Geo', player)) or state.count('Abyss_22[left1]', player) or state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_13[bot1]', player) or state.count('Room_Colosseum_02[top1]', player) or state.count('Room_Colosseum_02[top2]', player) or state.count('Hive_01[right2]', player) or state.count('Mines_29[left1]', player) or (state.count('Mines_18[left1]', player) and state.count('Defeated_Crystal_Guardian', player)) or state.count('RestingGrounds_09[left1]', player) or state.count('RestingGrounds_12[door_Mansion]', player) or (state.count('Fungus1_24[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Fungus3_50[right1]', player) and state.count('Can_Replenish_Geo', player)) or state.count('Fungus3_40[right1]', player) or state.count('White_Palace_01', player) or state.count('White_Palace_03_hub', player) or state.count('White_Palace_06[top1]', player) or state.count('Upper_Tram', player) or state.count('Lower_Tram', player)) - hk_set_rule(hk_world, "Can_Stag", lambda state: state.count('Room_Town_Stag_Station[left1]', player) or state.count('Crossroads_47[right1]', player) or state.count('Fungus1_16_alt[right1]', player) or state.count('Fungus2_02[right1]', player) or (state.count('Fungus3_40[top1]', player) or state.count('Fungus3_40[right1]', player)) or state.count('Ruins1_29[left1]', player) or state.count('Ruins2_08[left1]', player) or state.count('RestingGrounds_09[left1]', player) or state.count('Deepnest_09[left1]', player) or state.count('Abyss_22[left1]', player)) - hk_set_rule(hk_world, "Can_Repair_Fragile_Charms", lambda state: state.count('Fungus2_26[left1]', player) and state.count('Can_Replenish_Geo', player)) - hk_set_rule(hk_world, "First_Grimmchild_Upgrade", lambda state: state.count('Grimm_Main_Tent[left1]', player) and state.count('GRIMMCHILD', player) and (state.count('FLAMES', player) > 2)) - hk_set_rule(hk_world, "Second_Grimmchild_Upgrade", lambda state: state.count('Grimm_Main_Tent[left1]', player) and state.count('GRIMMCHILD', player) and (state.count('FLAMES', player) > 5) and state.count('Defeated_Grimm', player)) - hk_set_rule(hk_world, "Nightmare_Lantern_Lit", lambda state: state.count('Cliffs_06[left1]', player) and state.count('DREAMNAIL', player) or state.count('GRIMMCHILD', player)) - hk_set_rule(hk_world, "Opened_Waterways_Manhole", lambda state: state.count('Ruins1_05b', player) and state.count('SIMPLE', player) > 3) - hk_set_rule(hk_world, "Opened_Dung_Defender_Wall", lambda state: state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Dung_Defender', player) or state.count('Waterways_05[bot2]', player) or state.count('Waterways_05[right1]', player)) - hk_set_rule(hk_world, "Opened_Resting_Grounds_Floor", lambda state: (state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[right1]', player)) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or state.count('RestingGrounds_06[top1]', player)) - hk_set_rule(hk_world, "Opened_Resting_Grounds_Catacombs_Wall", lambda state: state.count('RestingGrounds_10', player)) - hk_set_rule(hk_world, "Opened_Pleasure_House_Wall", lambda state: state.count('Ruins_Bathhouse[door1]', player) or state.count('Ruins_Bathhouse[right1]', player)) - hk_set_rule(hk_world, "Opened_Gardens_Stag_Exit", lambda state: state.count('Fungus3_40[top1]', player) or state.count('Fungus3_40[right1]', player) or (state.count("Queen's_Gardens_Stag", player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Opened_Mawlek_Wall", lambda state: state.count('Crossroads_09[right1]', player) or (state.count('Crossroads_09[left1]', player) and state.count('Defeated_Brooding_Mawlek', player))) - hk_set_rule(hk_world, "Opened_Shaman_Pillar", lambda state: state.count('Crossroads_06[left1]', player) or state.count('Crossroads_06[door1]', player) or state.count('Crossroads_06[right1]', player) or state.count('DREAMER', player)) - hk_set_rule(hk_world, "Opened_Archives_Exit_Wall", lambda state: state.count('Fungus3_47', player)) - hk_set_rule(hk_world, "Opened_Tramway_Exit_Gate", lambda state: state.count('Deepnest_26b[right2]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Broke_Sanctum_Glass_Floor", lambda state: state.count('Ruins1_30', player) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Opened_Emilitia_Door", lambda state: state.count('Ruins_House_03[left1]', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('Ruins_House_03[left2]', player))) - hk_set_rule(hk_world, "Lit_Abyss_Lighthouse", lambda state: state.count('Abyss_Lighthouse_room[left1]', player)) - hk_set_rule(hk_world, "Opened_Lower_Kingdom's_Edge_Wall", lambda state: state.count('Deepnest_East_02', player)) - hk_set_rule(hk_world, "Opened_Glade_Door", lambda state: state.count('RestingGrounds_07[right1]', player) and state.count('ESSENCE', player) > 199) - hk_set_rule(hk_world, "Opened_Waterways_Exit", lambda state: (state.count('Waterways_09[left1]', player) or state.count('Waterways_09[right1]', player)) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))) or False) - hk_set_rule(hk_world, "Palace_Entrance_Lantern_Lit", lambda state: state.count('White_Palace_02[left1]', player) and state.count('LEFTCLAW', player) and state.count('WINGS', player) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Palace_Left_Lantern_Lit", lambda state: state.count('White_Palace_14[right1]', player)) - hk_set_rule(hk_world, "Palace_Right_Lantern_Lit", lambda state: state.count('White_Palace_15[right1]', player)) - hk_set_rule(hk_world, "Palace_Atrium_Gates_Opened", lambda state: state.count('Palace_Left_Lantern_Lit', player) and state.count('Palace_Right_Lantern_Lit', player)) - hk_set_rule(hk_world, "Opened_Black_Egg_Temple", lambda state: state.count('Room_temple[left1]', player) and state.count('DREAMER', player) > 2) - hk_set_rule(hk_world, "Tutorial_01", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) - hk_set_rule(hk_world, "Town", lambda state: state.count('Town[left1]', player) or state.count('Town[top1]', player) or state.count('Town[bot1]', player) or state.count('Town[right1]', player) or state.count('Town[door_station]', player) or state.count('Town[door_sly]', player) or state.count('Town[door_mapper]', player) or state.count('Town[door_bretta]', player) or state.count('Town[door_jiji]', player)) - hk_set_rule(hk_world, "Crossroads_03", lambda state: state.count('Crossroads_03[right1]', player) or state.count('Crossroads_03[right2]', player) or state.count('Crossroads_03[left1]', player) or state.count('Crossroads_03[left2]', player) or state.count('Crossroads_03[bot1]', player)) - hk_set_rule(hk_world, "Crossroads_07", lambda state: state.count('Crossroads_07[left1]', player) or state.count('Crossroads_07[left2]', player) or state.count('Crossroads_07[left3]', player) or state.count('Crossroads_07[right1]', player) or state.count('Crossroads_07[right2]', player) or state.count('Crossroads_07[bot1]', player)) - hk_set_rule(hk_world, "Crossroads_08", lambda state: state.count('Crossroads_08[left1]', player) or state.count('Crossroads_08[left2]', player) or state.count('Crossroads_08[right1]', player) or state.count('Crossroads_08[right2]', player)) - hk_set_rule(hk_world, "Crossroads_14", lambda state: state.count('Crossroads_14[left1]', player) or state.count('Crossroads_14[left2]', player) or state.count('Crossroads_14[right1]', player) or state.count('Crossroads_14[right2]', player)) - hk_set_rule(hk_world, "Crossroads_18", lambda state: state.count('Crossroads_18[right1]', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) or state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18[right2]', player)) - hk_set_rule(hk_world, "Crossroads_19", lambda state: state.count('Crossroads_19[left1]', player) or state.count('Crossroads_19[left2]', player) or state.count('Crossroads_19[right1]', player) or state.count('Crossroads_19[top1]', player)) - hk_set_rule(hk_world, "Crossroads_21", lambda state: state.count('Crossroads_21[left1]', player) or state.count('Crossroads_21[right1]', player) or state.count('Crossroads_21[top1]', player)) - hk_set_rule(hk_world, "Crossroads_27", lambda state: state.count('Crossroads_27[right1]', player) or state.count('Crossroads_27[bot1]', player) or state.count('Crossroads_27[left1]', player) or state.count('Crossroads_27[left2]', player)) - hk_set_rule(hk_world, "Crossroads_33", lambda state: state.count('Crossroads_33[top1]', player) or state.count('Crossroads_33[left1]', player) or state.count('Crossroads_33[left2]', player) or state.count('Crossroads_33[right1]', player) or state.count('Crossroads_33[right2]', player)) - hk_set_rule(hk_world, "Fungus1_11", lambda state: state.count('Fungus1_11[left1]', player) or state.count('Fungus1_11[top1]', player) or state.count('Fungus1_11[bot1]', player) or state.count('Fungus1_11[right1]', player) or state.count('Fungus1_11[right2]', player)) - hk_set_rule(hk_world, "Fungus1_21", lambda state: state.count('Fungus1_21[left1]', player) or state.count('Fungus1_21[top1]', player) or (state.count('Fungus1_21[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player))) or state.count('Fungus1_21[bot1]', player)) - hk_set_rule(hk_world, "Fungus1_30", lambda state: state.count('Fungus1_30[left1]', player) or state.count('Fungus1_30[right1]', player) or state.count('Fungus1_30[top1]', player) or state.count('Fungus1_30[top3]', player)) - hk_set_rule(hk_world, "Fungus3_01", lambda state: state.count('Fungus3_01[left1]', player) or state.count('Fungus3_01[top1]', player) or state.count('Fungus3_01[right1]', player) or state.count('Fungus3_01[right2]', player)) - hk_set_rule(hk_world, "Fungus3_02", lambda state: state.count('Fungus3_02[left1]', player) or state.count('Fungus3_02[left2]', player) or state.count('Fungus3_02[left3]', player) or state.count('Fungus3_02[right1]', player) or state.count('Fungus3_02[right2]', player)) - hk_set_rule(hk_world, "Fungus3_26", lambda state: state.count('Fungus3_26[top1]', player) or state.count('Fungus3_26[left1]', player) or state.count('Fungus3_26[left2]', player) or state.count('Fungus3_26[left3]', player) or state.count('Fungus3_26[right1]', player)) - hk_set_rule(hk_world, "Fungus3_44", lambda state: state.count('Fungus3_44[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or state.count('Fungus3_44[door1]', player) or state.count('Fungus3_44[right1]', player)) - hk_set_rule(hk_world, "Fungus3_47", lambda state: state.count('Fungus3_47[left1]', player) or state.count('Fungus3_47[door1]', player) or state.count('Fungus3_47[right1]', player)) - hk_set_rule(hk_world, "Fungus2_01", lambda state: state.count('Fungus2_01[left1]', player) or state.count('Fungus2_01[left2]', player) or state.count('Fungus2_01[left3]', player) or state.count('Fungus2_01[right1]', player)) - hk_set_rule(hk_world, "Fungus2_03", lambda state: state.count('Fungus2_03[left1]', player) or state.count('Fungus2_03[bot1]', player) or state.count('Fungus2_03[right1]', player)) - hk_set_rule(hk_world, "Fungus2_04", lambda state: state.count('Fungus2_04[left1]', player) or state.count('Fungus2_04[right1]', player) or state.count('Fungus2_04[right2]', player) or state.count('Fungus2_04[top1]', player)) - hk_set_rule(hk_world, "Fungus2_06", lambda state: state.count('Fungus2_06[left1]', player) or (state.count('Fungus2_06[left2]', player) and state.count('ACID', player)) or state.count('Fungus2_06[top1]', player) or state.count('Fungus2_06[right1]', player) or state.count('Fungus2_06[right2]', player)) - hk_set_rule(hk_world, "Fungus2_11", lambda state: state.count('Fungus2_11[top1]', player) or state.count('Fungus2_11[left1]', player) or state.count('Fungus2_11[left2]', player) or state.count('Fungus2_11[right1]', player)) - hk_set_rule(hk_world, "Fungus2_13", lambda state: state.count('Fungus2_13[top1]', player) or state.count('Fungus2_13[left2]', player) or (state.count('Fungus2_13[left3]', player) and (state.count('RIGHTDASH', player) or state.count('ACID', player) or state.count('WINGS', player) or state.count('LEFTCLAW', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or state._hk_option(player, 'ShadeSkips')))) - hk_set_rule(hk_world, "Fungus2_14", lambda state: state.count('Fungus2_14[top1]', player) or state.count('Fungus2_14[bot3]', player) or (state.count('Fungus2_14[right1]', player) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player) or state.count('ACID', player)))) - hk_set_rule(hk_world, "Fungus2_17", lambda state: state.count('Fungus2_17[right1]', player) or state.count('Fungus2_17[left1]', player) or state.count('Fungus2_17[bot1]', player)) - hk_set_rule(hk_world, "Fungus2_20", lambda state: state.count('Fungus2_20[left1]', player) or state.count('Fungus2_20[right1]', player)) - hk_set_rule(hk_world, "Fungus2_23", lambda state: state.count('Fungus2_23[right1]', player) or (state.count('Fungus2_23[right2]', player) and state.count('Opened_Waterways_Exit', player))) - hk_set_rule(hk_world, "Deepnest_01", lambda state: state.count('Deepnest_01[left1]', player) or state.count('Deepnest_01[bot1]', player) or state.count('Deepnest_01[right1]', player)) - hk_set_rule(hk_world, "Deepnest_01b", lambda state: state.count('Deepnest_01b[top1]', player) or state.count('Deepnest_01b[top2]', player) or state.count('Deepnest_01b[right1]', player) or (state.count('Deepnest_01b[right2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Deepnest_01b[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_02", lambda state: state.count('Deepnest_02[left1]', player) or state.count('Deepnest_02[left2]', player) or state.count('Deepnest_02[right1]', player)) - hk_set_rule(hk_world, "Deepnest_03", lambda state: state.count('Deepnest_03[right1]', player) or state.count('Deepnest_03[top1]', player) or state.count('Deepnest_03[left1]', player) or state.count('Deepnest_03[left2]', player)) - hk_set_rule(hk_world, "Deepnest_10", lambda state: state.count('Deepnest_10[right1]', player) or state.count('Deepnest_10[right2]', player) or state.count('Deepnest_10[door1]', player) or state.count('Deepnest_10[door2]', player)) - hk_set_rule(hk_world, "Deepnest_14", lambda state: state.count('Deepnest_14[left1]', player) or state.count('Deepnest_14[bot1]', player) or state.count('Deepnest_14[bot2]', player)) - hk_set_rule(hk_world, "Deepnest_17", lambda state: state.count('Deepnest_17[left1]', player) or state.count('Deepnest_17[right1]', player) or state.count('Deepnest_17[top1]', player) or state.count('Deepnest_17[bot1]', player)) - hk_set_rule(hk_world, "Deepnest_26", lambda state: state.count('Deepnest_26[right1]', player) or state.count('Deepnest_26[bot1]', player) or (state.count('Deepnest_26[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or state.count('WINGS', player)) and state.count('Opened_Tramway_Exit_Gate', player))) - hk_set_rule(hk_world, "Deepnest_34", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_34[left1]', player) or state.count('Deepnest_34[right1]', player) or state.count('Deepnest_34[top1]', player))) - hk_set_rule(hk_world, "Deepnest_35", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_35[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('Deepnest_35[left1]', player) or state.count('Deepnest_35[top1]', player))) - hk_set_rule(hk_world, "Deepnest_37", lambda state: state.count('Deepnest_37[left1]', player) or state.count('Deepnest_37[top1]', player) or state.count('Deepnest_37[right1]', player) or state.count('Deepnest_37[bot1]', player)) - hk_set_rule(hk_world, "Deepnest_39", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39[right1]', player) or state.count('Deepnest_39[door1]', player) or state.count('Deepnest_39[top1]', player) or state.count('Deepnest_39[left1]', player))) - hk_set_rule(hk_world, "Deepnest_41", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_41[left1]', player) and (state.count('RIGHTCLAW', player) or ((state.count('LEFTCLAW', player) or state.count('WINGS', player)) and state._hk_option(player, 'EnemyPogos'))) or (state.count('Deepnest_41[left2]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) or (state.count('Deepnest_41[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))))) - hk_set_rule(hk_world, "Deepnest_42", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_42[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('Deepnest_42[left1]', player) or state.count('Deepnest_42[top1]', player))) - hk_set_rule(hk_world, "Deepnest_East_02", lambda state: state.count('Deepnest_East_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) or state.count('Deepnest_East_02[top1]', player) or state.count('Deepnest_East_02[right1]', player)) - hk_set_rule(hk_world, "Deepnest_East_03", lambda state: state.count('Deepnest_East_03[left1]', player) or state.count('Deepnest_East_03[left2]', player) or state.count('Deepnest_East_03[top1]', player) or state.count('Deepnest_East_03[right1]', player) or state.count('Deepnest_East_03[right2]', player) or state.count('Deepnest_East_03[top2]', player)) - hk_set_rule(hk_world, "Deepnest_East_04", lambda state: state.count('Deepnest_East_04[left1]', player) and state.count('ACID', player) or state.count('Deepnest_East_04[left2]', player) or state.count('Deepnest_East_04[right2]', player) or (state.count('Deepnest_East_04[right1]', player) and (state.count('ACID', player) or state.count('LEFTDASH', player) or state.count('WINGS', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or (state.count('MASKSHARDS', player) > 7)))) - hk_set_rule(hk_world, "Deepnest_East_07", lambda state: state.count('Deepnest_East_07[right1]', player) or state.count('Deepnest_East_07[left1]', player) or state.count('Deepnest_East_07[left2]', player)) - hk_set_rule(hk_world, "Deepnest_East_11", lambda state: state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[bot1]', player) or (state.count('Deepnest_East_11[top1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or state.count('FIREBALL', player) or state.count('QUAKE', player))) or state.count('Deepnest_East_11[right1]', player)) - hk_set_rule(hk_world, "Deepnest_East_18", lambda state: state.count('Deepnest_East_18[top1]', player) or state.count('Deepnest_East_18[bot1]', player) or (state.count('Deepnest_East_18[right2]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)))) - hk_set_rule(hk_world, "Hive_03_c", lambda state: state.count('Hive_03_c[left1]', player) or state.count('Hive_03_c[top1]', player) or state.count('Hive_03_c[right2]', player) or state.count('Hive_03_c[right3]', player)) - hk_set_rule(hk_world, "Abyss_03", lambda state: state.count('Abyss_03[top1]', player) or (state.count('Abyss_03[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) or state.count('Abyss_03[bot2]', player)) - hk_set_rule(hk_world, "Abyss_03_b", lambda state: state.count('Abyss_03_b[left1]', player)) - hk_set_rule(hk_world, "Abyss_03_c", lambda state: state.count('Abyss_03_c[top1]', player) or state.count('Abyss_03_c[right1]', player)) - hk_set_rule(hk_world, "Abyss_04", lambda state: state.count('Abyss_04[top1]', player) or state.count('Abyss_04[right1]', player) or state.count('Abyss_04[bot1]', player) or state.count('Abyss_04[left1]', player)) - hk_set_rule(hk_world, "Abyss_06_Core", lambda state: state.count('Abyss_06_Core[top1]', player) and state.count('BRAND', player) or state.count('Abyss_06_Core[left1]', player) or state.count('Abyss_06_Core[left3]', player) or state.count('Abyss_06_Core[bot1]', player) or state.count('Abyss_06_Core[right2]', player)) - hk_set_rule(hk_world, "Abyss_09", lambda state: state.count('Abyss_09[left1]', player) and (state.count('RIGHTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or (state.count('SWIM', player) and state.count('WHITEFRAGMENT', player) > 2)) or state.count('WINGS', player)) or (state.count('Abyss_09[right1]', player) and (state.count('Lit_Abyss_Lighthouse', player) or state.count('WHITEFRAGMENT', player) > 2) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player))) or state.count('Abyss_09[right2]', player)) - hk_set_rule(hk_world, "Abyss_19", lambda state: state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or state.count('Abyss_19[right1]', player)) - hk_set_rule(hk_world, "Abyss_01", lambda state: state.count('Abyss_01[left1]', player) or state.count('Abyss_01[right1]', player) or (state.count('Abyss_01[left3]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player)))) or (state.count('Abyss_01[left2]', player) and (state._hk_option(player, 'SpikeTunnels') and state.count('RIGHTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or state.count('RIGHTSUPERDASH', player))) or (state.count('Abyss_01[right2]', player) and (state._hk_option(player, 'SpikeTunnels') and state.count('LEFTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or state.count('LEFTSUPERDASH', player)))) - hk_set_rule(hk_world, "Waterways_01", lambda state: state.count('Waterways_01[top1]', player) or state.count('Waterways_01[right1]', player) or state.count('Waterways_01[bot1]', player) or state.count('Waterways_01[left1]', player)) - hk_set_rule(hk_world, "Waterways_02", lambda state: state.count('Waterways_02[top1]', player) or state.count('Waterways_02[top2]', player) or (state.count('Waterways_02[top3]', player) and state.count('QUAKE', player)) or state.count('Waterways_02[bot1]', player) or state.count('Waterways_02[bot2]', player)) - hk_set_rule(hk_world, "Waterways_04", lambda state: state.count('Waterways_04[right1]', player) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or state.count('Waterways_04[left2]', player)) - hk_set_rule(hk_world, "Waterways_04b", lambda state: state.count('Waterways_04b[right1]', player) or state.count('Waterways_04b[right2]', player) or state.count('Waterways_04b[left1]', player)) - hk_set_rule(hk_world, "Waterways_07", lambda state: state.count('Waterways_07[left1]', player) and (state.count('ACID', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTSUPERDASH', player)) or (state.count('WINGS', player) and state.count('RIGHTDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or (state.count('Waterways_07[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Waterways_07[right2]', player) and state.count('ACID', player)) or state.count('Waterways_07[door1]', player) or state.count('Waterways_07[top1]', player)) - hk_set_rule(hk_world, "Ruins1_03", lambda state: state.count('Ruins1_03[top1]', player) or state.count('Ruins1_03[left1]', player) or state.count('Ruins1_03[right1]', player) or state.count('Ruins1_03[right2]', player)) - hk_set_rule(hk_world, "Ruins1_05b", lambda state: state.count('Ruins1_05b[top1]', player) or state.count('Ruins1_05b[right1]', player) or state.count('Ruins1_05b[left1]', player) or state.count('Ruins1_05b[bot1]', player)) - hk_set_rule(hk_world, "Ruins1_05c", lambda state: state.count('Ruins1_05c[bot1]', player) or state.count('Ruins1_05c[left2]', player) or state.count('Ruins1_05c[top1]', player) or state.count('Ruins1_05c[top2]', player) or state.count('Ruins1_05c[top3]', player)) - hk_set_rule(hk_world, "Ruins1_05", lambda state: state.count('Ruins1_05[bot3]', player) or state.count('Ruins1_05[right1]', player) or state.count('Ruins1_05[right2]', player) or state.count('Ruins1_05[top1]', player)) - hk_set_rule(hk_world, "Ruins1_23", lambda state: state.count('Ruins1_23[right2]', player) or state.count('Ruins1_23[left1]', player) or state.count('Ruins1_23[bot1]', player)) - hk_set_rule(hk_world, "Ruins1_28", lambda state: state.count('Ruins1_28[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or state._hk_option(player, 'BackgroundObjectPogos') or (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips')))) or state.count('Ruins1_28[bot1]', player) or state.count('Ruins1_28[right1]', player)) - hk_set_rule(hk_world, "Ruins1_30", lambda state: state.count('Ruins1_30[left1]', player) or (state.count('Ruins1_30[left2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('QUAKE', player)) or state.count('Ruins1_30[bot1]', player) or state.count('Ruins1_30[right1]', player)) - hk_set_rule(hk_world, "Ruins1_31", lambda state: state.count('Ruins1_31[right1]', player) or state.count('Ruins1_31[left2]', player) or state.count('Ruins1_31[left3]', player)) - hk_set_rule(hk_world, "Ruins2_01", lambda state: state.count('Ruins2_01[top1]', player) or state.count('Ruins2_01[bot1]', player) or state.count('Ruins2_01[left2]', player)) - hk_set_rule(hk_world, "Ruins2_01_b", lambda state: state.count('Ruins2_01_b[top1]', player) or state.count('Ruins2_01_b[left1]', player) or state.count('Ruins2_01_b[right1]', player)) - hk_set_rule(hk_world, "Ruins2_03b", lambda state: state.count('Ruins2_03b[top1]', player) or state.count('Ruins2_03b[top2]', player) or state.count('Ruins2_03b[left1]', player) or state.count('Ruins2_03b[bot1]', player)) - hk_set_rule(hk_world, "Ruins2_04", lambda state: state.count('Ruins2_04[left1]', player) or state.count('Ruins2_04[left2]', player) or state.count('Ruins2_04[right1]', player) or state.count('Ruins2_04[right2]', player) or state.count('Ruins2_04[door_Ruin_House_01]', player) or state.count('Ruins2_04[door_Ruin_House_02]', player) or state.count('Ruins2_04[door_Ruin_House_03]', player) or state.count('Ruins2_04[door_Ruin_Elevator]', player)) - hk_set_rule(hk_world, "Ruins2_10", lambda state: state.count('Ruins2_10[right1]', player) or state.count('Ruins2_10[left1]', player) or state.count('Right_Elevator', player)) - hk_set_rule(hk_world, "RestingGrounds_02", lambda state: state.count('RestingGrounds_02[top1]', player) or state.count('RestingGrounds_02[left1]', player) or state.count('RestingGrounds_02[bot1]', player) or state.count('RestingGrounds_02[right1]', player)) - hk_set_rule(hk_world, "RestingGrounds_05", lambda state: state.count('RestingGrounds_05[left1]', player) or state.count('RestingGrounds_05[left2]', player) or state.count('RestingGrounds_05[left3]', player) or state.count('RestingGrounds_05[right1]', player) or state.count('RestingGrounds_05[right2]', player) or state.count('RestingGrounds_05[bot1]', player)) - hk_set_rule(hk_world, "RestingGrounds_10", lambda state: state.count('RestingGrounds_10[left1]', player) or state.count('RestingGrounds_10[top1]', player) or state.count('RestingGrounds_10[top2]', player)) - hk_set_rule(hk_world, "Mines_02", lambda state: state.count('Mines_02[top1]', player) or state.count('Mines_02[top2]', player) or state.count('Mines_02[left1]', player) or state.count('Mines_02[right1]', player)) - hk_set_rule(hk_world, "Mines_03", lambda state: state.count('Mines_03[right1]', player) or state.count('Mines_03[top1]', player) or state.count('Mines_03[bot1]', player)) - hk_set_rule(hk_world, "Mines_04", lambda state: state.count('Mines_04[left1]', player) or state.count('Mines_04[left2]', player) or (state.count('Mines_04[left3]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos'))))) or state.count('Mines_04[right1]', player) or state.count('Mines_04[top1]', player)) - hk_set_rule(hk_world, "Mines_05", lambda state: state.count('Mines_05[right1]', player) or state.count('Mines_05[top1]', player) or state.count('Mines_05[bot1]', player) or state.count('Mines_05[left1]', player) or state.count('Mines_05[left2]', player)) - hk_set_rule(hk_world, "Mines_10", lambda state: state.count('Mines_10[left1]', player) and (state.count('RIGHTDASH', player) and state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)) or (state.count('Mines_10[bot1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) or (state.count('Mines_10[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTSUPERDASH', player))) - hk_set_rule(hk_world, "Mines_11", lambda state: state.count('Mines_11[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or state.count('Mines_11[right1]', player) or state.count('Mines_11[top1]', player)) - hk_set_rule(hk_world, "Mines_18", lambda state: state.count('Mines_18[left1]', player) or state.count('Mines_18[right1]', player) or state.count('Mines_18[top1]', player)) - hk_set_rule(hk_world, "Mines_20", lambda state: state.count('Mines_20[left1]', player) or state.count('Mines_20[right1]', player) or (state.count('Mines_20[right2]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) - hk_set_rule(hk_world, "Mines_23", lambda state: (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player))) or state.count('Mines_23[right1]', player)) and (state.count('Mines_23[left1]', player) or state.count('Mines_23[top1]', player) or state.count('Mines_23[right1]', player) or state.count('Mines_23[right2]', player))) - hk_set_rule(hk_world, "Fungus3_04", lambda state: state.count('Fungus3_04[left1]', player) or state.count('Fungus3_04[left2]', player) or state.count('Fungus3_04[right1]', player) or state.count('Fungus3_04[right2]', player)) - hk_set_rule(hk_world, "Fungus3_11", lambda state: state.count('Fungus3_11[left1]', player) or (state.count('Fungus3_11[left2]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) or (state.count('Fungus3_11[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Fungus3_13", lambda state: state.count('Fungus3_13[left1]', player) or state.count('Fungus3_13[left2]', player) or state.count('Fungus3_13[left3]', player) or state.count('Fungus3_13[bot1]', player) or state.count('Fungus3_13[right1]', player)) - hk_set_rule(hk_world, "Fungus3_22", lambda state: state.count('Fungus3_22[right1]', player) or state.count('Fungus3_22[left1]', player) or state.count('Fungus3_22[bot1]', player)) - hk_set_rule(hk_world, "Fungus3_34", lambda state: state.count('Fungus3_34[left1]', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player)) or state.count('Fungus3_34[right1]', player) or state.count('Fungus3_34[top1]', player)) - hk_set_rule(hk_world, "Fungus3_40", lambda state: state.count('Fungus3_40[top1]', player) or state.count('Fungus3_40[right1]', player)) - hk_set_rule(hk_world, "Cliffs_01", lambda state: state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player) or state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) - hk_set_rule(hk_world, "Cliffs_02", lambda state: state.count('Cliffs_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')))) or state.count('Cliffs_02[door1]', player) or state.count('Cliffs_02[left1]', player) or state.count('Cliffs_02[left2]', player)) - hk_set_rule(hk_world, "White_Palace_01", lambda state: state.count('White_Palace_01[left1]', player) and (state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player))) or (state.count('White_Palace_01[right1]', player) and (state.count('LEFTDASH', player) and (state._hk_option(player, 'BackgroundObjectPogos') or state.count('LEFTCLAW', player)) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player))) or (state.count('White_Palace_01[top1]', player) and state.count('Palace_Entrance_Lantern_Lit', player))) - hk_set_rule(hk_world, "White_Palace_03_hub", lambda state: state.count('White_Palace_03_hub[left1]', player) or state.count('White_Palace_03_hub[left2]', player) or (state.count('White_Palace_03_hub[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or state.count('White_Palace_03_hub[right1]', player) or (state.count('White_Palace_03_hub[top1]', player) and state.count('Palace_Atrium_Gates_Opened', player))) - hk_set_rule(hk_world, "White_Palace_13", lambda state: state.count('White_Palace_13[right1]', player) and state._hk_option(player, 'ObscureSkips') and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state.count('LEFTCLAW', player) and (state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or (state.count('White_Palace_13[left1]', player) and state.count('RIGHTCLAW', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player))) or (state.count('White_Palace_13[left2]', player) and state.count('LEFTCLAW', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)))) or state.count('White_Palace_13[left3]', player)) - hk_set_rule(hk_world, "Abyss_05", lambda state: state.count('Abyss_05[left1]', player) or state.count('Abyss_05[right1]', player) or state.count('Warp-White_Palace_Entrance_to_Palace_Grounds', player) or state.count('Warp-White_Palace_Atrium_to_Palace_Grounds', player)) - hk_set_rule(hk_world, "Room_temple[left1]", lambda state: state.count('Room_temple[left1]', player)) - hk_set_rule(hk_world, "Tutorial_01[right1]", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01', player)) - hk_set_rule(hk_world, "Tutorial_01[top1]", lambda state: False) - hk_set_rule(hk_world, "Tutorial_01[top2]", lambda state: state.count('Tutorial_01[top2]', player) or (((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips'))) and state.count('Tutorial_01', player))) - hk_set_rule(hk_world, "Town[left1]", lambda state: state.count('Town[left1]', player) or (state.count('Town', player) and (state.count('LEFTCLAW', player) or (state.count('Town[right1]', player) and state.count('LEFTSUPERDASH', player))))) - hk_set_rule(hk_world, "Town[bot1]", lambda state: state.count('Town[bot1]', player) or state.count('Town', player)) - hk_set_rule(hk_world, "Town[right1]", lambda state: state.count('Town[right1]', player) or (state.count('Town', player) and (state.count('LEFTCLAW', player) or state.count('Town[left1]', player)) and state.count('WINGS', player) and state.count('RIGHTSUPERDASH', player))) - hk_set_rule(hk_world, "Town[top1]", lambda state: False) - hk_set_rule(hk_world, "Town[door_station]", lambda state: state.count('Town[door_station]', player) or (state.count('Town', player) and state.count('Dirtmouth_Stag', player))) - hk_set_rule(hk_world, "Town[door_sly]", lambda state: state.count('Town[door_sly]', player) or (state.count('Town', player) and state.count('Rescued_Sly', player))) - hk_set_rule(hk_world, "Town[door_mapper]", lambda state: state.count('Town[door_mapper]', player) or state.count('Town', player)) - hk_set_rule(hk_world, "Town[door_jiji]", lambda state: state.count('Town[door_jiji]', player) or (state.count('Town', player) and state.count('SIMPLE', player) > 3)) - hk_set_rule(hk_world, "Town[door_bretta]", lambda state: state.count('Town[door_bretta]', player) or (state.count('Town', player) and state.count('Rescued_Bretta', player))) - hk_set_rule(hk_world, "Town[room_divine]", lambda state: state.count('Town[room_divine]', player) or (state.count('Town', player) and state.count('Nightmare_Lantern_Lit', player))) - hk_set_rule(hk_world, "Town[room_grimm]", lambda state: state.count('Town[room_grimm]', player) or (state.count('Town', player) and state.count('Nightmare_Lantern_Lit', player))) - hk_set_rule(hk_world, "Room_shop[left1]", lambda state: state.count('Room_shop[left1]', player)) - hk_set_rule(hk_world, "Room_Town_Stag_Station[left1]", lambda state: state.count('Room_Town_Stag_Station[left1]', player) or (state.count('Dirtmouth_Stag', player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Room_mapper[left1]", lambda state: state.count('Room_mapper[left1]', player)) - hk_set_rule(hk_world, "Room_Bretta[right1]", lambda state: state.count('Room_Bretta[right1]', player)) - hk_set_rule(hk_world, "Room_Ouiji[left1]", lambda state: state.count('Room_Ouiji[left1]', player)) - hk_set_rule(hk_world, "Grimm_Divine[left1]", lambda state: state.count('Grimm_Divine[left1]', player)) - hk_set_rule(hk_world, "Grimm_Main_Tent[left1]", lambda state: state.count('Grimm_Main_Tent[left1]', player)) - hk_set_rule(hk_world, "Crossroads_01[top1]", lambda state: state.count('Crossroads_01[top1]', player) or state.count('Crossroads_01[left1]', player) or state.count('Crossroads_01[right1]', player)) - hk_set_rule(hk_world, "Crossroads_01[left1]", lambda state: state.count('Crossroads_01[left1]', player) or state.count('Crossroads_01[top1]', player) or state.count('Crossroads_01[right1]', player)) - hk_set_rule(hk_world, "Crossroads_01[right1]", lambda state: state.count('Crossroads_01[right1]', player) or state.count('Crossroads_01[top1]', player) or state.count('Crossroads_01[left1]', player)) - hk_set_rule(hk_world, "Crossroads_02[left1]", lambda state: state.count('Crossroads_02[left1]', player) or state.count('Crossroads_02[door1]', player) or state.count('Crossroads_02[right1]', player)) - hk_set_rule(hk_world, "Crossroads_02[door1]", lambda state: state.count('Crossroads_02[door1]', player) or state.count('Crossroads_02[left1]', player) or state.count('Crossroads_02[right1]', player)) - hk_set_rule(hk_world, "Crossroads_02[right1]", lambda state: state.count('Crossroads_02[right1]', player) or state.count('Crossroads_02[left1]', player) or state.count('Crossroads_02[door1]', player)) - hk_set_rule(hk_world, "Crossroads_03[right1]", lambda state: state.count('Crossroads_03[right1]', player) or state.count('Crossroads_03', player)) - hk_set_rule(hk_world, "Crossroads_03[right2]", lambda state: state.count('Crossroads_03[right2]', player) or state.count('Crossroads_03', player)) - hk_set_rule(hk_world, "Crossroads_03[left1]", lambda state: state.count('Crossroads_03[left1]', player) or state.count('Crossroads_03', player)) - hk_set_rule(hk_world, "Crossroads_03[left2]", lambda state: state.count('Crossroads_03[left2]', player) or state.count('Crossroads_03', player)) - hk_set_rule(hk_world, "Crossroads_03[bot1]", lambda state: state.count('Crossroads_03[bot1]', player) or state.count('Crossroads_03', player)) - hk_set_rule(hk_world, "Crossroads_03[top1]", lambda state: state.count('Crossroads_03[top1]', player) or state.count('Crossroads_03', player)) - hk_set_rule(hk_world, "Crossroads_04[left1]", lambda state: state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or state.count('Crossroads_04[top1]', player)) - hk_set_rule(hk_world, "Crossroads_04[top1]", lambda state: state.count('Crossroads_04[top1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or state.count('Crossroads_04[left1]', player)) - hk_set_rule(hk_world, "Crossroads_04[door_Mender_House]", lambda state: state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or ((state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[top1]', player)) and state.count('Defeated_Gruz_Mother', player))) - hk_set_rule(hk_world, "Crossroads_04[door1]", lambda state: state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or ((state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[top1]', player)) and state.count('Defeated_Gruz_Mother', player))) - hk_set_rule(hk_world, "Crossroads_04[door_charmshop]", lambda state: state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or ((state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or ((state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[top1]', player)) and state.count('Defeated_Gruz_Mother', player))) and (state.count('RIGHTCLAW', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or state._hk_option(player, 'ShadeSkips') or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))))) - hk_set_rule(hk_world, "Crossroads_04[right1]", lambda state: state.count('Crossroads_04[right1]', player) or ((state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or ((state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[top1]', player)) and state.count('Defeated_Gruz_Mother', player))) and (state.count('RIGHTCLAW', player) and state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player)) or ((state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'ComplexSkips') and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and True)))))) - hk_set_rule(hk_world, "Crossroads_05[left1]", lambda state: state.count('Crossroads_05[left1]', player) or state.count('Crossroads_05[right1]', player)) - hk_set_rule(hk_world, "Crossroads_05[right1]", lambda state: state.count('Crossroads_05[right1]', player) or state.count('Crossroads_05[left1]', player)) - hk_set_rule(hk_world, "Crossroads_06[left1]", lambda state: state.count('Crossroads_06[left1]', player) or state.count('Crossroads_06[door1]', player) or state.count('Crossroads_06[right1]', player)) - hk_set_rule(hk_world, "Crossroads_06[door1]", lambda state: state.count('Crossroads_06[door1]', player) or state.count('Crossroads_06[left1]', player) or state.count('Crossroads_06[right1]', player)) - hk_set_rule(hk_world, "Crossroads_06[right1]", lambda state: state.count('Crossroads_06[right1]', player) or state.count('Crossroads_06[left1]', player) or state.count('Crossroads_06[door1]', player)) - hk_set_rule(hk_world, "Crossroads_07[left1]", lambda state: state.count('Crossroads_07[left1]', player) or state.count('Crossroads_07', player)) - hk_set_rule(hk_world, "Crossroads_07[left2]", lambda state: state.count('Crossroads_07[left2]', player) or state.count('Crossroads_07', player)) - hk_set_rule(hk_world, "Crossroads_07[left3]", lambda state: state.count('Crossroads_07[left3]', player) or state.count('Crossroads_07', player)) - hk_set_rule(hk_world, "Crossroads_07[right1]", lambda state: state.count('Crossroads_07[right1]', player) or state.count('Crossroads_07', player)) - hk_set_rule(hk_world, "Crossroads_07[right2]", lambda state: state.count('Crossroads_07[right2]', player) or state.count('Crossroads_07', player)) - hk_set_rule(hk_world, "Crossroads_07[bot1]", lambda state: state.count('Crossroads_07[bot1]', player) or state.count('Crossroads_07', player)) - hk_set_rule(hk_world, "Crossroads_08[left1]", lambda state: state.count('Crossroads_08[left1]', player) or state.count('Crossroads_08', player)) - hk_set_rule(hk_world, "Crossroads_08[left2]", lambda state: state.count('Crossroads_08[left2]', player) or state.count('Crossroads_08', player)) - hk_set_rule(hk_world, "Crossroads_08[right1]", lambda state: state.count('Crossroads_08[right1]', player) or state.count('Crossroads_08', player)) - hk_set_rule(hk_world, "Crossroads_08[right2]", lambda state: state.count('Crossroads_08[right2]', player) or state.count('Crossroads_08', player)) - hk_set_rule(hk_world, "Crossroads_09[left1]", lambda state: state.count('Crossroads_09[left1]', player) or (state.count('Crossroads_09[right1]', player) and state.count('Defeated_Brooding_Mawlek', player))) - hk_set_rule(hk_world, "Crossroads_09[right1]", lambda state: state.count('Crossroads_09[right1]', player) or (state.count('Crossroads_09[left1]', player) and state.count('Defeated_Brooding_Mawlek', player))) - hk_set_rule(hk_world, "Crossroads_10[left1]", lambda state: state.count('Crossroads_10[left1]', player) or (state.count('Crossroads_10[right1]', player) and state.count('Defeated_False_Knight', player))) - hk_set_rule(hk_world, "Crossroads_10[right1]", lambda state: state.count('Crossroads_10[right1]', player) or (state.count('Crossroads_10[left1]', player) and state.count('Defeated_False_Knight', player))) - hk_set_rule(hk_world, "Crossroads_11_alt[left1]", lambda state: state.count('Crossroads_11_alt[left1]', player) or (state.count('Crossroads_11_alt[right1]', player) and ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('LEFTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player) or (state.count('LEFTDASH', player) and state.count('LEFTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Crossroads_11_alt[right1]", lambda state: state.count('Crossroads_11_alt[right1]', player)) - hk_set_rule(hk_world, "Crossroads_12[left1]", lambda state: state.count('Crossroads_12[left1]', player) or state.count('Crossroads_12[right1]', player)) - hk_set_rule(hk_world, "Crossroads_12[right1]", lambda state: state.count('Crossroads_12[right1]', player) or state.count('Crossroads_12[left1]', player)) - hk_set_rule(hk_world, "Crossroads_13[left1]", lambda state: state.count('Crossroads_13[left1]', player) or state.count('Crossroads_13[right1]', player)) - hk_set_rule(hk_world, "Crossroads_13[right1]", lambda state: state.count('Crossroads_13[right1]', player) or state.count('Crossroads_13[left1]', player)) - hk_set_rule(hk_world, "Crossroads_14[left1]", lambda state: state.count('Crossroads_14[left1]', player) or state.count('Crossroads_14', player)) - hk_set_rule(hk_world, "Crossroads_14[left2]", lambda state: state.count('Crossroads_14[left2]', player) or state.count('Crossroads_14', player)) - hk_set_rule(hk_world, "Crossroads_14[right1]", lambda state: state.count('Crossroads_14[right1]', player) or state.count('Crossroads_14', player)) - hk_set_rule(hk_world, "Crossroads_14[right2]", lambda state: state.count('Crossroads_14[right2]', player) or state.count('Crossroads_14', player)) - hk_set_rule(hk_world, "Crossroads_15[left1]", lambda state: state.count('Crossroads_15[left1]', player) or state.count('Crossroads_15[right1]', player)) - hk_set_rule(hk_world, "Crossroads_15[right1]", lambda state: state.count('Crossroads_15[right1]', player) or state.count('Crossroads_15[left1]', player)) - hk_set_rule(hk_world, "Crossroads_16[left1]", lambda state: state.count('Crossroads_16[left1]', player) or state.count('Crossroads_16[right1]', player) or state.count('Crossroads_16[bot1]', player)) - hk_set_rule(hk_world, "Crossroads_16[right1]", lambda state: state.count('Crossroads_16[right1]', player) or state.count('Crossroads_16[left1]', player) or state.count('Crossroads_16[bot1]', player)) - hk_set_rule(hk_world, "Crossroads_16[bot1]", lambda state: state.count('Crossroads_16[bot1]', player) or state.count('Crossroads_16[left1]', player) or state.count('Crossroads_16[right1]', player)) - hk_set_rule(hk_world, "Crossroads_18[right1]", lambda state: state.count('Crossroads_18[right1]', player) or state.count('Crossroads_18', player)) - hk_set_rule(hk_world, "Crossroads_18[right2]", lambda state: state.count('Crossroads_18[right2]', player) or state.count('Crossroads_18', player)) - hk_set_rule(hk_world, "Crossroads_18[bot1]", lambda state: state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18', player)) - hk_set_rule(hk_world, "Crossroads_19[right1]", lambda state: state.count('Crossroads_19[right1]', player) or state.count('Crossroads_19', player)) - hk_set_rule(hk_world, "Crossroads_19[top1]", lambda state: state.count('Crossroads_19[top1]', player) or state.count('Crossroads_19', player)) - hk_set_rule(hk_world, "Crossroads_19[left1]", lambda state: state.count('Crossroads_19[left1]', player) or state.count('Crossroads_19', player)) - hk_set_rule(hk_world, "Crossroads_19[left2]", lambda state: state.count('Crossroads_19[left2]', player) or state.count('Crossroads_19', player)) - hk_set_rule(hk_world, "Crossroads_21[left1]", lambda state: state.count('Crossroads_21[left1]', player) or state.count('Crossroads_21', player)) - hk_set_rule(hk_world, "Crossroads_21[right1]", lambda state: state.count('Crossroads_21[right1]', player) or state.count('Crossroads_21', player)) - hk_set_rule(hk_world, "Crossroads_21[top1]", lambda state: state.count('Crossroads_21[top1]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) or (state.count('Crossroads_21', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) and (state.count('LEFTSUPERDASH', player) or (state._hk_option(player, 'SpikeTunnels') and state.count('LEFTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))))) - hk_set_rule(hk_world, "Crossroads_22[bot1]", lambda state: state.count('Crossroads_22[bot1]', player)) - hk_set_rule(hk_world, "Crossroads_25[right1]", lambda state: state.count('Crossroads_25[right1]', player) or state.count('Crossroads_25[left1]', player)) - hk_set_rule(hk_world, "Crossroads_25[left1]", lambda state: state.count('Crossroads_25[left1]', player) or state.count('Crossroads_25[right1]', player)) - hk_set_rule(hk_world, "Crossroads_27[right1]", lambda state: state.count('Crossroads_27[right1]', player) or state.count('Crossroads_27', player)) - hk_set_rule(hk_world, "Crossroads_27[bot1]", lambda state: state.count('Crossroads_27[bot1]', player) or state.count('Crossroads_27', player)) - hk_set_rule(hk_world, "Crossroads_27[left1]", lambda state: state.count('Crossroads_27[left1]', player) or state.count('Crossroads_27', player)) - hk_set_rule(hk_world, "Crossroads_27[left2]", lambda state: state.count('Crossroads_27[left2]', player) or state.count('Crossroads_27', player)) - hk_set_rule(hk_world, "Crossroads_30[left1]", lambda state: state.count('Crossroads_30[left1]', player)) - hk_set_rule(hk_world, "Crossroads_31[right1]", lambda state: state.count('Crossroads_31[right1]', player)) - hk_set_rule(hk_world, "Crossroads_33[top1]", lambda state: state.count('Crossroads_33[top1]', player) or state.count('Crossroads_33', player)) - hk_set_rule(hk_world, "Crossroads_33[left1]", lambda state: state.count('Crossroads_33[left1]', player) or (state.count('Crossroads_33', player) and state.count('Opened_Mawlek_Wall', player))) - hk_set_rule(hk_world, "Crossroads_33[left2]", lambda state: state.count('Crossroads_33[left2]', player) or state.count('Crossroads_33', player)) - hk_set_rule(hk_world, "Crossroads_33[right1]", lambda state: state.count('Crossroads_33[right1]', player) or (state.count('Crossroads_33', player) and state.count('Opened_Shaman_Pillar', player))) - hk_set_rule(hk_world, "Crossroads_33[right2]", lambda state: state.count('Crossroads_33[right2]', player) or state.count('Crossroads_33', player)) - hk_set_rule(hk_world, "Crossroads_35[bot1]", lambda state: state.count('Crossroads_35[bot1]', player) or (state.count('Crossroads_35[right1]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state.count('RIGHTDASH', player))) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Crossroads_35[right1]", lambda state: state.count('Crossroads_35[right1]', player) or (state.count('Crossroads_35[bot1]', player) and state.count('RIGHTCLAW', player) and (state.count('ACID', player) or ((state.count('LEFTSUPERDASH', player) and state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTDASH', player))) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Crossroads_36[right1]", lambda state: state.count('Crossroads_36[right1]', player) or state.count('Crossroads_36[right2]', player)) - hk_set_rule(hk_world, "Crossroads_36[right2]", lambda state: state.count('Crossroads_36[right2]', player) or state.count('Crossroads_36[right1]', player)) - hk_set_rule(hk_world, "Crossroads_37[right1]", lambda state: state.count('Crossroads_37[right1]', player)) - hk_set_rule(hk_world, "Crossroads_38[right1]", lambda state: state.count('Crossroads_38[right1]', player)) - hk_set_rule(hk_world, "Crossroads_39[right1]", lambda state: state.count('Crossroads_39[right1]', player) or state.count('Crossroads_39[left1]', player)) - hk_set_rule(hk_world, "Crossroads_39[left1]", lambda state: state.count('Crossroads_39[left1]', player) or state.count('Crossroads_39[right1]', player)) - hk_set_rule(hk_world, "Crossroads_40[right1]", lambda state: state.count('Crossroads_40[right1]', player) or state.count('Crossroads_40[left1]', player)) - hk_set_rule(hk_world, "Crossroads_40[left1]", lambda state: state.count('Crossroads_40[left1]', player) or state.count('Crossroads_40[right1]', player)) - hk_set_rule(hk_world, "Crossroads_42[left1]", lambda state: state.count('Crossroads_42[left1]', player) or state.count('Crossroads_42[right1]', player)) - hk_set_rule(hk_world, "Crossroads_42[right1]", lambda state: state.count('Crossroads_42[right1]', player) or state.count('Crossroads_42[left1]', player)) - hk_set_rule(hk_world, "Crossroads_43[left1]", lambda state: state.count('Crossroads_43[left1]', player) or state.count('Crossroads_43[right1]', player)) - hk_set_rule(hk_world, "Crossroads_43[right1]", lambda state: state.count('Crossroads_43[right1]', player) or state.count('Crossroads_43[left1]', player)) - hk_set_rule(hk_world, "Crossroads_45[right1]", lambda state: state.count('Crossroads_45[right1]', player) or state.count('Crossroads_45[left1]', player)) - hk_set_rule(hk_world, "Crossroads_45[left1]", lambda state: state.count('Crossroads_45[left1]', player) or state.count('Crossroads_45[right1]', player)) - hk_set_rule(hk_world, "Crossroads_46[left1]", lambda state: state.count('Crossroads_46[left1]', player) or state.count('Upper_Tram', player)) - hk_set_rule(hk_world, "Crossroads_46b[right1]", lambda state: state.count('Crossroads_46b[right1]', player) or state.count('Upper_Tram', player)) - hk_set_rule(hk_world, "Crossroads_ShamanTemple[left1]", lambda state: state.count('Crossroads_ShamanTemple[left1]', player)) - hk_set_rule(hk_world, "Crossroads_47[right1]", lambda state: state.count('Crossroads_47[right1]', player) or (state.count('Can_Stag', player) and state.count('Crossroads_Stag', player))) - hk_set_rule(hk_world, "Crossroads_48[left1]", lambda state: state.count('Crossroads_48[left1]', player)) - hk_set_rule(hk_world, "Crossroads_49[right1]", lambda state: state.count('Crossroads_49[right1]', player) or state.count('Left_Elevator', player)) - hk_set_rule(hk_world, "Crossroads_49[left1]", lambda state: state.count('Crossroads_49[left1]', player) or state.count('Left_Elevator', player)) - hk_set_rule(hk_world, "Crossroads_49b[right1]", lambda state: state.count('Crossroads_49b[right1]', player) or state.count('Left_Elevator', player)) - hk_set_rule(hk_world, "Crossroads_50[right1]", lambda state: state.count('Crossroads_50[right1]', player) or (state.count('Crossroads_50[left1]', player) and (state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player)))) - hk_set_rule(hk_world, "Crossroads_50[left1]", lambda state: state.count('Crossroads_50[left1]', player) or (state.count('Crossroads_50[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Crossroads_52[left1]", lambda state: state.count('Crossroads_52[left1]', player)) - hk_set_rule(hk_world, "Room_ruinhouse[left1]", lambda state: state.count('Room_ruinhouse[left1]', player)) - hk_set_rule(hk_world, "Room_Charm_Shop[left1]", lambda state: state.count('Room_Charm_Shop[left1]', player)) - hk_set_rule(hk_world, "Room_Mender_House[left1]", lambda state: state.count('Room_Mender_House[left1]', player)) - hk_set_rule(hk_world, "Fungus1_01[left1]", lambda state: state.count('Fungus1_01[left1]', player) or state.count('Fungus1_01[right1]', player)) - hk_set_rule(hk_world, "Fungus1_01[right1]", lambda state: state.count('Fungus1_01[right1]', player) or state.count('Fungus1_01[left1]', player)) - hk_set_rule(hk_world, "Fungus1_01b[left1]", lambda state: state.count('Fungus1_01b[left1]', player) or state.count('Fungus1_01b[right1]', player)) - hk_set_rule(hk_world, "Fungus1_01b[right1]", lambda state: state.count('Fungus1_01b[right1]', player) or state.count('Fungus1_01b[left1]', player)) - hk_set_rule(hk_world, "Fungus1_02[left1]", lambda state: state.count('Fungus1_02[left1]', player) or ((state.count('Fungus1_02[right1]', player) or state.count('Fungus1_02[right2]', player)) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Fungus1_02[right1]", lambda state: state.count('Fungus1_02[right1]', player) or state.count('Fungus1_02[left1]', player) or state.count('Fungus1_02[right2]', player)) - hk_set_rule(hk_world, "Fungus1_02[right2]", lambda state: state.count('Fungus1_02[right2]', player) or state.count('Fungus1_02[left1]', player) or state.count('Fungus1_02[right1]', player)) - hk_set_rule(hk_world, "Fungus1_03[left1]", lambda state: state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[right1]', player) or state.count('Fungus1_03[bot1]', player)) - hk_set_rule(hk_world, "Fungus1_03[right1]", lambda state: state.count('Fungus1_03[right1]', player) or state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[bot1]', player)) - hk_set_rule(hk_world, "Fungus1_03[bot1]", lambda state: state.count('Fungus1_03[bot1]', player) or state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[right1]', player)) - hk_set_rule(hk_world, "Fungus1_04[left1]", lambda state: state.count('Fungus1_04[left1]', player) or (state.count('Fungus1_04[right1]', player) and state.count('Defeated_Hornet_1', player) and ((state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)) or state.count('WINGS', player) or state.count('ACID', player)))) - hk_set_rule(hk_world, "Fungus1_04[right1]", lambda state: state.count('Fungus1_04[right1]', player) or (state.count('Fungus1_04[left1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('ACID', player) and state.count('RIGHTCLAW', player)) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) or (state.count('RIGHTDASH', player) and state.count('LEFTCLAW', player) and state._hk_option(player, 'PreciseMovement'))))) - hk_set_rule(hk_world, "Fungus1_05[right1]", lambda state: state.count('Fungus1_05[right1]', player) or state.count('Fungus1_05[bot1]', player) or state.count('Fungus1_05[top1]', player)) - hk_set_rule(hk_world, "Fungus1_05[bot1]", lambda state: state.count('Fungus1_05[bot1]', player) or state.count('Fungus1_05[right1]', player) or state.count('Fungus1_05[top1]', player)) - hk_set_rule(hk_world, "Fungus1_05[top1]", lambda state: state.count('Fungus1_05[top1]', player) or state.count('Fungus1_05[right1]', player) or state.count('Fungus1_05[bot1]', player)) - hk_set_rule(hk_world, "Fungus1_06[left1]", lambda state: state.count('Fungus1_06[left1]', player) or state.count('Fungus1_06[bot1]', player)) - hk_set_rule(hk_world, "Fungus1_06[bot1]", lambda state: state.count('Fungus1_06[bot1]', player) or state.count('Fungus1_06[left1]', player)) - hk_set_rule(hk_world, "Fungus1_07[top1]", lambda state: state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[left1]', player) or state.count('Fungus1_07[right1]', player)) - hk_set_rule(hk_world, "Fungus1_07[left1]", lambda state: state.count('Fungus1_07[left1]', player) or state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[right1]', player)) - hk_set_rule(hk_world, "Fungus1_07[right1]", lambda state: state.count('Fungus1_07[right1]', player) or state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[left1]', player)) - hk_set_rule(hk_world, "Fungus1_08[left1]", lambda state: state.count('Fungus1_08[left1]', player)) - hk_set_rule(hk_world, "Fungus1_09[left1]", lambda state: state.count('Fungus1_09[left1]', player) or (state.count('Fungus1_09[right1]', player) and (state.count('LEFTCLAW', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player)) or (state.count('WINGS', player) and state.count('LEFTDASH', player))) or (state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player) and state.count('WINGS', player) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'DangerousSkips') and state._hk_option(player, 'PreciseMovement'))))) - hk_set_rule(hk_world, "Fungus1_09[right1]", lambda state: state.count('Fungus1_09[right1]', player) or (state.count('Fungus1_09[left1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Great_Slash', player) or state.count('Cyclone_Slash', player) or (state.count('RIGHTDASH', player) and state.count('Dash_Slash', player))))) - hk_set_rule(hk_world, "Fungus1_10[left1]", lambda state: state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[right1]', player) or state.count('Fungus1_10[top1]', player)) - hk_set_rule(hk_world, "Fungus1_10[right1]", lambda state: state.count('Fungus1_10[right1]', player) or state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[top1]', player)) - hk_set_rule(hk_world, "Fungus1_10[top1]", lambda state: state.count('Fungus1_10[top1]', player) or state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[right1]', player)) - hk_set_rule(hk_world, "Fungus1_11[top1]", lambda state: state.count('Fungus1_11[top1]', player) or state.count('Fungus1_11', player)) - hk_set_rule(hk_world, "Fungus1_11[right1]", lambda state: state.count('Fungus1_11[right1]', player) or state.count('Fungus1_11', player)) - hk_set_rule(hk_world, "Fungus1_11[right2]", lambda state: state.count('Fungus1_11[right2]', player) or state.count('Fungus1_11', player)) - hk_set_rule(hk_world, "Fungus1_11[left1]", lambda state: state.count('Fungus1_11[left1]', player) or (state.count('Fungus1_11', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player) or state.count('LEFTDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips')))))) - hk_set_rule(hk_world, "Fungus1_11[bot1]", lambda state: state.count('Fungus1_11[bot1]', player) or state.count('Fungus1_11', player)) - hk_set_rule(hk_world, "Fungus1_12[left1]", lambda state: state.count('Fungus1_12[left1]', player) or state.count('Fungus1_12[right1]', player)) - hk_set_rule(hk_world, "Fungus1_12[right1]", lambda state: state.count('Fungus1_12[right1]', player) or state.count('Fungus1_12[left1]', player)) - hk_set_rule(hk_world, "Fungus1_13[right1]", lambda state: state.count('Fungus1_13[right1]', player)) - hk_set_rule(hk_world, "Fungus1_13[left1]", lambda state: state.count('Fungus1_13[left1]', player)) - hk_set_rule(hk_world, "Fungus1_14[left1]", lambda state: state.count('Fungus1_14[left1]', player)) - hk_set_rule(hk_world, "Fungus1_15[door1]", lambda state: state.count('Fungus1_15[door1]', player) or (state.count('Fungus1_15[right1]', player) and (state.count('RIGHTSUPERDASH', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player))))) - hk_set_rule(hk_world, "Fungus1_15[right1]", lambda state: state.count('Fungus1_15[right1]', player) or state.count('Fungus1_15[door1]', player)) - hk_set_rule(hk_world, "Fungus1_16_alt[right1]", lambda state: state.count('Fungus1_16_alt[right1]', player) or (state.count('Can_Stag', player) and state.count('Greenpath_Stag', player))) - hk_set_rule(hk_world, "Fungus1_17[left1]", lambda state: state.count('Fungus1_17[left1]', player) or state.count('Fungus1_17[right1]', player)) - hk_set_rule(hk_world, "Fungus1_17[right1]", lambda state: state.count('Fungus1_17[right1]', player) or state.count('Fungus1_17[left1]', player)) - hk_set_rule(hk_world, "Fungus1_19[left1]", lambda state: state.count('Fungus1_19[left1]', player) or state.count('Fungus1_19[right1]', player) or state.count('Fungus1_19[bot1]', player)) - hk_set_rule(hk_world, "Fungus1_19[right1]", lambda state: state.count('Fungus1_19[right1]', player) or state.count('Fungus1_19[left1]', player) or state.count('Fungus1_19[bot1]', player)) - hk_set_rule(hk_world, "Fungus1_19[bot1]", lambda state: state.count('Fungus1_19[bot1]', player) or state.count('Fungus1_19[left1]', player) or state.count('Fungus1_19[right1]', player)) - hk_set_rule(hk_world, "Fungus1_20_v02[bot1]", lambda state: state.count('Fungus1_20_v02[bot1]', player) or state.count('Fungus1_20_v02[bot2]', player) or state.count('Fungus1_20_v02[right1]', player)) - hk_set_rule(hk_world, "Fungus1_20_v02[bot2]", lambda state: state.count('Fungus1_20_v02[bot2]', player) or state.count('Fungus1_20_v02[bot1]', player) or state.count('Fungus1_20_v02[right1]', player)) - hk_set_rule(hk_world, "Fungus1_20_v02[right1]", lambda state: state.count('Fungus1_20_v02[right1]', player) or state.count('Fungus1_20_v02[bot1]', player) or state.count('Fungus1_20_v02[bot2]', player)) - hk_set_rule(hk_world, "Fungus1_21[bot1]", lambda state: state.count('Fungus1_21[bot1]', player) or state.count('Fungus1_21', player)) - hk_set_rule(hk_world, "Fungus1_21[top1]", lambda state: state.count('Fungus1_21[top1]', player) or state.count('Fungus1_21', player)) - hk_set_rule(hk_world, "Fungus1_21[left1]", lambda state: state.count('Fungus1_21[left1]', player) or state.count('Fungus1_21', player)) - hk_set_rule(hk_world, "Fungus1_21[right1]", lambda state: state.count('Fungus1_21[right1]', player) or state.count('Fungus1_21', player)) - hk_set_rule(hk_world, "Fungus1_22[bot1]", lambda state: state.count('Fungus1_22[bot1]', player) or state.count('Fungus1_22[top1]', player) or state.count('Fungus1_22[left1]', player)) - hk_set_rule(hk_world, "Fungus1_22[top1]", lambda state: state.count('Fungus1_22[top1]', player) or state.count('Fungus1_22[left1]', player)) - hk_set_rule(hk_world, "Fungus1_22[left1]", lambda state: state.count('Fungus1_22[left1]', player) or state.count('Fungus1_22[top1]', player)) - hk_set_rule(hk_world, "Fungus1_23[left1]", lambda state: state.count('Fungus1_23[left1]', player) or state.count('Fungus1_23[right1]', player)) - hk_set_rule(hk_world, "Fungus1_23[right1]", lambda state: state.count('Fungus1_23[right1]', player) or state.count('Fungus1_23[left1]', player)) - hk_set_rule(hk_world, "Fungus1_24[left1]", lambda state: state.count('Fungus1_24[left1]', player)) - hk_set_rule(hk_world, "Fungus1_25[right1]", lambda state: state.count('Fungus1_25[right1]', player) or state.count('Fungus1_25[left1]', player)) - hk_set_rule(hk_world, "Fungus1_25[left1]", lambda state: state.count('Fungus1_25[left1]', player) or state.count('Fungus1_25[right1]', player)) - hk_set_rule(hk_world, "Fungus1_26[right1]", lambda state: state.count('Fungus1_26[right1]', player) or (state.count('Fungus1_26[left1]', player) and (state.count('ACID', player) or (state._hk_option(player, 'AcidSkips') and state.count('LEFTCLAW', player) and state.count('WINGS', player) and state.count('RIGHTSUPERDASH', player)))) or state.count('Fungus1_26[door_SlugShrine]', player)) - hk_set_rule(hk_world, "Fungus1_26[left1]", lambda state: state.count('Fungus1_26[left1]', player) or ((state.count('Fungus1_26[right1]', player) or state.count('Fungus1_26[door_SlugShrine]', player)) and (state.count('ACID', player) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'AcidSkips') and state.count('WINGS', player) and state.count('LEFTSUPERDASH', player) and state.count('LEFTDASH', player) and (state.count('FIREBALL', player) and state._hk_option(player, 'FireballSkips') or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and state.count('Can_Bench', player)) and True)))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Fungus1_26[door_SlugShrine]", lambda state: state.count('Fungus1_26[door_SlugShrine]', player) or (state.count('Fungus1_26[left1]', player) and (state.count('ACID', player) or (state._hk_option(player, 'AcidSkips') and state.count('LEFTCLAW', player) and state.count('WINGS', player) and state.count('RIGHTSUPERDASH', player)))) or state.count('Fungus1_26[right1]', player)) - hk_set_rule(hk_world, "Fungus1_28[left1]", lambda state: state.count('Fungus1_28[left1]', player) or (state.count('Fungus1_28[left2]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('RIGHTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))) or (state.count('WINGS', player) and state.count('LEFTCLAW', player)) or (state.count('WINGS', player) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state._hk_option(player, 'DifficultSkips') and (state.count('MASKSHARDS', player) > 15))))) - hk_set_rule(hk_world, "Fungus1_28[left2]", lambda state: state.count('Fungus1_28[left2]', player) or state.count('Fungus1_28[left1]', player)) - hk_set_rule(hk_world, "Fungus1_29[left1]", lambda state: state.count('Fungus1_29[left1]', player) or state.count('Fungus1_29[right1]', player)) - hk_set_rule(hk_world, "Fungus1_29[right1]", lambda state: state.count('Fungus1_29[right1]', player) or state.count('Fungus1_29[left1]', player)) - hk_set_rule(hk_world, "Fungus1_30[top1]", lambda state: state.count('Fungus1_30[top1]', player) or state.count('Fungus1_30', player)) - hk_set_rule(hk_world, "Fungus1_30[top3]", lambda state: state.count('Fungus1_30[top3]', player) or state.count('Fungus1_30', player)) - hk_set_rule(hk_world, "Fungus1_30[left1]", lambda state: state.count('Fungus1_30[left1]', player) or state.count('Fungus1_30', player)) - hk_set_rule(hk_world, "Fungus1_30[right1]", lambda state: state.count('Fungus1_30[right1]', player) or state.count('Fungus1_30', player)) - hk_set_rule(hk_world, "Fungus1_31[top1]", lambda state: state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_31[right1]', player)) - hk_set_rule(hk_world, "Fungus1_31[bot1]", lambda state: state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[right1]', player)) - hk_set_rule(hk_world, "Fungus1_31[right1]", lambda state: state.count('Fungus1_31[right1]', player) or state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[bot1]', player)) - hk_set_rule(hk_world, "Fungus1_32[bot1]", lambda state: state.count('Fungus1_32[bot1]', player) or state.count('Fungus1_32[top1]', player) or state.count('Fungus1_32[left1]', player)) - hk_set_rule(hk_world, "Fungus1_32[top1]", lambda state: state.count('Fungus1_32[top1]', player) or state.count('Fungus1_32[bot1]', player) or state.count('Fungus1_32[left1]', player)) - hk_set_rule(hk_world, "Fungus1_32[left1]", lambda state: state.count('Fungus1_32[left1]', player) or state.count('Fungus1_32[bot1]', player) or state.count('Fungus1_32[top1]', player)) - hk_set_rule(hk_world, "Fungus1_34[door1]", lambda state: state.count('Fungus1_34[door1]', player) or state.count('Fungus1_34[left1]', player)) - hk_set_rule(hk_world, "Fungus1_34[left1]", lambda state: state.count('Fungus1_34[left1]', player) or state.count('Fungus1_34[door1]', player)) - hk_set_rule(hk_world, "Fungus1_35[left1]", lambda state: state.count('Fungus1_35[left1]', player) or (state.count('Fungus1_35[right1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')))) - hk_set_rule(hk_world, "Fungus1_35[right1]", lambda state: state.count('Fungus1_35[right1]', player) or (state.count('Fungus1_35[left1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')))) - hk_set_rule(hk_world, "Fungus1_36[left1]", lambda state: state.count('Fungus1_36[left1]', player)) - hk_set_rule(hk_world, "Fungus1_37[left1]", lambda state: state.count('Fungus1_37[left1]', player)) - hk_set_rule(hk_world, "Fungus1_Slug[right1]", lambda state: state.count('Fungus1_Slug[right1]', player)) - hk_set_rule(hk_world, "Room_Slug_Shrine[left1]", lambda state: state.count('Room_Slug_Shrine[left1]', player)) - hk_set_rule(hk_world, "Room_nailmaster_02[left1]", lambda state: state.count('Room_nailmaster_02[left1]', player)) - hk_set_rule(hk_world, "Fungus3_01[top1]", lambda state: state.count('Fungus3_01[top1]', player) or state.count('Fungus3_01', player)) - hk_set_rule(hk_world, "Fungus3_01[right1]", lambda state: state.count('Fungus3_01[right1]', player) or state.count('Fungus3_01', player)) - hk_set_rule(hk_world, "Fungus3_01[left1]", lambda state: state.count('Fungus3_01[left1]', player) or state.count('Fungus3_01', player)) - hk_set_rule(hk_world, "Fungus3_01[right2]", lambda state: state.count('Fungus3_01[right2]', player) or state.count('Fungus3_01', player)) - hk_set_rule(hk_world, "Fungus3_02[left1]", lambda state: state.count('Fungus3_02[left1]', player) or state.count('Fungus3_02', player)) - hk_set_rule(hk_world, "Fungus3_02[left2]", lambda state: state.count('Fungus3_02[left2]', player) or state.count('Fungus3_02', player)) - hk_set_rule(hk_world, "Fungus3_02[left3]", lambda state: state.count('Fungus3_02[left3]', player) or state.count('Fungus3_02', player)) - hk_set_rule(hk_world, "Fungus3_02[right1]", lambda state: state.count('Fungus3_02[right1]', player) or (state.count('Fungus3_02', player) and state.count('Opened_Archives_Exit_Wall', player))) - hk_set_rule(hk_world, "Fungus3_02[right2]", lambda state: state.count('Fungus3_02[right2]', player) or state.count('Fungus3_02', player)) - hk_set_rule(hk_world, "Fungus3_03[right1]", lambda state: state.count('Fungus3_03[right1]', player) or (state.count('Fungus3_03[left1]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Fungus3_03[left1]", lambda state: state.count('Fungus3_03[left1]', player) or (state.count('Fungus3_03[right1]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Fungus3_24[right1]", lambda state: state.count('Fungus3_24[right1]', player) or state.count('Fungus3_24[left1]', player) or state.count('Fungus3_24[top1]', player)) - hk_set_rule(hk_world, "Fungus3_24[left1]", lambda state: state.count('Fungus3_24[left1]', player) or state.count('Fungus3_24[right1]', player) or state.count('Fungus3_24[top1]', player)) - hk_set_rule(hk_world, "Fungus3_24[top1]", lambda state: state.count('Fungus3_24[top1]', player) or state.count('Fungus3_24[right1]', player) or state.count('Fungus3_24[left1]', player)) - hk_set_rule(hk_world, "Fungus3_25[right1]", lambda state: state.count('Fungus3_25[right1]', player) or (state.count('Fungus3_25[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)))) - hk_set_rule(hk_world, "Fungus3_25[left1]", lambda state: state.count('Fungus3_25[left1]', player) or (state.count('Fungus3_25[right1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)))) - hk_set_rule(hk_world, "Fungus3_25b[right1]", lambda state: state.count('Fungus3_25b[right1]', player) or state.count('Fungus3_25b[left1]', player)) - hk_set_rule(hk_world, "Fungus3_25b[left1]", lambda state: state.count('Fungus3_25b[left1]', player) or state.count('Fungus3_25b[right1]', player)) - hk_set_rule(hk_world, "Fungus3_26[top1]", lambda state: state.count('Fungus3_26[top1]', player) or (state.count('Fungus3_26', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and (state.count('LEFTDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Fungus3_26[left1]", lambda state: state.count('Fungus3_26[left1]', player) or state.count('Fungus3_26', player)) - hk_set_rule(hk_world, "Fungus3_26[left2]", lambda state: state.count('Fungus3_26[left2]', player) or state.count('Fungus3_26', player)) - hk_set_rule(hk_world, "Fungus3_26[left3]", lambda state: state.count('Fungus3_26[left3]', player) or state.count('Fungus3_26', player)) - hk_set_rule(hk_world, "Fungus3_26[right1]", lambda state: state.count('Fungus3_26[right1]', player) or state.count('Fungus3_26', player)) - hk_set_rule(hk_world, "Fungus3_27[left1]", lambda state: state.count('Fungus3_27[left1]', player) or state.count('Fungus3_27[right1]', player)) - hk_set_rule(hk_world, "Fungus3_27[right1]", lambda state: state.count('Fungus3_27[right1]', player) or state.count('Fungus3_27[left1]', player)) - hk_set_rule(hk_world, "Fungus3_28[right1]", lambda state: state.count('Fungus3_28[right1]', player)) - hk_set_rule(hk_world, "Fungus3_30[bot1]", lambda state: state.count('Fungus3_30[bot1]', player)) - hk_set_rule(hk_world, "Fungus3_35[right1]", lambda state: state.count('Fungus3_35[right1]', player)) - hk_set_rule(hk_world, "Fungus3_44[bot1]", lambda state: state.count('Fungus3_44[bot1]', player) or (state.count('Fungus3_44', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)))) - hk_set_rule(hk_world, "Fungus3_44[door1]", lambda state: state.count('Fungus3_44[door1]', player) or (state.count('Fungus3_44', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Fungus3_44[right1]", lambda state: state.count('Fungus3_44[right1]', player) or state.count('Fungus3_44', player)) - hk_set_rule(hk_world, "Fungus3_47[left1]", lambda state: state.count('Fungus3_47[left1]', player) or state.count('Fungus3_47', player)) - hk_set_rule(hk_world, "Fungus3_47[right1]", lambda state: state.count('Fungus3_47[right1]', player) or state.count('Fungus3_47', player)) - hk_set_rule(hk_world, "Fungus3_47[door1]", lambda state: state.count('Fungus3_47[door1]', player) or state.count('Fungus3_47', player)) - hk_set_rule(hk_world, "Room_Fungus_Shaman[left1]", lambda state: state.count('Room_Fungus_Shaman[left1]', player)) - hk_set_rule(hk_world, "Fungus3_archive[left1]", lambda state: state.count('Fungus3_archive[left1]', player) or state.count('Fungus3_archive[bot1]', player)) - hk_set_rule(hk_world, "Fungus3_archive[bot1]", lambda state: state.count('Fungus3_archive[bot1]', player) or state.count('Fungus3_archive[left1]', player)) - hk_set_rule(hk_world, "Fungus3_archive_02[top1]", lambda state: state.count('Fungus3_archive_02[top1]', player)) - hk_set_rule(hk_world, "Fungus2_01[left1]", lambda state: state.count('Fungus2_01[left1]', player) or state.count('Fungus2_01', player)) - hk_set_rule(hk_world, "Fungus2_01[left2]", lambda state: state.count('Fungus2_01[left2]', player) or state.count('Fungus2_01', player)) - hk_set_rule(hk_world, "Fungus2_01[left3]", lambda state: state.count('Fungus2_01[left3]', player) or state.count('Fungus2_01', player)) - hk_set_rule(hk_world, "Fungus2_01[right1]", lambda state: state.count('Fungus2_01[right1]', player) or (state.count('Fungus2_01', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)))) - hk_set_rule(hk_world, "Fungus2_02[right1]", lambda state: state.count('Fungus2_02[right1]', player) or (state.count('Can_Stag', player) and state.count("Queen's_Station_Stag", player))) - hk_set_rule(hk_world, "Fungus2_34[right1]", lambda state: state.count('Fungus2_34[right1]', player)) - hk_set_rule(hk_world, "Fungus2_03[left1]", lambda state: state.count('Fungus2_03[left1]', player) or state.count('Fungus2_03', player)) - hk_set_rule(hk_world, "Fungus2_03[bot1]", lambda state: state.count('Fungus2_03[bot1]', player) or state.count('Fungus2_03', player)) - hk_set_rule(hk_world, "Fungus2_03[right1]", lambda state: state.count('Fungus2_03[right1]', player) or state.count('Fungus2_03', player)) - hk_set_rule(hk_world, "Fungus2_04[top1]", lambda state: state.count('Fungus2_04[top1]', player) or state.count('Fungus2_04[right1]', player)) - hk_set_rule(hk_world, "Fungus2_04[right1]", lambda state: state.count('Fungus2_04[right1]', player) or state.count('Fungus2_04[top1]', player)) - hk_set_rule(hk_world, "Fungus2_04[left1]", lambda state: state.count('Fungus2_04[left1]', player) or state.count('Fungus2_04', player)) - hk_set_rule(hk_world, "Fungus2_04[right2]", lambda state: state.count('Fungus2_04[right2]', player) or state.count('Fungus2_04', player)) - hk_set_rule(hk_world, "Fungus2_05[bot1]", lambda state: state.count('Fungus2_05[bot1]', player) or (state.count('Fungus2_05[right1]', player) and state.count('Defeated_Shrumal_Ogre_Arena', player))) - hk_set_rule(hk_world, "Fungus2_05[right1]", lambda state: state.count('Fungus2_05[right1]', player) or (state.count('Fungus2_05[bot1]', player) and state.count('Defeated_Shrumal_Ogre_Arena', player))) - hk_set_rule(hk_world, "Fungus2_06[top1]", lambda state: state.count('Fungus2_06[top1]', player) or (state.count('Fungus2_06', player) and (state.count('ACID', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or state.count('Fungus2_06[right1]', player)))) - hk_set_rule(hk_world, "Fungus2_06[left1]", lambda state: state.count('Fungus2_06[left1]', player) or state.count('Fungus2_06', player)) - hk_set_rule(hk_world, "Fungus2_06[left2]", lambda state: state.count('Fungus2_06[left2]', player) or (state.count('Fungus2_06', player) and state.count('ACID', player))) - hk_set_rule(hk_world, "Fungus2_06[right1]", lambda state: state.count('Fungus2_06[right1]', player) or (state.count('Fungus2_06', player) and (state.count('ACID', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or state.count('Fungus2_06[top1]', player)))) - hk_set_rule(hk_world, "Fungus2_06[right2]", lambda state: state.count('Fungus2_06[right2]', player) or state.count('Fungus2_06', player)) - hk_set_rule(hk_world, "Fungus2_07[left1]", lambda state: state.count('Fungus2_07[left1]', player) or (state.count('Fungus2_07[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('LEFTDASH', player) or state.count('WINGS', player) or state.count('ACID', player)))) - hk_set_rule(hk_world, "Fungus2_07[right1]", lambda state: state.count('Fungus2_07[right1]', player) or state.count('Fungus2_07[left1]', player)) - hk_set_rule(hk_world, "Fungus2_08[left1]", lambda state: state.count('Fungus2_08[left1]', player) or state.count('Fungus2_08[left2]', player) or state.count('Fungus2_08[right1]', player)) - hk_set_rule(hk_world, "Fungus2_08[left2]", lambda state: state.count('Fungus2_08[left2]', player) or state.count('Fungus2_08[left1]', player) or state.count('Fungus2_08[right1]', player)) - hk_set_rule(hk_world, "Fungus2_08[right1]", lambda state: state.count('Fungus2_08[right1]', player) or state.count('Fungus2_08[left1]', player) or state.count('Fungus2_08[left2]', player)) - hk_set_rule(hk_world, "Fungus2_09[left1]", lambda state: state.count('Fungus2_09[left1]', player) or state.count('Fungus2_09[right1]', player)) - hk_set_rule(hk_world, "Fungus2_09[right1]", lambda state: state.count('Fungus2_09[right1]', player) or state.count('Fungus2_09[left1]', player)) - hk_set_rule(hk_world, "Fungus2_10[right1]", lambda state: state.count('Fungus2_10[right1]', player) or state.count('Fungus2_10[right2]', player) or state.count('Fungus2_10[bot1]', player)) - hk_set_rule(hk_world, "Fungus2_10[right2]", lambda state: state.count('Fungus2_10[right2]', player) or state.count('Fungus2_10[right1]', player) or state.count('Fungus2_10[bot1]', player)) - hk_set_rule(hk_world, "Fungus2_10[bot1]", lambda state: state.count('Fungus2_10[bot1]', player) or state.count('Fungus2_10[right1]', player) or state.count('Fungus2_10[right2]', player)) - hk_set_rule(hk_world, "Fungus2_11[top1]", lambda state: state.count('Fungus2_11[top1]', player) or state.count('Fungus2_11', player)) - hk_set_rule(hk_world, "Fungus2_11[left1]", lambda state: state.count('Fungus2_11[left1]', player) or state.count('Fungus2_11', player)) - hk_set_rule(hk_world, "Fungus2_11[left2]", lambda state: state.count('Fungus2_11[left2]', player) or (state.count('Fungus2_11', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and (state._hk_option(player, 'ObscureSkips') or state.count('LEFTDASH', player))) or ((state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Fungus2_11[right1]", lambda state: state.count('Fungus2_11[right1]', player) or state.count('Fungus2_11', player)) - hk_set_rule(hk_world, "Fungus2_12[left1]", lambda state: state.count('Fungus2_12[left1]', player) or (state.count('Fungus2_12[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Fungus2_12[bot1]", lambda state: state.count('Fungus2_12[bot1]', player) or state.count('Fungus2_12[left1]', player)) - hk_set_rule(hk_world, "Fungus2_13[top1]", lambda state: state.count('Fungus2_13[top1]', player) or (state.count('Fungus2_13', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Fungus2_13[left2]", lambda state: state.count('Fungus2_13[left2]', player) or state.count('Fungus2_13', player)) - hk_set_rule(hk_world, "Fungus2_13[left3]", lambda state: state.count('Fungus2_13[left3]', player) or (state.count('Fungus2_13', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('ACID', player) or state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'PreciseMovement')))) - hk_set_rule(hk_world, "Fungus2_14[top1]", lambda state: state.count('Fungus2_14[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Fungus2_14', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Fungus2_14[right1]", lambda state: state.count('Fungus2_14[right1]', player) or (state.count('Fungus2_14', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('ACID', player) or (state.count('RIGHTDASH', player) and state._hk_option(player, 'EnemyPogos')) or state.count('RIGHTSUPERDASH', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Fungus2_14[bot3]", lambda state: state.count('Fungus2_14[bot3]', player) or ((state.count('Fungus2_14', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) or state.count('Fungus2_14[top1]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'BackgroundObjectPogos')))))) - hk_set_rule(hk_world, "Fungus2_15[top3]", lambda state: state.count('Fungus2_15[top3]', player) or ((state.count('Fungus2_15[right1]', player) or (state.count('Fungus2_15[left1]', player) and state.count('RIGHTCLAW', player))) and (state.count('RIGHTCLAW', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Fungus2_15[right1]", lambda state: state.count('Fungus2_15[right1]', player) or (state.count('Fungus2_15[top3]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos')))) or (state.count('Fungus2_15[left1]', player) and state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Fungus2_15[left1]", lambda state: state.count('Fungus2_15[left1]', player) or ((state.count('Fungus2_15[top3]', player) or state.count('Fungus2_15[right1]', player)) and state.count('Defeated_Mantis_Lords', player))) - hk_set_rule(hk_world, "Fungus2_17[left1]", lambda state: state.count('Fungus2_17[left1]', player) or (state.count('Fungus2_17', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTDASH', player) and state.count('Fungus2_17[right1]', player))))) - hk_set_rule(hk_world, "Fungus2_17[right1]", lambda state: state.count('Fungus2_17[right1]', player) or (state.count('Fungus2_17', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))))) - hk_set_rule(hk_world, "Fungus2_17[bot1]", lambda state: state.count('Fungus2_17[bot1]', player) or state.count('Fungus2_17', player)) - hk_set_rule(hk_world, "Fungus2_18[right1]", lambda state: state.count('Fungus2_18[right1]', player)) - hk_set_rule(hk_world, "Fungus2_18[bot1]", lambda state: state.count('Fungus2_18[bot1]', player) or ((state.count('Fungus2_18[right1]', player) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos')) or state.count('Fungus2_18[top1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'ObscureSkips') or (state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips')))))))) - hk_set_rule(hk_world, "Fungus2_18[top1]", lambda state: state.count('Fungus2_18[top1]', player) or (state.count('Fungus2_18[right1]', player) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Fungus2_18[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Fungus2_19[top1]", lambda state: state.count('Fungus2_19[top1]', player) or (state.count('Fungus2_19[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Fungus2_19[left1]", lambda state: state.count('Fungus2_19[left1]', player) or (state.count('Fungus2_19[top1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTDASH', player))))) - hk_set_rule(hk_world, "Fungus2_20[right1]", lambda state: state.count('Fungus2_20[right1]', player) or state.count('Fungus2_20', player)) - hk_set_rule(hk_world, "Fungus2_20[left1]", lambda state: state.count('Fungus2_20[left1]', player) or state.count('Fungus2_20', player)) - hk_set_rule(hk_world, "Fungus2_21[right1]", lambda state: state.count('Fungus2_21[right1]', player) or (state.count('Fungus2_21[left1]', player) and (state.count('RIGHTCLAW', player) and (state.count('RIGHTDASH', player) or (state.count('WINGS', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) or state.count('RIGHTSUPERDASH', player) or state.count('ACID', player)) and state.count('CREST', player))) - hk_set_rule(hk_world, "Fungus2_21[left1]", lambda state: state.count('Fungus2_21[left1]', player) or (state.count('Fungus2_21[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) and state.count('QUAKE', player))) - hk_set_rule(hk_world, "Fungus2_23[right1]", lambda state: state.count('Fungus2_23[right1]', player) or state.count('Fungus2_23', player)) - hk_set_rule(hk_world, "Fungus2_23[right2]", lambda state: state.count('Fungus2_23[right2]', player) or (state.count('Fungus2_23', player) and state.count('Opened_Waterways_Exit', player))) - hk_set_rule(hk_world, "Fungus2_26[left1]", lambda state: state.count('Fungus2_26[left1]', player)) - hk_set_rule(hk_world, "Fungus2_28[left1]", lambda state: state.count('Fungus2_28[left1]', player) or state.count('Fungus2_28[left2]', player)) - hk_set_rule(hk_world, "Fungus2_28[left2]", lambda state: state.count('Fungus2_28[left2]', player) or state.count('Fungus2_28[left1]', player)) - hk_set_rule(hk_world, "Fungus2_29[right1]", lambda state: state.count('Fungus2_29[right1]', player) or (state.count('Fungus2_29[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Fungus2_29[bot1]", lambda state: state.count('Fungus2_29[bot1]', player) or (state.count('Fungus2_29[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) - hk_set_rule(hk_world, "Fungus2_30[bot1]", lambda state: state.count('Fungus2_30[bot1]', player) or state.count('Fungus2_30[top1]', player)) - hk_set_rule(hk_world, "Fungus2_30[top1]", lambda state: state.count('Fungus2_30[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) - hk_set_rule(hk_world, "Fungus2_31[left1]", lambda state: state.count('Fungus2_31[left1]', player)) - hk_set_rule(hk_world, "Fungus2_32[left1]", lambda state: state.count('Fungus2_32[left1]', player)) - hk_set_rule(hk_world, "Fungus2_33[right1]", lambda state: state.count('Fungus2_33[right1]', player) or state.count('Fungus2_33[left1]', player)) - hk_set_rule(hk_world, "Fungus2_33[left1]", lambda state: state.count('Fungus2_33[left1]', player) or state.count('Fungus2_33[right1]', player)) - hk_set_rule(hk_world, "Deepnest_01[right1]", lambda state: state.count('Deepnest_01[right1]', player) or state.count('Deepnest_01', player)) - hk_set_rule(hk_world, "Deepnest_01[bot1]", lambda state: state.count('Deepnest_01[bot1]', player)) - hk_set_rule(hk_world, "Deepnest_01[bot2]", lambda state: state.count('Deepnest_01[bot2]', player) or state.count('Deepnest_01', player)) - hk_set_rule(hk_world, "Deepnest_01[left1]", lambda state: state.count('Deepnest_01[left1]', player) or state.count('Deepnest_01', player)) - hk_set_rule(hk_world, "Deepnest_01b[top1]", lambda state: state.count('Deepnest_01b[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))) or (state.count('Deepnest_01b', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and (state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips')))) or (state.count('Deepnest_01b[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))))) - hk_set_rule(hk_world, "Deepnest_01b[top2]", lambda state: False) - hk_set_rule(hk_world, "Deepnest_01b[right1]", lambda state: state.count('Deepnest_01b[right1]', player)) - hk_set_rule(hk_world, "Deepnest_01b[right2]", lambda state: state.count('Deepnest_01b[right2]', player) or state.count('Deepnest_01b[top1]', player) or state.count('Deepnest_01b[top2]', player) or (state.count('Deepnest_01b', player) and (state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Deepnest_01b[bot1]", lambda state: state.count('Deepnest_01b[bot1]', player) or state.count('Deepnest_01b', player)) - hk_set_rule(hk_world, "Deepnest_02[left1]", lambda state: state.count('Deepnest_02[left1]', player) or (state.count('Deepnest_02', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Deepnest_02[left2]", lambda state: state.count('Deepnest_02[left2]', player) or state.count('Deepnest_02', player)) - hk_set_rule(hk_world, "Deepnest_02[right1]", lambda state: state.count('Deepnest_02[right1]', player) or state.count('Deepnest_02[left1]', player) or (state.count('Deepnest_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'BackgroundObjectPogos')))) - hk_set_rule(hk_world, "Deepnest_03[right1]", lambda state: state.count('Deepnest_03[right1]', player) or state.count('Deepnest_03', player)) - hk_set_rule(hk_world, "Deepnest_03[left1]", lambda state: state.count('Deepnest_03[left1]', player) or (state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('Deepnest_03[top1]', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'ObscureSkips'))))) - hk_set_rule(hk_world, "Deepnest_03[top1]", lambda state: state.count('Deepnest_03[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('Deepnest_03[left1]', player)) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'ObscureSkips')) or (state.count('LEFTCLAW', player) and (state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))))))) - hk_set_rule(hk_world, "Deepnest_03[left2]", lambda state: state.count('Deepnest_03[left2]', player) or (state.count('Deepnest_03', player) and (state.count('LEFTSUPERDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))))))) - hk_set_rule(hk_world, "Deepnest_09[left1]", lambda state: state.count('Deepnest_09[left1]', player) or (state.count('Can_Stag', player) and state.count('Distant_Village_Stag', player))) - hk_set_rule(hk_world, "Deepnest_10[right1]", lambda state: state.count('Deepnest_10[right1]', player) or (state.count('Deepnest_10', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('Deepnest_10[door1]', player) and (state.count('RIGHTCLAW', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))))) - hk_set_rule(hk_world, "Deepnest_10[right2]", lambda state: state.count('Deepnest_10[right2]', player) or state.count('Deepnest_10', player)) - hk_set_rule(hk_world, "Deepnest_10[right3]", lambda state: state.count('Deepnest_10[right3]', player) or state.count('Deepnest_10', player)) - hk_set_rule(hk_world, "Deepnest_10[door1]", lambda state: state.count('Deepnest_10[door1]', player) or (state.count('Deepnest_10', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('Deepnest_10[right1]', player)))) - hk_set_rule(hk_world, "Deepnest_10[door2]", lambda state: state.count('Deepnest_10[door2]', player) or (state.count('Deepnest_10', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('Deepnest_10[door1]', player) or state.count('Deepnest_10[right1]', player)))) - hk_set_rule(hk_world, "Room_spider_small[left1]", lambda state: state.count('Room_spider_small[left1]', player)) - hk_set_rule(hk_world, "Deepnest_Spider_Town[left1]", lambda state: state.count('Deepnest_Spider_Town[left1]', player)) - hk_set_rule(hk_world, "Deepnest_14[right1]", lambda state: state.count('Deepnest_14[right1]', player) or (state.count('Deepnest_14', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('Deepnest_14[left1]', player)))) - hk_set_rule(hk_world, "Deepnest_14[left1]", lambda state: state.count('Deepnest_14[left1]', player) or (state.count('Deepnest_14', player) and (state.count('WINGS', player) or ((state.count('RIGHTCLAW', player) or state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player))) and (state.count('LEFTCLAW', player) or state.count('LEFTDASH', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player))))))) - hk_set_rule(hk_world, "Deepnest_14[bot1]", lambda state: state.count('Deepnest_14[bot1]', player) or state.count('Deepnest_14', player)) - hk_set_rule(hk_world, "Deepnest_14[bot2]", lambda state: state.count('Deepnest_14[bot2]', player) or state.count('Deepnest_14', player)) - hk_set_rule(hk_world, "Deepnest_16[left1]", lambda state: state.count('Deepnest_16[left1]', player) or (state.count('Deepnest_16[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player))))) - hk_set_rule(hk_world, "Deepnest_16[bot1]", lambda state: state.count('Deepnest_16[bot1]', player)) - hk_set_rule(hk_world, "Deepnest_17[left1]", lambda state: state.count('Deepnest_17[left1]', player) or state.count('Deepnest_17', player)) - hk_set_rule(hk_world, "Deepnest_17[right1]", lambda state: state.count('Deepnest_17[right1]', player) or state.count('Deepnest_17', player)) - hk_set_rule(hk_world, "Deepnest_17[top1]", lambda state: state.count('Deepnest_17[top1]', player) or state.count('Deepnest_17', player)) - hk_set_rule(hk_world, "Deepnest_17[bot1]", lambda state: state.count('Deepnest_17[bot1]', player) or state.count('Deepnest_17', player)) - hk_set_rule(hk_world, "Fungus2_25[top1]", lambda state: state.count('Fungus2_25[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or ((state.count('Fungus2_25[top2]', player) or state.count('Fungus2_25[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Fungus2_25[top2]", lambda state: False) - hk_set_rule(hk_world, "Fungus2_25[right1]", lambda state: state.count('Fungus2_25[right1]', player) or ((state.count('Fungus2_25[top1]', player) or state.count('Fungus2_25[top2]', player)) and state.count('Defeated_Mantis_Lords', player))) - hk_set_rule(hk_world, "Deepnest_26[left1]", lambda state: state.count('Deepnest_26[left1]', player) or (state.count('Deepnest_26', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))) and state.count('Opened_Tramway_Exit_Gate', player))) - hk_set_rule(hk_world, "Deepnest_26[left2]", lambda state: state.count('Deepnest_26[left2]', player) or (state.count('Deepnest_26', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Deepnest_26[right1]", lambda state: state.count('Deepnest_26[right1]', player) or state.count('Deepnest_26', player)) - hk_set_rule(hk_world, "Deepnest_26[bot1]", lambda state: state.count('Deepnest_26[bot1]', player) or state.count('Deepnest_26', player)) - hk_set_rule(hk_world, "Deepnest_26b[right2]", lambda state: state.count('Deepnest_26b[right2]', player)) - hk_set_rule(hk_world, "Deepnest_26b[right1]", lambda state: state.count('Deepnest_26b[right1]', player) or (state.count('Deepnest_26b[right2]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')))))) - hk_set_rule(hk_world, "Deepnest_30[left1]", lambda state: state.count('Deepnest_30[left1]', player) or state.count('Deepnest_30[right1]', player) or (state.count('Deepnest_30[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_30[top1]", lambda state: state.count('Deepnest_30[top1]', player)) - hk_set_rule(hk_world, "Deepnest_30[right1]", lambda state: state.count('Deepnest_30[right1]', player) or state.count('Deepnest_30[left1]', player) or (state.count('Deepnest_30[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_31[right1]", lambda state: state.count('Deepnest_31[right1]', player) or (state.count('Deepnest_31[right2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Deepnest_31[right2]", lambda state: state.count('Deepnest_31[right2]', player) or (state.count('Deepnest_31[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Deepnest_32[left1]", lambda state: state.count('Deepnest_32[left1]', player)) - hk_set_rule(hk_world, "Deepnest_33[top1]", lambda state: state.count('Deepnest_33[top1]', player)) - hk_set_rule(hk_world, "Deepnest_33[top2]", lambda state: state.count('Deepnest_33[top2]', player) or ((state.count('Deepnest_33[top1]', player) or state.count('Deepnest_33[bot1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_33[bot1]", lambda state: state.count('Deepnest_33[bot1]', player) or state.count('Deepnest_33[top1]', player) or state.count('Deepnest_33[top2]', player)) - hk_set_rule(hk_world, "Deepnest_34[left1]", lambda state: state.count('Deepnest_34[left1]', player) or (state.count('Deepnest_34', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_34[right1]", lambda state: state.count('Deepnest_34[right1]', player) or (state.count('Deepnest_34', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player)))) - hk_set_rule(hk_world, "Deepnest_34[top1]", lambda state: state.count('Deepnest_34[top1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or (state.count('Deepnest_34', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player))))))) - hk_set_rule(hk_world, "Deepnest_35[left1]", lambda state: state.count('Deepnest_35[left1]', player) or state.count('Deepnest_35', player)) - hk_set_rule(hk_world, "Deepnest_35[top1]", lambda state: state.count('Deepnest_35[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Deepnest_35', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Deepnest_35[bot1]", lambda state: state.count('Deepnest_35[bot1]', player) or state.count('Deepnest_35', player)) - hk_set_rule(hk_world, "Deepnest_36[left1]", lambda state: state.count('Deepnest_36[left1]', player)) - hk_set_rule(hk_world, "Deepnest_37[left1]", lambda state: state.count('Deepnest_37[left1]', player) or state.count('Deepnest_37', player)) - hk_set_rule(hk_world, "Deepnest_37[right1]", lambda state: state.count('Deepnest_37[right1]', player) or state.count('Deepnest_37', player)) - hk_set_rule(hk_world, "Deepnest_37[top1]", lambda state: state.count('Deepnest_37[top1]', player) or state.count('Deepnest_37', player)) - hk_set_rule(hk_world, "Deepnest_37[bot1]", lambda state: state.count('Deepnest_37[bot1]', player) or state.count('Deepnest_37', player)) - hk_set_rule(hk_world, "Deepnest_38[bot1]", lambda state: state.count('Deepnest_38[bot1]', player)) - hk_set_rule(hk_world, "Deepnest_39[left1]", lambda state: state.count('Deepnest_39[left1]', player) or ((state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) or (state.count('Deepnest_39[top1]', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))))) - hk_set_rule(hk_world, "Deepnest_39[top1]", lambda state: state.count('Deepnest_39[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) or ((state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) or state.count('WINGS', player)) and (state.count('Deepnest_39', player) and (state.count('Deepnest_39[left1]', player) or state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos'))))))) - hk_set_rule(hk_world, "Deepnest_39[door1]", lambda state: state.count('Deepnest_39[door1]', player) or ((state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)))) and (state.count('Deepnest_39[right1]', player) and (state.count('RIGHTCLAW', player) or ((state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')) and state.count('WINGS', player))) or state.count('Deepnest_39[left1]', player) or state.count('Deepnest_39[top1]', player)))) - hk_set_rule(hk_world, "Deepnest_39[right1]", lambda state: state.count('Deepnest_39[right1]', player) or ((state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and state.count('Deepnest_39', player))) - hk_set_rule(hk_world, "Deepnest_40[right1]", lambda state: state.count('Deepnest_40[right1]', player)) - hk_set_rule(hk_world, "Deepnest_41[right1]", lambda state: state.count('Deepnest_41[right1]', player) or (state.count('Deepnest_41[left1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos')))) or (state.count('Deepnest_41[left2]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) - hk_set_rule(hk_world, "Deepnest_41[left1]", lambda state: state.count('Deepnest_41[left1]', player) or (state.count('Deepnest_41[right1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos')))) or (state.count('Deepnest_41[left2]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) - hk_set_rule(hk_world, "Deepnest_41[left2]", lambda state: state.count('Deepnest_41[left2]', player)) - hk_set_rule(hk_world, "Deepnest_42[bot1]", lambda state: state.count('Deepnest_42[bot1]', player) or state.count('Deepnest_42', player)) - hk_set_rule(hk_world, "Deepnest_42[left1]", lambda state: state.count('Deepnest_42[left1]', player) or state.count('Deepnest_42', player)) - hk_set_rule(hk_world, "Deepnest_42[top1]", lambda state: state.count('Deepnest_42[top1]', player) or (state.count('Deepnest_42', player) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Deepnest_43[bot1]", lambda state: state.count('Deepnest_43[bot1]', player) or ((state.count('Deepnest_43[left1]', player) or state.count('Deepnest_43[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_43[left1]", lambda state: state.count('Deepnest_43[left1]', player) or state.count('Deepnest_43[right1]', player) or (state.count('Deepnest_43[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) - hk_set_rule(hk_world, "Deepnest_43[right1]", lambda state: state.count('Deepnest_43[right1]', player) or state.count('Deepnest_43[left1]', player) or (state.count('Deepnest_43[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) - hk_set_rule(hk_world, "Deepnest_44[top1]", lambda state: state.count('Deepnest_44[top1]', player)) - hk_set_rule(hk_world, "Deepnest_45_v02[left1]", lambda state: state.count('Deepnest_45_v02[left1]', player)) - hk_set_rule(hk_world, "Room_Mask_Maker[right1]", lambda state: state.count('Room_Mask_Maker[right1]', player)) - hk_set_rule(hk_world, "Deepnest_East_01[bot1]", lambda state: state.count('Deepnest_East_01[bot1]', player) or state.count('Deepnest_East_01[right1]', player) or state.count('Deepnest_East_01[top1]', player)) - hk_set_rule(hk_world, "Deepnest_East_01[right1]", lambda state: state.count('Deepnest_East_01[right1]', player)) - hk_set_rule(hk_world, "Deepnest_East_01[top1]", lambda state: state.count('Deepnest_East_01[top1]', player) or ((state.count('Deepnest_East_01[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or state.count('Deepnest_East_01[right1]', player)) and (state.count('RIGHTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_East_02[bot1]", lambda state: state.count('Deepnest_East_02[bot1]', player) or state.count('Deepnest_East_02', player)) - hk_set_rule(hk_world, "Deepnest_East_02[bot2]", lambda state: state.count('Deepnest_East_02[bot2]', player) or (state.count('Deepnest_East_02', player) and state.count('QUAKE', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state.count('LEFTDASH', player) and state.count('WINGS', player) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Deepnest_East_02[top1]", lambda state: state.count('Deepnest_East_02[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Deepnest_East_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_East_02[right1]", lambda state: state.count('Deepnest_East_02[right1]', player) or state.count('Deepnest_East_02', player)) - hk_set_rule(hk_world, "Deepnest_East_03[left1]", lambda state: state.count('Deepnest_East_03[left1]', player) or state.count('Deepnest_East_03', player)) - hk_set_rule(hk_world, "Deepnest_East_03[left2]", lambda state: state.count('Deepnest_East_03[left2]', player) or (state.count('Deepnest_East_03', player) and state.count("Opened_Lower_Kingdom's_Edge_Wall", player))) - hk_set_rule(hk_world, "Deepnest_East_03[top1]", lambda state: state.count('Deepnest_East_03[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) or (state.count('Deepnest_East_03', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or (state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'ObscureSkips'))) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state.count('MASKSHARDS', player) > 15))))) - hk_set_rule(hk_world, "Deepnest_East_03[top2]", lambda state: False) - hk_set_rule(hk_world, "Deepnest_East_03[right1]", lambda state: state.count('Deepnest_East_03[right1]', player) or (state.count('Deepnest_East_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('Deepnest_East_03[top2]', player)))) - hk_set_rule(hk_world, "Deepnest_East_03[right2]", lambda state: state.count('Deepnest_East_03[right2]', player) or state.count('Deepnest_East_03', player)) - hk_set_rule(hk_world, "Deepnest_East_04[left1]", lambda state: state.count('Deepnest_East_04[left1]', player) or (state.count('Deepnest_East_04', player) and state.count('ACID', player))) - hk_set_rule(hk_world, "Deepnest_East_04[left2]", lambda state: state.count('Deepnest_East_04[left2]', player) or (state.count('Deepnest_East_04', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos') or state.count('Deepnest_East_04[right2]', player)))) - hk_set_rule(hk_world, "Deepnest_East_04[right2]", lambda state: state.count('Deepnest_East_04[right2]', player) or (state.count('Deepnest_East_04', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos') or state.count('Deepnest_East_04[left2]', player)) and (state.count('WINGS', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Deepnest_East_04[right1]", lambda state: state.count('Deepnest_East_04[right1]', player) or state.count('Deepnest_East_04', player)) - hk_set_rule(hk_world, "Deepnest_East_06[top1]", lambda state: state.count('Deepnest_East_06[top1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Deepnest_East_06[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos')))) or ((state.count('Deepnest_East_06[bot1]', player) or state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_06[right1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Deepnest_East_06[left1]", lambda state: state.count('Deepnest_East_06[left1]', player) or state.count('Deepnest_East_06[top1]', player) or ((state.count('Deepnest_East_06[bot1]', player) or state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_06[right1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Deepnest_East_06[bot1]", lambda state: state.count('Deepnest_East_06[bot1]', player)) - hk_set_rule(hk_world, "Deepnest_East_06[door1]", lambda state: state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_06[right1]', player) or (state.count('Deepnest_East_06[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'BackgroundObjectPogos')))) or ((state.count('Deepnest_East_06[top1]', player) or state.count('Deepnest_East_06[bot1]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) - hk_set_rule(hk_world, "Deepnest_East_06[right1]", lambda state: state.count('Deepnest_East_06[right1]', player) or state.count('Deepnest_East_06[door1]', player) or (state.count('Deepnest_East_06[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'BackgroundObjectPogos')))) or ((state.count('Deepnest_East_06[top1]', player) or state.count('Deepnest_East_06[bot1]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) - hk_set_rule(hk_world, "Deepnest_East_07[bot1]", lambda state: state.count('Deepnest_East_07[bot1]', player)) - hk_set_rule(hk_world, "Deepnest_East_07[bot2]", lambda state: state.count('Deepnest_East_07[bot2]', player) or state.count('Deepnest_East_07', player)) - hk_set_rule(hk_world, "Deepnest_East_07[left1]", lambda state: state.count('Deepnest_East_07[left1]', player) or (state.count('Deepnest_East_07', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_East_07[left2]", lambda state: state.count('Deepnest_East_07[left2]', player) or state.count('Deepnest_East_07', player)) - hk_set_rule(hk_world, "Deepnest_East_07[right1]", lambda state: state.count('Deepnest_East_07[right1]', player) or state.count('Deepnest_East_07', player)) - hk_set_rule(hk_world, "Deepnest_East_08[right1]", lambda state: state.count('Deepnest_East_08[right1]', player) or state.count('Deepnest_East_08[top1]', player)) - hk_set_rule(hk_world, "Deepnest_East_08[top1]", lambda state: state.count('Deepnest_East_08[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Deepnest_East_08[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_East_09[right1]", lambda state: state.count('Deepnest_East_09[right1]', player) or (state.count('Deepnest_East_09[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_East_09[left1]", lambda state: state.count('Deepnest_East_09[left1]', player) or state.count('Deepnest_East_09[right1]', player) or (state.count('Deepnest_East_09[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_East_09[bot1]", lambda state: state.count('Deepnest_East_09[bot1]', player) or state.count('Deepnest_East_09[right1]', player)) - hk_set_rule(hk_world, "Deepnest_East_10[left1]", lambda state: state.count('Deepnest_East_10[left1]', player)) - hk_set_rule(hk_world, "Deepnest_East_11[right1]", lambda state: state.count('Deepnest_East_11[right1]', player) or (state.count('Deepnest_East_11[top1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or state.count('FIREBALL', player) or state.count('QUAKE', player))) or ((state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[bot1]', player)) and (state.count('WINGS', player) or ((state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) - hk_set_rule(hk_world, "Deepnest_East_11[left1]", lambda state: state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[top1]', player) or state.count('Deepnest_East_11[right1]', player) or (state.count('Deepnest_East_11[bot1]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos')) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos')) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) - hk_set_rule(hk_world, "Deepnest_East_11[top1]", lambda state: state.count('Deepnest_East_11[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) or (state.count('Deepnest_East_11[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'BackgroundObjectPogos'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) or ((state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[bot1]', player)) and (state.count('WINGS', player) or ((True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'BackgroundObjectPogos'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) - hk_set_rule(hk_world, "Deepnest_East_11[bot1]", lambda state: state.count('Deepnest_East_11[bot1]', player) or state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[top1]', player) or state.count('Deepnest_East_11[right1]', player)) - hk_set_rule(hk_world, "Deepnest_East_12[right1]", lambda state: state.count('Deepnest_East_12[right1]', player) or state.count('Deepnest_East_12[left1]', player)) - hk_set_rule(hk_world, "Deepnest_East_12[left1]", lambda state: state.count('Deepnest_East_12[left1]', player) or state.count('Deepnest_East_12[right1]', player)) - hk_set_rule(hk_world, "Deepnest_East_13[bot1]", lambda state: state.count('Deepnest_East_13[bot1]', player)) - hk_set_rule(hk_world, "Deepnest_East_14[top2]", lambda state: state.count('Deepnest_East_14[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) - hk_set_rule(hk_world, "Deepnest_East_14[left1]", lambda state: state.count('Deepnest_East_14[left1]', player) or ((state.count('Deepnest_East_14[top2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and state.count('QUAKE', player) or state.count('Deepnest_East_14[door1]', player)) and (state.count('LEFTDASH', player) or state._hk_option(player, 'SpikeTunnels')))) - hk_set_rule(hk_world, "Deepnest_East_14[door1]", lambda state: state.count('Deepnest_East_14[door1]', player) or (state.count('Deepnest_East_14[top2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and state.count('QUAKE', player) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'PreciseMovement'))) or (state.count('Deepnest_East_14[left1]', player) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'SpikeTunnels')))) - hk_set_rule(hk_world, "Deepnest_East_14b[right1]", lambda state: state.count('Deepnest_East_14b[right1]', player) or state.count('Deepnest_East_14b[top1]', player)) - hk_set_rule(hk_world, "Deepnest_East_14b[top1]", lambda state: state.count('Deepnest_East_14b[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or (state.count('Deepnest_East_14b[right1]', player) and (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips') or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_East_15[left1]", lambda state: state.count('Deepnest_East_15[left1]', player)) - hk_set_rule(hk_world, "Deepnest_East_16[left1]", lambda state: state.count('Deepnest_East_16[left1]', player) or state.count('Deepnest_East_16[bot1]', player)) - hk_set_rule(hk_world, "Deepnest_East_16[bot1]", lambda state: state.count('Deepnest_East_16[bot1]', player) or (state.count('Deepnest_East_16[left1]', player) and state.count('QUAKE', player))) - hk_set_rule(hk_world, "Deepnest_East_17[left1]", lambda state: state.count('Deepnest_East_17[left1]', player)) - hk_set_rule(hk_world, "Deepnest_East_18[top1]", lambda state: state.count('Deepnest_East_18[top1]', player) or (state.count('Deepnest_East_18', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_East_18[bot1]", lambda state: state.count('Deepnest_East_18[bot1]', player) or state.count('Deepnest_East_18', player)) - hk_set_rule(hk_world, "Deepnest_East_18[right2]", lambda state: state.count('Deepnest_East_18[right2]', player) or (state.count('Deepnest_East_18', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)))) - hk_set_rule(hk_world, "Room_nailmaster_03[left1]", lambda state: state.count('Room_nailmaster_03[left1]', player)) - hk_set_rule(hk_world, "Deepnest_East_Hornet[left1]", lambda state: state.count('Deepnest_East_Hornet[left1]', player)) - hk_set_rule(hk_world, "Deepnest_East_Hornet[left2]", lambda state: state.count('Deepnest_East_Hornet[left2]', player) or (state.count('Deepnest_East_Hornet[left1]', player) and state.count('Defeated_Hornet_2', player))) - hk_set_rule(hk_world, "Room_Wyrm[right1]", lambda state: state.count('Room_Wyrm[right1]', player)) - hk_set_rule(hk_world, "GG_Lurker[left1]", lambda state: state.count('GG_Lurker[left1]', player)) - hk_set_rule(hk_world, "Hive_01[left1]", lambda state: state.count('Hive_01[left1]', player) or state.count('Hive_01[right1]', player)) - hk_set_rule(hk_world, "Hive_01[right1]", lambda state: state.count('Hive_01[right1]', player) or (state.count('Hive_01[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))))))) - hk_set_rule(hk_world, "Hive_01[right2]", lambda state: state.count('Hive_01[right2]', player)) - hk_set_rule(hk_world, "Hive_02[left1]", lambda state: state.count('Hive_02[left1]', player) or ((state.count('Hive_02[left2]', player) or state.count('Hive_02[left3]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTCLAW', player))))) - hk_set_rule(hk_world, "Hive_02[left2]", lambda state: state.count('Hive_02[left2]', player) or ((state.count('Hive_02[left1]', player) or state.count('Hive_02[left3]', player)) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos'))) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Hive_02[left3]", lambda state: state.count('Hive_02[left3]', player) or state.count('Hive_02[left2]', player) or state.count('Hive_02[left1]', player)) - hk_set_rule(hk_world, "Hive_03_c[left1]", lambda state: state.count('Hive_03_c[left1]', player) or (state.count('Hive_03_c', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Hive_03_c[right2]", lambda state: state.count('Hive_03_c[right2]', player)) - hk_set_rule(hk_world, "Hive_03_c[right3]", lambda state: state.count('Hive_03_c[right3]', player) or state.count('Hive_03_c', player)) - hk_set_rule(hk_world, "Hive_03_c[top1]", lambda state: state.count('Hive_03_c[top1]', player) or (state.count('Hive_03_c', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) or (state.count('Hive_03_c[right2]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) - hk_set_rule(hk_world, "Hive_03[bot1]", lambda state: state.count('Hive_03[bot1]', player) or state.count('Hive_03[right1]', player)) - hk_set_rule(hk_world, "Hive_03[right1]", lambda state: state.count('Hive_03[right1]', player) or (state.count('Hive_03[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Hive_03[top1]", lambda state: state.count('Hive_03[top1]', player)) - hk_set_rule(hk_world, "Hive_04[left1]", lambda state: state.count('Hive_04[left1]', player) or (state.count('Hive_04[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTDASH', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Hive_04[left2]", lambda state: state.count('Hive_04[left2]', player) or state.count('Hive_04[left1]', player) or state.count('Hive_04[right1]', player)) - hk_set_rule(hk_world, "Hive_04[right1]", lambda state: state.count('Hive_04[right1]', player) or (state.count('Hive_04[left1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Hive_05[left1]", lambda state: state.count('Hive_05[left1]', player)) - hk_set_rule(hk_world, "Room_Colosseum_01[left1]", lambda state: state.count('Room_Colosseum_01[left1]', player) or state.count('Room_Colosseum_01[bot1]', player)) - hk_set_rule(hk_world, "Room_Colosseum_01[bot1]", lambda state: state.count('Room_Colosseum_01[bot1]', player) or state.count('Room_Colosseum_01[left1]', player)) - hk_set_rule(hk_world, "Room_Colosseum_02[top1]", lambda state: state.count('Room_Colosseum_02[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Room_Colosseum_02[top2]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Room_Colosseum_02[top2]", lambda state: state.count('Room_Colosseum_02[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Room_Colosseum_02[top1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Room_Colosseum_Spectate[bot1]", lambda state: state.count('Room_Colosseum_Spectate[bot1]', player) or state.count('Room_Colosseum_Spectate[right1]', player)) - hk_set_rule(hk_world, "Room_Colosseum_Spectate[right1]", lambda state: state.count('Room_Colosseum_Spectate[right1]', player) or state.count('Room_Colosseum_Spectate[bot1]', player)) - hk_set_rule(hk_world, "Abyss_01[left1]", lambda state: state.count('Abyss_01[left1]', player) or (state.count('Abyss_01', player) and state.count('Opened_Dung_Defender_Wall', player) and ((state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or state.count('WINGS', player) or state.count('Abyss_01[right1]', player)))) - hk_set_rule(hk_world, "Abyss_01[left2]", lambda state: state.count('Abyss_01[left2]', player) or (state.count('Abyss_01', player) and (state._hk_option(player, 'SpikeTunnels') and state.count('LEFTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state._hk_option(player, 'SpikeTunnels') and state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player)))) or (state.count('Abyss_01[right2]', player) and state.count('LEFTSUPERDASH', player))) - hk_set_rule(hk_world, "Abyss_01[left3]", lambda state: state.count('Abyss_01[left3]', player) or state.count('Abyss_01', player)) - hk_set_rule(hk_world, "Abyss_01[right1]", lambda state: state.count('Abyss_01[right1]', player) or (state.count('Abyss_01', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)) or (state.count('LEFTCLAW', player) and (state.count('WINGS', player) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos')))) or (state.count('Abyss_01[left1]', player) and state.count('LEFTCLAW', player) and (state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Abyss_01[right2]", lambda state: state.count('Abyss_01[right2]', player) or (state.count('Abyss_01', player) and (state._hk_option(player, 'SpikeTunnels') and state.count('RIGHTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state._hk_option(player, 'SpikeTunnels') and state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player) and state.count('RIGHTSUPERDASH', player)))) or (state.count('Abyss_01[left2]', player) and state.count('RIGHTSUPERDASH', player))) - hk_set_rule(hk_world, "Abyss_02[right1]", lambda state: state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Abyss_02[bot1]", lambda state: state.count('Abyss_02[bot1]', player) or state.count('Abyss_02[right1]', player)) - hk_set_rule(hk_world, "Abyss_03[bot1]", lambda state: state.count('Abyss_03[bot1]', player) or state.count('Abyss_03', player) or state.count('Lower_Tram', player)) - hk_set_rule(hk_world, "Abyss_03[bot2]", lambda state: state.count('Abyss_03[bot2]', player) or state.count('Abyss_03', player) or state.count('Lower_Tram', player)) - hk_set_rule(hk_world, "Abyss_03[top1]", lambda state: state.count('Abyss_03[top1]', player) or state.count('Abyss_03', player) or state.count('Lower_Tram', player)) - hk_set_rule(hk_world, "Abyss_03_b[left1]", lambda state: state.count('Abyss_03_b[left1]', player) or state.count('Abyss_03_b', player) or state.count('Lower_Tram', player)) - hk_set_rule(hk_world, "Abyss_03_c[right1]", lambda state: state.count('Abyss_03_c[right1]', player) or state.count('Abyss_03_c', player) or state.count('Lower_Tram', player)) - hk_set_rule(hk_world, "Abyss_03_c[top1]", lambda state: state.count('Abyss_03_c[top1]', player) or ((state.count('Abyss_03_c', player) or state.count('Lower_Tram', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Abyss_04[top1]", lambda state: state.count('Abyss_04[top1]', player) or (state.count('Abyss_04', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Abyss_04[left1]", lambda state: state.count('Abyss_04[left1]', player) or state.count('Abyss_04', player)) - hk_set_rule(hk_world, "Abyss_04[bot1]", lambda state: state.count('Abyss_04[bot1]', player) or state.count('Abyss_04', player)) - hk_set_rule(hk_world, "Abyss_04[right1]", lambda state: state.count('Abyss_04[right1]', player) or (state.count('Abyss_04', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) - hk_set_rule(hk_world, "Abyss_05[left1]", lambda state: state.count('Abyss_05[left1]', player) or state.count('Abyss_05', player)) - hk_set_rule(hk_world, "Abyss_05[right1]", lambda state: state.count('Abyss_05[right1]', player) or state.count('Abyss_05', player)) - hk_set_rule(hk_world, "Abyss_06_Core[top1]", lambda state: state.count('Abyss_06_Core[top1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'PreciseMovement'))))) - hk_set_rule(hk_world, "Abyss_06_Core[left1]", lambda state: state.count('Abyss_06_Core[left1]', player) or state.count('Warp-Lifeblood_Core_to_Abyss', player) or (state.count('Abyss_06_Core', player) and (state.count('Lifeblood_Heart', player) or state.count('Lifeblood_Core', player) or state.count("Joni's_Blessing", player)) and (state.count('LEFTCLAW', player) and (state._hk_option(player, 'PreciseMovement') or state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('WINGS', player) or (state.count('Abyss_06_Core[top1]', player) and state.count('BRAND', player))))) - hk_set_rule(hk_world, "Abyss_06_Core[left3]", lambda state: state.count('Abyss_06_Core[left3]', player) or state.count('Abyss_06_Core', player)) - hk_set_rule(hk_world, "Abyss_06_Core[right2]", lambda state: state.count('Abyss_06_Core[right2]', player) or state.count('Abyss_06_Core', player)) - hk_set_rule(hk_world, "Abyss_06_Core[bot1]", lambda state: state.count('Abyss_06_Core[bot1]', player) or (state.count('Abyss_06_Core', player) and (state.count('WHITEFRAGMENT', player) > 1 and state.count('Can_Bench', player) or state.count('WHITEFRAGMENT', player) > 2))) - hk_set_rule(hk_world, "Abyss_08[right1]", lambda state: state.count('Abyss_08[right1]', player)) - hk_set_rule(hk_world, "Abyss_09[right1]", lambda state: state.count('Abyss_09[right1]', player) or (state.count('Abyss_09', player) and (state.count('Lit_Abyss_Lighthouse', player) or state.count('WHITEFRAGMENT', player) > 2) and (state.count('SWIM', player) or state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Abyss_09[right2]", lambda state: state.count('Abyss_09[right2]', player) or (state.count('Abyss_09', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Abyss_09[right3]", lambda state: state.count('Abyss_09[right3]', player)) - hk_set_rule(hk_world, "Abyss_09[left1]", lambda state: state.count('Abyss_09[left1]', player) or state.count('Abyss_09', player)) - hk_set_rule(hk_world, "Abyss_10[left1]", lambda state: state.count('Abyss_10[left1]', player) or (state.count('Abyss_10[left2]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)))) - hk_set_rule(hk_world, "Abyss_10[left2]", lambda state: state.count('Abyss_10[left2]', player) or (state.count('Abyss_10[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips')))) or ((state.count('WINGS', player) or state.count('LEFTCLAW', player)) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player) or state.count('WHITEFRAGMENT', player) > 2))))) - hk_set_rule(hk_world, "Abyss_12[right1]", lambda state: state.count('Abyss_12[right1]', player)) - hk_set_rule(hk_world, "Abyss_15[top1]", lambda state: state.count('Abyss_15[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) - hk_set_rule(hk_world, "Abyss_16[left1]", lambda state: state.count('Abyss_16[left1]', player) or (state.count('Abyss_16[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))) - hk_set_rule(hk_world, "Abyss_16[right1]", lambda state: state.count('Abyss_16[right1]', player) or (state.count('Abyss_16[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player)))) - hk_set_rule(hk_world, "Abyss_17[top1]", lambda state: state.count('Abyss_17[top1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Abyss_18[left1]", lambda state: state.count('Abyss_18[left1]', player) or (state.count('Abyss_18[right1]', player) and (state.count('WINGS', player) or state.count('LEFTSUPERDASH', player)))) - hk_set_rule(hk_world, "Abyss_18[right1]", lambda state: state.count('Abyss_18[right1]', player) or (state.count('Abyss_18[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Abyss_19[left1]", lambda state: state.count('Abyss_19[left1]', player) or (state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Broken_Vessel', player))) - hk_set_rule(hk_world, "Abyss_19[right1]", lambda state: state.count('Abyss_19[right1]', player) or (state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Abyss_19[bot2]', player) and state.count('WINGS', player))) - hk_set_rule(hk_world, "Abyss_19[bot1]", lambda state: state.count('Abyss_19[bot1]', player)) - hk_set_rule(hk_world, "Abyss_19[bot2]", lambda state: state.count('Abyss_19[bot2]', player) or (state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or state.count('Abyss_19[right1]', player)) - hk_set_rule(hk_world, "Abyss_20[top1]", lambda state: state.count('Abyss_20[top1]', player) or (state.count('Abyss_20[top2]', player) and (state.count('LEFTCLAW', player) or (state._hk_option(player, 'EnemyPogos') and state.count('WINGS', player))))) - hk_set_rule(hk_world, "Abyss_20[top2]", lambda state: state.count('Abyss_20[top2]', player) or (state.count('Abyss_20[top1]', player) and state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Abyss_21[right1]", lambda state: state.count('Abyss_21[right1]', player)) - hk_set_rule(hk_world, "Abyss_22[left1]", lambda state: state.count('Abyss_22[left1]', player) or (state.count('Can_Stag', player) and state.count('Hidden_Station_Stag', player))) - hk_set_rule(hk_world, "Abyss_Lighthouse_room[left1]", lambda state: state.count('Abyss_Lighthouse_room[left1]', player)) - hk_set_rule(hk_world, "Waterways_01[top1]", lambda state: state.count('Waterways_01[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Waterways_01', player) and state.count('Opened_Waterways_Manhole', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Waterways_01[left1]", lambda state: state.count('Waterways_01[left1]', player) or state.count('Waterways_01', player)) - hk_set_rule(hk_world, "Waterways_01[right1]", lambda state: state.count('Waterways_01[right1]', player) or (state.count('Waterways_01', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Waterways_01[bot1]", lambda state: state.count('Waterways_01[bot1]', player) or state.count('Waterways_01', player)) - hk_set_rule(hk_world, "Waterways_02[top1]", lambda state: state.count('Waterways_02[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Waterways_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state._hk_option(player, 'EnemyPogos') and state.count('WINGS', player))))) - hk_set_rule(hk_world, "Waterways_02[top2]", lambda state: state.count('Waterways_02[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Waterways_02', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player)) or ((state.count('WINGS', player) or state.count('LEFTCLAW', player)) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Waterways_02[top3]", lambda state: state.count('Waterways_02[top3]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) - hk_set_rule(hk_world, "Waterways_02[bot1]", lambda state: state.count('Waterways_02[bot1]', player) or (state.count('Waterways_02[top1]', player) and state.count('QUAKE', player)) or (state.count('Waterways_02[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('SWIM', player)) and state.count('QUAKE', player)) or (state.count('Waterways_02[top3]', player) and state.count('QUAKE', player)) or (state.count('Waterways_02[bot1]', player) and state.count('QUAKE', player)) or (state.count('Waterways_02[bot2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('SWIM', player)) and state.count('QUAKE', player))) - hk_set_rule(hk_world, "Waterways_02[bot2]", lambda state: state.count('Waterways_02[bot2]', player) or state.count('Waterways_02[top1]', player) or state.count('Waterways_02[top2]', player) or (state.count('Waterways_02[top3]', player) and state.count('QUAKE', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or (state._hk_option(player, 'EnemyPogos') and state.count('SWIM', player)) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips') and state.count('RIGHTDASH', player)))) or (state.count('Waterways_02[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state.count('SWIM', player)) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips') and state.count('RIGHTDASH', player)))) or state.count('Waterways_02[bot2]', player)) - hk_set_rule(hk_world, "Waterways_03[left1]", lambda state: state.count('Waterways_03[left1]', player)) - hk_set_rule(hk_world, "Waterways_04[bot1]", lambda state: state.count('Waterways_04[bot1]', player) or (state.count('Waterways_04[right1]', player) and state.count('QUAKE', player)) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) and state.count('QUAKE', player)) or (state.count('Waterways_04[left2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))) and state.count('QUAKE', player))) - hk_set_rule(hk_world, "Waterways_04[right1]", lambda state: state.count('Waterways_04[right1]', player) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) or (state.count('Waterways_04[left2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Waterways_04[left1]", lambda state: state.count('Waterways_04[left1]', player) or (state.count('Waterways_04[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state.count('WINGS', player))) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos')))) or (state.count('Waterways_04[left2]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Waterways_04[left2]", lambda state: state.count('Waterways_04[left2]', player) or (state.count('Waterways_04[right1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')))) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Waterways_04b[right1]", lambda state: state.count('Waterways_04b[right1]', player) or (state.count('Waterways_04b[left1]', player) and state.count('WINGS', player)) or (state.count('Waterways_04b[right2]', player) and state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player))))) - hk_set_rule(hk_world, "Waterways_04b[right2]", lambda state: state.count('Waterways_04b[right2]', player) or (state.count('Waterways_04b[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player))) or (state.count('Waterways_04b[right1]', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('LEFTSUPERDASH', player))) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player)))) - hk_set_rule(hk_world, "Waterways_04b[left1]", lambda state: state.count('Waterways_04b[left1]', player) or (state.count('Waterways_04b[right1]', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('LEFTSUPERDASH', player)))) or (state.count('Waterways_04b[right2]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player))))) - hk_set_rule(hk_world, "Waterways_05[right1]", lambda state: state.count('Waterways_05[right1]', player) or (state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Dung_Defender', player)) or state.count('Waterways_05[bot2]', player)) - hk_set_rule(hk_world, "Waterways_05[bot1]", lambda state: state.count('Waterways_05[bot1]', player)) - hk_set_rule(hk_world, "Waterways_05[bot2]", lambda state: state.count('Waterways_05[bot2]', player) or ((state.count('Waterways_05[right1]', player) or (state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Dung_Defender', player))) and state.count('QUAKE', player))) - hk_set_rule(hk_world, "Waterways_06[right1]", lambda state: state.count('Waterways_06[right1]', player) or (state.count('Waterways_06[top1]', player) and (state.count('ACID', player) or state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Waterways_06[top1]", lambda state: state.count('Waterways_06[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Waterways_06[right1]', player) and (state.count('ACID', player) or state.count('LEFTSUPERDASH', player)) and (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips') or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) or state._hk_option(player, 'EnemyPogos') or state.count('RIGHTCLAW', player))) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Waterways_07[right1]", lambda state: state.count('Waterways_07[right1]', player) or (state.count('Lever-Dung_Defender', player) and (state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state.count('Waterways_07[door1]', player) or state.count('Waterways_07[top1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))))) - hk_set_rule(hk_world, "Waterways_07[right2]", lambda state: state.count('Waterways_07[right2]', player) or (state.count('Waterways_07', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Waterways_07[left1]", lambda state: state.count('Waterways_07[left1]', player) or (state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('ACID', player) or (state.count('LEFTDASH', player) and state.count('WINGS', player)))) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and (state.count('ACID', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))) and (state.count('LEFTSUPERDASH', player) or (state.count('ACID', player) and state.count('WINGS', player))))) - hk_set_rule(hk_world, "Waterways_07[door1]", lambda state: state.count('Waterways_07[door1]', player) or (state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('Waterways_07[top1]', player) and state.count('WINGS', player))) - hk_set_rule(hk_world, "Waterways_07[top1]", lambda state: state.count('Waterways_07[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Waterways_08[top1]", lambda state: state.count('Waterways_08[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Waterways_08[left1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))) or (state.count('Waterways_08[left2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Waterways_08[left1]", lambda state: state.count('Waterways_08[left1]', player) or (state.count('Waterways_08[top1]', player) and (state._hk_option(player, 'EnemyPogos') or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player))) or state.count('Waterways_08[left2]', player)) - hk_set_rule(hk_world, "Waterways_08[left2]", lambda state: state.count('Waterways_08[left2]', player) or (state.count('Waterways_08[left1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Waterways_09[right1]", lambda state: state.count('Waterways_09[right1]', player) or state.count('Waterways_09[left1]', player)) - hk_set_rule(hk_world, "Waterways_09[left1]", lambda state: state.count('Waterways_09[left1]', player) or (state.count('Waterways_09[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))))) - hk_set_rule(hk_world, "Waterways_12[right1]", lambda state: state.count('Waterways_12[right1]', player)) - hk_set_rule(hk_world, "Waterways_13[left1]", lambda state: state.count('Waterways_13[left1]', player) or (state.count('Waterways_13[left2]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Waterways_13[left2]", lambda state: state.count('Waterways_13[left2]', player) or (state.count('Waterways_13[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Waterways_14[bot1]", lambda state: state.count('Waterways_14[bot1]', player) or (state.count('Waterways_14[bot2]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and (state.count('ACID', player) or state.count('LEFTSUPERDASH', player)))) - hk_set_rule(hk_world, "Waterways_14[bot2]", lambda state: state.count('Waterways_14[bot2]', player) or (state.count('Waterways_14[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('ACID', player) or state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Waterways_15[top1]", lambda state: state.count('Waterways_15[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) - hk_set_rule(hk_world, "GG_Pipeway[right1]", lambda state: state.count('GG_Pipeway[right1]', player) or (state.count('GG_Pipeway[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "GG_Pipeway[left1]", lambda state: state.count('GG_Pipeway[left1]', player) or (state.count('GG_Pipeway[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "GG_Waterways[right1]", lambda state: state.count('GG_Waterways[right1]', player) or (state.count('GG_Waterways[door1]', player) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))))) - hk_set_rule(hk_world, "GG_Waterways[door1]", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and ((state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('RIGHTSUPERDASH', player) and state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('WINGS', player) and state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player) and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Room_GG_Shortcut[left1]", lambda state: state.count('Room_GG_Shortcut[left1]', player) or (state.count('Room_GG_Shortcut[top1]', player) and (state.count('WINGS', player) or state.count('SWIM', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Room_GG_Shortcut[top1]", lambda state: state.count('Room_GG_Shortcut[top1]', player) and (state.count('WINGS', player) or state.count('LEFTCLAW', player)) or (state.count('Room_GG_Shortcut[left1]', player) and (state.count('WINGS', player) or state.count('LEFTCLAW', player)) and (state.count('RIGHTCLAW', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and state.count('SWIM', player))) or (state.count('LEFTCLAW', player) and state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))))) - hk_set_rule(hk_world, "Ruins1_01[left1]", lambda state: state.count('Ruins1_01[left1]', player) or state.count('Ruins1_01[top1]', player) or (state.count('Ruins1_01[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Ruins1_01[top1]", lambda state: state.count('Ruins1_01[top1]', player) or state.count('Ruins1_01[left1]', player) or (state.count('Ruins1_01[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Ruins1_01[bot1]", lambda state: state.count('Ruins1_01[bot1]', player) or state.count('Ruins1_01[top1]', player) or state.count('Ruins1_01[left1]', player)) - hk_set_rule(hk_world, "Ruins1_02[top1]", lambda state: state.count('Ruins1_02[top1]', player) or (state.count('Ruins1_02[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Ruins1_02[bot1]", lambda state: state.count('Ruins1_02[bot1]', player) or state.count('Ruins1_02[top1]', player)) - hk_set_rule(hk_world, "Ruins1_03[top1]", lambda state: state.count('Ruins1_03[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Ruins1_03', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Ruins1_03[left1]", lambda state: state.count('Ruins1_03[left1]', player) or state.count('Ruins1_03', player)) - hk_set_rule(hk_world, "Ruins1_03[right1]", lambda state: state.count('Ruins1_03[right1]', player) or state.count('Ruins1_03', player)) - hk_set_rule(hk_world, "Ruins1_03[right2]", lambda state: state.count('Ruins1_03[right2]', player) or state.count('Ruins1_03', player)) - hk_set_rule(hk_world, "Ruins1_04[right1]", lambda state: state.count('Ruins1_04[right1]', player) or state.count('Ruins1_04[door1]', player) or (state.count('Ruins1_04[bot1]', player) and (state._hk_option(player, 'EnemyPogos') or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'PreciseMovement'))))) - hk_set_rule(hk_world, "Ruins1_04[door1]", lambda state: state.count('Ruins1_04[door1]', player) or ((state.count('Ruins1_04[bot1]', player) or (state.count('Ruins1_04[right1]', player) and (state._hk_option(player, 'EnemyPogos') or state.count('LEFTDASH', player) or state.count('WINGS', player) or state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'PreciseMovement'))))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('RIGHTDASH', player)))))) - hk_set_rule(hk_world, "Ruins1_04[bot1]", lambda state: state.count('Ruins1_04[bot1]', player)) - hk_set_rule(hk_world, "Ruins1_05b[left1]", lambda state: state.count('Ruins1_05b[left1]', player) or state.count('Ruins1_05b', player)) - hk_set_rule(hk_world, "Ruins1_05b[top1]", lambda state: state.count('Ruins1_05b[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) - hk_set_rule(hk_world, "Ruins1_05b[bot1]", lambda state: state.count('Ruins1_05b[bot1]', player) or (state.count('Ruins1_05b', player) and state.count('Opened_Waterways_Manhole', player))) - hk_set_rule(hk_world, "Ruins1_05b[right1]", lambda state: state.count('Ruins1_05b[right1]', player) or state.count('Ruins1_05b', player)) - hk_set_rule(hk_world, "Ruins1_05c[left2]", lambda state: state.count('Ruins1_05c[left2]', player) or state.count('Ruins1_05c', player)) - hk_set_rule(hk_world, "Ruins1_05c[bot1]", lambda state: state.count('Ruins1_05c[bot1]', player) or state.count('Ruins1_05c', player)) - hk_set_rule(hk_world, "Ruins1_05c[top1]", lambda state: state.count('Ruins1_05c[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('Ruins1_05c', player) and (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips'))) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos') or state.count('Ruins1_05c[top2]', player)))))) - hk_set_rule(hk_world, "Ruins1_05c[top2]", lambda state: state.count('Ruins1_05c[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Ruins1_05c[top3]", lambda state: state.count('Ruins1_05c[top3]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or (state.count('Ruins1_05c[top2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Ruins1_05[bot1]", lambda state: state.count('Ruins1_05[bot1]', player)) - hk_set_rule(hk_world, "Ruins1_05[bot2]", lambda state: state.count('Ruins1_05[bot2]', player) or (state.count('Ruins1_05[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')))))) - hk_set_rule(hk_world, "Ruins1_05[bot3]", lambda state: state.count('Ruins1_05[bot3]', player) or state.count('Ruins1_05', player)) - hk_set_rule(hk_world, "Ruins1_05[right1]", lambda state: state.count('Ruins1_05[right1]', player) or (state.count('Ruins1_05', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('Ruins1_05[top1]', player)))) - hk_set_rule(hk_world, "Ruins1_05[right2]", lambda state: state.count('Ruins1_05[right2]', player) or state.count('Ruins1_05', player)) - hk_set_rule(hk_world, "Ruins1_05[top1]", lambda state: state.count('Ruins1_05[top1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state._hk_option(player, 'PreciseMovement')))) or (state.count('Ruins1_05', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and (state.count('WINGS', player) or state.count('LEFTCLAW', player) or state.count('Ruins1_05[right1]', player)))) - hk_set_rule(hk_world, "Ruins1_06[left1]", lambda state: state.count('Ruins1_06[left1]', player) or state.count('Ruins1_06[right1]', player)) - hk_set_rule(hk_world, "Ruins1_06[right1]", lambda state: state.count('Ruins1_06[right1]', player) or state.count('Ruins1_06[left1]', player)) - hk_set_rule(hk_world, "Ruins1_09[top1]", lambda state: state.count('Ruins1_09[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Ruins1_09[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Ruins1_09[left1]", lambda state: state.count('Ruins1_09[left1]', player) or state.count('Ruins1_09[top1]', player)) - hk_set_rule(hk_world, "Ruins1_17[top1]", lambda state: state.count('Ruins1_17[top1]', player) or state.count('Ruins1_17[right1]', player)) - hk_set_rule(hk_world, "Ruins1_17[right1]", lambda state: state.count('Ruins1_17[right1]', player) or state.count('Ruins1_17[top1]', player)) - hk_set_rule(hk_world, "Ruins1_17[bot1]", lambda state: state.count('Ruins1_17[bot1]', player) or state.count('Ruins1_17[top1]', player) or state.count('Ruins1_17[right1]', player)) - hk_set_rule(hk_world, "Ruins1_18[left1]", lambda state: state.count('Ruins1_18[left1]', player) or state.count('Ruins1_18[right1]', player)) - hk_set_rule(hk_world, "Ruins1_18[right1]", lambda state: state.count('Ruins1_18[right1]', player)) - hk_set_rule(hk_world, "Ruins1_18[right2]", lambda state: state.count('Ruins1_18[right2]', player)) - hk_set_rule(hk_world, "Ruins1_23[top1]", lambda state: state.count('Ruins1_23[top1]', player) and state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement') or (state.count('Ruins1_23', player) and state.count('Defeated_Sanctum_Warrior', player) and state.count('Broke_Sanctum_Glass_Floor', player) and state.count('WINGS', player) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player))) or state._hk_option(player, 'BackgroundObjectPogos')))) - hk_set_rule(hk_world, "Ruins1_23[right1]", lambda state: state.count('Ruins1_23[right1]', player) or ((state.count('Ruins1_23', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'EnemyPogos'))) or state.count('Ruins1_23[top1]', player)) and state.count('Defeated_Sanctum_Warrior', player))) - hk_set_rule(hk_world, "Ruins1_23[right2]", lambda state: state.count('Ruins1_23[right2]', player)) - hk_set_rule(hk_world, "Ruins1_23[bot1]", lambda state: state.count('Ruins1_23[bot1]', player) or state.count('Ruins1_23', player)) - hk_set_rule(hk_world, "Ruins1_23[left1]", lambda state: state.count('Ruins1_23[left1]', player) or state.count('Ruins1_23', player)) - hk_set_rule(hk_world, "Ruins1_24[left1]", lambda state: state.count('Ruins1_24[left1]', player) or (state.count('Ruins1_24[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player))) and state.count('Defeated_Soul_Master', player))) - hk_set_rule(hk_world, "Ruins1_24[right1]", lambda state: state.count('Ruins1_24[right1]', player)) - hk_set_rule(hk_world, "Ruins1_24[left2]", lambda state: state.count('Ruins1_24[left2]', player) or state.count('Ruins1_24[right2]', player)) - hk_set_rule(hk_world, "Ruins1_24[right2]", lambda state: state.count('Ruins1_24[right2]', player) or state.count('Ruins1_24[left2]', player)) - hk_set_rule(hk_world, "Ruins1_25[left1]", lambda state: state.count('Ruins1_25[left1]', player) or ((state.count('Ruins1_25[left2]', player) or state.count('Ruins1_25[left3]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Ruins1_25[left2]", lambda state: state.count('Ruins1_25[left2]', player) or ((state.count('Ruins1_25[left1]', player) or state.count('Ruins1_25[left3]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Ruins1_25[left3]", lambda state: state.count('Ruins1_25[left3]', player) or (state.count('Ruins1_25[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or state.count('Ruins1_25[left2]', player)) - hk_set_rule(hk_world, "Ruins1_27[left1]", lambda state: state.count('Ruins1_27[left1]', player) or state.count('Ruins1_27[right1]', player)) - hk_set_rule(hk_world, "Ruins1_27[right1]", lambda state: state.count('Ruins1_27[right1]', player) or (state.count('Ruins1_27[left1]', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player))) - hk_set_rule(hk_world, "Ruins1_28[left1]", lambda state: state.count('Ruins1_28[left1]', player) or state.count('Ruins1_28', player)) - hk_set_rule(hk_world, "Ruins1_28[right1]", lambda state: state.count('Ruins1_28[right1]', player) or state.count('Ruins1_28', player)) - hk_set_rule(hk_world, "Ruins1_28[bot1]", lambda state: state.count('Ruins1_28[bot1]', player) or state.count('Ruins1_28', player)) - hk_set_rule(hk_world, "Ruins1_29[left1]", lambda state: state.count('Ruins1_29[left1]', player) or (state.count('Can_Stag', player) and state.count('City_Storerooms_Stag', player))) - hk_set_rule(hk_world, "Ruins1_30[left1]", lambda state: state.count('Ruins1_30[left1]', player) or (state.count('Ruins1_30', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Ruins1_30[left2]", lambda state: state.count('Ruins1_30[left2]', player)) - hk_set_rule(hk_world, "Ruins1_30[bot1]", lambda state: state.count('Ruins1_30[bot1]', player) or (state.count('Ruins1_30', player) and state.count('QUAKE', player))) - hk_set_rule(hk_world, "Ruins1_30[right1]", lambda state: state.count('Ruins1_30[right1]', player) or (state.count('Ruins1_30', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Ruins1_30[left1]', player)))) - hk_set_rule(hk_world, "Ruins1_31[bot1]", lambda state: state.count('Ruins1_31[bot1]', player) or state.count('Ruins1_31', player) or state.count('Ruins1_31[left1]', player)) - hk_set_rule(hk_world, "Ruins1_31[left1]", lambda state: state.count('Ruins1_31[left1]', player) or state.count('Ruins1_31', player) or state.count('Ruins1_31[bot1]', player)) - hk_set_rule(hk_world, "Ruins1_31[left2]", lambda state: state.count('Ruins1_31[left2]', player) or (state.count('Ruins1_31', player) and state.count('Lever-Shade_Soul', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Ruins1_31[left3]", lambda state: state.count('Ruins1_31[left3]', player) or (state.count('Ruins1_31', player) and state.count('ELEGANT', player))) - hk_set_rule(hk_world, "Ruins1_31[right1]", lambda state: state.count('Ruins1_31[right1]', player) or state.count('Ruins1_31', player)) - hk_set_rule(hk_world, "Ruins1_31b[right1]", lambda state: state.count('Ruins1_31b[right1]', player) or (state.count('Ruins1_31b[right2]', player) and state.count('Defeated_Elegant_Warrior', player))) - hk_set_rule(hk_world, "Ruins1_31b[right2]", lambda state: state.count('Ruins1_31b[right2]', player) or (state.count('Ruins1_31b[right1]', player) and state.count('Defeated_Elegant_Warrior', player))) - hk_set_rule(hk_world, "Ruins1_32[right1]", lambda state: state.count('Ruins1_32[right1]', player)) - hk_set_rule(hk_world, "Ruins1_32[right2]", lambda state: state.count('Ruins1_32[right2]', player) or (state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player))) - hk_set_rule(hk_world, "Room_nailsmith[left1]", lambda state: state.count('Room_nailsmith[left1]', player)) - hk_set_rule(hk_world, "Ruins2_01[top1]", lambda state: state.count('Ruins2_01[top1]', player) or (state.count('Ruins2_01', player) and (state.count('Ruins2_01[left2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player))) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Ruins2_01[bot1]", lambda state: state.count('Ruins2_01[bot1]', player) or state.count('Ruins2_01', player)) - hk_set_rule(hk_world, "Ruins2_01[left2]", lambda state: state.count('Ruins2_01[left2]', player) or (state.count('Ruins2_01', player) and (state.count('Ruins2_01[top1]', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player))) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "Ruins2_01_b[top1]", lambda state: state.count('Ruins2_01_b[top1]', player) or (state.count('Ruins2_01_b', player) and (state.count('LEFTCLAW', player) and state._hk_option(player, 'BackgroundObjectPogos') or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Ruins2_01_b[left1]", lambda state: state.count('Ruins2_01_b[left1]', player) or state.count('Ruins2_01_b', player)) - hk_set_rule(hk_world, "Ruins2_01_b[right1]", lambda state: state.count('Ruins2_01_b[right1]', player) or state.count('Ruins2_01_b', player)) - hk_set_rule(hk_world, "Ruins2_03b[top1]", lambda state: state.count('Ruins2_03b[top1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or (state.count('Ruins2_03b', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))))) - hk_set_rule(hk_world, "Ruins2_03b[top2]", lambda state: state.count('Ruins2_03b[top2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Ruins2_03b', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Ruins2_03b[left1]", lambda state: state.count('Ruins2_03b[left1]', player) or state.count('Ruins2_03b', player)) - hk_set_rule(hk_world, "Ruins2_03b[bot1]", lambda state: state.count('Ruins2_03b[bot1]', player) or state.count('Ruins2_03b', player)) - hk_set_rule(hk_world, "Ruins2_03[top1]", lambda state: state.count('Ruins2_03[top1]', player) or (state.count('Ruins2_03[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('Defeated_Watcher_Knights', player))) - hk_set_rule(hk_world, "Ruins2_03[bot1]", lambda state: state.count('Ruins2_03[bot1]', player) or (state.count('Ruins2_03[top1]', player) and state.count('Defeated_Watcher_Knights', player))) - hk_set_rule(hk_world, "Ruins2_03[bot2]", lambda state: state.count('Ruins2_03[bot2]', player)) - hk_set_rule(hk_world, "Ruins2_04[left1]", lambda state: state.count('Ruins2_04[left1]', player) or state.count('Ruins2_04', player)) - hk_set_rule(hk_world, "Ruins2_04[left2]", lambda state: state.count('Ruins2_04[left2]', player) or state.count('Ruins2_04', player)) - hk_set_rule(hk_world, "Ruins2_04[right1]", lambda state: state.count('Ruins2_04[right1]', player) or (state.count('Ruins2_04', player) and ((state.count('LEFTDASH', player) or state.count('LEFTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Ruins2_04[door_Ruin_House_02]', player) or (state.count('Ruins2_04[door_Ruin_Elevator]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) - hk_set_rule(hk_world, "Ruins2_04[right2]", lambda state: state.count('Ruins2_04[right2]', player) or state.count('Ruins2_04', player)) - hk_set_rule(hk_world, "Ruins2_04[door_Ruin_House_01]", lambda state: state.count('Ruins2_04[door_Ruin_House_01]', player) or (state.count('Ruins2_04', player) and ((state.count('LEFTDASH', player) or state.count('LEFTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Ruins2_04[right1]', player) or state.count('Ruins2_04[door_Ruin_House_02]', player) or (state.count('Ruins2_04[door_Ruin_Elevator]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('RIGHTSUPERDASH', player)))))) - hk_set_rule(hk_world, "Ruins2_04[door_Ruin_House_02]", lambda state: state.count('Ruins2_04[door_Ruin_House_02]', player) or (state.count('Ruins2_04', player) and ((state.count('LEFTDASH', player) or state.count('LEFTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Ruins2_04[right1]', player) or (state.count('Ruins2_04[door_Ruin_Elevator]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))))) - hk_set_rule(hk_world, "Ruins2_04[door_Ruin_House_03]", lambda state: state.count('Ruins2_04[door_Ruin_House_03]', player) or (state.count('Ruins2_04', player) and state.count('Opened_Emilitia_Door', player))) - hk_set_rule(hk_world, "Ruins2_04[door_Ruin_Elevator]", lambda state: state.count('Ruins2_04[door_Ruin_Elevator]', player) or (state.count('Ruins2_04', player) and state.count('SIMPLE', player) > 3 and ((state.count('LEFTDASH', player) or state.count('LEFTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Ruins2_04[right1]', player) or state.count('Ruins2_04[door_Ruin_House_02]', player)))) - hk_set_rule(hk_world, "Ruins2_05[left1]", lambda state: state.count('Ruins2_05[left1]', player) or state.count('Ruins2_05[top1]', player) or (state.count('Ruins2_05[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Ruins2_05[top1]", lambda state: state.count('Ruins2_05[top1]', player) or ((state.count('Ruins2_05[left1]', player) or state.count('Ruins2_05[bot1]', player)) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Ruins2_05[bot1]", lambda state: state.count('Ruins2_05[bot1]', player) or state.count('Ruins2_05[left1]', player) or state.count('Ruins2_05[top1]', player)) - hk_set_rule(hk_world, "Ruins2_06[left1]", lambda state: state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or (state.count('Ruins2_06[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[right2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[left2]', player) and (state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Ruins2_06[left2]", lambda state: state.count('Ruins2_06[left2]', player) or ((state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or state.count('Ruins2_06[right1]', player) or state.count('Ruins2_06[right2]', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state.count('WINGS', player) or state.count('SWIM', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips')) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)))) - hk_set_rule(hk_world, "Ruins2_06[right1]", lambda state: state.count('Ruins2_06[right1]', player) or state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or state.count('Ruins2_06[right1]', player) or (state.count('Ruins2_06[right2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[left2]', player) and (state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Ruins2_06[right2]", lambda state: state.count('Ruins2_06[right2]', player) or state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or state.count('Ruins2_06[right1]', player) or state.count('Ruins2_06[right2]', player) or (state.count('Ruins2_06[left2]', player) and (state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'PreciseMovement'))))) - hk_set_rule(hk_world, "Ruins2_06[top1]", lambda state: state.count('Ruins2_06[top1]', player) or state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or (state.count('Ruins2_06[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[right2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[left2]', player) and (state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Ruins2_07[right1]", lambda state: state.count('Ruins2_07[right1]', player) or (state.count('Ruins2_07[left1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state._hk_option(player, 'DifficultSkips') and state._hk_option(player, 'AcidSkips') and state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and state.count('Can_Bench', player)) and True))))) or state.count('Ruins2_07[right1]', player) or state.count('Ruins2_07[top1]', player)) - hk_set_rule(hk_world, "Ruins2_07[left1]", lambda state: state.count('Ruins2_07[left1]', player) or state.count('Ruins2_07[left1]', player) or (state.count('Ruins2_07[right1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'AcidSkips') and state.count('LEFTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and state.count('Can_Bench', player)) and True))))) or (state.count('Ruins2_07[top1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'AcidSkips') and state.count('LEFTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and state.count('Can_Bench', player)) and True)))))) - hk_set_rule(hk_world, "Ruins2_07[top1]", lambda state: state.count('Ruins2_07[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Ruins2_07[left1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'AcidSkips') and state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and state.count('Can_Bench', player)) and True)))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Ruins2_07[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('SWIM', player) or state.count('LEFTDASH', player))))) or (state.count('Ruins2_07[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Ruins2_08[left1]", lambda state: state.count('Ruins2_08[left1]', player) or (state.count('Can_Stag', player) and state.count("King's_Station_Stag", player))) - hk_set_rule(hk_world, "Ruins2_09[bot1]", lambda state: state.count('Ruins2_09[bot1]', player)) - hk_set_rule(hk_world, "Ruins2_10[right1]", lambda state: state.count('Ruins2_10[right1]', player) or (state.count('Right_Elevator', player) and state.count('Opened_Resting_Grounds_Catacombs_Wall', player))) - hk_set_rule(hk_world, "Ruins2_10[left1]", lambda state: state.count('Ruins2_10[left1]', player) or state.count('Right_Elevator', player)) - hk_set_rule(hk_world, "Ruins2_10b[right1]", lambda state: state.count('Ruins2_10b[right1]', player) or ((state.count('Right_Elevator', player) or state.count('Ruins2_10b[right2]', player)) and (state.count('LEFTCLAW', player) and state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and state.count('LEFTDASH', player)) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)))) or (state.count('Ruins2_10b[left1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and state.count('LEFTDASH', player))))) - hk_set_rule(hk_world, "Ruins2_10b[right2]", lambda state: state.count('Ruins2_10b[right2]', player) or state.count('Ruins2_10b[left1]', player) or state.count('Ruins2_10b[right1]', player) or state.count('Right_Elevator', player)) - hk_set_rule(hk_world, "Ruins2_10b[left1]", lambda state: state.count('Ruins2_10b[left1]', player) or ((state.count('Right_Elevator', player) or state.count('Ruins2_10b[right1]', player) or state.count('Ruins2_10b[right2]', player)) and state.count('Opened_Pleasure_House_Wall', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('Ruins2_10b[right1]', player)))) - hk_set_rule(hk_world, "Ruins2_11_b[right1]", lambda state: state.count('Ruins2_11_b[right1]', player) or state.count('Ruins2_11_b[left1]', player)) - hk_set_rule(hk_world, "Ruins2_11_b[left1]", lambda state: state.count('Ruins2_11_b[left1]', player) or (state.count('Ruins2_11_b[right1]', player) and state.count('LOVE', player))) - hk_set_rule(hk_world, "Ruins2_11_b[bot1]", lambda state: state.count('Ruins2_11_b[bot1]', player) or state.count('Ruins2_11_b[right1]', player) or state.count('Ruins2_11_b[left1]', player)) - hk_set_rule(hk_world, "Ruins2_11[right1]", lambda state: state.count('Ruins2_11[right1]', player)) - hk_set_rule(hk_world, "Ruins2_Watcher_Room[bot1]", lambda state: state.count('Ruins2_Watcher_Room[bot1]', player)) - hk_set_rule(hk_world, "Ruins_House_01[left1]", lambda state: state.count('Ruins_House_01[left1]', player)) - hk_set_rule(hk_world, "Ruins_House_02[left1]", lambda state: state.count('Ruins_House_02[left1]', player)) - hk_set_rule(hk_world, "Ruins_House_03[left1]", lambda state: state.count('Ruins_House_03[left1]', player) or (state.count('Ruins_House_03[left2]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Ruins_House_03[left2]", lambda state: state.count('Ruins_House_03[left2]', player) or state.count('Ruins_House_03[left1]', player)) - hk_set_rule(hk_world, "Ruins_Elevator[left1]", lambda state: state.count('Ruins_Elevator[left1]', player) or state.count('Ruins_Elevator[left2]', player)) - hk_set_rule(hk_world, "Ruins_Elevator[left2]", lambda state: state.count('Ruins_Elevator[left2]', player) or state.count('Ruins_Elevator[left1]', player)) - hk_set_rule(hk_world, "Ruins_Bathhouse[door1]", lambda state: state.count('Ruins_Bathhouse[door1]', player) or state.count('Ruins_Bathhouse[right1]', player)) - hk_set_rule(hk_world, "Ruins_Bathhouse[right1]", lambda state: state.count('Ruins_Bathhouse[right1]', player) or state.count('Ruins_Bathhouse[door1]', player)) - hk_set_rule(hk_world, "RestingGrounds_02[right1]", lambda state: state.count('RestingGrounds_02[right1]', player) or state.count('RestingGrounds_02', player)) - hk_set_rule(hk_world, "RestingGrounds_02[left1]", lambda state: state.count('RestingGrounds_02[left1]', player) or state.count('RestingGrounds_02', player)) - hk_set_rule(hk_world, "RestingGrounds_02[bot1]", lambda state: state.count('RestingGrounds_02[bot1]', player) or (state.count('RestingGrounds_02', player) and state.count('Opened_Resting_Grounds_Floor', player))) - hk_set_rule(hk_world, "RestingGrounds_02[top1]", lambda state: False) - hk_set_rule(hk_world, "RestingGrounds_04[left1]", lambda state: state.count('RestingGrounds_04[left1]', player) or state.count('RestingGrounds_04[right1]', player)) - hk_set_rule(hk_world, "RestingGrounds_04[right1]", lambda state: state.count('RestingGrounds_04[right1]', player) or state.count('RestingGrounds_04[left1]', player)) - hk_set_rule(hk_world, "RestingGrounds_05[left1]", lambda state: state.count('RestingGrounds_05[left1]', player) or state.count('RestingGrounds_05', player)) - hk_set_rule(hk_world, "RestingGrounds_05[left2]", lambda state: state.count('RestingGrounds_05[left2]', player) or state.count('RestingGrounds_05', player)) - hk_set_rule(hk_world, "RestingGrounds_05[left3]", lambda state: state.count('RestingGrounds_05[left3]', player) or state.count('RestingGrounds_05', player)) - hk_set_rule(hk_world, "RestingGrounds_05[right1]", lambda state: state.count('RestingGrounds_05[right1]', player) or (state.count('RestingGrounds_05', player) and state.count('Opened_Glade_Door', player))) - hk_set_rule(hk_world, "RestingGrounds_05[right2]", lambda state: state.count('RestingGrounds_05[right2]', player) or state.count('RestingGrounds_05', player)) - hk_set_rule(hk_world, "RestingGrounds_05[bot1]", lambda state: state.count('RestingGrounds_05[bot1]', player) or (state.count('RestingGrounds_05', player) and state.count('QUAKE', player))) - hk_set_rule(hk_world, "RestingGrounds_06[left1]", lambda state: state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[right1]', player) or state.count('RestingGrounds_06[top1]', player)) - hk_set_rule(hk_world, "RestingGrounds_06[right1]", lambda state: state.count('RestingGrounds_06[right1]', player) or state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[top1]', player)) - hk_set_rule(hk_world, "RestingGrounds_06[top1]", lambda state: state.count('RestingGrounds_06[top1]', player) or ((state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[right1]', player)) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "RestingGrounds_07[right1]", lambda state: state.count('RestingGrounds_07[right1]', player)) - hk_set_rule(hk_world, "RestingGrounds_08[left1]", lambda state: state.count('RestingGrounds_08[left1]', player)) - hk_set_rule(hk_world, "RestingGrounds_09[left1]", lambda state: state.count('RestingGrounds_09[left1]', player) or (state.count('Can_Stag', player) and state.count('Resting_Grounds_Stag', player))) - hk_set_rule(hk_world, "RestingGrounds_10[left1]", lambda state: state.count('RestingGrounds_10[left1]', player) or state.count('RestingGrounds_10', player)) - hk_set_rule(hk_world, "RestingGrounds_10[top1]", lambda state: state.count('RestingGrounds_10[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) - hk_set_rule(hk_world, "RestingGrounds_10[top2]", lambda state: state.count('RestingGrounds_10[top2]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or state._hk_option(player, 'PreciseMovement')))) or (state.count('RestingGrounds_10', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) - hk_set_rule(hk_world, "RestingGrounds_12[bot1]", lambda state: state.count('RestingGrounds_12[bot1]', player) or state.count('RestingGrounds_12[door_Mansion]', player)) - hk_set_rule(hk_world, "RestingGrounds_12[door_Mansion]", lambda state: state.count('RestingGrounds_12[door_Mansion]', player) or state.count('RestingGrounds_12[bot1]', player)) - hk_set_rule(hk_world, "RestingGrounds_17[right1]", lambda state: state.count('RestingGrounds_17[right1]', player)) - hk_set_rule(hk_world, "Room_Mansion[left1]", lambda state: state.count('Room_Mansion[left1]', player)) - hk_set_rule(hk_world, "Mines_01[bot1]", lambda state: state.count('Mines_01[bot1]', player) or (state.count('Mines_01[left1]', player) and state.count('QUAKE', player))) - hk_set_rule(hk_world, "Mines_01[left1]", lambda state: state.count('Mines_01[left1]', player)) - hk_set_rule(hk_world, "Mines_02[top1]", lambda state: state.count('Mines_02[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Mines_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Mines_02[top2]", lambda state: state.count('Mines_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Mines_02[left1]", lambda state: state.count('Mines_02[left1]', player) or state.count('Mines_02', player)) - hk_set_rule(hk_world, "Mines_02[right1]", lambda state: state.count('Mines_02[right1]', player) or state.count('Mines_02', player)) - hk_set_rule(hk_world, "Mines_03[right1]", lambda state: state.count('Mines_03[right1]', player) or (state.count('Mines_03', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('Mines_03[top1]', player)))) - hk_set_rule(hk_world, "Mines_03[bot1]", lambda state: state.count('Mines_03[bot1]', player) or state.count('Mines_03', player)) - hk_set_rule(hk_world, "Mines_03[top1]", lambda state: state.count('Mines_03[top1]', player) or (state.count('Mines_03', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('Mines_03[right1]', player)) or (state._hk_option(player, 'SpikeTunnels') and state.count('WINGS', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)))))) - hk_set_rule(hk_world, "Mines_04[right1]", lambda state: state.count('Mines_04[right1]', player) or state.count('Mines_04', player)) - hk_set_rule(hk_world, "Mines_04[top1]", lambda state: state.count('Mines_04[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Mines_04[left1]", lambda state: state.count('Mines_04[left1]', player) or (state.count('Mines_04', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTDASH', player) and state._hk_option(player, 'EnemyPogos')) or state.count('Mines_04[top1]', player)))) - hk_set_rule(hk_world, "Mines_04[left2]", lambda state: state.count('Mines_04[left2]', player) or state.count('Mines_04', player)) - hk_set_rule(hk_world, "Mines_04[left3]", lambda state: state.count('Mines_04[left3]', player) or state.count('Mines_04', player)) - hk_set_rule(hk_world, "Mines_05[right1]", lambda state: state.count('Mines_05[right1]', player) or (state.count('Mines_05', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and ((True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) or state._hk_option(player, 'BackgroundObjectPogos'))) or state.count('Mines_05[left1]', player) or state.count('Mines_05[top1]', player)))) - hk_set_rule(hk_world, "Mines_05[top1]", lambda state: state.count('Mines_05[top1]', player) or (state.count('Mines_05', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and ((True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) or state._hk_option(player, 'BackgroundObjectPogos'))) or (state.count('RIGHTCLAW', player) and state.count('Mines_05[right1]', player)) or state.count('Mines_05[left1]', player)))) - hk_set_rule(hk_world, "Mines_05[bot1]", lambda state: state.count('Mines_05[bot1]', player) or state.count('Mines_05', player)) - hk_set_rule(hk_world, "Mines_05[left1]", lambda state: state.count('Mines_05[left1]', player) or (state.count('Mines_05', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and ((True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) or state._hk_option(player, 'BackgroundObjectPogos'))) or (state.count('RIGHTCLAW', player) and state.count('Mines_05[right1]', player)) or state.count('Mines_05[top1]', player)))) - hk_set_rule(hk_world, "Mines_05[left2]", lambda state: state.count('Mines_05[left2]', player) or state.count('Mines_05', player)) - hk_set_rule(hk_world, "Mines_06[right1]", lambda state: state.count('Mines_06[right1]', player) or state.count('Mines_06[left1]', player)) - hk_set_rule(hk_world, "Mines_06[left1]", lambda state: state.count('Mines_06[left1]', player) or (state.count('Mines_06[right1]', player) and (state.count('LEFTSUPERDASH', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('WINGS', player) and state.count('LEFTDASH', player) and state._hk_option(player, 'BackgroundObjectPogos') and state._hk_option(player, 'PreciseMovement') and state._hk_option(player, 'ComplexSkips'))))) - hk_set_rule(hk_world, "Mines_07[right1]", lambda state: state.count('Mines_07[right1]', player) or (state.count('Mines_07[left1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')))) - hk_set_rule(hk_world, "Mines_07[left1]", lambda state: state.count('Mines_07[left1]', player) or (state.count('Mines_07[right1]', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')))) - hk_set_rule(hk_world, "Mines_10[right1]", lambda state: state.count('Mines_10[right1]', player) or (state.count('Mines_10', player) and state.count('RIGHTCLAW', player) and state.count('RIGHTSUPERDASH', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTDASH', player) and state.count('WINGS', player))))) - hk_set_rule(hk_world, "Mines_10[left1]", lambda state: state.count('Mines_10[left1]', player) or state.count('Mines_10', player)) - hk_set_rule(hk_world, "Mines_10[bot1]", lambda state: state.count('Mines_10[bot1]', player) or state.count('Mines_10', player)) - hk_set_rule(hk_world, "Mines_11[right1]", lambda state: state.count('Mines_11[right1]', player) or state.count('Mines_11', player)) - hk_set_rule(hk_world, "Mines_11[top1]", lambda state: state.count('Mines_11[top1]', player) or state.count('Mines_11', player)) - hk_set_rule(hk_world, "Mines_11[bot1]", lambda state: state.count('Mines_11[bot1]', player) or state.count('Mines_11', player)) - hk_set_rule(hk_world, "Mines_13[right1]", lambda state: state.count('Mines_13[right1]', player) or (state.count('Mines_13[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or state.count('Mines_13[top1]', player)) - hk_set_rule(hk_world, "Mines_13[top1]", lambda state: False) - hk_set_rule(hk_world, "Mines_13[bot1]", lambda state: state.count('Mines_13[bot1]', player) or state.count('Mines_13[top1]', player) or state.count('Mines_13[right1]', player)) - hk_set_rule(hk_world, "Mines_16[top1]", lambda state: state.count('Mines_16[top1]', player)) - hk_set_rule(hk_world, "Mines_17[right1]", lambda state: state.count('Mines_17[right1]', player) or state.count('Mines_17[left1]', player)) - hk_set_rule(hk_world, "Mines_17[left1]", lambda state: state.count('Mines_17[left1]', player) or state.count('Mines_17[right1]', player)) - hk_set_rule(hk_world, "Mines_18[top1]", lambda state: state.count('Mines_18[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Mines_18', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) - hk_set_rule(hk_world, "Mines_18[left1]", lambda state: state.count('Mines_18[left1]', player) or state.count('Mines_18', player)) - hk_set_rule(hk_world, "Mines_18[right1]", lambda state: state.count('Mines_18[right1]', player) or state.count('Mines_18', player)) - hk_set_rule(hk_world, "Mines_19[left1]", lambda state: state.count('Mines_19[left1]', player) or state.count('Mines_19[right1]', player)) - hk_set_rule(hk_world, "Mines_19[right1]", lambda state: state.count('Mines_19[right1]', player) or state.count('Mines_19[left1]', player)) - hk_set_rule(hk_world, "Mines_20[left1]", lambda state: state.count('Mines_20[left1]', player) or state.count('Mines_20', player)) - hk_set_rule(hk_world, "Mines_20[left2]", lambda state: state.count('Mines_20[left2]', player) or state.count('Mines_20', player)) - hk_set_rule(hk_world, "Mines_20[left3]", lambda state: state.count('Mines_20[left3]', player) or state.count('Mines_20', player) or state.count('Mines_20[bot1]', player) or state.count('Mines_20[left2]', player) or state.count('Mines_20[right2]', player)) - hk_set_rule(hk_world, "Mines_20[bot1]", lambda state: state.count('Mines_20[bot1]', player) or state.count('Mines_20', player) or state.count('Mines_20[left3]', player) or state.count('Mines_20[left2]', player) or state.count('Mines_20[right2]', player)) - hk_set_rule(hk_world, "Mines_20[right1]", lambda state: state.count('Mines_20[right1]', player) or (state.count('Mines_20', player) and (state.count('RIGHTCLAW', player) and state._hk_option(player, 'BackgroundObjectPogos') or (state.count('LEFTDASH', player) and state.count('LEFTCLAW', player) and state._hk_option(player, 'BackgroundObjectPogos')) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Mines_20[right2]", lambda state: state.count('Mines_20[right2]', player) or state.count('Mines_20', player)) - hk_set_rule(hk_world, "Mines_23[left1]", lambda state: state.count('Mines_23[left1]', player) or (state.count('Mines_23[right1]', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player) or state.count('LEFTCLAW', player) or state._hk_option(player, 'PreciseMovement') or state._hk_option(player, 'EnemyPogos'))) or state.count('Mines_23[top1]', player) or (state.count('Mines_23[right2]', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('LEFTSUPERDASH', player))))) - hk_set_rule(hk_world, "Mines_23[right1]", lambda state: state.count('Mines_23[right1]', player) or (state.count('Mines_23[top1]', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('RIGHTSUPERDASH', player) and state.count('RIGHTCLAW', player)))) or (state.count('Mines_23[left1]', player) and (state.count('WINGS', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player)) or (state.count('RIGHTSUPERDASH', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))))) or (state.count('Mines_23[right2]', player) and (state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player))) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) - hk_set_rule(hk_world, "Mines_23[right2]", lambda state: state.count('Mines_23[right2]', player) or state.count('Mines_23[right1]', player) or (state.count('Mines_23[top1]', player) and (state.count('RIGHTDASH', player) or (state.count('RIGHTSUPERDASH', player) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or (state.count('Mines_23[left1]', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTSUPERDASH', player))))) - hk_set_rule(hk_world, "Mines_23[top1]", lambda state: False) - hk_set_rule(hk_world, "Mines_24[left1]", lambda state: state.count('Mines_24[left1]', player)) - hk_set_rule(hk_world, "Mines_25[left1]", lambda state: state.count('Mines_25[left1]', player) or state.count('Mines_25[top1]', player)) - hk_set_rule(hk_world, "Mines_25[top1]", lambda state: state.count('Mines_25[top1]', player) and (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state._hk_option(player, 'PreciseMovement')) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'ComplexSkips'))) or (state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) and (state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'ComplexSkips'))))) - hk_set_rule(hk_world, "Mines_28[left1]", lambda state: state.count('Mines_28[left1]', player) or (state.count('Mines_28[door1]', player) and (state.count('LEFTSUPERDASH', player) or (state.count('WINGS', player) and state.count('LEFTDASH', player)) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True and (state.count('WINGS', player) or state.count('LEFTDASH', player)))))) - hk_set_rule(hk_world, "Mines_28[bot1]", lambda state: state.count('Mines_28[bot1]', player) or state.count('Mines_28[left1]', player) or state.count('Mines_28[door1]', player)) - hk_set_rule(hk_world, "Mines_28[door1]", lambda state: state.count('Mines_28[door1]', player) or (state.count('Mines_28[left1]', player) and (state.count('RIGHTSUPERDASH', player) or (state.count('WINGS', player) and state.count('RIGHTDASH', player)) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True and (state.count('WINGS', player) or state.count('RIGHTDASH', player)))))) - hk_set_rule(hk_world, "Mines_29[left1]", lambda state: state.count('Mines_29[left1]', player) or state.count('Mines_29[right1]', player) or state.count('Mines_29[right2]', player)) - hk_set_rule(hk_world, "Mines_29[right1]", lambda state: state.count('Mines_29[right1]', player) or state.count('Mines_29[left1]', player) or state.count('Mines_29[right2]', player)) - hk_set_rule(hk_world, "Mines_29[right2]", lambda state: state.count('Mines_29[right2]', player) or state.count('Mines_29[left1]', player) or state.count('Mines_29[right1]', player)) - hk_set_rule(hk_world, "Mines_30[left1]", lambda state: state.count('Mines_30[left1]', player) or (state.count('Mines_30[right1]', player) and state.count('LEFTSUPERDASH', player))) - hk_set_rule(hk_world, "Mines_30[right1]", lambda state: state.count('Mines_30[right1]', player) or (state.count('Mines_30[left1]', player) and state.count('RIGHTSUPERDASH', player))) - hk_set_rule(hk_world, "Mines_31[left1]", lambda state: state.count('Mines_31[left1]', player)) - hk_set_rule(hk_world, "Mines_32[bot1]", lambda state: state.count('Mines_32[bot1]', player)) - hk_set_rule(hk_world, "Mines_33[right1]", lambda state: state.count('Mines_33[right1]', player) or (state.count('Mines_33[left1]', player) and state.count('LANTERN', player))) - hk_set_rule(hk_world, "Mines_33[left1]", lambda state: state.count('Mines_33[left1]', player) or (state.count('Mines_33[right1]', player) and state.count('LANTERN', player))) - hk_set_rule(hk_world, "Mines_34[bot1]", lambda state: state.count('Mines_34[bot1]', player)) - hk_set_rule(hk_world, "Mines_34[bot2]", lambda state: state.count('Mines_34[bot2]', player) or (state.count('Mines_34[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player))) and (state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Mines_34[left1]", lambda state: state.count('Mines_34[left1]', player) or ((state.count('Mines_34[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player))) and (state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) and (state.count('LEFTSUPERDASH', player) or (state.count('WINGS', player) and state.count('LEFTDASH', player))))) - hk_set_rule(hk_world, "Mines_35[left1]", lambda state: state.count('Mines_35[left1]', player)) - hk_set_rule(hk_world, "Mines_36[right1]", lambda state: state.count('Mines_36[right1]', player)) - hk_set_rule(hk_world, "Mines_37[bot1]", lambda state: state.count('Mines_37[bot1]', player) or (state.count('Mines_37[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state.count('RIGHTCLAW', player) and state._hk_option(player, 'ObscureSkips') and state._hk_option(player, 'PreciseMovement') and state._hk_option(player, 'ComplexSkips')) or ((state.count('Dashmaster', player) and state.count('Sprintmaster', player) and (state.count('NOTCHES', player) > state._hk_notches(player, 30, 36)) and state.count('Can_Bench', player)) and state._hk_option(player, 'ObscureSkips'))))) - hk_set_rule(hk_world, "Mines_37[top1]", lambda state: state.count('Mines_37[top1]', player) or (state.count('Mines_37[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Fungus3_04[left1]", lambda state: state.count('Fungus3_04[left1]', player) or state.count('Fungus3_04[left2]', player)) - hk_set_rule(hk_world, "Fungus3_04[left2]", lambda state: state.count('Fungus3_04[left2]', player) or state.count('Fungus3_04[left1]', player)) - hk_set_rule(hk_world, "Fungus3_04[right1]", lambda state: state.count('Fungus3_04[right1]', player) or state.count('Fungus3_04', player)) - hk_set_rule(hk_world, "Fungus3_04[right2]", lambda state: state.count('Fungus3_04[right2]', player) or state.count('Fungus3_04', player)) - hk_set_rule(hk_world, "Fungus3_05[left1]", lambda state: state.count('Fungus3_05[left1]', player) or state.count('Fungus3_05[right1]', player)) - hk_set_rule(hk_world, "Fungus3_05[right1]", lambda state: state.count('Fungus3_05[right1]', player) or (state.count('Fungus3_05[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Fungus3_05[right2]", lambda state: state.count('Fungus3_05[right2]', player) or ((state.count('Fungus3_05[left1]', player) or state.count('Fungus3_05[right1]', player)) and (state.count('LEFTDASH', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)) or ((state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and state.count('LEFTSUPERDASH', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))))) - hk_set_rule(hk_world, "Fungus3_08[left1]", lambda state: state.count('Fungus3_08[left1]', player) or state.count('Fungus3_08[right1]', player) or state.count('Fungus3_08[top1]', player)) - hk_set_rule(hk_world, "Fungus3_08[right1]", lambda state: state.count('Fungus3_08[right1]', player) or state.count('Fungus3_08[left1]', player) or state.count('Fungus3_08[top1]', player)) - hk_set_rule(hk_world, "Fungus3_08[top1]", lambda state: state.count('Fungus3_08[top1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state._hk_option(player, 'PreciseMovement')))) or ((state.count('Fungus3_08[right1]', player) or state.count('Fungus3_08[left1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or state._hk_option(player, 'EnemyPogos')))))) - hk_set_rule(hk_world, "Fungus3_10[top1]", lambda state: state.count('Fungus3_10[top1]', player) or (state.count('Fungus3_10[bot1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player)) and state.count("Defeated_West_Queen's_Gardens_Arena", player))) - hk_set_rule(hk_world, "Fungus3_10[bot1]", lambda state: state.count('Fungus3_10[bot1]', player) or (state.count('Fungus3_10[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player)) and state.count("Defeated_West_Queen's_Gardens_Arena", player))) - hk_set_rule(hk_world, "Fungus3_11[left1]", lambda state: state.count('Fungus3_11[left1]', player) or state.count('Fungus3_11', player)) - hk_set_rule(hk_world, "Fungus3_11[left2]", lambda state: state.count('Fungus3_11[left2]', player) or state.count('Fungus3_11', player)) - hk_set_rule(hk_world, "Fungus3_11[right1]", lambda state: state.count('Fungus3_11[right1]', player) or state.count('Fungus3_11', player)) - hk_set_rule(hk_world, "Fungus3_13[left1]", lambda state: state.count('Fungus3_13[left1]', player) or (state.count('Fungus3_13', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('Fungus3_13[left3]', player) and state._hk_option(player, 'EnemyPogos')) or state.count('Fungus3_13[right1]', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state._hk_option(player, 'DifficultSkips') and (state.count('MASKSHARDS', player) > 15))))) - hk_set_rule(hk_world, "Fungus3_13[left2]", lambda state: state.count('Fungus3_13[left2]', player) or (state.count('Fungus3_13', player) and state.count('Opened_Gardens_Stag_Exit', player))) - hk_set_rule(hk_world, "Fungus3_13[left3]", lambda state: state.count('Fungus3_13[left3]', player) or (state.count('Fungus3_13', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('Fungus3_13[right1]', player) or state.count('Fungus3_13[left1]', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state._hk_option(player, 'DifficultSkips') and (state.count('MASKSHARDS', player) > 15))))) - hk_set_rule(hk_world, "Fungus3_13[bot1]", lambda state: state.count('Fungus3_13[bot1]', player) or state.count('Fungus3_13', player)) - hk_set_rule(hk_world, "Fungus3_13[right1]", lambda state: state.count('Fungus3_13[right1]', player) or (state.count('Fungus3_13', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('Fungus3_13[left3]', player) and state._hk_option(player, 'EnemyPogos')) or state.count('Fungus3_13[left1]', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (True and state._hk_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._hk_option(player, 'ShadeSkips'))) and state._hk_option(player, 'DifficultSkips') and (state.count('MASKSHARDS', player) > 15))))) - hk_set_rule(hk_world, "Fungus3_21[right1]", lambda state: state.count('Fungus3_21[right1]', player) or (state.count('Fungus3_21[top1]', player) and state.count('RIGHTDASH', player))) - hk_set_rule(hk_world, "Fungus3_21[top1]", lambda state: state.count('Fungus3_21[top1]', player) or (state.count('Fungus3_21[right1]', player) and state.count('LEFTDASH', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Fungus3_22[right1]", lambda state: state.count('Fungus3_22[right1]', player) or (state.count('Fungus3_22', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Fungus3_22[left1]", lambda state: state.count('Fungus3_22[left1]', player) or state.count('Fungus3_22', player)) - hk_set_rule(hk_world, "Fungus3_22[bot1]", lambda state: state.count('Fungus3_22[bot1]', player) or state.count('Fungus3_22', player)) - hk_set_rule(hk_world, "Fungus3_23[right1]", lambda state: state.count('Fungus3_23[right1]', player) or (state.count('Fungus3_23[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and state.count('Defeated_Traitor_Lord', player))) - hk_set_rule(hk_world, "Fungus3_23[left1]", lambda state: state.count('Fungus3_23[left1]', player) or (state.count('Fungus3_23[right1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Traitor_Lord', player))) - hk_set_rule(hk_world, "Fungus3_34[right1]", lambda state: state.count('Fungus3_34[right1]', player) or state.count('Fungus3_34', player)) - hk_set_rule(hk_world, "Fungus3_34[left1]", lambda state: state.count('Fungus3_34[left1]', player) or (state.count('Fungus3_34', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'BackgroundObjectPogos') or state._hk_option(player, 'EnemyPogos')))))) - hk_set_rule(hk_world, "Fungus3_34[top1]", lambda state: state.count('Fungus3_34[top1]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('Fungus3_34', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) - hk_set_rule(hk_world, "Fungus3_39[right1]", lambda state: state.count('Fungus3_39[right1]', player) or state.count('Fungus3_39[left1]', player)) - hk_set_rule(hk_world, "Fungus3_39[left1]", lambda state: state.count('Fungus3_39[left1]', player)) - hk_set_rule(hk_world, "Fungus3_40[right1]", lambda state: state.count('Fungus3_40[right1]', player) or (state.count('Fungus3_40[top1]', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'ShadeSkips') or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True))) or (state.count('Can_Stag', player) and state.count("Queen's_Gardens_Stag", player))) - hk_set_rule(hk_world, "Fungus3_40[top1]", lambda state: state.count('Fungus3_40[top1]', player) or ((state.count('Fungus3_40[right1]', player) or (state.count('Can_Stag', player) and state.count("Queen's_Gardens_Stag", player))) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)))) - hk_set_rule(hk_world, "Fungus3_48[right1]", lambda state: state.count('Fungus3_48[right1]', player) or state.count('Fungus3_48[door1]', player)) - hk_set_rule(hk_world, "Fungus3_48[right2]", lambda state: state.count('Fungus3_48[right2]', player) or (state.count('Fungus3_48[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Fungus3_48[door1]", lambda state: state.count('Fungus3_48[door1]', player) or state.count('Fungus3_48[right1]', player)) - hk_set_rule(hk_world, "Fungus3_48[bot1]", lambda state: state.count('Fungus3_48[bot1]', player) or state.count('Fungus3_48[right2]', player)) - hk_set_rule(hk_world, "Fungus3_49[right1]", lambda state: state.count('Fungus3_49[right1]', player)) - hk_set_rule(hk_world, "Fungus3_50[right1]", lambda state: state.count('Fungus3_50[right1]', player)) - hk_set_rule(hk_world, "Room_Queen[left1]", lambda state: state.count('Room_Queen[left1]', player)) - hk_set_rule(hk_world, "Cliffs_01[right1]", lambda state: state.count('Cliffs_01[right1]', player) or (state.count('Cliffs_01', player) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Cliffs_01[right2]", lambda state: state.count('Cliffs_01[right2]', player) or (state.count('Cliffs_01', player) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Cliffs_01[right1]', player)))) - hk_set_rule(hk_world, "Cliffs_01[right3]", lambda state: state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01', player)) - hk_set_rule(hk_world, "Cliffs_01[right4]", lambda state: state.count('Cliffs_01[right4]', player) or (state.count('Cliffs_01', player) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player)))) - hk_set_rule(hk_world, "Cliffs_02[right1]", lambda state: state.count('Cliffs_02[right1]', player) or (state.count('Cliffs_02', player) and (state.count('RIGHTSUPERDASH', player) or (state.count('WINGS', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Cliffs_02[bot1]", lambda state: state.count('Cliffs_02[bot1]', player)) - hk_set_rule(hk_world, "Cliffs_02[bot2]", lambda state: state.count('Cliffs_02[bot2]', player) or state.count('Cliffs_02', player) or (state.count('Cliffs_02[bot1]', player) and state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Cliffs_02[door1]", lambda state: state.count('Cliffs_02[door1]', player) or state.count('Cliffs_02', player)) - hk_set_rule(hk_world, "Cliffs_02[left1]", lambda state: state.count('Cliffs_02[left1]', player) or state.count('Cliffs_02', player)) - hk_set_rule(hk_world, "Cliffs_02[left2]", lambda state: state.count('Cliffs_02[left2]', player) or (state.count('Cliffs_02', player) and state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Cliffs_03[right1]", lambda state: state.count('Cliffs_03[right1]', player) or ((state.count('STAGS', player) > 8 or state.count('Stag_Nest_Stag', player)) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Cliffs_04[right1]", lambda state: state.count('Cliffs_04[right1]', player) or (state.count('Cliffs_04[left1]', player) and (state._hk_option(player, 'DarkRooms') or state.count('LANTERN', player)))) - hk_set_rule(hk_world, "Cliffs_04[left1]", lambda state: state.count('Cliffs_04[left1]', player) or (state.count('Cliffs_04[right1]', player) and (state._hk_option(player, 'DarkRooms') or state.count('LANTERN', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('QUAKE', player)))) - hk_set_rule(hk_world, "Cliffs_05[left1]", lambda state: state.count('Cliffs_05[left1]', player)) - hk_set_rule(hk_world, "Cliffs_06[left1]", lambda state: state.count('Cliffs_06[left1]', player)) - hk_set_rule(hk_world, "Room_nailmaster[left1]", lambda state: state.count('Room_nailmaster[left1]', player)) - hk_set_rule(hk_world, "White_Palace_01[left1]", lambda state: state.count('White_Palace_01[left1]', player) or state.count('White_Palace_01', player)) - hk_set_rule(hk_world, "White_Palace_01[right1]", lambda state: state.count('White_Palace_01[right1]', player) or state.count('White_Palace_01', player)) - hk_set_rule(hk_world, "White_Palace_01[top1]", lambda state: state.count('White_Palace_01[top1]', player) or (state.count('White_Palace_01', player) and state.count('Palace_Entrance_Lantern_Lit', player))) - hk_set_rule(hk_world, "White_Palace_02[left1]", lambda state: state.count('White_Palace_02[left1]', player)) - hk_set_rule(hk_world, "White_Palace_03_hub[left1]", lambda state: state.count('White_Palace_03_hub[left1]', player)) - hk_set_rule(hk_world, "White_Palace_03_hub[left2]", lambda state: state.count('White_Palace_03_hub[left2]', player) or state.count('White_Palace_03_hub', player)) - hk_set_rule(hk_world, "White_Palace_03_hub[right1]", lambda state: state.count('White_Palace_03_hub[right1]', player) or (state.count('White_Palace_03_hub', player) and (state.count('RIGHTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('LEFTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "White_Palace_03_hub[top1]", lambda state: state.count('White_Palace_03_hub[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('White_Palace_03_hub', player) and state.count('Palace_Atrium_Gates_Opened', player) and (state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTSUPERDASH', player))))) - hk_set_rule(hk_world, "White_Palace_03_hub[bot1]", lambda state: state.count('White_Palace_03_hub[bot1]', player) or state.count('White_Palace_03_hub', player)) - hk_set_rule(hk_world, "White_Palace_04[top1]", lambda state: state.count('White_Palace_04[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('White_Palace_04[right2]', player) and state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('WINGS', player))) - hk_set_rule(hk_world, "White_Palace_04[right2]", lambda state: state.count('White_Palace_04[right2]', player) or (state.count('White_Palace_04[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('WINGS', player))) - hk_set_rule(hk_world, "White_Palace_05[left1]", lambda state: state.count('White_Palace_05[left1]', player) or (state.count('White_Palace_05[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) - hk_set_rule(hk_world, "White_Palace_05[left2]", lambda state: state.count('White_Palace_05[left2]', player) or state.count('White_Palace_05[right2]', player)) - hk_set_rule(hk_world, "White_Palace_05[right1]", lambda state: state.count('White_Palace_05[right1]', player) or (state.count('White_Palace_05[left1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) - hk_set_rule(hk_world, "White_Palace_05[right2]", lambda state: state.count('White_Palace_05[right2]', player) or state.count('White_Palace_05[left2]', player)) - hk_set_rule(hk_world, "White_Palace_06[left1]", lambda state: state.count('White_Palace_06[left1]', player) or state.count('White_Palace_06[top1]', player) or state.count('White_Palace_06[bot1]', player) or state.count('Warp-Path_of_Pain_Complete', player)) - hk_set_rule(hk_world, "White_Palace_06[top1]", lambda state: state.count('White_Palace_06[top1]', player) or ((state.count('White_Palace_06[left1]', player) or state.count('White_Palace_06[bot1]', player) or state.count('Warp-Path_of_Pain_Complete', player)) and (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state.count('LEFTCLAW', player))))) - hk_set_rule(hk_world, "White_Palace_06[bot1]", lambda state: state.count('White_Palace_06[bot1]', player) or state.count('White_Palace_06[left1]', player) or state.count('White_Palace_06[top1]', player) or state.count('Warp-Path_of_Pain_Complete', player)) - hk_set_rule(hk_world, "White_Palace_07[top1]", lambda state: state.count('White_Palace_07[top1]', player) or (state.count('White_Palace_07[bot1]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) and state.count('WINGS', player))) - hk_set_rule(hk_world, "White_Palace_07[bot1]", lambda state: state.count('White_Palace_07[bot1]', player) or state.count('White_Palace_07[top1]', player)) - hk_set_rule(hk_world, "White_Palace_08[left1]", lambda state: state.count('White_Palace_08[left1]', player) or state.count('White_Palace_08[right1]', player)) - hk_set_rule(hk_world, "White_Palace_08[right1]", lambda state: state.count('White_Palace_08[right1]', player) or (state.count('White_Palace_08[left1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) - hk_set_rule(hk_world, "White_Palace_09[right1]", lambda state: state.count('White_Palace_09[right1]', player)) - hk_set_rule(hk_world, "White_Palace_11[door2]", lambda state: (state.count('White_Palace_11[door2]', player) or state.count('Warp-Palace_Grounds_to_White_Palace', player)) and ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))))) - hk_set_rule(hk_world, "White_Palace_12[right1]", lambda state: state.count('White_Palace_12[right1]', player) or (state.count('White_Palace_12[bot1]', player) and (state._hk_option(player, 'SpikeTunnels') or state.count('RIGHTDASH', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player)) or state.count('WINGS', player)) and state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player))) - hk_set_rule(hk_world, "White_Palace_12[bot1]", lambda state: state.count('White_Palace_12[bot1]', player)) - hk_set_rule(hk_world, "White_Palace_13[right1]", lambda state: state.count('White_Palace_13[right1]', player) or ((state.count('White_Palace_13', player) or state.count('White_Palace_13[left1]', player)) and state.count('RIGHTSUPERDASH', player) and (state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTCLAW', player))))) - hk_set_rule(hk_world, "White_Palace_13[left1]", lambda state: state.count('White_Palace_13[left1]', player) or (state.count('White_Palace_13', player) and state.count('RIGHTCLAW', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "White_Palace_13[left2]", lambda state: state.count('White_Palace_13[left2]', player) or (state.count('White_Palace_13', player) and (state.count('LEFTCLAW', player) and state.count('WINGS', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('LEFTSUPERDASH', player)) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player))))) - hk_set_rule(hk_world, "White_Palace_13[left3]", lambda state: state.count('White_Palace_13[left3]', player) or (state.count('White_Palace_13', player) and state.count('WINGS', player))) - hk_set_rule(hk_world, "White_Palace_14[bot1]", lambda state: state.count('White_Palace_14[bot1]', player) or (state.count('White_Palace_14[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) - hk_set_rule(hk_world, "White_Palace_14[right1]", lambda state: state.count('White_Palace_14[right1]', player) or (state.count('White_Palace_14[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) - hk_set_rule(hk_world, "White_Palace_15[left1]", lambda state: state.count('White_Palace_15[left1]', player) or state.count('White_Palace_15[right1]', player) or ((state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) and state.count('White_Palace_15[right2]', player))) - hk_set_rule(hk_world, "White_Palace_15[right1]", lambda state: state.count('White_Palace_15[right1]', player)) - hk_set_rule(hk_world, "White_Palace_15[right2]", lambda state: state.count('White_Palace_15[right2]', player) or state.count('White_Palace_15[right1]', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('White_Palace_15[left1]', player))) - hk_set_rule(hk_world, "White_Palace_16[left1]", lambda state: state.count('White_Palace_16[left1]', player) or (state.count('White_Palace_16[left2]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "White_Palace_16[left2]", lambda state: state.count('White_Palace_16[left2]', player) or state.count('White_Palace_16[left1]', player)) - hk_set_rule(hk_world, "White_Palace_17[right1]", lambda state: state.count('White_Palace_17[right1]', player) or (state.count('White_Palace_17[bot1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "White_Palace_17[bot1]", lambda state: state.count('White_Palace_17[bot1]', player)) - hk_set_rule(hk_world, "White_Palace_18[top1]", lambda state: state.count('White_Palace_18[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) or (state.count('White_Palace_18[right1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "White_Palace_18[right1]", lambda state: state.count('White_Palace_18[right1]', player) or (state.count('White_Palace_18[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "White_Palace_19[top1]", lambda state: state.count('White_Palace_19[top1]', player) or (state.count('White_Palace_19[left1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state.count('WINGS', player))) - hk_set_rule(hk_world, "White_Palace_19[left1]", lambda state: state.count('White_Palace_19[left1]', player) or (state.count('White_Palace_19[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state.count('WINGS', player))) - hk_set_rule(hk_world, "White_Palace_20[bot1]", lambda state: state.count('White_Palace_20[bot1]', player)) - - # Locations - - hk_set_rule(hk_world, "Sly", lambda state: state.count('Room_shop[left1]', player) and state.count('Rescued_Sly', player)) - hk_set_rule(hk_world, "Sly_(Key)", lambda state: state.count('Room_shop[left1]', player) and state.count('Rescued_Sly', player) and state.count('SHOPKEY', player)) - hk_set_rule(hk_world, "Iselda", lambda state: state.count('Room_mapper[left1]', player)) - hk_set_rule(hk_world, "Salubra", lambda state: state.count('Room_Charm_Shop[left1]', player)) - hk_set_rule(hk_world, "Leg_Eater", lambda state: state.count('Fungus2_26[left1]', player)) - hk_set_rule(hk_world, "Grubfather", lambda state: state.count('Crossroads_38[right1]', player)) - hk_set_rule(hk_world, "Seer", lambda state: state.count('RestingGrounds_07[right1]', player)) - hk_set_rule(hk_world, "Lurien", lambda state: state.count('Ruins2_Watcher_Room[bot1]', player) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Monomon", lambda state: state.count('Fungus3_archive_02[top1]', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Uumuu', player) and (state.count('ACID', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) or (state.count('LEFTSUPERDASH', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))))) - hk_set_rule(hk_world, "Herrah", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and state.count('DREAMNAIL', player) and (state.count('RIGHTSLASH', player) or ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or state.count('LEFTDASH', player) or state.count('Herrah', player) or ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) - hk_set_rule(hk_world, "World_Sense", lambda state: state.count('Room_temple[left1]', player) and state.count('Opened_Black_Egg_Temple', player)) - hk_set_rule(hk_world, "Mothwing_Cloak", lambda state: state.count('Fungus1_04[right1]', player) and state.count('Defeated_Hornet_1', player)) - hk_set_rule(hk_world, "Mantis_Claw", lambda state: state.count('Fungus2_14', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Crystal_Heart", lambda state: state.count('Mines_31[left1]', player) and (state.count('RIGHTSUPERDASH', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Monarch_Wings", lambda state: state.count('Abyss_21[right1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Shade_Cloak", lambda state: (state.count('Abyss_10[left2]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or (state.count('Abyss_10[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15))))) and (state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or (state.count('RIGHTDASH', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'PreciseMovement') or state._hk_option(player, 'BackgroundObjectPogos')))) or ((state.count('Abyss_10[left2]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or state.count('Abyss_10[left1]', player)) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player) or (state.count('WHITEFRAGMENT', player) > 2 and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('SWIM', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))))) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or (state.count('LEFTCLAW', player) and state.count('RIGHTDASH', player)) or (state._hk_option(player, 'BackgroundObjectPogos') and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Isma's_Tear", lambda state: state.count('Waterways_13[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) or (state.count('Waterways_13[left2]', player) and (state.count('ACID', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or (state._hk_option(player, 'AcidSkips') and state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player)))))) - hk_set_rule(hk_world, "Dream_Nail", lambda state: state.count('RestingGrounds_04[left1]', player) or state.count('RestingGrounds_04[right1]', player)) - hk_set_rule(hk_world, "Vengeful_Spirit", lambda state: state.count('Crossroads_ShamanTemple[left1]', player)) - hk_set_rule(hk_world, "Shade_Soul", lambda state: state.count('Ruins1_31b[right1]', player) or (state.count('Ruins1_31b[right2]', player) and state.count('Defeated_Elegant_Warrior', player))) - hk_set_rule(hk_world, "Desolate_Dive", lambda state: state.count('Ruins1_24[right1]', player) and state.count('Defeated_Soul_Master', player)) - hk_set_rule(hk_world, "Descending_Dark", lambda state: state.count('Mines_35[left1]', player) and state.count('QUAKE', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'PreciseMovement') and (state.count('RIGHTDASH', player) or (state._hk_option(player, 'DifficultSkips') and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Howling_Wraiths", lambda state: state.count('Room_Fungus_Shaman[left1]', player)) - hk_set_rule(hk_world, "Abyss_Shriek", lambda state: state.count('Abyss_12[right1]', player) and state.count('SCREAM', player)) - hk_set_rule(hk_world, "Cyclone_Slash", lambda state: state.count('Room_nailmaster[left1]', player)) - hk_set_rule(hk_world, "Dash_Slash", lambda state: state.count('Room_nailmaster_03[left1]', player) and state.count('Ruins1_05b[top1]', player)) - hk_set_rule(hk_world, "Great_Slash", lambda state: state.count('Room_nailmaster_02[left1]', player)) - hk_set_rule(hk_world, "Focus", lambda state: state.count('Tutorial_01', player)) - hk_set_rule(hk_world, "Baldur_Shell", lambda state: ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('RIGHTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))) and (state.count('Fungus1_28[left1]', player) or (state.count('Fungus1_28[left2]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'ShadeSkips'))))) - hk_set_rule(hk_world, "Fury_of_the_Fallen", lambda state: state.count('Tutorial_01', player)) - hk_set_rule(hk_world, "Lifeblood_Core", lambda state: state.count('Abyss_08[right1]', player) and (state._hk_option(player, 'PreciseMovement') or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "Defender's_Crest", lambda state: state.count('Waterways_05[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('Defeated_Dung_Defender', player)) - hk_set_rule(hk_world, "Flukenest", lambda state: state.count('Waterways_12[right1]', player) and (state.count('SWIM', player) or state.count('LEFTSUPERDASH', player)) and state.count('Defeated_Flukemarm', player)) - hk_set_rule(hk_world, "Thorns_of_Agony", lambda state: state.count('Fungus1_14[left1]', player) and (state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Mark_of_Pride", lambda state: state.count('Fungus2_31[left1]', player) and state.count('Defeated_Mantis_Lords', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'ShadeSkips')))) - hk_set_rule(hk_world, "Sharp_Shadow", lambda state: state.count('Deepnest_44[top1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player) or state.count('MASKSHARDS', player) > 15)) - hk_set_rule(hk_world, "Spore_Shroom", lambda state: (state.count('Fungus2_20[left1]', player) or state.count('Fungus2_20[right1]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('ACID', player) or state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Soul_Catcher", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('LEFTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player) or (state.count('LEFTDASH', player) and state.count('LEFTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips'))) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or (((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('LEFTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player) or (state.count('LEFTDASH', player) and state.count('LEFTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) - hk_set_rule(hk_world, "Soul_Eater", lambda state: state.count('RestingGrounds_10', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Glowing_Womb", lambda state: state.count('Crossroads_22[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'BackgroundObjectPogos') or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Nailmaster's_Glory", lambda state: state.count('Room_shop[left1]', player) and state.count('Rescued_Sly', player) and state.count('Cyclone_Slash', player) and state.count('Dash_Slash', player) and state.count('Great_Slash', player)) - hk_set_rule(hk_world, "Joni's_Blessing", lambda state: state.count('Cliffs_05[left1]', player)) - hk_set_rule(hk_world, "Shape_of_Unn", lambda state: state.count('Fungus1_Slug[right1]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state._hk_option(player, 'AcidSkips')))) - hk_set_rule(hk_world, "Hiveblood", lambda state: state.count('Hive_05[left1]', player) and state.count('Defeated_Hive_Knight', player)) - hk_set_rule(hk_world, "Dashmaster", lambda state: state.count('Fungus2_23', player)) - hk_set_rule(hk_world, "Quick_Slash", lambda state: state.count('Deepnest_East_14b[top1]', player) or (state.count('Deepnest_East_14b[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) - hk_set_rule(hk_world, "Spell_Twister", lambda state: state.count('Ruins1_30', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Deep_Focus", lambda state: state.count('Mines_36[right1]', player)) - hk_set_rule(hk_world, "Queen_Fragment", lambda state: state.count('Room_Queen[left1]', player)) - hk_set_rule(hk_world, "King_Fragment", lambda state: state.count('White_Palace_09[right1]', player) and state.count('LEFTSUPERDASH', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Void_Heart", lambda state: state.count('Abyss_15[top1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and state.count('DREAMNAIL', player) and (state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'ObscureSkips') and state.count('RIGHTCLAW', player)) or (state._hk_option(player, 'ObscureSkips') and state.count('LEFTCLAW', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player))))) - hk_set_rule(hk_world, "Dreamshield", lambda state: state.count('RestingGrounds_17[right1]', player)) - hk_set_rule(hk_world, "Weaversong", lambda state: state.count('Deepnest_45_v02[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Grimmchild", lambda state: state.count('Nightmare_Lantern_Lit', player) and state.count('Grimm_Main_Tent[left1]', player)) - hk_set_rule(hk_world, "Unbreakable_Heart", lambda state: state.count('Grimm_Divine[left1]', player) and (state.count('Fragile_Heart', player) and state.count('Can_Bench', player) and (state.count('Can_Repair_Fragile_Charms', player) or state.count('Fragile_Heart', player) > 1))) - hk_set_rule(hk_world, "Unbreakable_Greed", lambda state: state.count('Grimm_Divine[left1]', player) and (state.count('Fragile_Greed', player) and state.count('Can_Bench', player) and (state.count('Can_Repair_Fragile_Charms', player) or state.count('Fragile_Greed', player) > 1))) - hk_set_rule(hk_world, "Unbreakable_Strength", lambda state: state.count('Grimm_Divine[left1]', player) and (state.count('Fragile_Strength', player) and state.count('Can_Bench', player) and (state.count('Can_Repair_Fragile_Charms', player) or state.count('Fragile_Strength', player) > 1))) - hk_set_rule(hk_world, "City_Crest", lambda state: (state.count('Crossroads_10[left1]', player) or state.count('Crossroads_10[right1]', player)) and state.count('Defeated_False_Knight', player)) - hk_set_rule(hk_world, "Tram_Pass", lambda state: state.count('Deepnest_26b[right2]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Simple_Key-Basin", lambda state: state.count('Abyss_20[top1]', player) or state.count('Abyss_20[top2]', player)) - hk_set_rule(hk_world, "Simple_Key-City", lambda state: (state.count('Ruins1_17[top1]', player) or state.count('Ruins1_17[right1]', player)) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Simple_Key-Lurker", lambda state: state.count('GG_Lurker[left1]', player) and (state.count('SWIM', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player))) and state.count('RIGHTCLAW', player) and state.count('Defeated_Pale_Lurker', player)) - hk_set_rule(hk_world, "Shopkeeper's_Key", lambda state: state.count('Mines_11', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Love_Key", lambda state: state.count('Fungus3_39[left1]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) or (state._hk_option(player, 'AcidSkips') and state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('WINGS', player) and (state.count('Dashmaster', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'AcidSkips') and (state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) and state.count('Can_Bench', player)) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "King's_Brand", lambda state: state.count('Room_Wyrm[right1]', player)) - hk_set_rule(hk_world, "Godtuner", lambda state: (state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) and state.count('SIMPLE', player) > 3) - hk_set_rule(hk_world, "Collector's_Map", lambda state: state.count('Ruins2_11[right1]', player) and (state.count('LEFTCLAW', player) or ((state.count('WINGS', player) or state.count('RIGHTDASH', player)) and state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips'))) and state.count('Defeated_Collector', player)) - hk_set_rule(hk_world, "Mask_Shard-Brooding_Mawlek", lambda state: (state.count('Crossroads_09[left1]', player) or state.count('Crossroads_09[right1]', player)) and state.count('Defeated_Brooding_Mawlek', player)) - hk_set_rule(hk_world, "Mask_Shard-Crossroads_Goam", lambda state: (state.count('Crossroads_13[left1]', player) or state.count('Crossroads_13[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Mask_Shard-Stone_Sanctuary", lambda state: state.count('Fungus1_36[left1]', player)) - hk_set_rule(hk_world, "Mask_Shard-Queen's_Station", lambda state: state.count('Fungus2_01', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) and state._hk_option(player, 'ObscureSkips')))) - hk_set_rule(hk_world, "Mask_Shard-Deepnest", lambda state: state.count('Fungus2_25[top2]', player)) - hk_set_rule(hk_world, "Mask_Shard-Waterways", lambda state: state.count('Waterways_04b[left1]', player) and (state.count('SWIM', player) or (state.count('LEFTCLAW', player) and state.count('LEFTDASH', player))) or (state.count('Waterways_04b[right1]', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('LEFTSUPERDASH', player))) and (state.count('SWIM', player) or (state.count('LEFTCLAW', player) and state.count('LEFTDASH', player)))) or (state.count('Waterways_04b[right2]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Mask_Shard-Enraged_Guardian", lambda state: state.count('Mines_32[bot1]', player) and state.count('Defeated_Enraged_Guardian', player)) - hk_set_rule(hk_world, "Mask_Shard-Hive", lambda state: state.count('Hive_04[left1]', player) or state.count('Hive_04[left2]', player) or state.count('Hive_04[right1]', player)) - hk_set_rule(hk_world, "Mask_Shard-Grey_Mourner", lambda state: state.count('Room_Mansion[left1]', player) and state.count('Fungus3_49[right1]', player) and state.count('QUAKE', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and state.count('ACID', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and (((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player))) - hk_set_rule(hk_world, "Mask_Shard-Bretta", lambda state: state.count('Room_Bretta[right1]', player)) - hk_set_rule(hk_world, "Vessel_Fragment-Greenpath", lambda state: state.count('Fungus1_13[right1]', player) and (state.count('LEFTCLAW', player) or (state._hk_option(player, 'DamageBoosts') and state.count('MASKSHARDS', player) > 7 and state.count('WINGS', player)) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))) or False) - hk_set_rule(hk_world, "Vessel_Fragment-City", lambda state: state.count('Ruins2_09[bot1]', player) and state.count("Defeated_King's_Station_Arena", player)) - hk_set_rule(hk_world, "Vessel_Fragment-Crossroads", lambda state: state.count('Crossroads_37[right1]', player)) - hk_set_rule(hk_world, "Vessel_Fragment-Basin", lambda state: state.count('Abyss_04', player) and state.count('Ruins1_05b[top1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('Abyss_04[top1]', player) or state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Vessel_Fragment-Deepnest", lambda state: state.count('Deepnest_38[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Vessel_Fragment-Stag_Nest", lambda state: state.count('Cliffs_03[right1]', player) or ((state.count('STAGS', player) > 8 or state.count('Stag_Nest_Stag', player)) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Charm_Notch-Shrumal_Ogres", lambda state: (state.count('Fungus2_05[bot1]', player) or state.count('Fungus2_05[right1]', player)) and state.count('Defeated_Shrumal_Ogre_Arena', player)) - hk_set_rule(hk_world, "Charm_Notch-Fog_Canyon", lambda state: state.count('Fungus3_28[right1]', player) and (state.count('ACID', player) or (state._hk_option(player, 'AcidSkips') and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips') or (state.count('WINGS', player) and state.count('LEFTDASH', player)) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state._hk_option(player, 'DamageBoosts') and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player)) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Charm_Notch-Colosseum", lambda state: state.count('Room_Colosseum_01[left1]', player) and state.count('Can_Replenish_Geo', player) and state.count('Defeated_Colosseum_1', player)) - hk_set_rule(hk_world, "Charm_Notch-Grimm", lambda state: state.count('Grimm_Main_Tent[left1]', player) and state.count('Defeated_Grimm', player)) - hk_set_rule(hk_world, "Pale_Ore-Basin", lambda state: state.count('Abyss_17[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state.count('LEFTDASH', player) and state._hk_option(player, 'ObscureSkips')) or (state._hk_option(player, 'DamageBoosts') and state.count('MASKSHARDS', player) > 7))) - hk_set_rule(hk_world, "Pale_Ore-Crystal_Peak", lambda state: state.count('Mines_34[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) and (state.count('WINGS', player) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Pale_Ore-Nosk", lambda state: state.count('Deepnest_32[left1]', player) and state.count('Defeated_Nosk', player)) - hk_set_rule(hk_world, "Pale_Ore-Colosseum", lambda state: state.count('Room_Colosseum_01[left1]', player) and state.count('Can_Replenish_Geo', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')) and state.count('WINGS', player))) and state.count('Defeated_Colosseum_2', player)) - hk_set_rule(hk_world, "Geo_Chest-False_Knight", lambda state: (state.count('Crossroads_10[left1]', player) or state.count('Crossroads_10[right1]', player)) and state.count('Defeated_False_Knight', player)) - hk_set_rule(hk_world, "Geo_Chest-Soul_Master", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Geo_Chest-Watcher_Knights", lambda state: state.count('Ruins2_03[top1]', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('Defeated_Watcher_Knights', player) and state.count('Ruins2_03[bot1]', player))) - hk_set_rule(hk_world, "Geo_Chest-Greenpath", lambda state: state.count('Fungus1_13[right1]', player)) - hk_set_rule(hk_world, "Geo_Chest-Mantis_Lords", lambda state: state.count('Fungus2_31[left1]', player) and state.count('Defeated_Mantis_Lords', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Geo_Chest-Resting_Grounds", lambda state: state.count('RestingGrounds_10', player)) - hk_set_rule(hk_world, "Geo_Chest-Crystal_Peak", lambda state: ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state.count("Grubberfly's_Elegy", player) and state.count('LEFTSLASH', player) and state._hk_option(player, 'ShadeSkips') and state._hk_option(player, 'ComplexSkips'))) and (state.count('Mines_37[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and state.count('RIGHTCLAW', player) and state._hk_option(player, 'ObscureSkips') and state._hk_option(player, 'PreciseMovement')) or ((state.count('Dashmaster', player) and state.count('Sprintmaster', player) and (state.count('NOTCHES', player) > state._hk_notches(player, 30, 36)) and state.count('Can_Bench', player)) and state._hk_option(player, 'ObscureSkips'))) or state.count('Mines_37[bot1]', player))) - hk_set_rule(hk_world, "Geo_Chest-Weavers_Den", lambda state: state.count('Deepnest_45_v02[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) and (state.count('LEFTDASH', player) and state.count('WINGS', player) or state.count('LEFTSUPERDASH', player)) and (state.count('LEFTDASH', player) or state._hk_option(player, 'SpikeTunnels')) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('LEFTSLASH', player) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player))) - hk_set_rule(hk_world, "Geo_Chest-Junk_Pit_1", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) - hk_set_rule(hk_world, "Geo_Chest-Junk_Pit_2", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) - hk_set_rule(hk_world, "Geo_Chest-Junk_Pit_3", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) - hk_set_rule(hk_world, "Geo_Chest-Junk_Pit_5", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) - hk_set_rule(hk_world, "Lumafly_Escape-Junk_Pit_Chest_4", lambda state: state.count('GG_Waterways[door1]', player) or (state.count('GG_Waterways[right1]', player) and (state.count('LEFTSUPERDASH', player) or state.count('SWIM', player)))) - hk_set_rule(hk_world, "Rancid_Egg-Sheo", lambda state: state.count('Fungus1_15[right1]', player) or state.count('Fungus1_15[door1]', player)) - hk_set_rule(hk_world, "Rancid_Egg-Fungal_Core", lambda state: state.count('Fungus2_29[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state.count('Fungus2_29[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Rancid_Egg-Queen's_Gardens", lambda state: state.count('Fungus3_34', player) and (state.count('RIGHTCLAW', player) and state._hk_option(player, 'BackgroundObjectPogos') or state.count('WINGS', player) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or (state.count('Fungus3_34[left1]', player) and state.count('RIGHTDASH', player))) - hk_set_rule(hk_world, "Rancid_Egg-Blue_Lake", lambda state: state.count('Crossroads_50[left1]', player) and state.count('RIGHTSUPERDASH', player) or ((state.count('Crossroads_50[left1]', player) or state.count('Crossroads_50[right1]', player)) and state.count('SWIM', player) and state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Rancid_Egg-Crystal_Peak_Dive_Entrance", lambda state: state.count('Mines_01[left1]', player) and state.count('QUAKE', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player))) or (state.count('Mines_01[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player))) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'PreciseMovement')) or (state.count('LEFTCLAW', player) and state.count('WINGS', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))))) - hk_set_rule(hk_world, "Rancid_Egg-Crystal_Peak_Dark_Room", lambda state: state.count('Mines_29[left1]', player) or state.count('Mines_29[right1]', player) or state.count('Mines_29[right2]', player)) - hk_set_rule(hk_world, "Rancid_Egg-Crystal_Peak_Tall_Room", lambda state: state.count('Mines_20', player) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Rancid_Egg-City_of_Tears_Left", lambda state: state.count('Ruins1_05c', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'BackgroundObjectPogos'))) - hk_set_rule(hk_world, "Rancid_Egg-City_of_Tears_Pleasure_House", lambda state: state.count('Ruins_Elevator[left1]', player) or state.count('Ruins_Elevator[left2]', player)) - hk_set_rule(hk_world, "Rancid_Egg-Beast's_Den", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Rancid_Egg-Dark_Deepnest", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39[left1]', player) or state.count('Deepnest_39[top1]', player) or state.count('Deepnest_39[door1]', player) or (state.count('Deepnest_39[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)) or ((state.count('WINGS', player) or state.count('RIGHTCLAW', player)) and state._hk_option(player, 'EnemyPogos')))))) - hk_set_rule(hk_world, "Rancid_Egg-Weaver's_Den", lambda state: state.count('Deepnest_45_v02[left1]', player) and (state._hk_option(player, 'SpikeTunnels') or state.count('LEFTDASH', player))) - hk_set_rule(hk_world, "Rancid_Egg-Near_Quick_Slash", lambda state: state.count('Deepnest_East_14[top2]', player) and state.count('QUAKE', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Rancid_Egg-Upper_Kingdom's_Edge", lambda state: state.count('Deepnest_East_07', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Rancid_Egg-Waterways_East", lambda state: state.count('Waterways_07', player)) - hk_set_rule(hk_world, "Rancid_Egg-Waterways_Main", lambda state: state.count('Waterways_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Waterways_02[top1]', player) or (state.count('QUAKE', player) and state.count('Waterways_02[top3]', player)))) - hk_set_rule(hk_world, "Rancid_Egg-Waterways_West_Bluggsac", lambda state: state.count('Waterways_04[right1]', player) and (state.count('SWIM', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')) or (((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) and state.count('WINGS', player)) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'FireballSkips') and state._hk_option(player, 'AcidSkips') and state.count('FIREBALL', player) and state.count('LEFTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player))) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')) or (((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) and state.count('WINGS', player)) or (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'FireballSkips') and state._hk_option(player, 'AcidSkips') and state.count('FIREBALL', player) and state.count('LEFTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) or (state.count('Waterways_04[left2]', player) and (state.count('SWIM', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state._hk_option(player, 'EnemyPogos')) or (((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')) and state.count('WINGS', player))))) - hk_set_rule(hk_world, "Rancid_Egg-Waterways_West_Pickup", lambda state: state.count('Waterways_04b[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips')))) - hk_set_rule(hk_world, "Rancid_Egg-Tuk_Defender's_Crest", lambda state: state.count('Waterways_03[left1]', player) and (state.count("Defender's_Crest", player) and state.count('Can_Bench', player))) - hk_set_rule(hk_world, "Wanderer's_Journal-Cliffs", lambda state: state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player) or (state.count('Cliffs_01[right3]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos')))) or state.count('Cliffs_01[right4]', player)) - hk_set_rule(hk_world, "Wanderer's_Journal-Greenpath_Stag", lambda state: state.count('Fungus1_22[left1]', player) or state.count('Fungus1_22[top1]', player)) - hk_set_rule(hk_world, "Wanderer's_Journal-Greenpath_Lower", lambda state: state.count('Fungus1_11', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Wanderer's_Journal-Fungal_Wastes_Thorns_Gauntlet", lambda state: state.count('Fungus2_04', player) and (state.count('LEFTCLAW', player) and state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state.count('RIGHTDASH', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player)) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))))) - hk_set_rule(hk_world, "Wanderer's_Journal-Above_Mantis_Village", lambda state: state.count('Fungus2_17', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Wanderer's_Journal-Crystal_Peak_Crawlers", lambda state: state.count('Mines_20', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Wanderer's_Journal-Resting_Grounds_Catacombs", lambda state: state.count('RestingGrounds_10', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Wanderer's_Journal-King's_Station", lambda state: state.count('Ruins2_05[bot1]', player) and state._hk_option(player, 'EnemyPogos') or state.count('Ruins2_05[left1]', player) or state.count('Ruins2_05[top1]', player)) - hk_set_rule(hk_world, "Wanderer's_Journal-Pleasure_House", lambda state: state.count('Ruins_Elevator[left1]', player) or state.count('Ruins_Elevator[left2]', player)) - hk_set_rule(hk_world, "Wanderer's_Journal-City_Storerooms", lambda state: state.count('Ruins1_28', player) or state.count('Ruins1_28[left1]', player)) - hk_set_rule(hk_world, "Wanderer's_Journal-Ancient_Basin", lambda state: (state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'SpikeTunnels'))) - hk_set_rule(hk_world, "Wanderer's_Journal-Kingdom's_Edge_Entrance", lambda state: state.count('Deepnest_East_07[bot1]', player)) - hk_set_rule(hk_world, "Wanderer's_Journal-Kingdom's_Edge_Camp", lambda state: state.count('Deepnest_East_13[bot1]', player)) - hk_set_rule(hk_world, "Wanderer's_Journal-Kingdom's_Edge_Requires_Dive", lambda state: state.count('Deepnest_East_18', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Deepnest_East_18[top1]', player)) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Hallownest_Seal-Crossroads_Well", lambda state: (state.count('Crossroads_01[left1]', player) or state.count('Crossroads_01[top1]', player) or state.count('Crossroads_01[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and (state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15 or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or (state.count('LEFTDASH', player) or state.count('RIGHTDASH', player))) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player)))) or ((state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player)) and (state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))) - hk_set_rule(hk_world, "Hallownest_Seal-Greenpath", lambda state: (state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[top1]', player) or state.count('Fungus1_10[right1]', player)) and (state.count('ACID', player) or (state.count('WINGS', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state.count('LEFTDASH', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)) or (state.count('Dashmaster', player) and state._hk_option(player, 'ObscureSkips')) or state.count('WINGS', player) or state.count('LEFTCLAW', player))) or state.count('LEFTSUPERDASH', player))) - hk_set_rule(hk_world, "Hallownest_Seal-Fog_Canyon_West", lambda state: state.count('Fungus3_30[bot1]', player)) - hk_set_rule(hk_world, "Hallownest_Seal-Fog_Canyon_East", lambda state: (state.count('Fungus3_26', player) and (state.count('Fungus3_26[top1]', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and (state.count('LEFTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) and state._hk_option(player, 'EnemyPogos')))) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player) or state.count('LEFTDASH', player) or (state._hk_option(player, 'DamageBoosts') and state.count('MASKSHARDS', player) > 7))) - hk_set_rule(hk_world, "Hallownest_Seal-Queen's_Station", lambda state: state.count('Fungus2_34[right1]', player) and state.count('WINGS', player)) - hk_set_rule(hk_world, "Hallownest_Seal-Fungal_Wastes_Sporgs", lambda state: state.count('Fungus2_03', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('LEFTCLAW', player) or state._hk_option(player, 'PreciseMovement') or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips')))) - hk_set_rule(hk_world, "Hallownest_Seal-Mantis_Lords", lambda state: state.count('Fungus2_31[left1]', player) and state.count('Defeated_Mantis_Lords', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Hallownest_Seal-Resting_Grounds_Catacombs", lambda state: state.count('RestingGrounds_10', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Hallownest_Seal-King's_Station", lambda state: state.count('Ruins2_08[left1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player)))) - hk_set_rule(hk_world, "Hallownest_Seal-City_Rafters", lambda state: state.count('Ruins1_03', player)) - hk_set_rule(hk_world, "Hallownest_Seal-Soul_Sanctum", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Hallownest_Seal-Watcher_Knight", lambda state: (state.count('Ruins2_03[top1]', player) or (state.count('Ruins2_03[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('Defeated_Watcher_Knights', player))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or (state.count('RIGHTDASH', player) and state._hk_option(player, 'BackgroundObjectPogos')))) - hk_set_rule(hk_world, "Hallownest_Seal-Deepnest_By_Mantis_Lords", lambda state: state.count('Deepnest_16[bot1]', player) and (state.count('LEFTCLAW', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "Hallownest_Seal-Beast's_Den", lambda state: state.count('Deepnest_Spider_Town[left1]', player)) - hk_set_rule(hk_world, "Hallownest_Seal-Queen's_Gardens", lambda state: (state.count('Fungus3_48[right2]', player) or state.count('Fungus3_48[bot1]', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips')))) - hk_set_rule(hk_world, "King's_Idol-Cliffs", lambda state: state.count('Cliffs_01', player)) - hk_set_rule(hk_world, "King's_Idol-Crystal_Peak", lambda state: (state.count('Mines_30[right1]', player) or (state.count('RIGHTSUPERDASH', player) and state.count('Mines_30[left1]', player))) and (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'BackgroundObjectPogos') or state.count('WINGS', player))) - hk_set_rule(hk_world, "King's_Idol-Glade_of_Hope", lambda state: state.count('RestingGrounds_08[left1]', player) and (state.count('SWIM', player) and state.count('LEFTCLAW', player) or (state.count('SWIM', player) and state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('RIGHTSUPERDASH', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) or (state.count('RIGHTSUPERDASH', player) and state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state.count('RIGHTDASH', player)) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'DifficultSkips') and (state.count('SWIM', player) or state.count('RIGHTSUPERDASH', player))))) - hk_set_rule(hk_world, "King's_Idol-Dung_Defender", lambda state: state.count('Waterways_15[top1]', player)) - hk_set_rule(hk_world, "King's_Idol-Great_Hopper", lambda state: state.count('Deepnest_East_08[top1]', player) or state.count('Deepnest_East_08[right1]', player)) - hk_set_rule(hk_world, "King's_Idol-Pale_Lurker", lambda state: state.count('GG_Lurker[left1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')))) - hk_set_rule(hk_world, "King's_Idol-Deepnest", lambda state: state.count('Deepnest_33[top1]', player)) - hk_set_rule(hk_world, "Arcane_Egg-Lifeblood_Core", lambda state: state.count('Abyss_08[right1]', player) and (state._hk_option(player, 'PreciseMovement') or state.count('LEFTDASH', player)) and (state.count('RIGHTSUPERDASH', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Arcane_Egg-Shade_Cloak", lambda state: state.count('Abyss_10[left2]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or (state.count('Abyss_10[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player) or (state.count('WHITEFRAGMENT', player) > 2 and (state.count('SWIM', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))))) - hk_set_rule(hk_world, "Arcane_Egg-Birthplace", lambda state: state.count('Abyss_15[top1]', player)) - hk_set_rule(hk_world, "Whispering_Root-Crossroads", lambda state: state.count('Crossroads_07', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and (state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or (state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))) and state.count('DREAMNAIL', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Whispering_Root-Greenpath", lambda state: state.count('Fungus1_13[left1]', player) and state.count('Fungus1_13[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or (state.count('MASKSHARDS', player) > 7 and state._hk_option(player, 'DamageBoosts'))))) and state.count('DREAMNAIL', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Great_Slash', player) or state.count('Cyclone_Slash', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('Dash_Slash', player)))) - hk_set_rule(hk_world, "Whispering_Root-Leg_Eater", lambda state: (state.count('Fungus2_33[left1]', player) or state.count('Fungus2_33[right1]', player)) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Whispering_Root-Mantis_Village", lambda state: state.count('Fungus2_17', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Whispering_Root-Deepnest", lambda state: state.count('Deepnest_39', player) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Whispering_Root-Queens_Gardens", lambda state: state.count('Fungus3_11', player) and state.count('LEFTCLAW', player) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Whispering_Root-Kingdoms_Edge", lambda state: state.count('Deepnest_East_07', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Whispering_Root-Waterways", lambda state: state.count('Abyss_01[left3]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Whispering_Root-City", lambda state: (state.count('Ruins1_17[top1]', player) or state.count('Ruins1_17[right1]', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos')) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Whispering_Root-Resting_Grounds", lambda state: state.count('RestingGrounds_05', player) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Whispering_Root-Spirits_Glade", lambda state: state.count('RestingGrounds_08[left1]', player) and state.count('DREAMNAIL', player) and (state.count('WINGS', player) and (state.count('SWIM', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('RIGHTDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('RIGHTSUPERDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or (state.count('LEFTCLAW', player) and state.count('SWIM', player) and state.count('RIGHTDASH', player)) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTSUPERDASH', player) and state.count('RIGHTDASH', player)) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'DifficultSkips') and (state.count('SWIM', player) or state.count('RIGHTSUPERDASH', player))))) - hk_set_rule(hk_world, "Whispering_Root-Crystal_Peak", lambda state: (state.count('Mines_23[left1]', player) or state.count('Mines_23[top1]', player) or state.count('Mines_23[right1]', player) or state.count('Mines_23[right2]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or state.count('WINGS', player)) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Whispering_Root-Howling_Cliffs", lambda state: state.count('Cliffs_01', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Whispering_Root-Ancestral_Mound", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and (state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state._hk_option(player, 'EnemyPogos'))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('LEFTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('LEFTSLASH', player) or (state.count('LEFTDASH', player) and state.count('LEFTSLASH', player))) and state._hk_option(player, 'DifficultSkips')))) and state.count('DREAMNAIL', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Whispering_Root-Hive", lambda state: (state.count('Hive_02[left1]', player) or state.count('Hive_02[left2]', player) or state.count('Hive_02[left3]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTCLAW', player))) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Boss_Essence-Elder_Hu", lambda state: state.count('Fungus2_32[left1]', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Elder_Hu', player)) - hk_set_rule(hk_world, "Boss_Essence-Xero", lambda state: state.count('RestingGrounds_02', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Xero', player)) - hk_set_rule(hk_world, "Boss_Essence-Gorb", lambda state: state.count('Cliffs_02', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Gorb', player)) - hk_set_rule(hk_world, "Boss_Essence-Marmu", lambda state: (state.count('Fungus3_40[top1]', player) or (state.count('Fungus3_40[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)))) and state.count('DREAMNAIL', player) and state.count('Defeated_Marmu', player)) - hk_set_rule(hk_world, "Boss_Essence-No_Eyes", lambda state: (state.count('Fungus1_35[left1]', player) or state.count('Fungus1_35[right1]', player)) and state.count('LANTERN', player) and state.count('DREAMNAIL', player) and state.count('Defeated_No_Eyes', player)) - hk_set_rule(hk_world, "Boss_Essence-Galien", lambda state: state.count('Deepnest_40[right1]', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Galien', player)) - hk_set_rule(hk_world, "Boss_Essence-Markoth", lambda state: state.count('Deepnest_East_10[left1]', player) and state.count('DREAMNAIL', player) and state.count('Defeated_Markoth', player)) - hk_set_rule(hk_world, "Boss_Essence-Failed_Champion", lambda state: (state.count('Crossroads_10[left1]', player) or state.count('Crossroads_10[right1]', player)) and state.count('Defeated_False_Knight', player) and state.count('Defeated_Failed_Champion', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player)))) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Boss_Essence-Soul_Tyrant", lambda state: (state.count('Ruins1_24[right1]', player) or state.count('Ruins1_24[left1]', player)) and state.count('Defeated_Soul_Master', player) and state.count('Defeated_Soul_Tyrant', player) and state.count('DREAMNAIL', player)) - hk_set_rule(hk_world, "Boss_Essence-Lost_Kin", lambda state: state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and state.count('DREAMNAIL', player) and state.count('Defeated_Broken_Vessel', player) and state.count('Defeated_Lost_Kin', player)) - hk_set_rule(hk_world, "Boss_Essence-White_Defender", lambda state: state.count('Waterways_15[top1]', player) and state.count('DREAMNAIL', player) and (state.count('DREAMER', player) > 2) and state.count('Defeated_Dung_Defender', player) and state.count('Defeated_White_Defender', player)) - hk_set_rule(hk_world, "Boss_Essence-Grey_Prince_Zote", lambda state: state.count('Room_Bretta[right1]', player) and state.count('DREAMNAIL', player) and state.count('WINGS', player) and state.count('Rescued_Bretta', player) and state.count('Defeated_Colosseum_Zote', player) and state.count('Defeated_Grey_Prince_Zote', player)) - hk_set_rule(hk_world, "Grub-Crossroads_Acid", lambda state: state.count('Crossroads_35[right1]', player) or (state.count('Crossroads_35[bot1]', player) and state.count('RIGHTCLAW', player) and (state.count('ACID', player) or ((state.count('LEFTSUPERDASH', player) and state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTDASH', player))) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Grub-Crossroads_Center", lambda state: (state.count('Crossroads_05[left1]', player) or state.count('Crossroads_05[right1]', player)) and (state._hk_option(player, 'EnemyPogos') or state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player))) - hk_set_rule(hk_world, "Grub-Crossroads_Stag", lambda state: state.count('Crossroads_03', player)) - hk_set_rule(hk_world, "Grub-Crossroads_Spike", lambda state: state.count('Crossroads_31[right1]', player)) - hk_set_rule(hk_world, "Grub-Crossroads_Guarded", lambda state: state.count('Crossroads_48[left1]', player)) - hk_set_rule(hk_world, "Grub-Greenpath_Cornifer", lambda state: (state.count('Fungus1_06[left1]', player) or state.count('Fungus1_06[bot1]', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Great_Slash', player) or state.count('Cyclone_Slash', player) or state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Grub-Greenpath_Journal", lambda state: (state.count('Fungus1_07[left1]', player) or state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[right1]', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Great_Slash', player) or state.count('Cyclone_Slash', player) or state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state.count('ACID', player) and (state.count('RIGHTCLAW', player) or state._hk_option(player, 'EnemyPogos'))) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips')))) - hk_set_rule(hk_world, "Grub-Greenpath_MMC", lambda state: state.count('Fungus1_13[right1]', player)) - hk_set_rule(hk_world, "Grub-Greenpath_Stag", lambda state: state.count('Fungus1_21', player)) - hk_set_rule(hk_world, "Grub-Fog_Canyon", lambda state: state.count('LEFTSUPERDASH', player) and state.count('Fungus3_47', player)) - hk_set_rule(hk_world, "Grub-Fungal_Bouncy", lambda state: state.count('Fungus2_18[right1]', player)) - hk_set_rule(hk_world, "Grub-Fungal_Spore_Shroom", lambda state: state.count('Fungus2_20[left1]', player) or state.count('Fungus2_20[right1]', player)) - hk_set_rule(hk_world, "Grub-Deepnest_Mimic", lambda state: state.count('Deepnest_36[left1]', player)) - hk_set_rule(hk_world, "Grub-Deepnest_Nosk", lambda state: state.count('Deepnest_31[right1]', player) or (state.count('Deepnest_31[right2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Grub-Deepnest_Spike", lambda state: state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('Deepnest_03[top1]', player)))) - hk_set_rule(hk_world, "Grub-Dark_Deepnest", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) or state.count('Deepnest_39[top1]', player) or (state.count('Deepnest_39[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Grub-Beast's_Den", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Grub-Kingdom's_Edge_Oro", lambda state: ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) and (state.count('Deepnest_East_14[top2]', player) and state.count('QUAKE', player) and (state._hk_option(player, 'PreciseMovement') or state.count('RIGHTDASH', player)) or (state.count('Deepnest_East_14[left1]', player) and (state._hk_option(player, 'SpikeTunnels') or state.count('RIGHTDASH', player))) or state.count('Deepnest_East_14[door1]', player))) - hk_set_rule(hk_world, "Grub-Kingdom's_Edge_Camp", lambda state: state.count('Deepnest_East_11', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state._hk_option(player, 'PreciseMovement') and state.count('LEFTDASH', player)))) - hk_set_rule(hk_world, "Grub-Hive_External", lambda state: state.count('Hive_03[top1]', player)) - hk_set_rule(hk_world, "Grub-Hive_Internal", lambda state: (state.count('Hive_04[left1]', player) or state.count('Hive_04[right1]', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips')))) - hk_set_rule(hk_world, "Grub-Basin_Requires_Wings", lambda state: state.count('Abyss_19', player) and state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Grub-Basin_Requires_Dive", lambda state: state.count('Abyss_17[top1]', player) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Grub-Waterways_Main", lambda state: state.count('Waterways_04[right1]', player) and (state.count('RIGHTCLAW', player) or state.count('SWIM', player) or state.count('CYCLONE', player) or state.count('FIREBALL', player) or state.count('SCREAM', player)) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('RIGHTCLAW', player) or state.count('SWIM', player) or state.count('CYCLONE', player) or state.count('FIREBALL', player) or state.count('SCREAM', player))) or (state.count('Waterways_04[left2]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Grub-Isma's_Grove", lambda state: (state.count('Waterways_13[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player)))) or (state.count('Waterways_13[left2]', player) and (state.count('RIGHTCLAW', player) or ((state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) and state.count('LEFTCLAW', player))))) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips')))) - hk_set_rule(hk_world, "Grub-Waterways_Requires_Tram", lambda state: state.count('Waterways_14[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('RIGHTSUPERDASH', player) and state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) or (state.count('ACID', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))))) or (state.count('Waterways_14[bot2]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and (state.count('LEFTSUPERDASH', player) and state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos'))) or (state.count('ACID', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))))))) - hk_set_rule(hk_world, "Grub-City_of_Tears_Left", lambda state: state.count('Ruins1_05', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and (state.count('Ruins1_05[top1]', player) or state.count('Ruins1_05[right1]', player))))) - hk_set_rule(hk_world, "Grub-Soul_Sanctum", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Grub-Watcher's_Spire", lambda state: state.count('Ruins2_03[bot2]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player)))) - hk_set_rule(hk_world, "Grub-City_of_Tears_Guarded", lambda state: state.count('Ruins_House_01[left1]', player)) - hk_set_rule(hk_world, "Grub-King's_Station", lambda state: state.count('Ruins2_07[left1]', player) and (state.count('SWIM', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))) or (state.count('Ruins2_07[top1]', player) and (state.count('LEFTDASH', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement')))) or (state.count('Ruins2_07[right1]', player) and (state.count('LEFTDASH', player) or state.count('SWIM', player) or ((state.count('RIGHTCLAW', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))) and state.count('LEFTSUPERDASH', player)) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and state._hk_option(player, 'PreciseMovement'))))) - hk_set_rule(hk_world, "Grub-Resting_Grounds", lambda state: state.count('RestingGrounds_10', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Grub-Crystal_Peak_Below_Chest", lambda state: state.count('Mines_04[top1]', player)) - hk_set_rule(hk_world, "Grub-Crystallized_Mound", lambda state: state.count('Mines_35[left1]', player) and state.count('QUAKE', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'PreciseMovement') and (state.count('RIGHTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Grub-Crystal_Peak_Spike", lambda state: state.count('Mines_03', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or (state.count('WINGS', player) and state._hk_option(player, 'SpikeTunnels') and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))))) - hk_set_rule(hk_world, "Grub-Crystal_Peak_Mimic", lambda state: state.count('Mines_16[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Grub-Crystal_Peak_Crushers", lambda state: (state.count('Mines_19[left1]', player) and state.count('Mines_19[right1]', player)) and state.count('LEFTDASH', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Grub-Crystal_Heart", lambda state: state.count('Mines_31[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTDASH', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))) - hk_set_rule(hk_world, "Grub-Hallownest_Crown", lambda state: state.count('Mines_24[left1]', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'SpikeTunnels'))) - hk_set_rule(hk_world, "Grub-Howling_Cliffs", lambda state: state.count('Fungus1_28[left1]', player) or (state.count('Fungus1_28[left2]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and ((state.count('FIREBALL', player) or state.count('QUAKE', player) or (state.count('Glowing_Womb', player) and state.count('Can_Bench', player)) or ((state.count('Weaversong', player) and state.count('Can_Bench', player) or ((state.count('Spore_Shroom', player) and state.count('Can_Bench', player)) and state.count('FOCUS', player))) and state._hk_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._hk_option(player, 'DifficultSkips'))) or ((state.count("Grubberfly's_Elegy", player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player)) or (state.count('Dash_Slash', player) and state.count('RIGHTDASH', player)) or (((state.count('Mark_of_Pride', player) and state.count('Can_Bench', player)) and state.count('RIGHTSLASH', player) or (state.count('RIGHTDASH', player) and state.count('RIGHTSLASH', player))) and state._hk_option(player, 'DifficultSkips'))) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))))) - hk_set_rule(hk_world, "Grub-Queen's_Gardens_Stag", lambda state: state.count('Fungus3_10[bot1]', player) and (state.count('WINGS', player) or (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) and state.count("Defeated_West_Queen's_Gardens_Arena", player) or state.count('Fungus3_10[top1]', player)) - hk_set_rule(hk_world, "Grub-Queen's_Gardens_Marmu", lambda state: (state.count('Fungus3_48[bot1]', player) or state.count('Fungus3_48[right2]', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) - hk_set_rule(hk_world, "Grub-Queen's_Gardens_Top", lambda state: state.count('Fungus3_22', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTSUPERDASH', player) and (state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player)) or (state._hk_option(player, 'ComplexSkips') and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and state.count('WINGS', player) and state.count('LEFTCLAW', player) and (state.count('RIGHTCLAW', player) and (state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and state.count('Can_Bench', player)) or (state.count('RIGHTCLAW', player) and state.count('LEFTDASH', player) and state._hk_option(player, 'DifficultSkips')) or ((state.count('Sharp_Shadow', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('LEFTDASH', player)) and state.count('Can_Bench', player)) and state._hk_option(player, 'DifficultSkips')))))) - hk_set_rule(hk_world, "Grub-Collector_1", lambda state: state.count('Ruins2_11[right1]', player) and (state.count('LEFTCLAW', player) or ((state.count('WINGS', player) or state.count('RIGHTDASH', player)) and state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips'))) and state.count('Defeated_Collector', player)) - hk_set_rule(hk_world, "Grub-Collector_2", lambda state: state.count('Ruins2_11[right1]', player) and (state.count('LEFTCLAW', player) or ((state.count('WINGS', player) or state.count('RIGHTDASH', player)) and state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips'))) and state.count('Defeated_Collector', player)) - hk_set_rule(hk_world, "Grub-Collector_3", lambda state: state.count('Ruins2_11[right1]', player) and (state.count('LEFTCLAW', player) or ((state.count('WINGS', player) or state.count('RIGHTDASH', player)) and state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips'))) and state.count('Defeated_Collector', player)) - hk_set_rule(hk_world, "Mimic_Grub-Deepnest_1", lambda state: state.count('Deepnest_36[left1]', player)) - hk_set_rule(hk_world, "Mimic_Grub-Deepnest_2", lambda state: state.count('Deepnest_36[left1]', player)) - hk_set_rule(hk_world, "Mimic_Grub-Deepnest_3", lambda state: state.count('Deepnest_36[left1]', player)) - hk_set_rule(hk_world, "Mimic_Grub-Crystal_Peak", lambda state: state.count('Mines_16[top1]', player)) - hk_set_rule(hk_world, "Crossroads_Map", lambda state: state.count('Crossroads_33', player)) - hk_set_rule(hk_world, "Greenpath_Map", lambda state: state.count('Fungus1_06[left1]', player) or state.count('Fungus1_06[bot1]', player)) - hk_set_rule(hk_world, "Fog_Canyon_Map", lambda state: (state.count('Fungus3_25[left1]', player) and ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or state.count('Fungus3_25[right1]', player)) and (state.count('LEFTCLAW', player) and state.count('LEFTDASH', player) and state._hk_option(player, 'EnemyPogos') or state.count('WINGS', player)) or (False and state.count('LEFTDASH', player) and state.count('LEFTCLAW', player))) - hk_set_rule(hk_world, "Fungal_Wastes_Map", lambda state: state.count('Fungus2_18[top1]', player) or state.count('Fungus2_18[right1]', player) or (state.count('Fungus2_18[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Deepnest_Map-Upper", lambda state: state.count('Deepnest_01b', player)) - hk_set_rule(hk_world, "Deepnest_Map-Right", lambda state: (state.count('Fungus2_25[top1]', player) or state.count('Fungus2_25[top2]', player) or state.count('Fungus2_25[right1]', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Ancient_Basin_Map", lambda state: state.count('Abyss_04[top1]', player) and (state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'PreciseMovement')) or ((state.count('Abyss_04[left1]', player) or state.count('Abyss_04[right1]', player) or state.count('Abyss_04[bot1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Kingdom's_Edge_Map", lambda state: state.count('Deepnest_East_03', player)) - hk_set_rule(hk_world, "City_of_Tears_Map", lambda state: state.count('Ruins1_31', player) or state.count('Ruins1_31[bot1]', player) or state.count('Ruins1_31[left1]', player)) - hk_set_rule(hk_world, "Royal_Waterways_Map", lambda state: (state.count('Waterways_09[left1]', player) or state.count('Waterways_09[right1]', player)) and (state.count('LEFTCLAW', player) or ((state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or False) - hk_set_rule(hk_world, "Howling_Cliffs_Map", lambda state: state.count('Cliffs_01', player) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player))) - hk_set_rule(hk_world, "Crystal_Peak_Map", lambda state: state.count('Mines_30[right1]', player) or (state.count('RIGHTSUPERDASH', player) and state.count('Mines_30[left1]', player))) - hk_set_rule(hk_world, "Queen's_Gardens_Map", lambda state: state.count('Fungus1_24[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Resting_Grounds_Map", lambda state: state.count('RestingGrounds_09[left1]', player) or (state.count('Resting_Grounds_Stag', player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Dirtmouth_Stag", lambda state: state.count('Room_Town_Stag_Station[left1]', player) or state.count('Can_Stag', player)) - hk_set_rule(hk_world, "Crossroads_Stag", lambda state: state.count('Crossroads_47[right1]', player) or (state.count('Crossroads_Stag', player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Greenpath_Stag", lambda state: state.count('Fungus1_16_alt[right1]', player) or (state.count('Greenpath_Stag', player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Queen's_Station_Stag", lambda state: state.count('Fungus2_02[right1]', player) or (state.count("Queen's_Station_Stag", player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Queen's_Gardens_Stag", lambda state: state.count('Fungus3_40[top1]', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player)) or state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'ShadeSkips') or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) or state.count('Fungus3_40[right1]', player) or (state.count("Queen's_Gardens_Stag", player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "City_Storerooms_Stag", lambda state: state.count('Ruins1_29[left1]', player) or (state.count('City_Storerooms_Stag', player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "King's_Station_Stag", lambda state: state.count('Ruins2_08[left1]', player) or (state.count("King's_Station_Stag", player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Resting_Grounds_Stag", lambda state: state.count('RestingGrounds_09[left1]', player) or (state.count('Resting_Grounds_Stag', player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Distant_Village_Stag", lambda state: state.count('Deepnest_09[left1]', player) or (state.count('Distant_Village_Stag', player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Hidden_Station_Stag", lambda state: state.count('Abyss_22[left1]', player) or (state.count('Hidden_Station_Stag', player) and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Stag_Nest_Stag", lambda state: state.count('Cliffs_03[right1]', player) or (state.count('STAGS', player) > 8 and state.count('Can_Stag', player))) - hk_set_rule(hk_world, "Lifeblood_Cocoon-King's_Pass", lambda state: state.count('Tutorial_01', player)) - hk_set_rule(hk_world, "Lifeblood_Cocoon-Ancestral_Mound", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) - hk_set_rule(hk_world, "Lifeblood_Cocoon-Greenpath", lambda state: state.count('Fungus1_32[bot1]', player) or state.count('Fungus1_32[top1]', player) or state.count('Fungus1_32[left1]', player)) - hk_set_rule(hk_world, "Lifeblood_Cocoon-Fog_Canyon_West", lambda state: state.count('Fungus3_30[bot1]', player)) - hk_set_rule(hk_world, "Lifeblood_Cocoon-Mantis_Village", lambda state: (state.count('Fungus2_15[top3]', player) or state.count('Fungus2_15[right1]', player) or state.count('Fungus2_15[left1]', player)) and (state.count('LEFTCLAW', player) and state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)))) - hk_set_rule(hk_world, "Lifeblood_Cocoon-Failed_Tramway", lambda state: state.count('Deepnest_26', player) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and (state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'ShadeSkips'))))) - hk_set_rule(hk_world, "Lifeblood_Cocoon-Galien", lambda state: state.count('Deepnest_40[right1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player)))) - hk_set_rule(hk_world, "Lifeblood_Cocoon-Kingdom's_Edge", lambda state: state.count('Deepnest_East_15[left1]', player)) - hk_set_rule(hk_world, "Grimmkin_Flame-City_Storerooms", lambda state: state.count('Ruins1_28', player) and state.count('GRIMMCHILD', player)) - hk_set_rule(hk_world, "Grimmkin_Flame-Greenpath", lambda state: (state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[top1]', player) or state.count('Fungus1_10[right1]', player)) and state.count('GRIMMCHILD', player)) - hk_set_rule(hk_world, "Grimmkin_Flame-Crystal_Peak", lambda state: ((state.count('Mines_10[left1]', player) or state.count('Mines_10[bot1]', player)) and (state.count('WINGS', player) and state.count('RIGHTDASH', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'ShadeSkips') and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and (state.count('MASKSHARDS', player) > 15))) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('RIGHTSUPERDASH', player))) or (state.count('Mines_10[right1]', player) and (state.count('LEFTSUPERDASH', player) or (state.count('LEFTDASH', player) and state.count('WINGS', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))))) and state.count('GRIMMCHILD', player)) - hk_set_rule(hk_world, "Grimmkin_Flame-King's_Pass", lambda state: state.count('Tutorial_01', player) and state.count('First_Grimmchild_Upgrade', player)) - hk_set_rule(hk_world, "Grimmkin_Flame-Resting_Grounds", lambda state: (state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[right1]', player) or state.count('RestingGrounds_06[top1]', player)) and state.count('First_Grimmchild_Upgrade', player)) - hk_set_rule(hk_world, "Grimmkin_Flame-Kingdom's_Edge", lambda state: state.count('Deepnest_East_03', player) and state.count('First_Grimmchild_Upgrade', player)) - hk_set_rule(hk_world, "Grimmkin_Flame-Fungal_Core", lambda state: state.count('Fungus2_30[top1]', player) and state.count('Second_Grimmchild_Upgrade', player)) - hk_set_rule(hk_world, "Grimmkin_Flame-Ancient_Basin", lambda state: (state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos')))) and state.count('Second_Grimmchild_Upgrade', player)) - hk_set_rule(hk_world, "Grimmkin_Flame-Hive", lambda state: (state.count('Hive_03[right1]', player) or (state.count('Hive_03[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))))) and state.count('Second_Grimmchild_Upgrade', player)) - hk_set_rule(hk_world, "Grimmkin_Flame-Brumm", lambda state: state.count('Room_spider_small[left1]', player) and state.count('Second_Grimmchild_Upgrade', player)) - hk_set_rule(hk_world, "Hunter's_Journal", lambda state: state.count('Fungus1_08[left1]', player)) - hk_set_rule(hk_world, "Journal_Entry-Void_Tendrils", lambda state: state.count('Abyss_09[right3]', player)) - hk_set_rule(hk_world, "Journal_Entry-Charged_Lumafly", lambda state: state.count('Fungus3_archive_02[top1]', player) and state.count('Defeated_Uumuu', player) and ((state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player) or state.count('ACID', player)) or (state._hk_option(player, 'AcidSkips') and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "Journal_Entry-Goam", lambda state: state.count('Crossroads_52[left1]', player) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Journal_Entry-Garpede", lambda state: state.count('Deepnest_44[top1]', player)) - hk_set_rule(hk_world, "Journal_Entry-Seal_of_Binding", lambda state: state.count('White_Palace_20[bot1]', player) and state.count('Completed_Path_of_Pain', player)) - hk_set_rule(hk_world, "Elevator_Pass", lambda state: state.count('Crossroads_49b[right1]', player)) - hk_set_rule(hk_world, "Split_Mothwing_Cloak", lambda state: state.count('Fungus1_04[right1]', player) and state.count('Defeated_Hornet_1', player)) - hk_set_rule(hk_world, "Left_Mantis_Claw", lambda state: state.count('Fungus2_14', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Right_Mantis_Claw", lambda state: state.count('Fungus2_14', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('LEFTSUPERDASH', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Split_Crystal_Heart", lambda state: state.count('Mines_31[left1]', player) and (state.count('RIGHTSUPERDASH', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Leftslash", lambda state: state.count('Tutorial_01', player)) - hk_set_rule(hk_world, "Rightslash", lambda state: state.count('Tutorial_01', player)) - hk_set_rule(hk_world, "Upslash", lambda state: state.count('Tutorial_01', player)) - hk_set_rule(hk_world, "Egg_Shop", lambda state: state.count('Room_Ouiji[left1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Broken_Elevator_1", lambda state: state.count('Abyss_01[right1]', player) or state.count('Abyss_01[left1]', player) or (state.count('Abyss_01', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) - hk_set_rule(hk_world, "Geo_Rock-Broken_Elevator_2", lambda state: (state.count('Abyss_01[right1]', player) or state.count('Abyss_01[left1]', player) or (state.count('Abyss_01', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) and (state.count('RIGHTDASH', player) or state._hk_option(player, 'SpikeTunnels'))) - hk_set_rule(hk_world, "Geo_Rock-Broken_Elevator_3", lambda state: state.count('Abyss_01[right1]', player) or state.count('Abyss_01[left1]', player) or (state.count('Abyss_01', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))))) - hk_set_rule(hk_world, "Geo_Rock-Broken_Bridge_Upper", lambda state: (state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Geo_Rock-Broken_Bridge_Lower", lambda state: state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Broken_Bridge_Lower_Dupe", lambda state: state.count('Abyss_02[right1]', player) or (state.count('Abyss_02[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Abyss_1", lambda state: state.count('Abyss_06_Core[top1]', player) and state.count('BRAND', player) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)) or ((state.count('Abyss_06_Core[left1]', player) or state.count('Abyss_06_Core[left3]', player) or state.count('Abyss_06_Core[right2]', player) or state.count('Abyss_06_Core[bot1]', player)) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Abyss_2", lambda state: state.count('Abyss_06_Core[top1]', player) and state.count('BRAND', player) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player)) or ((state.count('Abyss_06_Core[left1]', player) or state.count('Abyss_06_Core[left3]', player) or state.count('Abyss_06_Core[right2]', player) or state.count('Abyss_06_Core[bot1]', player)) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Abyss_3", lambda state: state.count('Abyss_06_Core[top1]', player) and state.count('BRAND', player) or ((state.count('Abyss_06_Core[left3]', player) or state.count('Abyss_06_Core[right2]', player) or state.count('Abyss_06_Core[bot1]', player)) and (state.count('LEFTCLAW', player) and (state._hk_option(player, 'PreciseMovement') or state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) or state.count('WINGS', player))) or state.count('Abyss_06_Core[left1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Basin_Tunnel", lambda state: state.count('Abyss_18[right1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player)) or (state.count('Abyss_18[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Geo_Rock-Basin_Grub", lambda state: state.count('Abyss_19', player) and state.count('WINGS', player)) - hk_set_rule(hk_world, "Geo_Rock-Basin_Before_Broken_Vessel", lambda state: state.count('Abyss_19[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or state.count('Abyss_19[bot2]', player) or state.count('Abyss_19[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Cliffs_Main_1", lambda state: state.count('Cliffs_01[right1]', player) or (state.count('Cliffs_01[right2]', player) and (state.count('LEFTDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) or ((state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Cliffs_Main_2", lambda state: state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player) or ((state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Cliffs_Main_3", lambda state: (state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player)) and (state.count('RIGHTDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos') or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or ((state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Cliffs_Main_4", lambda state: state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player) or ((state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos') or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Below_Gorb_Dupe", lambda state: state.count('Cliffs_02', player)) - hk_set_rule(hk_world, "Geo_Rock-Below_Gorb", lambda state: state.count('Cliffs_02', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Well", lambda state: state.count('Crossroads_01[left1]', player) or state.count('Crossroads_01[top1]', player) or state.count('Crossroads_01[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Center_Grub", lambda state: state.count('Crossroads_05[left1]', player) or state.count('Crossroads_05[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Root", lambda state: state.count('Crossroads_07', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Root_Dupe_1", lambda state: state.count('Crossroads_07', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Root_Dupe_2", lambda state: state.count('Crossroads_07', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Aspid_Arena", lambda state: state.count('Crossroads_08', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Aspid_Arena_Dupe_1", lambda state: state.count('Crossroads_08', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Aspid_Arena_Dupe_2", lambda state: state.count('Crossroads_08', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Aspid_Arena_Hidden", lambda state: state.count('Crossroads_08', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Above_False_Knight", lambda state: (state.count('Crossroads_10[left1]', player) or state.count('Crossroads_10[right1]', player)) and state.count('Defeated_False_Knight', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Before_Acid_Grub", lambda state: state.count('Crossroads_12[left1]', player) or state.count('Crossroads_12[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Below_Goam_Mask_Shard", lambda state: state.count('Crossroads_13[left1]', player) or state.count('Crossroads_13[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_After_Goam_Mask_Shard", lambda state: state.count('Crossroads_13[left1]', player) or state.count('Crossroads_13[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Above_Lever", lambda state: state.count('Crossroads_16[left1]', player) or state.count('Crossroads_16[right1]', player) or state.count('Crossroads_16[bot1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Before_Fungal", lambda state: state.count('Crossroads_18[right1]', player) or state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18[right2]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Before_Fungal_Dupe_1", lambda state: state.count('Crossroads_18[right1]', player) or state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18[right2]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Before_Fungal_Dupe_2", lambda state: state.count('Crossroads_18[right1]', player) or state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18[right2]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Before_Shops", lambda state: state.count('Crossroads_19', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Before_Glowing_Womb", lambda state: state.count('Crossroads_21', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Above_Tram", lambda state: state.count('Crossroads_27', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Above_Mawlek", lambda state: state.count('Crossroads_36[right1]', player) or state.count('Crossroads_36[right2]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Vessel_Fragment", lambda state: state.count('Crossroads_37[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Goam_Alcove", lambda state: state.count('Crossroads_42[left1]', player) or state.count('Crossroads_42[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Goam_Damage_Boost", lambda state: (state.count('Crossroads_42[left1]', player) or state.count('Crossroads_42[right1]', player)) and (state.count('MASKSHARDS', player) > 7 or (state.count('Lifeblood_Heart', player) or state.count('Lifeblood_Core', player) or state.count("Joni's_Blessing", player)))) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Tram", lambda state: state.count('Crossroads_46[left1]', player) or (state.count('Crossroads_46b[right1]', player) and state.count('TRAM', player))) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Goam_Journal", lambda state: state.count('Crossroads_52[left1]', player) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Geo_Rock-Crossroads_Goam_Journal_Dupe", lambda state: state.count('Crossroads_52[left1]', player) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Geo_Rock-Ancestral_Mound", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) - hk_set_rule(hk_world, "Geo_Rock-Ancestral_Mound_Dupe", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) - hk_set_rule(hk_world, "Geo_Rock-Ancestral_Mound_Tree", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and state.count('WINGS', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) - hk_set_rule(hk_world, "Geo_Rock-Ancestral_Mound_Tree_Dupe", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and state.count('WINGS', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) - hk_set_rule(hk_world, "Geo_Rock-Moss_Prophet", lambda state: state.count('Deepnest_01', player)) - hk_set_rule(hk_world, "Geo_Rock-Moss_Prophet_Dupe", lambda state: state.count('Deepnest_01', player)) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Below_Mimics", lambda state: state.count('Deepnest_02', player)) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Below_Mimics_Dupe", lambda state: state.count('Deepnest_02', player)) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Below_Spike_Grub", lambda state: state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('Deepnest_03[left1]', player)) or state.count('Deepnest_03[top1]', player))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Below_Spike_Grub_Dupe", lambda state: state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('Deepnest_03[left1]', player)) or state.count('Deepnest_03[top1]', player))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Spike_Grub_Right", lambda state: state.count('Deepnest_03', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('Deepnest_03[left1]', player)) or state.count('Deepnest_03[top1]', player))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_By_Mantis_Lords_Garpede_Pogo", lambda state: state.count('Deepnest_16[bot1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_By_Mantis_Lords_Garpede_Pogo_Dupe", lambda state: state.count('Deepnest_16[bot1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_1", lambda state: state.count('Deepnest_16[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_2", lambda state: state.count('Deepnest_16[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_By_Mantis_Lords_Requires_Claw_3", lambda state: state.count('Deepnest_16[bot1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Nosk_1", lambda state: state.count('Deepnest_31[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)) or (state.count('Deepnest_31[right2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Nosk_2", lambda state: state.count('Deepnest_31[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)) or (state.count('Deepnest_31[right2]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Nosk_3", lambda state: state.count('Deepnest_31[right2]', player) or (state.count('Deepnest_31[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Above_Galien", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_35[top1]', player) or (state.count('Deepnest_35', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Galien_Spike", lambda state: state.count('Deepnest_35', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player)))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Garpede_1", lambda state: state.count('Deepnest_37', player)) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Garpede_2", lambda state: state.count('Deepnest_37', player)) - hk_set_rule(hk_world, "Geo_Rock-Dark_Deepnest_Above_Grub_1", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) or state.count('Deepnest_39[top1]', player) or (state.count('Deepnest_39[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Geo_Rock-Dark_Deepnest_Above_Grub_2", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_39', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) or state.count('Deepnest_39[top1]', player) or (state.count('Deepnest_39[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Geo_Rock-Dark_Deepnest_Bottom_Left", lambda state: state.count('Deepnest_39', player)) - hk_set_rule(hk_world, "Geo_Rock-Above_Mask_Maker_1", lambda state: (state.count('Deepnest_43[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('Deepnest_43[left1]', player) or state.count('Deepnest_43[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Geo_Rock-Above_Mask_Maker_2", lambda state: (state.count('Deepnest_43[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('Deepnest_43[left1]', player) or state.count('Deepnest_43[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Geo_Rock-Lower_Kingdom's_Edge_1", lambda state: (state.count('Deepnest_East_01[bot1]', player) or state.count('Deepnest_East_01[top1]', player) or state.count('Deepnest_East_01[right1]', player)) and (state.count('LEFTDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Geo_Rock-Lower_Kingdom's_Edge_2", lambda state: (state.count('Deepnest_East_01[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)) or state.count('Deepnest_East_01[top1]', player) or state.count('Deepnest_East_01[right1]', player)) and (state.count('LEFTDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Geo_Rock-Lower_Kingdom's_Edge_3", lambda state: state.count('Deepnest_East_02', player)) - hk_set_rule(hk_world, "Geo_Rock-Lower_Kingdom's_Edge_Dive", lambda state: state.count('Deepnest_East_02', player) and state.count('QUAKE', player) or (state.count('Deepnest_East_02[bot2]', player) and (state.count('ACID', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'AcidSkips'))))) - hk_set_rule(hk_world, "Geo_Rock-Kingdom's_Edge_Below_Bardoon", lambda state: state.count('Deepnest_East_04', player)) - hk_set_rule(hk_world, "Geo_Rock-Kingdom's_Edge_Oro_Far_Left", lambda state: (state.count('Deepnest_East_06[left1]', player) or state.count('Deepnest_East_06[top1]', player) or ((state.count('Deepnest_East_06[bot1]', player) or state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_06[right1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos')) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips')))) - hk_set_rule(hk_world, "Geo_Rock-Kingdom's_Edge_Oro_Middle_Left", lambda state: state.count('Deepnest_East_06[top1]', player) or (state.count('Deepnest_East_06[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'BackgroundObjectPogos')))) or ((state.count('Deepnest_East_06[bot1]', player) or state.count('Deepnest_East_06[door1]', player) or state.count('Deepnest_East_06[right1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Geo_Rock-Kingdom's_Edge_Above_Root", lambda state: state.count('Deepnest_East_07', player)) - hk_set_rule(hk_world, "Geo_Rock-Kingdom's_Edge_Above_Tower", lambda state: state.count('Deepnest_East_07', player)) - hk_set_rule(hk_world, "Geo_Rock-Kingdom's_Edge_Below_Colosseum", lambda state: (state.count('Deepnest_East_08[top1]', player) or (state.count('Deepnest_East_08[right1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player))) - hk_set_rule(hk_world, "Geo_Rock-Kingdom's_Edge_Above_420_Geo_Rock", lambda state: state.count('Deepnest_East_17[left1]', player) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Geo_Rock-Kingdom's_Edge_420_Geo_Rock", lambda state: state.count('Deepnest_East_17[left1]', player) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Geo_Rock-Beast's_Den_Above_Trilobite", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Geo_Rock-Beast's_Den_Above_Trilobite_Dupe", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Geo_Rock-Beast's_Den_Below_Herrah", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Geo_Rock-Beast's_Den_Below_Egg", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Geo_Rock-Beast's_Den_Below_Egg_Dupe", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) or (state.count('WINGS', player) and state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Geo_Rock-Beast's_Den_Bottom", lambda state: state.count('Deepnest_Spider_Town[left1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Beast's_Den_Bottom_Dupe", lambda state: state.count('Deepnest_Spider_Town[left1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Beast's_Den_After_Herrah", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) and (state.count('RIGHTSLASH', player) or ((state.count('LEFTDASH', player) > 1 or state.count('RIGHTDASH', player) > 1) and state.count('RIGHTDASH', player)) or state.count('LEFTDASH', player) or state.count('Herrah', player) or ((state.count('SPELLS', player) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips'))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or ((state.count('CYCLONE', player) or state.count('Great_Slash', player)) and state._hk_option(player, 'ProficientCombat')) or (state._hk_option(player, 'ProficientCombat') and state._hk_option(player, 'DifficultSkips')))))) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Entrance", lambda state: state.count('Fungus1_01[left1]', player) or state.count('Fungus1_01[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Waterfall", lambda state: state.count('Fungus1_01b[left1]', player) or state.count('Fungus1_01b[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Below_Skip_Squit", lambda state: state.count('Fungus1_02[left1]', player) or state.count('Fungus1_02[right1]', player) or state.count('Fungus1_02[right2]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Skip_Squit", lambda state: state.count('Fungus1_02[left1]', player) or state.count('Fungus1_02[right1]', player) or state.count('Fungus1_02[right2]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Second_Skip_Fool_Eater", lambda state: state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[right1]', player) or state.count('Fungus1_03[bot1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Second_Skip_Fool_Eater_Dupe", lambda state: state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[right1]', player) or state.count('Fungus1_03[bot1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Second_Skip_Lower", lambda state: state.count('Fungus1_03[left1]', player) or state.count('Fungus1_03[right1]', player) or state.count('Fungus1_03[bot1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Below_Hornet", lambda state: (state.count('Fungus1_04[left1]', player) or (state.count('Fungus1_04[right1]', player) and state.count('Defeated_Hornet_1', player))) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or ((state.count('RIGHTSUPERDASH', player) or state.count('ACID', player)) and state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Above_Thorns", lambda state: state.count('Fungus1_05[top1]', player) or state.count('Fungus1_05[right1]', player) or state.count('Fungus1_05[bot1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Hunter's_Journal", lambda state: state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[left1]', player) or state.count('Fungus1_07[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Acid_Bridge", lambda state: (state.count('Fungus1_10[left1]', player) or state.count('Fungus1_10[right1]', player) or state.count('Fungus1_10[top1]', player)) and ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or state._hk_option(player, 'ShadeSkips'))) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_After_MMC_Hidden", lambda state: state.count('Fungus1_12[left1]', player) or state.count('Fungus1_12[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_After_MMC", lambda state: state.count('Fungus1_12[left1]', player) or state.count('Fungus1_12[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_After_MMC_Dupe", lambda state: state.count('Fungus1_12[left1]', player) or state.count('Fungus1_12[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Obbles_Fool_Eater", lambda state: state.count('Fungus1_19[left1]', player) or state.count('Fungus1_19[right1]', player) or state.count('Fungus1_19[bot1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Moss_Knights", lambda state: state.count('Fungus1_21', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Moss_Knights_Dupe_1", lambda state: state.count('Fungus1_21', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Moss_Knights_Dupe_2", lambda state: state.count('Fungus1_21', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Below_Stag", lambda state: state.count('Fungus1_22[top1]', player) or state.count('Fungus1_22[left1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Below_Stag_Fool_Eater", lambda state: state.count('Fungus1_22[top1]', player) or state.count('Fungus1_22[left1]', player) or state.count('Fungus1_22[bot1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Baldur_Shell_Top_Left", lambda state: state.count('Fungus1_28[left1]', player) or state.count('Fungus1_28[left2]', player)) - hk_set_rule(hk_world, "Geo_Rock-Baldur_Shell_Alcove", lambda state: state.count('Fungus1_28[left1]', player) or state.count('Fungus1_28[left2]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_MMC", lambda state: state.count('Fungus1_29[left1]', player) or state.count('Fungus1_29[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Below_Toll", lambda state: state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_31[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Toll_Hidden", lambda state: state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_31[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Greenpath_Toll_Hidden_Dupe", lambda state: state.count('Fungus1_31[top1]', player) or state.count('Fungus1_31[bot1]', player) or state.count('Fungus1_31[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Fungal_Below_Shrumal_Ogres", lambda state: state.count('Fungus2_04', player)) - hk_set_rule(hk_world, "Geo_Rock-Fungal_Above_Cloth", lambda state: state.count('Fungus2_08[left1]', player) or state.count('Fungus2_08[left2]', player) or state.count('Fungus2_08[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Fungal_After_Cloth", lambda state: (state.count('Fungus2_10[right1]', player) or state.count('Fungus2_10[right2]', player) or state.count('Fungus2_10[bot1]', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Geo_Rock-Fungal_Below_Pilgrim's_Way", lambda state: state.count('Fungus2_11[top1]', player) or state.count('Fungus2_11[left1]', player) or state.count('Fungus2_11[left2]', player) or state.count('Fungus2_11[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Fungal_Below_Pilgrim's_Way_Dupe", lambda state: state.count('Fungus2_11[top1]', player) or state.count('Fungus2_11[left1]', player) or state.count('Fungus2_11[left2]', player) or state.count('Fungus2_11[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Mantis_Outskirts_Guarded", lambda state: state.count('Fungus2_13', player)) - hk_set_rule(hk_world, "Geo_Rock-Mantis_Outskirts_Guarded_Dupe", lambda state: state.count('Fungus2_13', player)) - hk_set_rule(hk_world, "Geo_Rock-Mantis_Outskirts_Alcove", lambda state: state.count('Fungus2_13', player) and (state.count('Fungus2_13[left3]', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('ACID', player) or state._hk_option(player, 'EnemyPogos') or state._hk_option(player, 'PreciseMovement'))) - hk_set_rule(hk_world, "Geo_Rock-Mantis_Village_After_Lever", lambda state: state.count('Fungus2_14', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player))) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Geo_Rock-Mantis_Village_Above_Claw", lambda state: state.count('Fungus2_14', player) and (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'EnemyPogos') or state.count('WINGS', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Geo_Rock-Mantis_Village_Above_Claw_Dupe", lambda state: state.count('Fungus2_14', player) and (state._hk_option(player, 'ComplexSkips') and state._hk_option(player, 'EnemyPogos') or state.count('WINGS', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Geo_Rock-Mantis_Village_Below_Lore", lambda state: state.count('Fungus2_14[top1]', player) or (state.count('Fungus2_14', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')) and (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or state.count('LEFTCLAW', player)))) - hk_set_rule(hk_world, "Geo_Rock-Mantis_Village_Above_Lever", lambda state: (state.count('Fungus2_14[top1]', player) or (state.count('Fungus2_14', player) and (state.count('LEFTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')) and (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or state.count('LEFTCLAW', player)))) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state._hk_option(player, 'BackgroundObjectPogos')) or state.count('WINGS', player) or state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Geo_Rock-Above_Mantis_Lords_1", lambda state: (state.count('Fungus2_15[top3]', player) or state.count('Fungus2_15[right1]', player) or (state.count('Fungus2_15[left1]', player) and state.count('RIGHTCLAW', player))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player))) - hk_set_rule(hk_world, "Geo_Rock-Above_Mantis_Lords_2", lambda state: state.count('Fungus2_15[top3]', player) or state.count('Fungus2_15[right1]', player) or (state.count('Fungus2_15[left1]', player) and state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Geo_Rock-Fungal_After_Bouncy_Grub", lambda state: state.count('Fungus2_18[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Fungal_After_Bouncy_Grub_Dupe", lambda state: state.count('Fungus2_18[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Fungal_Bouncy_Grub_Lever", lambda state: state.count('Fungus2_18[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Fungal_After_Cornifer", lambda state: state.count('Fungus2_18[top1]', player) or state.count('Fungus2_18[right1]', player) or (state.count('Fungus2_18[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Fungal_Above_City_Entrance", lambda state: state.count('Fungus2_21[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_By_Mantis_Lords_1", lambda state: state.count('Fungus2_25[top1]', player) or ((state.count('Fungus2_25[top2]', player) or state.count('Fungus2_25[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_By_Mantis_Lords_2", lambda state: state.count('Fungus2_25[top1]', player) or ((state.count('Fungus2_25[top2]', player) or state.count('Fungus2_25[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Deepnest_Lower_Cornifer", lambda state: (state.count('Fungus2_25[top1]', player) or state.count('Fungus2_25[top2]', player) or state.count('Fungus2_25[right1]', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Geo_Rock-Fungal_Core_Entrance", lambda state: state.count('Fungus2_29[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state.count('Fungus2_29[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Fungal_Core_Hidden", lambda state: state.count('Fungus2_30[top1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Fungal_Core_Above_Elder", lambda state: state.count('Fungus2_30[top1]', player) and state.count('WINGS', player)) - hk_set_rule(hk_world, "Geo_Rock-Queen's_Gardens_Acid_Entrance", lambda state: state.count('Fungus3_03[right1]', player) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips')))) - hk_set_rule(hk_world, "Geo_Rock-Queen's_Gardens_Below_Stag", lambda state: state.count('Fungus3_10[top1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Fog_Canyon_East", lambda state: state.count('Fungus3_26', player) and (state.count('MASKSHARDS', player) > 15 or state.count('FIREBALL', player))) - hk_set_rule(hk_world, "Geo_Rock-Love_Key", lambda state: state.count('Fungus3_39[left1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Love_Key_Dupe", lambda state: state.count('Fungus3_39[left1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Queen's_Gardens_Above_Marmu", lambda state: state.count('Fungus3_48[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or (state.count('Fungus3_48[right2]', player) and (state.count('RIGHTSUPERDASH', player) or state.count('RIGHTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Pale_Lurker", lambda state: state.count('GG_Lurker[left1]', player) and state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player)))) - hk_set_rule(hk_world, "Geo_Rock-Godhome_Pipeway", lambda state: state.count('GG_Pipeway[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('SWIM', player))) or state.count('WINGS', player)) or (state.count('GG_Pipeway[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and (state.count('RIGHTDASH', player) or state.count('SWIM', player))) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Hive_Entrance", lambda state: state.count('Hive_01[left1]', player) or state.count('Hive_01[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Hive_Outside_Bench", lambda state: state.count('Hive_02[left2]', player) or ((state.count('Hive_02[left1]', player) or state.count('Hive_02[left3]', player)) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))))) - hk_set_rule(hk_world, "Geo_Rock-Hive_Below_Root", lambda state: state.count('Hive_02[left1]', player) or ((state.count('Hive_02[left2]', player) or state.count('Hive_02[left3]', player)) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Geo_Rock-Hive_After_Root", lambda state: state.count('Hive_02[left1]', player) or ((state.count('Hive_02[left2]', player) or state.count('Hive_02[left3]', player)) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTCLAW', player))))) - hk_set_rule(hk_world, "Geo_Rock-Hive_Below_Stash", lambda state: state.count('Hive_03[bot1]', player) or state.count('Hive_03[right1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Hive_Stash", lambda state: state.count('Hive_03[right1]', player) or (state.count('Hive_03[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Geo_Rock-Hive_Stash_Dupe", lambda state: state.count('Hive_03[right1]', player) or (state.count('Hive_03[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Geo_Rock-Hive_Below_Grub", lambda state: state.count('Hive_04[left1]', player) or (state.count('Hive_04[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTDASH', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Hive_Above_Mask", lambda state: state.count('Hive_04[left1]', player) or (state.count('Hive_04[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('LEFTDASH', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Lower_Middle", lambda state: state.count('Mines_02', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('Mines_02[top2]', player))) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Lower_Conveyer_1", lambda state: state.count('Mines_02', player)) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Lower_Conveyer_2", lambda state: state.count('Mines_02', player)) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Before_Dark_Room", lambda state: state.count('Mines_04', player)) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Before_Dark_Room_Dupe", lambda state: state.count('Mines_04', player)) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Above_Spike_Grub", lambda state: state.count('Mines_05', player)) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Mimic_Grub", lambda state: state.count('Mines_16[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or (state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips')))) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Dive_Egg", lambda state: state.count('Mines_20', player) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Dive_Egg_Dupe", lambda state: state.count('Mines_20', player) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Conga_Line", lambda state: state.count('Mines_20', player)) - hk_set_rule(hk_world, "Geo_Rock-Hallownest_Crown_Dive", lambda state: (state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or state.count('Mines_25[top1]', player)) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Geo_Rock-Hallownest_Crown_Dive_Dupe", lambda state: (state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or state.count('Mines_25[top1]', player)) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Geo_Rock-Hallownest_Crown_Hidden", lambda state: state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or (state.count('Mines_25[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('CYCLONE', player)))) - hk_set_rule(hk_world, "Geo_Rock-Hallownest_Crown_Hidden_Dupe_1", lambda state: state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or (state.count('Mines_25[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('CYCLONE', player)))) - hk_set_rule(hk_world, "Geo_Rock-Hallownest_Crown_Hidden_Dupe_2", lambda state: state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or (state.count('Mines_25[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('CYCLONE', player)))) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Before_Crystal_Heart", lambda state: state.count('Mines_31[left1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Entrance", lambda state: (state.count('Mines_33[left1]', player) or state.count('Mines_33[right1]', player)) and state.count('LANTERN', player)) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Entrance_Dupe_1", lambda state: (state.count('Mines_33[left1]', player) or state.count('Mines_33[right1]', player)) and state.count('LANTERN', player)) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Entrance_Dupe_2", lambda state: (state.count('Mines_33[left1]', player) or state.count('Mines_33[right1]', player)) and state.count('LANTERN', player)) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Above_Crushers_Lower", lambda state: (state.count('Mines_37[top1]', player) or state.count('Mines_37[bot1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips')))) - hk_set_rule(hk_world, "Geo_Rock-Crystal_Peak_Above_Crushers_Higher", lambda state: (state.count('Mines_37[top1]', player) or state.count('Mines_37[bot1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Geo_Rock-Resting_Grounds_Catacombs_Grub", lambda state: state.count('RestingGrounds_10[top1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Geo_Rock-Resting_Grounds_Catacombs_Left_Dupe", lambda state: state.count('RestingGrounds_10[top1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Geo_Rock-Resting_Grounds_Catacombs_Left", lambda state: state.count('RestingGrounds_10[top1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))))) - hk_set_rule(hk_world, "Geo_Rock-Overgrown_Mound", lambda state: state.count('Room_Fungus_Shaman[left1]', player)) - hk_set_rule(hk_world, "Geo_Rock-Fluke_Hermit_Dupe", lambda state: state.count('Room_GG_Shortcut[top1]', player) or (state.count('Room_GG_Shortcut[left1]', player) and (state.count('RIGHTCLAW', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and state.count('SWIM', player))) or (state.count('LEFTCLAW', player) and state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))))) - hk_set_rule(hk_world, "Geo_Rock-Fluke_Hermit", lambda state: state.count('Room_GG_Shortcut[top1]', player) or (state.count('Room_GG_Shortcut[left1]', player) and (state.count('RIGHTCLAW', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or (state.count('RIGHTDASH', player) and state.count('SWIM', player))) or (state.count('LEFTCLAW', player) and state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)))))) - hk_set_rule(hk_world, "Geo_Rock-Pleasure_House", lambda state: state.count('Ruins_Elevator[left1]', player) or state.count('Ruins_Elevator[left2]', player)) - hk_set_rule(hk_world, "Geo_Rock-City_of_Tears_Quirrel", lambda state: state.count('Ruins1_03', player)) - hk_set_rule(hk_world, "Geo_Rock-City_of_Tears_Lemm", lambda state: state.count('Ruins1_05b', player)) - hk_set_rule(hk_world, "Geo_Rock-City_of_Tears_Above_Lemm", lambda state: state.count('Ruins1_05c', player)) - hk_set_rule(hk_world, "Geo_Rock-Soul_Sanctum", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Geo_Rock-Watcher's_Spire", lambda state: (state.count('Ruins2_01[top1]', player) or state.count('Ruins2_01[left2]', player) or (state.count('Ruins2_01[bot1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state._hk_option(player, 'EnemyPogos')) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DifficultSkips'))))) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Geo_Rock-Above_King's_Station", lambda state: state.count('Ruins2_05[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or state.count('Ruins2_05[left1]', player) or state.count('Ruins2_05[top1]', player)) - hk_set_rule(hk_world, "Geo_Rock-King's_Station", lambda state: (state.count('Ruins2_06[left1]', player) or state.count('Ruins2_06[top1]', player) or state.count('Ruins2_06[right1]', player) or state.count('Ruins2_06[right2]', player)) and (state.count('RIGHTCLAW', player) or ((state.count('WINGS', player) or state.count('LEFTCLAW', player)) and state._hk_option(player, 'ShadeSkips')) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))) or (state.count('Ruins2_06[left2]', player) and (state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state._hk_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')))))) - hk_set_rule(hk_world, "Geo_Rock-King's_Pass_Left", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) - hk_set_rule(hk_world, "Geo_Rock-King's_Pass_Below_Fury", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) - hk_set_rule(hk_world, "Geo_Rock-King's_Pass_Hidden", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) - hk_set_rule(hk_world, "Geo_Rock-King's_Pass_Collapse", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) - hk_set_rule(hk_world, "Geo_Rock-King's_Pass_Above_Fury", lambda state: state.count('Tutorial_01[right1]', player) or state.count('Tutorial_01[top1]', player) or state.count('Tutorial_01[top2]', player)) - hk_set_rule(hk_world, "Geo_Rock-Waterways_Tuk", lambda state: state.count('Waterways_01', player) and (state.count('Waterways_01[right1]', player) or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Geo_Rock-Waterways_Tuk_Alcove", lambda state: state.count('Waterways_01', player)) - hk_set_rule(hk_world, "Geo_Rock-Waterways_Left", lambda state: state.count('Waterways_04b[left1]', player) or (state.count('Waterways_04b[right1]', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('LEFTSUPERDASH', player)))) or (state.count('Waterways_04b[right2]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player))))) - hk_set_rule(hk_world, "Geo_Rock-Waterways_East", lambda state: state.count('Waterways_07[top1]', player) or state.count('Waterways_07[door1]', player) or (state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Geo_Rock-Waterways_Flukemarm", lambda state: state.count('Waterways_08[left2]', player) or ((state.count('Waterways_08[top1]', player) and (state._hk_option(player, 'EnemyPogos') or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)) or state.count('Waterways_08[left1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Boss_Geo-Massive_Moss_Charger", lambda state: state.count('Fungus1_29[left1]', player) or state.count('Fungus1_29[right1]', player)) - hk_set_rule(hk_world, "Boss_Geo-Gorgeous_Husk", lambda state: state.count('Ruins_House_02[left1]', player)) - hk_set_rule(hk_world, "Boss_Geo-Sanctum_Soul_Warrior", lambda state: state.count('Ruins1_23[top1]', player) or (state.count('Ruins1_23', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player) and state._hk_option(player, 'BackgroundObjectPogos'))))) - hk_set_rule(hk_world, "Boss_Geo-Elegant_Soul_Warrior", lambda state: (state.count('Ruins1_31b[right1]', player) or state.count('Ruins1_31b[right2]', player)) and state.count('Defeated_Elegant_Warrior', player)) - hk_set_rule(hk_world, "Boss_Geo-Crystal_Guardian", lambda state: (state.count('Mines_18[left1]', player) or state.count('Mines_18[right1]', player) or state.count('Mines_18[top1]', player)) and state.count('Defeated_Crystal_Guardian', player)) - hk_set_rule(hk_world, "Boss_Geo-Enraged_Guardian", lambda state: state.count('Mines_32[bot1]', player) and state.count('Defeated_Enraged_Guardian', player)) - hk_set_rule(hk_world, "Boss_Geo-Gruz_Mother", lambda state: (state.count('Crossroads_04[left1]', player) or state.count('Crossroads_04[door_Mender_House]', player) or state.count('Crossroads_04[door1]', player) or state.count('Crossroads_04[door_charmshop]', player) or state.count('Crossroads_04[right1]', player) or state.count('Crossroads_04[top1]', player)) and state.count('Defeated_Gruz_Mother', player)) - hk_set_rule(hk_world, "Boss_Geo-Vengefly_King", lambda state: (state.count('Fungus1_20_v02[bot1]', player) or state.count('Fungus1_20_v02[bot2]', player) or state.count('Fungus1_20_v02[right1]', player)) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state._hk_option(player, 'EnemyPogos') or state.count('FIREBALL', player) or state.count('QUAKE', player) or state.count('SCREAM', player) or state.count('WINGS', player) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or ((state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) and state.count('Dash_Slash', player)))) - hk_set_rule(hk_world, "Soul_Totem-Basin", lambda state: state.count('Abyss_04[top1]', player) or ((state.count('Abyss_04[left1]', player) or state.count('Abyss_04[right1]', player) or state.count('Abyss_04[bot1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Soul_Totem-Cliffs_Main", lambda state: state.count('Cliffs_01', player)) - hk_set_rule(hk_world, "Soul_Totem-Cliffs_Gorb", lambda state: state.count('Cliffs_02', player)) - hk_set_rule(hk_world, "Soul_Totem-Cliffs_Joni's", lambda state: (state.count('Cliffs_04[left1]', player) or state.count('Cliffs_04[right1]', player)) and (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms'))) - hk_set_rule(hk_world, "Soul_Totem-Crossroads_Goam_Journal", lambda state: state.count('Crossroads_18[right1]', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or (state.count('LEFTCLAW', player) and (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)) or (state._hk_option(player, 'InfectionSkips') and state.count('DREAMER', player))))) or ((state.count('Crossroads_18[bot1]', player) or state.count('Crossroads_18[right2]', player)) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or state.count('LEFTCLAW', player)))) - hk_set_rule(hk_world, "Soul_Totem-Crossroads_Shops", lambda state: state.count('Crossroads_19', player)) - hk_set_rule(hk_world, "Soul_Totem-Crossroads_Mawlek_Upper", lambda state: state.count('Crossroads_25[left1]', player) or state.count('Crossroads_25[right1]', player)) - hk_set_rule(hk_world, "Soul_Totem-Crossroads_Acid", lambda state: state.count('Crossroads_35[right1]', player) and (state._hk_option(player, 'AcidSkips') and (state.count('LEFTCLAW', player) and state.count('RIGHTSUPERDASH', player) and (state.count('WINGS', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state.count('RIGHTDASH', player))) or state.count('ACID', player)) or state.count('Crossroads_35[bot1]', player)) - hk_set_rule(hk_world, "Soul_Totem-Crossroads_Mawlek_Lower", lambda state: state.count('Crossroads_36[right1]', player) or state.count('Crossroads_36[right2]', player)) - hk_set_rule(hk_world, "Soul_Totem-Crossroads_Myla", lambda state: state.count('Crossroads_45[left1]', player) or state.count('Crossroads_45[right1]', player)) - hk_set_rule(hk_world, "Soul_Totem-Ancestral_Mound", lambda state: state.count('Crossroads_ShamanTemple[left1]', player) and (((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('UPSLASH', player) or state.count('FIREBALL', player) or state.count('SCREAM', player) or state.count('QUAKE', player) or state.count('CYCLONE', player) or state.count('Great_Slash', player) or (state.count('Dash_Slash', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) or ((state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player) or (state.count('RIGHTSUPERDASH', player) and state.count('LEFTCLAW', player))) and state._hk_option(player, 'ObscureSkips')))) - hk_set_rule(hk_world, "Soul_Totem-Distant_Village", lambda state: state.count('Deepnest_10[door1]', player) or state.count('Deepnest_10[door2]', player) or state.count('Deepnest_10[right1]', player) or (state.count('Deepnest_10[right2]', player) and (state.count('LEFTDASH', player) or ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state._hk_option(player, 'PreciseMovement')) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))) - hk_set_rule(hk_world, "Soul_Totem-Deepnest_Vessel", lambda state: state.count('Deepnest_38[bot1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Soul_Totem-Mask_Maker", lambda state: (state.count('LANTERN', player) or state._hk_option(player, 'DarkRooms')) and (state.count('Deepnest_42[left1]', player) or state.count('Deepnest_42[bot1]', player) or state.count('Deepnest_42[top1]', player))) - hk_set_rule(hk_world, "Soul_Totem-Lower_Kingdom's_Edge_1", lambda state: state.count('Deepnest_East_01[top1]', player) or state.count('Deepnest_East_01[bot1]', player) or state.count('Deepnest_East_01[right1]', player)) - hk_set_rule(hk_world, "Soul_Totem-Lower_Kingdom's_Edge_2", lambda state: (state.count('Deepnest_East_02[top1]', player) or state.count('Deepnest_East_02[bot1]', player) or state.count('Deepnest_East_02[right1]', player)) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player) or state.count('ACID', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Soul_Totem-Upper_Kingdom's_Edge", lambda state: state.count('Deepnest_East_07', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('Deepnest_East_07[left1]', player))) - hk_set_rule(hk_world, "Soul_Totem-Kingdom's_Edge_Camp", lambda state: (state.count('Deepnest_East_11[left1]', player) or state.count('Deepnest_East_11[top1]', player) or state.count('Deepnest_East_11[right1]', player) or (state.count('Deepnest_East_11[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')))) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._hk_option(player, 'DifficultSkips'))) - hk_set_rule(hk_world, "Soul_Totem-Oro_Dive_2", lambda state: state.count('Deepnest_East_14[top2]', player) and state.count('QUAKE', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Soul_Totem-Oro_Dive_1", lambda state: state.count('Deepnest_East_14[top2]', player)) - hk_set_rule(hk_world, "Soul_Totem-Oro", lambda state: state.count('Deepnest_East_16[left1]', player) or state.count('Deepnest_East_16[bot1]', player)) - hk_set_rule(hk_world, "Soul_Totem-420_Geo_Rock", lambda state: state.count('Deepnest_East_17[left1]', player) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Soul_Totem-Beast's_Den", lambda state: state.count('Deepnest_Spider_Town[left1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Soul_Totem-Greenpath_Hunter's_Journal", lambda state: state.count('Fungus1_07[top1]', player) or state.count('Fungus1_07[right1]', player) or state.count('Fungus1_07[left1]', player)) - hk_set_rule(hk_world, "Soul_Totem-Greenpath_MMC", lambda state: state.count('Fungus1_29[left1]', player) or state.count('Fungus1_29[right1]', player)) - hk_set_rule(hk_world, "Soul_Totem-Greenpath_Below_Toll", lambda state: state.count('Fungus1_30', player)) - hk_set_rule(hk_world, "Soul_Totem-Before_Pilgrim's_Way", lambda state: state.count('Fungus2_10[right1]', player) or state.count('Fungus2_10[right2]', player) or state.count('Fungus2_10[bot1]', player)) - hk_set_rule(hk_world, "Soul_Totem-Pilgrim's_Way", lambda state: state.count('Fungus2_21[left1]', player) and (state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('ACID', player)) or (state.count('Fungus2_21[right1]', player) and ((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) and state.count('QUAKE', player))) - hk_set_rule(hk_world, "Soul_Totem-Fungal_Core", lambda state: state.count('Fungus2_29[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state.count('Fungus2_29[bot1]', player) and (state.count('LEFTCLAW', player) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Soul_Totem-Top_Left_Queen's_Gardens", lambda state: state.count('Fungus3_21[right1]', player) and (state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))))) or (state.count('Fungus3_21[top1]', player) and state.count('RIGHTDASH', player))) - hk_set_rule(hk_world, "Soul_Totem-Below_Marmu", lambda state: state.count('Fungus3_40[top1]', player) or (state.count('Fungus3_40[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('LEFTSUPERDASH', player)) or state.count('WINGS', player) or state.count('LEFTDASH', player)))) - hk_set_rule(hk_world, "Soul_Totem-Upper_Crystal_Peak", lambda state: state.count('Mines_20', player) or state.count('Mines_20[left2]', player) or ((state.count('Mines_20[left3]', player) or state.count('Mines_20[bot1]', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) - hk_set_rule(hk_world, "Soul_Totem-Hallownest_Crown", lambda state: (state.count('Mines_25[left1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)))) or state.count('Mines_25[top1]', player)) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Soul_Totem-Outside_Crystallized_Mound", lambda state: state.count('Mines_28[door1]', player) or (state.count('Mines_28[left1]', player) and (state.count('WINGS', player) and state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and (state.count('WINGS', player) or state.count('RIGHTDASH', player)))))) - hk_set_rule(hk_world, "Soul_Totem-Crystal_Heart_1", lambda state: state.count('Mines_31[left1]', player) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or (state.count('RIGHTSUPERDASH', player) and state._hk_option(player, 'PreciseMovement'))) or (state.count('RIGHTCLAW', player) and state.count('RIGHTSUPERDASH', player) and state.count('RIGHTDASH', player) and state.count('WINGS', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Soul_Totem-Crystal_Heart_2", lambda state: state.count('Mines_31[left1]', player) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('WINGS', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state.count('RIGHTCLAW', player) and state.count('RIGHTSUPERDASH', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('WINGS', player)) or (state.count('WINGS', player) and state._hk_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15)))) - hk_set_rule(hk_world, "Soul_Totem-Crystallized_Mound", lambda state: state.count('Mines_35[left1]', player) and state.count('QUAKE', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'PreciseMovement') and (state.count('RIGHTDASH', player) or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or state.count('WINGS', player)) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state._hk_option(player, 'BackgroundObjectPogos'))) - hk_set_rule(hk_world, "Soul_Totem-Resting_Grounds", lambda state: state.count('RestingGrounds_05', player)) - hk_set_rule(hk_world, "Soul_Totem-Below_Xero", lambda state: state.count('RestingGrounds_06[left1]', player) or state.count('RestingGrounds_06[right1]', player) or state.count('RestingGrounds_06[top1]', player)) - hk_set_rule(hk_world, "Soul_Totem-Sanctum_Below_Soul_Master", lambda state: state.count('Ruins1_24[left2]', player) or state.count('Ruins1_24[right2]', player)) - hk_set_rule(hk_world, "Soul_Totem-Sanctum_Below_Chest", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Soul_Totem-Sanctum_Above_Grub", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Soul_Totem-Waterways_Entrance", lambda state: state.count('Waterways_01', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)) or ((state.count('Waterways_01[top1]', player) or state.count('Waterways_01[right1]', player)) and (state.count('LEFTDASH', player) or state._hk_option(player, 'EnemyPogos') or (state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or state._hk_option(player, 'ShadeSkips')))) - hk_set_rule(hk_world, "Soul_Totem-Top_Left_Waterways", lambda state: state.count('Waterways_04b[left1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))) or (state.count('Waterways_04b[right1]', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('SWIM', player) or (state.count('RIGHTCLAW', player) and state.count('RIGHTDASH', player) and state.count('LEFTSUPERDASH', player))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips')))) or (state.count('Waterways_04b[right2]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))) and (state.count('LEFTCLAW', player) or state._hk_option(player, 'EnemyPogos')) and (state.count('SWIM', player) or (state.count('LEFTSUPERDASH', player) and state.count('RIGHTCLAW', player))) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state.count('WINGS', player) and state._hk_option(player, 'EnemyPogos') and state._hk_option(player, 'DangerousSkips'))))) - hk_set_rule(hk_world, "Soul_Totem-Waterways_East", lambda state: state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) or state.count('WINGS', player) or state.count('LEFTSUPERDASH', player) or ((state._hk_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "Soul_Totem-Waterways_Flukemarm", lambda state: state.count('Waterways_08[top1]', player) and (state._hk_option(player, 'EnemyPogos') or state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state.count('RIGHTSUPERDASH', player)) or state.count('Waterways_08[left1]', player) or state.count('Waterways_08[left2]', player)) - hk_set_rule(hk_world, "Soul_Totem-White_Palace_Entrance", lambda state: state.count('White_Palace_02[left1]', player) and (state.count('LEFTCLAW', player) and state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('LEFTSUPERDASH', player)))) - hk_set_rule(hk_world, "Soul_Totem-White_Palace_Hub", lambda state: state.count('White_Palace_03_hub', player) and (state.count('LEFTDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state.count('White_Palace_03_hub[left1]', player))) - hk_set_rule(hk_world, "Soul_Totem-White_Palace_Left", lambda state: state.count('White_Palace_04[right2]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or state.count('White_Palace_04[top1]', player)) - hk_set_rule(hk_world, "Soul_Totem-White_Palace_Final", lambda state: state.count('White_Palace_09[right1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player)) and state.count('LEFTSUPERDASH', player)) - hk_set_rule(hk_world, "Soul_Totem-White_Palace_Right", lambda state: state.count('White_Palace_15[right1]', player)) - hk_set_rule(hk_world, "Soul_Totem-Path_of_Pain_Below_Lever", lambda state: state.count('White_Palace_17[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player)) - hk_set_rule(hk_world, "Soul_Totem-Path_of_Pain_Left_of_Lever", lambda state: state.count('White_Palace_17[bot1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player)) - hk_set_rule(hk_world, "Soul_Totem-Path_of_Pain_Entrance", lambda state: state.count('White_Palace_18[right1]', player) and ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state.count('WINGS', player) or state.count('LEFTSUPERDASH', player)) or (state.count('White_Palace_18[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Soul_Totem-Path_of_Pain_Second", lambda state: state.count('White_Palace_18[right1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) or (state.count('White_Palace_18[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Soul_Totem-Path_of_Pain_Hidden", lambda state: (state.count('White_Palace_19[left1]', player) or state.count('White_Palace_19[top1]', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player))) - hk_set_rule(hk_world, "Soul_Totem-Path_of_Pain_Below_Thornskip", lambda state: state.count('White_Palace_19[left1]', player) or (state.count('White_Palace_19[top1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)))) - hk_set_rule(hk_world, "Soul_Totem-Path_of_Pain_Final", lambda state: state.count('White_Palace_20[bot1]', player) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) - hk_set_rule(hk_world, "Soul_Totem-Pale_Lurker", lambda state: state.count('GG_Lurker[left1]', player)) - hk_set_rule(hk_world, "Lore_Tablet-City_Entrance", lambda state: state.count('Ruins1_02[top1]', player) or (state.count('Ruins1_02[bot1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Lore_Tablet-Pleasure_House", lambda state: state.count('Ruins_Elevator[left1]', player) or state.count('Ruins_Elevator[left2]', player)) - hk_set_rule(hk_world, "Lore_Tablet-Sanctum_Entrance", lambda state: (state.count('Ruins1_23[left1]', player) or state.count('Ruins1_23[bot1]', player) or state.count('Ruins1_23[right2]', player)) and (state.count('LEFTCLAW', player) or state.count('WINGS', player) or (state.count('RIGHTCLAW', player) and state._hk_option(player, 'EnemyPogos')))) - hk_set_rule(hk_world, "Lore_Tablet-Sanctum_Past_Soul_Master", lambda state: state.count('Ruins1_32[right1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('QUAKE', player)) - hk_set_rule(hk_world, "Lore_Tablet-Watcher's_Spire", lambda state: state.count('Ruins2_Watcher_Room[bot1]', player)) - hk_set_rule(hk_world, "Lore_Tablet-Archives_Upper", lambda state: state.count('Fungus3_archive_02[top1]', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos'))) - hk_set_rule(hk_world, "Lore_Tablet-Archives_Left", lambda state: state.count('Fungus3_archive_02[top1]', player) and state.count('Defeated_Uumuu', player) and ((state.count('RIGHTCLAW', player) or (state.count('LEFTCLAW', player) and state.count('WINGS', player))) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player) or state.count('ACID', player)) or (state._hk_option(player, 'AcidSkips') and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "Lore_Tablet-Archives_Right", lambda state: state.count('Fungus3_archive_02[top1]', player) and state.count('Defeated_Uumuu', player) and ((state.count('LEFTSUPERDASH', player) or state.count('RIGHTSUPERDASH', player)) or state.count('ACID', player) or (state._hk_option(player, 'AcidSkips') and state.count('LEFTDASH', player) and state.count('LEFTCLAW', player) and state.count('WINGS', player)))) - hk_set_rule(hk_world, "Lore_Tablet-Pilgrim's_Way_1", lambda state: state.count('Crossroads_11_alt[right1]', player)) - hk_set_rule(hk_world, "Lore_Tablet-Pilgrim's_Way_2", lambda state: state.count('Fungus2_21[left1]', player) or (((state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player)) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) and state.count('QUAKE', player) and state.count('Fungus2_21[right1]', player))) - hk_set_rule(hk_world, "Lore_Tablet-Mantis_Outskirts", lambda state: state.count('Fungus2_12[bot1]', player) or state.count('Fungus2_12[left1]', player)) - hk_set_rule(hk_world, "Lore_Tablet-Mantis_Village", lambda state: state.count('Fungus2_14[top1]', player) or (state.count('Fungus2_14', player) and (state.count('WINGS', player) or state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player) or (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) or state._hk_option(player, 'EnemyPogos')) and (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state._hk_option(player, 'EnemyPogos')) or state.count('LEFTCLAW', player)))) - hk_set_rule(hk_world, "Lore_Tablet-Greenpath_Upper_Hidden", lambda state: state.count('Fungus1_17[left1]', player) or state.count('Fungus1_17[right1]', player)) - hk_set_rule(hk_world, "Lore_Tablet-Greenpath_Below_Toll", lambda state: state.count('Fungus1_30', player)) - hk_set_rule(hk_world, "Lore_Tablet-Greenpath_Lifeblood", lambda state: state.count('Fungus1_32[bot1]', player) or state.count('Fungus1_32[top1]', player) or state.count('Fungus1_32[left1]', player)) - hk_set_rule(hk_world, "Lore_Tablet-Greenpath_Stag", lambda state: state.count('Fungus1_21', player)) - hk_set_rule(hk_world, "Lore_Tablet-Greenpath_QG", lambda state: state.count('Fungus1_13[left1]', player) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or (state.count('RIGHTDASH', player) and state.count('Dash_Slash', player))) or (state.count('Fungus1_13[right1]', player) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and (state.count('LEFTDASH', player) or state.count('LEFTSUPERDASH', player))) or ((state.count('WINGS', player) or state.count('LEFTSUPERDASH', player)) and state._hk_option(player, 'DamageBoosts') and (state.count('MASKSHARDS', player) > 7))) and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or (state.count('LEFTDASH', player) and state.count('Dash_Slash', player)))) or (False and ((state.count('LEFTSLASH', player) or state.count('RIGHTSLASH', player)) or state.count('Cyclone_Slash', player) or state.count('Great_Slash', player) or (state.count('LEFTDASH', player) and state.count('Dash_Slash', player))))) - hk_set_rule(hk_world, "Lore_Tablet-Greenpath_Lower_Hidden", lambda state: state.count('Fungus1_19[bot1]', player) or state.count('Fungus1_19[left1]', player) or state.count('Fungus1_19[right1]', player)) - hk_set_rule(hk_world, "Lore_Tablet-Dung_Defender", lambda state: state.count('Waterways_07', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or ((state.count('Waterways_07[door1]', player) or state.count('Waterways_07[top1]', player) or state.count('Waterways_07[right1]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player)))) - hk_set_rule(hk_world, "Lore_Tablet-Spore_Shroom", lambda state: (state.count('Fungus2_20[left1]', player) or state.count('Fungus2_20[right1]', player)) and (state.count('RIGHTDASH', player) or state.count('RIGHTSUPERDASH', player) or state.count('WINGS', player)) and state.count('Spore_Shroom', player)) - hk_set_rule(hk_world, "Lore_Tablet-Fungal_Wastes_Hidden", lambda state: (state.count('Fungus2_07[left1]', player) or state.count('Fungus2_07[right1]', player)) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state.count('RIGHTCLAW', player))) and state.count('Spore_Shroom', player)) - hk_set_rule(hk_world, "Lore_Tablet-Fungal_Wastes_Below_Shrumal_Ogres", lambda state: state.count('Fungus2_04', player) and state.count('Spore_Shroom', player)) - hk_set_rule(hk_world, "Lore_Tablet-Fungal_Core", lambda state: state.count('Fungus2_30[top1]', player) and state.count('Spore_Shroom', player)) - hk_set_rule(hk_world, "Lore_Tablet-Ancient_Basin", lambda state: state.count('Abyss_06_Core[top1]', player)) - hk_set_rule(hk_world, "Lore_Tablet-King's_Pass_Focus", lambda state: state.count('Tutorial_01', player)) - hk_set_rule(hk_world, "Lore_Tablet-King's_Pass_Fury", lambda state: state.count('Tutorial_01', player)) - hk_set_rule(hk_world, "Lore_Tablet-King's_Pass_Exit", lambda state: state.count('Tutorial_01', player)) - hk_set_rule(hk_world, "Lore_Tablet-World_Sense", lambda state: state.count('Room_temple[left1]', player) and state.count('Opened_Black_Egg_Temple', player)) - hk_set_rule(hk_world, "Lore_Tablet-Howling_Cliffs", lambda state: state.count('Cliffs_01[right1]', player) or state.count('Cliffs_01[right2]', player) or ((state.count('Cliffs_01[right3]', player) or state.count('Cliffs_01[right4]', player)) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._hk_option(player, 'EnemyPogos'))))) - hk_set_rule(hk_world, "Lore_Tablet-Kingdom's_Edge", lambda state: state.count('Deepnest_East_17[left1]', player) and state.count('QUAKE', player) and state.count('Spore_Shroom', player)) - hk_set_rule(hk_world, "Lore_Tablet-Palace_Workshop", lambda state: state.count('White_Palace_08[right1]', player) or (state.count('White_Palace_08[left1]', player) and (state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state.count('WINGS', player))) - hk_set_rule(hk_world, "Lore_Tablet-Palace_Throne", lambda state: state.count('White_Palace_09[right1]', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player))) - hk_set_rule(hk_world, "Lore_Tablet-Path_of_Pain_Entrance", lambda state: state.count('White_Palace_18[right1]', player) or (state.count('White_Palace_18[top1]', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player)) and state.count('WINGS', player) and (state.count('LEFTSUPERDASH', player) and state.count('RIGHTSUPERDASH', player)))) - hk_set_rule(hk_world, "Salubra_(Requires_Charms)", lambda state: state.count('Room_Charm_Shop[left1]', player)) - - # Shop prices - set_shop_prices(hk_world) - - # Connectors - \ No newline at end of file + # Shop costs + for region in world.get_regions(player): + for location in region.locations: + if location.costs: + for term, amount in location.costs.items(): + if term == "GEO": # No geo logic! + continue + add_rule(location, lambda state, term=term, amount=amount: state.count(term, player) >= amount) diff --git a/worlds/hk/__init__.py b/worlds/hk/__init__.py index 110010e9c8..af0e54e237 100644 --- a/worlds/hk/__init__.py +++ b/worlds/hk/__init__.py @@ -2,16 +2,19 @@ from __future__ import annotations import logging import typing -from collections import Counter +from copy import deepcopy +import itertools +import operator logger = logging.getLogger("Hollow Knight") from .Items import item_table, lookup_type_to_names, item_name_groups from .Regions import create_regions -from .Rules import set_rules -from .Options import hollow_knight_options, hollow_knight_randomize_options, disabled, Goal, WhitePalace +from .Rules import set_rules, cost_terms +from .Options import hollow_knight_options, hollow_knight_randomize_options, Goal, WhitePalace, CostSanity, \ + shop_to_option from .ExtractedData import locations, starts, multi_locations, location_to_region_lookup, \ - event_names, item_effects, connectors, one_ways + event_names, item_effects, connectors, one_ways, vanilla_shop_costs, vanilla_location_costs from .Charms import names as charm_names from BaseClasses import Region, Entrance, Location, MultiWorld, Item, RegionType, LocationProgressType, Tutorial, ItemClassification @@ -98,6 +101,25 @@ logicless_options = { "RandomizeLoreTablets", "RandomizeSoulTotems", } +# Options that affect vanilla starting items +randomizable_starting_items: typing.Dict[str, typing.Tuple[str, ...]] = { + "RandomizeFocus": ("Focus",), + "RandomizeSwim": ("Swim",), + "RandomizeNail": ('Upslash', 'Leftslash', 'Rightslash') +} + +# Shop cost types. +shop_cost_types: typing.Dict[str, typing.Tuple[str, ...]] = { + "Egg_Shop": ("RANCIDEGGS",), + "Grubfather": ("GRUBS",), + "Seer": ("ESSENCE",), + "Salubra_(Requires_Charms)": ("CHARMS", "GEO"), + "Sly": ("GEO",), + "Sly_(Key)": ("GEO",), + "Iselda": ("GEO",), + "Salubra": ("GEO",), + "Leg_Eater": ("GEO",), +} class HKWeb(WebWorld): tutorials = [Tutorial( @@ -127,19 +149,18 @@ class HKWorld(World): item_name_groups = item_name_groups ranges: typing.Dict[str, typing.Tuple[int, int]] - shops: typing.Dict[str, str] = { - "Egg_Shop": "Egg", - "Grubfather": "Grub", - "Seer": "Essence", - "Salubra_(Requires_Charms)": "Charm" - } charm_costs: typing.List[int] + cached_filler_items = {} data_version = 2 def __init__(self, world, player): super(HKWorld, self).__init__(world, player) - self.created_multi_locations: typing.Dict[str, int] = Counter() + self.created_multi_locations: typing.Dict[str, typing.List[HKLocation]] = { + location: list() for location in multi_locations + } self.ranges = {} + self.created_shop_items = 0 + self.vanilla_shop_costs = deepcopy(vanilla_shop_costs) def generate_early(self): world = self.world @@ -147,16 +168,14 @@ class HKWorld(World): self.charm_costs = world.PlandoCharmCosts[self.player].get_costs(charm_costs) # world.exclude_locations[self.player].value.update(white_palace_locations) world.local_items[self.player].value.add("Mimic_Grub") - for vendor, unit in self.shops.items(): - mini = getattr(world, f"Minimum{unit}Price")[self.player] - maxi = getattr(world, f"Maximum{unit}Price")[self.player] + for term, data in cost_terms.items(): + mini = getattr(world, f"Minimum{data.option}Price")[self.player] + maxi = getattr(world, f"Maximum{data.option}Price")[self.player] # if minimum > maximum, set minimum to maximum mini.value = min(mini.value, maxi.value) - self.ranges[unit] = mini.value, maxi.value + self.ranges[term] = mini.value, maxi.value world.push_precollected(HKItem(starts[world.StartLocation[self.player].current_key], True, None, "Event", self.player)) - for option_name in disabled: - getattr(world, option_name)[self.player].value = 0 def white_palace_exclusions(self): exclusions = set() @@ -199,55 +218,197 @@ class HKWorld(World): menu_region.locations.append(loc) def create_items(self): + unfilled_locations = 0 # Generate item pool and associated locations (paired in HK) pool: typing.List[HKItem] = [] - geo_replace: typing.Set[str] = set() - if self.world.RemoveSpellUpgrades[self.player]: - geo_replace.add("Abyss_Shriek") - geo_replace.add("Shade_Soul") - geo_replace.add("Descending_Dark") - wp_exclusions = self.white_palace_exclusions() + junk_replace: typing.Set[str] = set() + if self.world.RemoveSpellUpgrades[self.player]: + junk_replace.update(("Abyss_Shriek", "Shade_Soul", "Descending_Dark")) + + randomized_starting_items = set() + for attr, items in randomizable_starting_items.items(): + if getattr(self.world, attr)[self.player]: + randomized_starting_items.update(items) + + # noinspection PyShadowingNames + def _add(item_name: str, location_name: str): + """ + Adds a pairing of an item and location, doing appropriate checks to see if it should be vanilla or not. + """ + nonlocal unfilled_locations + + vanilla = not randomized + excluded = False + + if not vanilla and location_name in wp_exclusions: + if location_name == 'King_Fragment': + excluded = True + else: + vanilla = True + + if item_name in junk_replace: + item_name = self.get_filler_item_name() + + item = self.create_item(item_name) + + if location_name == "Start": + if item_name in randomized_starting_items: + pool.append(item) + else: + self.world.push_precollected(item) + return + + if vanilla: + location = self.create_vanilla_location(location_name, item) + else: + pool.append(item) + if location_name in multi_locations: # Create shop locations later. + return + location = self.create_location(location_name) + unfilled_locations += 1 + if excluded: + location.progress_type = LocationProgressType.EXCLUDED + for option_key, option in hollow_knight_randomize_options.items(): randomized = getattr(self.world, option_key)[self.player] for item_name, location_name in zip(option.items, option.locations): - vanilla = not randomized - excluded = False - if item_name in geo_replace: - item_name = "Geo_Rock-Default" - item = self.create_item(item_name) - if location_name == "Start": - self.world.push_precollected(item) + if item_name in junk_replace: + item_name = self.get_filler_item_name() + + if (item_name == "Crystal_Heart" and self.world.SplitCrystalHeart[self.player]) or \ + (item_name == "Mothwing_Cloak" and self.world.SplitMothwingCloak[self.player]): + _add("Left_" + item_name, location_name) + _add("Right_" + item_name, "Split_" + location_name) continue - - location = self.create_location(location_name) - if not vanilla and location_name in wp_exclusions: - if location_name == 'King_Fragment': - excluded = True + if item_name == "Mantis_Claw" and self.world.SplitMantisClaw[self.player]: + _add("Left_" + item_name, "Left_" + location_name) + _add("Right_" + item_name, "Right_" + location_name) + continue + if item_name == "Shade_Cloak" and self.world.SplitMothwingCloak[self.player]: + if self.world.random.randint(0, 1): + item_name = "Left_Mothwing_Cloak" else: - vanilla = True - if excluded: - location.progress_type = LocationProgressType.EXCLUDED - if vanilla: - location.place_locked_item(item) - else: - pool.append(item) + item_name = "Right_Mothwing_Cloak" - for i in range(self.world.EggShopSlots[self.player].value): - self.create_location("Egg_Shop") - pool.append(self.create_item("Geo_Rock-Default")) + _add(item_name, location_name) + + if self.world.RandomizeElevatorPass[self.player]: + randomized = True + _add("Elevator_Pass", "Elevator_Pass") + + for shop, locations in self.created_multi_locations.items(): + for _ in range(len(locations), getattr(self.world, shop_to_option[shop])[self.player].value): + loc = self.create_location(shop) + unfilled_locations += 1 + + # Balance the pool + item_count = len(pool) + additional_shop_items = max(item_count - unfilled_locations, self.world.ExtraShopSlots[self.player].value) + + # Add additional shop items, as needed. + if additional_shop_items > 0: + shops = list(shop for shop, locations in self.created_multi_locations.items() if len(locations) < 16) + if not self.world.EggShopSlots[self.player].value: # No eggshop, so don't place items there + shops.remove('Egg_Shop') + + for _ in range(additional_shop_items): + shop = self.world.random.choice(shops) + loc = self.create_location(shop) + unfilled_locations += 1 + if len(self.created_multi_locations[shop]) >= 16: + shops.remove(shop) + if not shops: + break + + # Create filler items, if needed + if item_count < unfilled_locations: + pool.extend(self.create_item(self.get_filler_item_name()) for _ in range(unfilled_locations - item_count)) self.world.itempool += pool + self.apply_costsanity() + self.sort_shops_by_cost() - for shopname in self.shops: - prices: typing.List[int] = [] - locations: typing.List[HKLocation] = [] - for x in range(1, self.created_multi_locations[shopname]+1): - loc = self.world.get_location(self.get_multi_location_name(shopname, x), self.player) - locations.append(loc) - prices.append(loc.cost) - prices.sort() - for loc, price in zip(locations, prices): - loc.cost = price + def sort_shops_by_cost(self): + for shop, locations in self.created_multi_locations.items(): + randomized_locations = list(loc for loc in locations if not loc.vanilla) + prices = sorted( + (loc.costs for loc in randomized_locations), + key=lambda costs: (len(costs),) + tuple(costs.values()) + ) + for loc, costs in zip(randomized_locations, prices): + loc.costs = costs + + def apply_costsanity(self): + setting = self.world.CostSanity[self.player].value + if not setting: + return # noop + + def _compute_weights(weights: dict, desc: str) -> typing.Dict[str, int]: + if all(x == 0 for x in weights.values()): + logger.warning( + f"All {desc} weights were zero for {self.world.player_name[self.player]}." + f" Setting them to one instead." + ) + weights = {k: 1 for k in weights} + + return {k: v for k, v in weights.items() if v} + + random = self.world.random + hybrid_chance = getattr(self.world, f"CostSanityHybridChance")[self.player].value + weights = { + data.term: getattr(self.world, f"CostSanity{data.option}Weight")[self.player].value + for data in cost_terms.values() + } + weights_geoless = dict(weights) + del weights_geoless["GEO"] + + weights = _compute_weights(weights, "CostSanity") + weights_geoless = _compute_weights(weights_geoless, "Geoless CostSanity") + + if hybrid_chance > 0: + if len(weights) == 1: + logger.warning( + f"Only one cost type is available for CostSanity in {self.world.player_name[self.player]}'s world." + f" CostSanityHybridChance will not trigger." + ) + if len(weights_geoless) == 1: + logger.warning( + f"Only one cost type is available for CostSanity in {self.world.player_name[self.player]}'s world." + f" CostSanityHybridChance will not trigger in geoless locations." + ) + + for region in self.world.get_regions(self.player): + for location in region.locations: + if location.vanilla: + continue + if not location.costs: + continue + if location.name == "Vessel_Fragment-Basin": + continue + if setting == CostSanity.option_notshops and location.basename in multi_locations: + continue + if setting == CostSanity.option_shopsonly and location.basename not in multi_locations: + continue + if location.basename in {'Grubfather', 'Seer', 'Eggshop'}: + our_weights = dict(weights_geoless) + else: + our_weights = dict(weights) + + rolls = 1 + if random.randrange(100) < hybrid_chance: + rolls = 2 + + if rolls > len(our_weights): + terms = list(our_weights.keys()) # Can't randomly choose cost types, using all of them. + else: + terms = [] + for _ in range(rolls): + term = random.choices(list(our_weights.keys()), list(our_weights.values()))[0] + del our_weights[term] + terms.append(term) + + location.costs = {term: random.randint(*self.ranges[term]) for term in terms} + location.sort_costs() def set_rules(self): world = self.world @@ -280,12 +441,24 @@ class HKWorld(World): # 32 bit int slot_data["seed"] = self.world.slot_seeds[self.player].randint(-2147483647, 2147483646) - for shop, unit in self.shops.items(): - slot_data[f"{unit}_costs"] = { - f"{shop}_{i}": - self.world.get_location(f"{shop}_{i}", self.player).cost - for i in range(1, 1 + self.created_multi_locations[shop]) - } + # Backwards compatibility for shop cost data (HKAP < 0.1.0) + if not self.world.CostSanity[self.player]: + for shop, terms in shop_cost_types.items(): + unit = cost_terms[next(iter(terms))].option + if unit == "Geo": + continue + slot_data[f"{unit}_costs"] = { + loc.name: next(iter(loc.costs.values())) + for loc in self.created_multi_locations[shop] + } + + # HKAP 0.1.0 and later cost data. + location_costs = {} + for region in self.world.get_regions(self.player): + for location in region.locations: + if location.costs: + location_costs[location.name] = location.costs + slot_data["location_costs"] = location_costs slot_data["notch_costs"] = self.charm_costs @@ -295,30 +468,51 @@ class HKWorld(World): item_data = item_table[name] return HKItem(name, item_data.advancement, item_data.id, item_data.type, self.player) - def create_location(self, name: str) -> HKLocation: - unit = self.shops.get(name, None) - if unit: - cost = self.world.random.randint(*self.ranges[unit]) - else: - cost = 0 - if name in multi_locations: - self.created_multi_locations[name] += 1 - name = self.get_multi_location_name(name, self.created_multi_locations[name]) + def create_location(self, name: str, vanilla=False) -> HKLocation: + costs = None + basename = name + if name in shop_cost_types: + costs = { + term: self.world.random.randint(*self.ranges[term]) + for term in shop_cost_types[name] + } + elif name in vanilla_location_costs: + costs = vanilla_location_costs[name] + + multi = self.created_multi_locations.get(name) + + if multi is not None: + i = len(multi) + 1 + name = f"{name}_{i}" region = self.world.get_region("Menu", self.player) - loc = HKLocation(self.player, name, self.location_name_to_id[name], region) - if unit: - loc.unit = unit - loc.cost = cost + loc = HKLocation(self.player, name, + self.location_name_to_id[name], region, costs=costs, vanilla=vanilla, + basename=basename) + + if multi is not None: + multi.append(loc) + region.locations.append(loc) return loc + def create_vanilla_location(self, location: str, item: Item): + costs = self.vanilla_shop_costs.get((location, item.name)) + location = self.create_location(location, vanilla=True) + location.place_locked_item(item) + if costs: + location.costs = costs.pop() + def collect(self, state, item: HKItem) -> bool: change = super(HKWorld, self).collect(state, item) if change: for effect_name, effect_value in item_effects.get(item.name, {}).items(): state.prog_items[effect_name, item.player] += effect_value - + if item.name in {"Left_Mothwing_Cloak", "Right_Mothwing_Cloak"}: + if state.prog_items.get(('RIGHTDASH', item.player), 0) and \ + state.prog_items.get(('LEFTDASH', item.player), 0): + (state.prog_items["RIGHTDASH", item.player], state.prog_items["LEFTDASH", item.player]) = \ + ([max(state.prog_items["RIGHTDASH", item.player], state.prog_items["LEFTDASH", item.player])] * 2) return change def remove(self, state, item: HKItem) -> bool: @@ -348,17 +542,40 @@ class HKWorld(World): name = world.get_player_name(player) spoiler_handle.write(f'\n{name}\n') hk_world: HKWorld = world.worlds[player] - for shop_name, unit_name in cls.shops.items(): - for x in range(1, hk_world.created_multi_locations[shop_name]+1): - loc = world.get_location(hk_world.get_multi_location_name(shop_name, x), player) - spoiler_handle.write(f"\n{loc}: {loc.item} costing {loc.cost} {unit_name}") + + if world.CostSanity[player].value: + for loc in sorted( + ( + loc for loc in itertools.chain(*(region.locations for region in world.get_regions(player))) + if loc.costs + ), key=operator.attrgetter('name') + ): + spoiler_handle.write(f"\n{loc}: {loc.item} costing {loc.cost_text()}") + else: + for shop_name, locations in hk_world.created_multi_locations.items(): + for loc in locations: + spoiler_handle.write(f"\n{loc}: {loc.item} costing {loc.cost_text()}") def get_multi_location_name(self, base: str, i: typing.Optional[int]) -> str: if i is None: - i = self.created_multi_locations[base] - assert 0 < i < 18, "limited number of multi location IDs reserved." + i = len(self.created_multi_locations[base]) + 1 + assert 1 <= 16, "limited number of multi location IDs reserved." return f"{base}_{i}" + def get_filler_item_name(self) -> str: + if self.player not in self.cached_filler_items: + fillers = ["One_Geo", "Soul_Refill"] + exclusions = self.white_palace_exclusions() + for group in ( + 'RandomizeGeoRocks', 'RandomizeSoulTotems', 'RandomizeLoreTablets', 'RandomizeJunkPitChests', + 'RandomizeRancidEggs' + ): + if getattr(self.world, group): + fillers.extend(item for item in hollow_knight_randomize_options[group].items if item not in + exclusions) + self.cached_filler_items[self.player] = fillers + return self.world.random.choice(self.cached_filler_items[self.player]) + def create_region(world: MultiWorld, player: int, name: str, location_names=None, exits=None) -> Region: ret = Region(name, RegionType.Generic, name, player) @@ -376,11 +593,34 @@ def create_region(world: MultiWorld, player: int, name: str, location_names=None class HKLocation(Location): game: str = "Hollow Knight" - cost: int = 0 + costs: typing.Dict[str, int] = None unit: typing.Optional[str] = None + vanilla = False + basename: str - def __init__(self, player: int, name: str, code=None, parent=None): + def sort_costs(self): + if self.costs is None: + return + self.costs = {k: self.costs[k] for k in sorted(self.costs.keys(), key=lambda x: cost_terms[x].sort)} + + def __init__( + self, player: int, name: str, code=None, parent=None, + costs: typing.Dict[str, int] = None, vanilla: bool = False, basename: str = None + ): + self.basename = basename or name super(HKLocation, self).__init__(player, name, code if code else None, parent) + self.vanilla = vanilla + if costs: + self.costs = dict(costs) + self.sort_costs() + + def cost_text(self, separator=" and "): + if self.costs is None: + return None + return separator.join( + f"{value} {cost_terms[term].singular if value == 1 else cost_terms[term].plural}" + for term, value in self.costs.items() + ) class HKItem(Item): @@ -393,6 +633,10 @@ class HKItem(Item): classification = ItemClassification.progression_skip_balancing elif type == "Charm" and name not in progression_charms: classification = ItemClassification.progression_skip_balancing + elif type in ("Map", "Journal"): + classification = ItemClassification.filler + elif type in ("Mask", "Ore", "Vessel"): + classification = ItemClassification.useful elif advancement: classification = ItemClassification.progression else: diff --git a/worlds/hk/templates/RulesTemplate.pyt b/worlds/hk/templates/RulesTemplate.pyt index 40071bbfde..7df258a470 100644 --- a/worlds/hk/templates/RulesTemplate.pyt +++ b/worlds/hk/templates/RulesTemplate.pyt @@ -1,50 +1,20 @@ -from ..generic.Rules import set_rule, add_rule +# This module is written by Extractor.py, do not edit manually!. +from functools import partial -units = { - "Egg": "RANCIDEGGS", - "Grub": "GRUBS", - "Essence": "ESSENCE", - "Charm": "CHARMS", -} - - -def hk_set_rule(hk_world, location: str, rule): - count = hk_world.created_multi_locations[location] - if count: - locations = [f"{location}_{x}" for x in range(1, count+1)] - elif (location, hk_world.player) in hk_world.world._location_cache: - locations = [location] - else: - return - for location in locations: - set_rule(hk_world.world.get_location(location, hk_world.player), rule) - - -def set_shop_prices(hk_world): +def set_generated_rules(hk_world, hk_set_rule): player = hk_world.player - for shop, unit in hk_world.shops.items(): - for i in range(1, 1 + hk_world.created_multi_locations[shop]): - loc = hk_world.world.get_location(f"{shop}_{i}", hk_world.player) - add_rule(loc, lambda state, unit=units[unit], cost=loc.cost: state.count(unit, player) >= cost) - - -def set_rules(hk_world): - player = hk_world.player - world = hk_world.world + fn = partial(hk_set_rule, hk_world) # Events {% for location, rule_text in event_rules.items() %} - hk_set_rule(hk_world, "{{location}}", lambda state: {{rule_text}}) + fn("{{location}}", lambda state: {{rule_text}}) {%- endfor %} # Locations {% for location, rule_text in location_rules.items() %} - hk_set_rule(hk_world, "{{location}}", lambda state: {{rule_text}}) + fn("{{location}}", lambda state: {{rule_text}}) {%- endfor %} - # Shop prices - set_shop_prices(hk_world) - # Connectors {% for entrance, rule_text in connectors_rules.items() %} rule = lambda state: {{rule_text}} @@ -54,4 +24,4 @@ def set_rules(hk_world): world.get_entrance("{{entrance}}_R", player).access_rule = lambda state, entrance= entrance: \ rule(state) and entrance.can_reach(state) {%- endif %} - {% endfor %} \ No newline at end of file + {%- endfor %} \ No newline at end of file From 530c5500c35798e6d943403a10f20b2e0f2ded94 Mon Sep 17 00:00:00 2001 From: Alchav <59858495+Alchav@users.noreply.github.com> Date: Sun, 3 Jul 2022 11:11:11 -0400 Subject: [PATCH 18/32] Break out of fill loop if locations is empty (#690) --- Fill.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Fill.py b/Fill.py index 39c4f547cc..a5cf155ec1 100644 --- a/Fill.py +++ b/Fill.py @@ -42,8 +42,16 @@ def fill_restrictive(world: MultiWorld, base_state: CollectionState, locations: has_beaten_game = world.has_beaten_game(maximum_exploration_state) - for item_to_place in items_to_place: + while items_to_place: + # if we have run out of locations to fill,break out of this loop + if not locations: + unplaced_items += items_to_place + break + item_to_place = items_to_place.pop(0) + spot_to_fill: typing.Optional[Location] = None + + # if minimal accessibility, only check whether location is reachable if game not beatable if world.accessibility[item_to_place.player] == 'minimal': perform_access_check = not world.has_beaten_game(maximum_exploration_state, item_to_place.player) \ @@ -54,7 +62,7 @@ def fill_restrictive(world: MultiWorld, base_state: CollectionState, locations: for i, location in enumerate(locations): if (not single_player_placement or location.player == item_to_place.player) \ and location.can_fill(maximum_exploration_state, item_to_place, perform_access_check): - # poping by index is faster than removing by content, + # popping by index is faster than removing by content, spot_to_fill = locations.pop(i) # skipping a scan for the element break From 7072c7bd45ba716da94d5f1777502db4f2f29fc3 Mon Sep 17 00:00:00 2001 From: strotlog <49286967+strotlog@users.noreply.github.com> Date: Mon, 4 Jul 2022 01:49:25 -0700 Subject: [PATCH 19/32] docs: fix 2 URLs (#738) * URL of image in Alttp ES tutorial * Link to RA download in SMZ3 EN tutorial --- worlds/alttp/docs/multiworld_es.md | 3 ++- worlds/smz3/docs/multiworld_en.md | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/worlds/alttp/docs/multiworld_es.md b/worlds/alttp/docs/multiworld_es.md index 5a700983d2..da0b9d99bf 100644 --- a/worlds/alttp/docs/multiworld_es.md +++ b/worlds/alttp/docs/multiworld_es.md @@ -144,7 +144,8 @@ Sólo hay que segiur estos pasos una vez. 2. Ve a Ajustes --> Interfaz de usario. Configura "Mostrar ajustes avanzados" en ON. 3. Ve a Ajustes --> Red. Configura "Comandos de red" en ON. (Se encuentra bajo Request Device 16.) Deja en 55355 (el default) el Puerto de comandos de red. -![Captura de pantalla del ajuste Comandos de red](/static/assets/tutorial/retroarch-network-commands-en.png) + +![Captura de pantalla del ajuste Comandos de red](/static/generated/docs/A%20Link%20to%20the%20Past/retroarch-network-commands-en.png) 4. Ve a Menú principal --> Actualizador en línea --> Descargador de núcleos. Desplázate y selecciona "Nintendo - SNES / SFC (bsnes-mercury Performance)". diff --git a/worlds/smz3/docs/multiworld_en.md b/worlds/smz3/docs/multiworld_en.md index dd516d9980..7457d6d0a7 100644 --- a/worlds/smz3/docs/multiworld_en.md +++ b/worlds/smz3/docs/multiworld_en.md @@ -10,9 +10,8 @@ - An emulator capable of connecting to SNI such as: - snes9x Multitroid from: [snes9x Multitroid Download](https://drive.google.com/drive/folders/1_ej-pwWtCAHYXIrvs5Hro16A1s9Hi3Jz), - - BizHawk from: [BizHawk Website](http://tasvideos.org/BizHawk.html) - - RetroArch 1.10.3 or newer from: [RetroArch BuildBot Website](https://buildbot.libretro.com/) - nightly builds - are required until 1.10.3 is released. Or, + - BizHawk from: [BizHawk Website](http://tasvideos.org/BizHawk.html), or + - RetroArch 1.10.3 or newer from: [RetroArch Website](https://retroarch.com?page=platforms). Or, - An SD2SNES, FXPak Pro ([FXPak Pro Store Page](https://krikzz.com/store/home/54-fxpak-pro.html)), or other compatible hardware - Your legally obtained Super Metroid ROM file, probably named `Super Metroid (Japan, USA).sfc` and From ab2b635a7712e76c4f9780f8316c6ef811412317 Mon Sep 17 00:00:00 2001 From: Sunny Bat Date: Tue, 5 Jul 2022 19:37:08 -0700 Subject: [PATCH 20/32] Update Raft for Final Chapter (#724) --- worlds/raft/Locations.py | 2 +- worlds/raft/Options.py | 16 + worlds/raft/Rules.py | 39 +- worlds/raft/__init__.py | 23 +- worlds/raft/docs/en_Raft.md | 4 +- worlds/raft/docs/setup_en.md | 2 +- worlds/raft/items.json | 321 +++++--- worlds/raft/locations.json | 1290 ++++++++++++++++++-------------- worlds/raft/progressives.json | 38 +- worlds/raft/regions.json | 5 +- worlds/raft/resourcepacks.json | 6 +- 11 files changed, 1080 insertions(+), 666 deletions(-) diff --git a/worlds/raft/Locations.py b/worlds/raft/Locations.py index 916734d73f..36de4b4f6c 100644 --- a/worlds/raft/Locations.py +++ b/worlds/raft/Locations.py @@ -8,5 +8,5 @@ lookup_id_to_name = {} for item in location_table: lookup_id_to_name[item["id"]] = item["name"] -lookup_id_to_name[None] = "Tangaroa Next Frequency" +lookup_id_to_name[None] = "Utopia Complete" lookup_name_to_id = {name: id for id, name in lookup_id_to_name.items()} \ No newline at end of file diff --git a/worlds/raft/Options.py b/worlds/raft/Options.py index 837acae9f3..482f1d343a 100644 --- a/worlds/raft/Options.py +++ b/worlds/raft/Options.py @@ -37,6 +37,20 @@ class IslandFrequencyLocations(Choice): option_anywhere = 3 default = 1 +class IslandGenerationDistance(Choice): + """Sets how far away islands spawn from you when you input their coordinates into the Receiver.""" + display_name = "Island distance" + option_quarter = 2 + option_half = 4 + option_vanilla = 8 + option_double = 16 + option_quadrouple = 32 + default = 8 + +class ExpensiveResearch(Toggle): + """Makes unlocking items in the Crafting Table consume the researched items.""" + display_name = "Expensive research" + class ProgressiveItems(DefaultOnToggle): """Makes some items, like the Bow and Arrow, progressive rather than raw unlocks.""" display_name = "Progressive items" @@ -55,6 +69,8 @@ raft_options = { "maximum_resource_pack_amount": MaximumResourcePackAmount, "duplicate_items": DuplicateItems, "island_frequency_locations": IslandFrequencyLocations, + "island_generation_distance": IslandGenerationDistance, + "expensive_research": ExpensiveResearch, "progressive_items": ProgressiveItems, "big_island_early_crafting": BigIslandEarlyCrafting, "paddleboard_mode": PaddleboardMode diff --git a/worlds/raft/Rules.py b/worlds/raft/Rules.py index a394a5f19f..3ca565d9d6 100644 --- a/worlds/raft/Rules.py +++ b/worlds/raft/Rules.py @@ -12,6 +12,9 @@ class RaftLogic(LogicMixin): def raft_can_smelt_items(self, player): return self.has("Smelter", player) + + def raft_can_find_titanium(self, player): + return self.has("Metal detector", player) def raft_can_craft_bolt(self, player): return self.raft_can_smelt_items(player) and self.has("Bolt", player) @@ -76,7 +79,7 @@ class RaftLogic(LogicMixin): return self.raft_can_craft_battery(player) and self.raft_can_craft_reciever(player) and self.raft_can_craft_antenna(player) def raft_can_drive(self, player): # The player can go wherever they want with the engine - return self.raft_can_craft_engine(player) and self.raft_can_craft_steeringWheel(player) + return (self.raft_can_craft_engine(player) and self.raft_can_craft_steeringWheel(player)) or self.raft_paddleboard_mode_enabled(player) def raft_can_access_radio_tower(self, player): return self.raft_can_navigate(player) @@ -92,24 +95,42 @@ class RaftLogic(LogicMixin): def raft_can_access_balboa_island(self, player): return (self.raft_can_complete_vasagatan(player) - and (self.raft_can_drive(player) or self.raft_paddleboard_mode_enabled(player)) + and self.raft_can_drive(player) and self.has("Balboa Island Frequency", player)) def raft_can_complete_balboa_island(self, player): - return self.raft_can_access_balboa_island(player) and self.raft_can_craft_machete(player) and self.raft_can_fire_bow(player) + return self.raft_can_access_balboa_island(player) and self.raft_can_craft_machete(player) def raft_can_access_caravan_island(self, player): - return self.raft_can_complete_balboa_island(player) and (self.raft_can_drive(player) or self.raft_paddleboard_mode_enabled(player)) and self.has("Caravan Island Frequency", player) + return self.raft_can_complete_balboa_island(player) and self.raft_can_drive(player) and self.has("Caravan Island Frequency", player) def raft_can_complete_caravan_island(self, player): return self.raft_can_access_caravan_island(player) and self.raft_can_craft_ziplineTool(player) def raft_can_access_tangaroa(self, player): - return self.raft_can_complete_caravan_island(player) and (self.raft_can_drive(player) or self.raft_paddleboard_mode_enabled(player)) and self.has("Tangaroa Frequency", player) + return self.raft_can_complete_caravan_island(player) and self.raft_can_drive(player) and self.has("Tangaroa Frequency", player) def raft_can_complete_tangaroa(self, player): return self.raft_can_access_tangaroa(player) + def raft_can_access_varuna_point(self, player): + return self.raft_can_complete_tangaroa(player) and self.raft_can_drive(player) and self.has("Varuna Point Frequency", player) + + def raft_can_complete_varuna_point(self, player): + return self.raft_can_access_varuna_point(player) + + def raft_can_access_temperance(self, player): + return self.raft_can_complete_varuna_point(player) and self.raft_can_drive(player) and self.has("Temperance Frequency", player) + + def raft_can_complete_temperance(self, player): + return self.raft_can_access_temperance(player) + + def raft_can_access_utopia(self, player): + return self.raft_can_complete_temperance(player) and self.raft_can_drive(player) and self.has("Utopia Frequency", player) + + def raft_can_complete_utopia(self, player): + return self.raft_can_access_utopia(player) + def set_rules(world, player): regionChecks = { "Raft": lambda state: True, @@ -118,7 +139,10 @@ def set_rules(world, player): "Vasagatan": lambda state: state.raft_can_complete_radio_tower(player) and state.raft_can_access_vasagatan(player), "BalboaIsland": lambda state: state.raft_can_complete_vasagatan(player) and state.raft_can_access_balboa_island(player), "CaravanIsland": lambda state: state.raft_can_complete_balboa_island(player) and state.raft_can_access_caravan_island(player), - "Tangaroa": lambda state: state.raft_can_complete_caravan_island(player) and state.raft_can_access_tangaroa(player) + "Tangaroa": lambda state: state.raft_can_complete_caravan_island(player) and state.raft_can_access_tangaroa(player), + "Varuna Point": lambda state: state.raft_can_complete_tangaroa(player) and state.raft_can_access_varuna_point(player), + "Temperance": lambda state: state.raft_can_complete_varuna_point(player) and state.raft_can_access_temperance(player), + "Utopia": lambda state: state.raft_can_complete_temperance(player) and state.raft_can_access_utopia(player) } itemChecks = { "Plank": lambda state: True, @@ -143,15 +167,14 @@ def set_rules(world, player): "Hinge": lambda state: state.raft_can_craft_hinge(player), "CircuitBoard": lambda state: state.raft_can_craft_circuitBoard(player), "PlasticBottle_Empty": lambda state: state.raft_can_craft_plasticBottle(player), - "Shear": lambda state: state.raft_can_craft_shears(player), "Wool": lambda state: state.raft_can_capture_animals(player) and state.raft_can_craft_shears(player), "HoneyComb": lambda state: state.raft_can_access_balboa_island(player), "Jar_Bee": lambda state: state.raft_can_access_balboa_island(player) and state.raft_can_smelt_items(player), "Dirt": lambda state: state.raft_can_get_dirt(player), "Egg": lambda state: state.raft_can_capture_animals(player), + "TitaniumIngot": lambda state: state.raft_can_smelt_items(player) and state.raft_can_find_titanium(player), # Specific items for story island location checks "Machete": lambda state: state.raft_can_craft_machete(player), - "BowAndArrow": lambda state: state.raft_can_fire_bow(player), "Zipline tool": lambda state: state.raft_can_craft_ziplineTool(player) } diff --git a/worlds/raft/__init__.py b/worlds/raft/__init__.py index 05e5ded51b..cf4b7975e5 100644 --- a/worlds/raft/__init__.py +++ b/worlds/raft/__init__.py @@ -39,8 +39,8 @@ class RaftWorld(World): location_name_to_id = locations_lookup_name_to_id options = raft_options - data_version = 1 - required_client_version = (0, 2, 0) + data_version = 2 + required_client_version = (0, 3, 4) def generate_basic(self): minRPSpecified = self.world.minimum_resource_pack_amount[self.player].value @@ -96,6 +96,11 @@ class RaftWorld(World): slot_data = {} return slot_data + def get_pre_fill_items(self): + if self.world.island_frequency_locations[self.player] in [0, 1]: + return [loc.item for loc in self.world.get_filled_locations()] + return [] + def create_item_replaceAsNecessary(self, name: str) -> Item: isFrequency = "Frequency" in name shouldUseProgressive = ((isFrequency and self.world.island_frequency_locations[self.player].value == 2) @@ -132,13 +137,19 @@ class RaftWorld(World): self.setLocationItem("Vasagatan Frequency to Balboa", "Balboa Island Frequency") self.setLocationItem("Relay Station quest", "Caravan Island Frequency") self.setLocationItem("Caravan Island Frequency to Tangaroa", "Tangaroa Frequency") + self.setLocationItem("Tangaroa Frequency to Varuna Point", "Varuna Point Frequency") + self.setLocationItem("Varuna Point Frequency to Temperance", "Temperance Frequency") + self.setLocationItem("Temperance Frequency to Utopia", "Utopia Frequency") elif self.world.island_frequency_locations[self.player] == 1: self.setLocationItemFromRegion("RadioTower", "Vasagatan Frequency") self.setLocationItemFromRegion("Vasagatan", "Balboa Island Frequency") self.setLocationItemFromRegion("BalboaIsland", "Caravan Island Frequency") self.setLocationItemFromRegion("CaravanIsland", "Tangaroa Frequency") + self.setLocationItemFromRegion("Tangaroa", "Varuna Point Frequency") + self.setLocationItemFromRegion("Varuna Point", "Temperance Frequency") + self.setLocationItemFromRegion("Temperance", "Utopia Frequency") # Victory item - self.world.get_location("Tangaroa Next Frequency", self.player).place_locked_item( + self.world.get_location("Utopia Complete", self.player).place_locked_item( RaftItem("Victory", ItemClassification.progression, None, player=self.player)) def setLocationItem(self, location: str, itemName: str): @@ -151,6 +162,12 @@ class RaftWorld(World): self.world.itempool.remove(itemToUse) location = random.choice(list(loc for loc in location_table if loc["region"] == region)) self.world.get_location(location["name"], self.player).place_locked_item(itemToUse) + + def fill_slot_data(self): + return { + "IslandGenerationDistance": self.world.island_generation_distance[self.player].value, + "ExpensiveResearch": self.world.expensive_research[self.player].value + } def create_region(world: MultiWorld, player: int, name: str, locations=None, exits=None): ret = Region(name, RegionType.Generic, name, player) diff --git a/worlds/raft/docs/en_Raft.md b/worlds/raft/docs/en_Raft.md index bfd04ed221..adcf5ea6cb 100644 --- a/worlds/raft/docs/en_Raft.md +++ b/worlds/raft/docs/en_Raft.md @@ -5,10 +5,10 @@ The player settings page for this game is located h you need to configure and export a config file. ## What does randomization do to this game? -All of the items from the Research Table, as well as all the note/blueprint pickups from story islands, are changed to location checks. Blueprint items themselves are never given. The Research Table recipes will *remove* the researched items for that recipe once learned, meaning many more resources must be put into the Research Table to get all the unlocks from it. +All of the items from the Research Table, as well as all the note/blueprint/character pickups from story islands, are changed to location checks. Blueprint items themselves are never given when receiving a blueprint. ## What is the goal of Raft when randomized? -The goal remains the same: To pick up the note that has the frequency for the next unreleased story island from Tangaroa. +The goal remains the same: To complete the game by getting to the end of the game and finishing Utopia. ## Which items can be in another player's world? All of the craftable items from the Research Table and Blueprints, as well as frequencies. Since there are more locations in Raft than there are items to receive, Resource Packs with basic earlygame materials and/or duplicate items may be added to the item pool (configurable). diff --git a/worlds/raft/docs/setup_en.md b/worlds/raft/docs/setup_en.md index b72a807f67..ad69eacdf8 100644 --- a/worlds/raft/docs/setup_en.md +++ b/worlds/raft/docs/setup_en.md @@ -8,7 +8,7 @@ ## Installation Procedures -1. Install Raft. The currently-supported Raft version is Update 13: The Renovation Update. If you plan on playing Raft mainly with Archipelago, it's recommended to disable Raft auto-updating through Steam, as there is no beta channel to get old builds. +1. Install Raft. The currently-supported Raft version is Version 1.0: The Final Chapter. If you plan on playing Raft mainly with Archipelago, it's recommended to disable Raft auto-updating through Steam, as there is no beta channel to get old builds. 2. Install RML. diff --git a/worlds/raft/items.json b/worlds/raft/items.json index 8a24f520a6..a4aef0b77a 100644 --- a/worlds/raft/items.json +++ b/worlds/raft/items.json @@ -7,335 +7,460 @@ { "id": 47002, "progression": false, - "name": "Leather helmet" + "name": "Big backpack" }, { "id": 47003, "progression": false, - "name": "Leather body armor" + "name": "Leather helmet" }, { "id": 47004, "progression": false, - "name": "Leather greaves" + "name": "Leather body armor" }, { "id": 47005, "progression": false, - "name": "Flippers" + "name": "Leather greaves" }, { "id": 47006, "progression": false, - "name": "Head light" + "name": "Flippers" }, { "id": 47007, "progression": false, - "name": "Oxygen bottle" + "name": "Head light" }, { "id": 47008, + "progression": false, + "name": "Advanced head light" + }, + { + "id": 47009, + "progression": false, + "name": "Oxygen bottle" + }, + { + "id": 47010, "progression": true, "name": "Zipline tool" }, { - "id": 47009, + "id": 47011, + "progression": false, + "name": "Electric zipline tool" + }, + { + "id": 47012, "progression": true, "name": "Empty bottle" }, - { - "id": 47010, - "progression": false, - "name": "Clay bowl" - }, - { - "id": 47011, - "progression": false, - "name": "Bucket" - }, - { - "id": 47012, - "progression": false, - "name": "Healing salve" - }, { "id": 47013, "progression": false, - "name": "Good healing salve" + "name": "Empty canteen" }, { "id": 47014, "progression": false, - "name": "Cookingpot" + "name": "Bucket" }, { "id": 47015, "progression": false, - "name": "Advanced grill" + "name": "Clay bowl" }, { "id": 47016, "progression": false, - "name": "Advanced purifier" + "name": "Drinking glass" }, { "id": 47017, "progression": false, - "name": "Electric purifier" + "name": "Healing salve" }, { "id": 47018, "progression": false, - "name": "Medium crop plot" + "name": "Good healing salve" }, { "id": 47019, "progression": false, - "name": "Large crop plot" + "name": "Cookingpot" }, { "id": 47020, - "progression": true, - "name": "Grass plot" + "progression": false, + "name": "Juicer" }, { "id": 47021, "progression": false, - "name": "Scarecrow" + "name": "Advanced grill" }, { "id": 47022, "progression": false, - "name": "Sprinkler" + "name": "Electric grill" }, { "id": 47023, "progression": false, - "name": "Honey" + "name": "Advanced purifier" }, { "id": 47024, - "progression": true, - "name": "Battery" + "progression": false, + "name": "Electric purifier" }, { "id": 47025, - "progression": true, - "name": "Bolt" + "progression": false, + "name": "Advanced small crop plot" }, { "id": 47026, - "progression": true, - "name": "Circuit board" + "progression": false, + "name": "Advanced medium crop plot" }, { "id": 47027, - "progression": true, - "name": "Hinge" + "progression": false, + "name": "Advanced large crop plot" }, { "id": 47028, - "progression": false, - "name": "Stationary anchor" + "progression": true, + "name": "Grass plot" }, { "id": 47029, "progression": false, - "name": "Engine controls" + "name": "Medium crop plot" }, { "id": 47030, - "progression": true, - "name": "Engine" + "progression": false, + "name": "Large crop plot" }, { "id": 47031, - "progression": true, - "name": "Receiver" + "progression": false, + "name": "Scarecrow" }, { "id": 47032, - "progression": true, - "name": "Antenna" + "progression": false, + "name": "Advanced Scarecrow" }, { "id": 47033, - "progression": true, - "name": "Steering Wheel" + "progression": false, + "name": "Sprinkler" }, { "id": 47034, "progression": false, - "name": "Battery charger" + "name": "Honey" }, { "id": 47035, - "progression": false, - "name": "Hammock" + "progression": true, + "name": "Battery" }, { "id": 47036, "progression": false, - "name": "Beehive" + "name": "Advanced Battery" }, { "id": 47037, - "progression": false, - "name": "Biofuel refiner" + "progression": true, + "name": "Bolt" }, { "id": 47038, - "progression": false, - "name": "Birds nest" + "progression": true, + "name": "Circuit board" }, { "id": 47039, "progression": true, - "name": "Smelter" + "name": "Hinge" }, { "id": 47040, "progression": false, - "name": "Fuel tank" + "name": "Stationary anchor" }, { "id": 47041, "progression": false, - "name": "Water tank" + "name": "Advanced stationary anchor" }, { "id": 47042, "progression": false, - "name": "Simple collection net" + "name": "Engine controls" }, { "id": 47043, - "progression": false, - "name": "Fuel pipe" + "progression": true, + "name": "Engine" }, { "id": 47044, - "progression": false, - "name": "Water pipe" + "progression": true, + "name": "Receiver" }, { "id": 47045, - "progression": false, - "name": "Storage" + "progression": true, + "name": "Antenna" }, { "id": 47046, - "progression": false, - "name": "Large Storage" + "progression": true, + "name": "Steering Wheel" }, { "id": 47047, "progression": false, - "name": "Trashcan" + "name": "Battery charger" }, { "id": 47048, "progression": false, - "name": "Zipline" + "name": "Wind turbine" }, { "id": 47049, "progression": false, - "name": "Firework" + "name": "Hammock" }, { "id": 47050, "progression": false, - "name": "Metal axe" + "name": "Beehive" }, { "id": 47051, "progression": false, - "name": "Binoculars" + "name": "Biofuel refiner" }, { "id": 47052, "progression": false, - "name": "Metal fishing rod" + "name": "Advanced biofuel refiner" }, { "id": 47053, - "progression": false, - "name": "Scrap hook" + "progression": true, + "name": "Birds nest" }, { "id": 47054, "progression": false, - "name": "Metal detector" + "name": "Simple collection net" }, { "id": 47055, - "progression": true, - "name": "Shear" + "progression": false, + "name": "Advanced collection net" }, { "id": 47056, "progression": true, - "name": "Shovel" + "name": "Smelter" }, { "id": 47057, "progression": false, - "name": "Sweep net" + "name": "Electric Smelter" }, { "id": 47058, - "progression": true, - "name": "Basic bow" + "progression": false, + "name": "Fuel tank" }, { "id": 47059, - "progression": true, - "name": "Stone arrow" + "progression": false, + "name": "Water tank" }, { "id": 47060, "progression": false, - "name": "Metal arrow" + "name": "Fuel pipe" }, { "id": 47061, "progression": false, - "name": "Metal Spear" + "name": "Water pipe" }, { "id": 47062, + "progression": false, + "name": "Recycler" + }, + { + "id": 47063, + "progression": false, + "name": "Storage" + }, + { + "id": 47064, + "progression": false, + "name": "Large Storage" + }, + { + "id": 47065, + "progression": false, + "name": "Trashcan" + }, + { + "id": 47066, + "progression": false, + "name": "Zipline" + }, + { + "id": 47067, + "progression": false, + "name": "Firework" + }, + { + "id": 47068, + "progression": false, + "name": "Metal axe" + }, + { + "id": 47069, + "progression": false, + "name": "Titanium axe" + }, + { + "id": 47070, + "progression": false, + "name": "Binoculars" + }, + { + "id": 47071, + "progression": false, + "name": "Metal fishing rod" + }, + { + "id": 47072, + "progression": false, + "name": "Scrap hook" + }, + { + "id": 47073, + "progression": false, + "name": "Titanium hook" + }, + { + "id": 47074, + "progression": true, + "name": "Metal detector" + }, + { + "id": 47075, + "progression": true, + "name": "Shear" + }, + { + "id": 47076, + "progression": true, + "name": "Shovel" + }, + { + "id": 47077, + "progression": false, + "name": "Sweep net" + }, + { + "id": 47078, + "progression": false, + "name": "Basic bow" + }, + { + "id": 47079, + "progression": false, + "name": "Stone arrow" + }, + { + "id": 47080, + "progression": false, + "name": "Metal arrow" + }, + { + "id": 47081, + "progression": false, + "name": "Titanium arrow" + }, + { + "id": 47082, + "progression": true, + "name": "Metal spear" + }, + { + "id": 47083, "progression": true, "name": "Machete" }, { - "id": 47063, + "id": 47084, + "progression": false, + "name": "Titanium sword" + }, + { + "id": 47085, "progression": true, "name": "Net launcher" }, { - "id": 47064, + "id": 47086, "progression": true, "name": "Net canister" }, { - "id": 47065, + "id": 47087, "progression": true, "name": "Vasagatan Frequency" }, { - "id": 47066, + "id": 47088, "progression": true, "name": "Balboa Island Frequency" }, { - "id": 47067, + "id": 47089, "progression": true, "name": "Tangaroa Frequency" }, { - "id": 47068, + "id": 47090, + "progression": true, + "name": "Varuna Point Frequency" + }, + { + "id": 47091, + "progression": true, + "name": "Temperance Frequency" + }, + { + "id": 47092, + "progression": true, + "name": "Utopia Frequency" + }, + { + "id": 47093, "progression": true, "name": "Caravan Island Frequency" } diff --git a/worlds/raft/locations.json b/worlds/raft/locations.json index c6bd391145..5f73c2f8b2 100644 --- a/worlds/raft/locations.json +++ b/worlds/raft/locations.json @@ -1,147 +1,26 @@ [ { "id": 48001, - "name": "Small trophy board", + "name": "Honey", "region": "ResearchTable", "requiresAccessToItems": [ - "Plank", - "Nail" - ] - }, - { - "id": 48002, - "name": "Medium trophy board", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Nail" - ] - }, - { - "id": 48003, - "name": "Simple collection net", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Rope", - "Nail" - ] - }, - { - "id": 48004, - "name": "Advanced grill", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "MetalIngot", - "Rope", - "Nail" - ] - }, - { - "id": 48005, - "name": "Large crop plot", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Rope", - "Nail", - "Hinge" - ] - }, - { - "id": 48006, - "name": "Scarecrow", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Thatch", - "Nail", - "Plastic" - ] - }, - { - "id": 48007, - "name": "Hammock", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Thatch", - "Feather", - "Nail" - ] - }, - { - "id": 48008, - "name": "Smelter", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Brick_Dry", - "Scrap", - "Nail" - ] - }, - { - "id": 48009, - "name": "Medium crop plot", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Scrap" - ] - }, - { - "id": 48010, - "name": "Lantern", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Scrap" - ] - }, - { - "id": 48011, - "name": "Bucket", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Scrap", - "Rope" - ] - }, - { - "id": 48012, - "name": "Advanced purifier", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Plastic", + "HoneyComb", "Glass" ] }, { - "id": 48013, - "name": "Grass plot", + "id": 48002, + "name": "Flippers", "region": "ResearchTable", "requiresAccessToItems": [ - "Dirt", - "Plank", - "Plastic" - ] - }, - { - "id": 48014, - "name": "Paint brush", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Feather", - "Plank", + "Plastic", + "SeaVine", + "VineGoo", "Rope" ] }, { - "id": 48015, + "id": 48003, "name": "Birds nest", "region": "ResearchTable", "requiresAccessToItems": [ @@ -151,37 +30,166 @@ ] }, { - "id": 48016, - "name": "Shovel", + "id": 48004, + "name": "Battery", "region": "ResearchTable", "requiresAccessToItems": [ - "MetalIngot", - "Bolt", - "Plank" - ] - }, - { - "id": 48017, - "name": "Stone arrow", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Stone", + "CopperIngot", + "Scrap", "Plastic" ] }, + { + "id": 48005, + "name": "Circuit board", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plastic", + "CopperIngot", + "VineGoo" + ] + }, + { + "id": 48006, + "name": "Bolt", + "region": "ResearchTable", + "requiresAccessToItems": [ + "MetalIngot" + ] + }, + { + "id": 48007, + "name": "Hinge", + "region": "ResearchTable", + "requiresAccessToItems": [ + "MetalIngot" + ] + }, + { + "id": 48008, + "name": "Shear", + "region": "ResearchTable", + "requiresAccessToItems": [ + "MetalIngot", + "Hinge", + "Scrap" + ] + }, + { + "id": 48009, + "name": "Net launcher", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Scrap", + "Plastic", + "MetalIngot", + "Bolt" + ] + }, + { + "id": 48010, + "name": "Drinking glass", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Glass" + ] + }, + { + "id": 48011, + "name": "Clay bowl", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Clay" + ] + }, + { + "id": 48012, + "name": "Net canister", + "region": "ResearchTable", + "requiresAccessToItems": [ + "ExplosivePowder", + "Stone", + "Rope" + ] + }, + { + "id": 48013, + "name": "Binoculars", + "region": "ResearchTable", + "requiresAccessToItems": [ + "PlasticBottle_Empty", + "Bolt", + "Glass", + "Rope" + ] + }, + { + "id": 48014, + "name": "Metal fishing rod", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Scrap", + "Bolt", + "Rope" + ] + }, + { + "id": 48015, + "name": "Oxygen bottle", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plastic", + "Rope", + "PlasticBottle_Empty", + "VineGoo" + ] + }, + { + "id": 48016, + "name": "Sprinkler", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plastic", + "Scrap", + "Bolt", + "CircuitBoard" + ] + }, + { + "id": 48017, + "name": "Empty bottle", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plastic", + "VineGoo" + ] + }, { "id": 48018, - "name": "Metal arrow", + "name": "Cookingpot", "region": "ResearchTable", "requiresAccessToItems": [ "Plank", + "Plastic", "MetalIngot", - "Feather" + "Bolt", + "VineGoo" ] }, { "id": 48019, + "name": "Juicer", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Plastic", + "Bolt", + "VineGoo", + "CircuitBoard" + ] + }, + { + "id": 48020, "name": "Stationary anchor", "region": "ResearchTable", "requiresAccessToItems": [ @@ -191,74 +199,19 @@ "Hinge" ] }, - { - "id": 48020, - "name": "Paint mill", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Scrap", - "Rope", - "Stone" - ] - }, { "id": 48021, - "name": "Storage", + "name": "Advanced grill", "region": "ResearchTable", "requiresAccessToItems": [ "Plank", - "Scrap", + "MetalIngot", "Rope", - "Hinge" + "Nail" ] }, { "id": 48022, - "name": "Metal axe", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Rope", - "Scrap", - "Bolt" - ] - }, - { - "id": 48023, - "name": "Scrap hook", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Scrap", - "Rope", - "Plank", - "Bolt" - ] - }, - { - "id": 48024, - "name": "Sweep net", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Rope", - "VineGoo", - "Bolt" - ] - }, - { - "id": 48025, - "name": "Basic bow", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Rope", - "VineGoo", - "Bolt" - ] - }, - { - "id": 48026, "name": "Metal Spear", "region": "ResearchTable", "requiresAccessToItems": [ @@ -269,19 +222,289 @@ ] }, { - "id": 48027, - "name": "Cookingpot", + "id": 48023, + "name": "Storage", "region": "ResearchTable", "requiresAccessToItems": [ "Plank", - "Plastic", - "MetalIngot", - "VineGoo", + "Scrap", + "Rope", + "Hinge" + ] + }, + { + "id": 48024, + "name": "Smelter", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Brick_Dry", + "Scrap", + "Nail" + ] + }, + { + "id": 48025, + "name": "Paint mill", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Scrap", + "Rope", + "Stone" + ] + }, + { + "id": 48026, + "name": "Hammock", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Thatch", + "Feather", + "Nail" + ] + }, + { + "id": 48027, + "name": "Metal axe", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Rope", + "Scrap", "Bolt" ] }, { "id": 48028, + "name": "Scrap hook", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Rope", + "Scrap", + "Bolt" + ] + }, + { + "id": 48029, + "name": "Large crop plot", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Rope", + "Nail", + "Bolt" + ] + }, + { + "id": 48030, + "name": "Sweep net", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Rope", + "VineGoo", + "Bolt" + ] + }, + { + "id": 48031, + "name": "Basic bow", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Rope", + "VineGoo", + "Bolt" + ] + }, + { + "id": 48032, + "name": "Scarecrow", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Thatch", + "Nail", + "Plastic" + ] + }, + { + "id": 48033, + "name": "Metal arrow", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "MetalIngot", + "Feather" + ] + }, + { + "id": 48034, + "name": "Shovel", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Bolt", + "MetalIngot" + ] + }, + { + "id": 48035, + "name": "Advanced collection net", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Rope", + "TitaniumIngot" + ] + }, + { + "id": 48036, + "name": "Bucket", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Scrap", + "Rope" + ] + }, + { + "id": 48037, + "name": "Collection net", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Rope", + "Nail" + ] + }, + { + "id": 48038, + "name": "Paint brush", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Feather", + "Plank", + "Rope" + ] + }, + { + "id": 48039, + "name": "Advanced purifier", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Plastic", + "Glass" + ] + }, + { + "id": 48040, + "name": "Grass plot", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Dirt", + "Plank", + "Plastic" + ] + }, + { + "id": 48041, + "name": "Stone arrow", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Stone", + "Plastic" + ] + }, + { + "id": 48042, + "name": "Medium crop plot", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Scrap" + ] + }, + { + "id": 48043, + "name": "Lantern", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Scrap" + ] + }, + { + "id": 48044, + "name": "Small trophy board", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Nail" + ] + }, + { + "id": 48045, + "name": "Medium trophy board", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Nail" + ] + }, + { + "id": 48046, + "name": "Large trophy board", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Plank", + "Nail" + ] + }, + { + "id": 48047, + "name": "Backpack", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Rope", + "Leather", + "Wool" + ] + }, + { + "id": 48048, + "name": "Leather helmet", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Leather", + "Wool" + ] + }, + { + "id": 48049, + "name": "Leather body armor", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Leather", + "Wool" + ] + }, + { + "id": 48050, + "name": "Leather greaves", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Leather", + "Wool" + ] + }, + { + "id": 48051, "name": "Beehive", "region": "ResearchTable", "requiresAccessToItems": [ @@ -293,92 +516,7 @@ ] }, { - "id": 48029, - "name": "Backpack", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Leather", - "Rope", - "Wool" - ] - }, - { - "id": 48030, - "name": "Leather helmet", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Leather", - "Wool" - ] - }, - { - "id": 48031, - "name": "Leather body armor", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Leather", - "Wool" - ] - }, - { - "id": 48032, - "name": "Leather greaves", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Leather", - "Wool" - ] - }, - { - "id": 48033, - "name": "Flippers", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plastic", - "SeaVine", - "VineGoo", - "Rope" - ] - }, - { - "id": 48034, - "name": "Oxygen bottle", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plastic", - "Rope", - "PlasticBottle_Empty", - "VineGoo" - ] - }, - { - "id": 48035, - "name": "Empty bottle", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plastic", - "VineGoo" - ] - }, - { - "id": 48036, - "name": "Clay bowl", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Clay" - ] - }, - { - "id": 48037, - "name": "Healing salve", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Egg", - "Clay" - ] - }, - { - "id": 48038, + "id": 48052, "name": "Good healing salve", "region": "ResearchTable", "requiresAccessToItems": [ @@ -387,392 +525,274 @@ "HoneyComb" ] }, - { - "id": 48039, - "name": "Sprinkler", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plastic", - "Scrap", - "Bolt", - "CircuitBoard" - ] - }, - { - "id": 48040, - "name": "Honey", - "region": "ResearchTable", - "requiresAccessToItems": [ - "HoneyComb", - "Glass" - ] - }, - { - "id": 48041, - "name": "Battery", - "region": "ResearchTable", - "requiresAccessToItems": [ - "CopperIngot", - "Plastic", - "Scrap" - ] - }, - { - "id": 48042, - "name": "Bolt", - "region": "ResearchTable", - "requiresAccessToItems": [ - "MetalIngot" - ] - }, - { - "id": 48043, - "name": "Circuit board", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plastic", - "CopperIngot", - "VineGoo" - ] - }, - { - "id": 48044, - "name": "Hinge", - "region": "ResearchTable", - "requiresAccessToItems": [ - "MetalIngot" - ] - }, - { - "id": 48045, - "name": "Binoculars", - "region": "ResearchTable", - "requiresAccessToItems": [ - "PlasticBottle_Empty", - "Bolt", - "Glass", - "Rope" - ] - }, - { - "id": 48046, - "name": "Metal fishing rod", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Scrap", - "Bolt", - "Rope" - ] - }, - { - "id": 48047, - "name": "Shear", - "region": "ResearchTable", - "requiresAccessToItems": [ - "MetalIngot", - "Hinge", - "Scrap" - ] - }, - { - "id": 48048, - "name": "Net launcher", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Scrap", - "Plastic", - "MetalIngot", - "Bolt" - ] - }, - { - "id": 48049, - "name": "Net canister", - "region": "ResearchTable", - "requiresAccessToItems": [ - "ExplosivePowder", - "Stone", - "Rope" - ] - }, - { - "id": 48050, - "name": "Large trophy board", - "region": "ResearchTable", - "requiresAccessToItems": [ - "Plank", - "Nail" - ] - }, - { - "id": 48051, - "name": "Head light blueprint", - "region": "RadioTower" - }, - { - "id": 48052, - "name": "Radio Tower Briefcase", - "region": "RadioTower" - }, { "id": 48053, - "name": "Radio Tower Frequency to Vasagatan", - "region": "RadioTower" + "name": "Healing salve", + "region": "ResearchTable", + "requiresAccessToItems": [ + "Egg", + "Clay" + ] }, { "id": 48054, - "name": "Radio Tower Notepad 1", + "name": "Tala (Radio Tower)", "region": "RadioTower" }, { "id": 48055, - "name": "Radio Tower Notepad 2", + "name": "Head light blueprint", "region": "RadioTower" }, { "id": 48056, - "name": "Radio Tower Signalboard Trace", + "name": "Recycler blueprint", "region": "RadioTower" }, { "id": 48057, - "name": "Vasagatan Recording 1", - "region": "Vasagatan" + "name": "Radio Tower Briefcase", + "region": "RadioTower" }, { "id": 48058, - "name": "Vasagatan Recording 2", - "region": "Vasagatan" + "name": "Radio Tower Frequency to Vasagatan", + "region": "RadioTower" }, { "id": 48059, - "name": "Vasagatan Recording 3", - "region": "Vasagatan" + "name": "Radio Tower Notepad 1", + "region": "RadioTower" }, { "id": 48060, - "name": "Vasagatan Recording 4", - "region": "Vasagatan" + "name": "Radio Tower Notepad 2", + "region": "RadioTower" }, { "id": 48061, - "name": "Vasagatan Recording 5", - "region": "Vasagatan" + "name": "Radio Tower Signalboard Trace", + "region": "RadioTower" }, { "id": 48062, - "name": "Vasagatan Note from Oskar", + "name": "Hannes Letter 1", "region": "Vasagatan" }, { "id": 48063, - "name": "Vasagatan Note from Celine", + "name": "Hannes Letter 2", "region": "Vasagatan" }, { "id": 48064, - "name": "Vasagatan Note from Hannes", + "name": "Hannes Letter 3", "region": "Vasagatan" }, { "id": 48065, - "name": "Vasagatan Magazine Clipping", + "name": "Olof Log 1", "region": "Vasagatan" }, { "id": 48066, - "name": "Vasagatan Captain's Log 1", + "name": "Olof Log 2", "region": "Vasagatan" }, { "id": 48067, - "name": "Vasagatan Captain's Log 2", + "name": "Olof Log 3", "region": "Vasagatan" }, { "id": 48068, - "name": "Vasagatan Frequency to Balboa", + "name": "Vasagatan Recording 1", "region": "Vasagatan" }, { "id": 48069, - "name": "Vasagatan Wilkstrom's report", + "name": "Vasagatan Recording 2", "region": "Vasagatan" }, { "id": 48070, - "name": "Engine blueprint", + "name": "Vasagatan Recording 3", "region": "Vasagatan" }, { "id": 48071, - "name": "Steering Wheel blueprint", + "name": "Vasagatan Magazine Clipping", "region": "Vasagatan" }, { "id": 48072, + "name": "Vasagatan Frequency to Balboa", + "region": "Vasagatan" + }, + { + "id": 48073, + "name": "Engine blueprint", + "region": "Vasagatan" + }, + { + "id": 48074, + "name": "Steering Wheel blueprint", + "region": "Vasagatan" + }, + { + "id": 48075, "name": "Machete blueprint", "region": "BalboaIsland" }, { - "id": 48073, - "name": "Balboa Island Picture of two engineers", - "region": "BalboaIsland", - "requiresAccessToItems": [ - "BowAndArrow" - ] + "id": 48076, + "name": "Balboa Island Correa twins picture", + "region": "BalboaIsland" }, { - "id": 48074, + "id": 48077, "name": "Balboa Island Schedule of engineers", "region": "BalboaIsland" }, { - "id": 48075, + "id": 48078, "name": "Biofuel refiner blueprint", "region": "BalboaIsland" }, - { - "id": 48076, - "name": "Balboa Island Note from Hentry", - "region": "BalboaIsland", - "requiresAccessToItems": [ - "BowAndArrow", - "Machete" - ] - }, - { - "id": 48077, - "name": "Balboa Island Correas diary 3", - "region": "BalboaIsland", - "requiresAccessToItems": [ - "BowAndArrow", - "Machete" - ] - }, - { - "id": 48078, - "name": "Fuel tank blueprint", - "region": "BalboaIsland", - "requiresAccessToItems": [ - "BowAndArrow", - "Machete" - ] - }, { "id": 48079, - "name": "Balboa Island Correas diary 1", - "region": "BalboaIsland" + "name": "Balboa Island Note from Henry", + "region": "BalboaIsland", + "requiresAccessToItems": [ + "Machete" + ] }, { "id": 48080, - "name": "Balboa Island Correas diary 2", + "name": "Balboa Island Correas diary 3", "region": "BalboaIsland", "requiresAccessToItems": [ - "BowAndArrow" + "Machete" ] }, { "id": 48081, - "name": "Fuel pipe blueprint", + "name": "Fuel tank blueprint", "region": "BalboaIsland", "requiresAccessToItems": [ - "BowAndArrow" + "Machete" ] }, { "id": 48082, - "name": "Balboa Island Bear map", - "region": "BalboaIsland", - "requiresAccessToItems": [ - "BowAndArrow" - ] + "name": "Balboa Island Correas diary 1", + "region": "BalboaIsland" }, { "id": 48083, - "name": "Balboa Island Doll murderer 4", + "name": "Balboa Island Correas diary 2", "region": "BalboaIsland" }, { "id": 48084, - "name": "Balboa Island Doll murderer 1", + "name": "Fuel pipe blueprint", "region": "BalboaIsland" }, { "id": 48085, - "name": "Balboa Island Doll murderer 3", + "name": "Balboa Island Bear map", "region": "BalboaIsland" }, { "id": 48086, - "name": "Balboa Island Doll murderer 5", - "region": "BalboaIsland" + "name": "Johnny (Balboa Island)", + "region": "BalboaIsland", + "requiresAccessToItems": [ + "Machete" + ] }, { "id": 48087, - "name": "Balboa Island Doll murderer 2", + "name": "Balboa Island Doll murderer 4", "region": "BalboaIsland" }, { "id": 48088, - "name": "Caravan Island Journal 1 - First Entry", - "region": "CaravanIsland" + "name": "Balboa Island Doll murderer 1", + "region": "BalboaIsland" }, { "id": 48089, - "name": "Caravan Island Journal 2 - Pipe Experiment", - "region": "CaravanIsland" + "name": "Balboa Island Doll murderer 3", + "region": "BalboaIsland" }, { "id": 48090, - "name": "Caravan Island Journal 3 - Rocket Experiment", - "region": "CaravanIsland" + "name": "Balboa Island Doll murderer 5", + "region": "BalboaIsland" }, { "id": 48091, - "name": "Caravan Island Journal 4 - Mother's Letter", - "region": "CaravanIsland" + "name": "Balboa Island Doll murderer 2", + "region": "BalboaIsland" }, { "id": 48092, - "name": "Caravan Island Journal 5 - Dive Experiment", + "name": "Caravan Island Detto journal 1", "region": "CaravanIsland" }, { "id": 48093, - "name": "Caravan Island Journal 6 - Kelp Experiment", + "name": "Caravan Island Detto journal 2", "region": "CaravanIsland" }, { "id": 48094, - "name": "Caravan Island Journal 7 - Raft Society News Letter", + "name": "Caravan Island Detto journal 3", "region": "CaravanIsland" }, { "id": 48095, - "name": "Caravan Island Journal 8 - Leaving Caravan Island", + "name": "Caravan Island Detto journal 4", "region": "CaravanIsland" }, { "id": 48096, - "name": "Caravan Island Journal 9 - Doctor's Note", - "region": "CaravanIsland", - "requiresAccessToItems": [ - "Zipline tool" - ] + "name": "Caravan Island Detto journal 5", + "region": "CaravanIsland" }, { "id": 48097, - "name": "Firework blueprint", + "name": "Caravan Island Detto journal 6", "region": "CaravanIsland" }, { "id": 48098, - "name": "Battery Charger quest", + "name": "Caravan Island Olaf speech", "region": "CaravanIsland" }, { "id": 48099, + "name": "Caravan Island Raft town article", + "region": "CaravanIsland" + }, + { + "id": 48100, + "name": "Caravan Island Doctor's note", + "region": "CaravanIsland" + }, + { + "id": 48101, + "name": "Firework blueprint", + "region": "CaravanIsland" + }, + { + "id": 48102, + "name": "Battery Charger quest", + "region": "CaravanIsland" + }, + { + "id": 48103, "name": "Zipline quest", "region": "CaravanIsland", "requiresAccessToItems": [ @@ -780,7 +800,7 @@ ] }, { - "id": 48100, + "id": 48104, "name": "Caravan Island Frequency to Tangaroa", "region": "CaravanIsland", "requiresAccessToItems": [ @@ -788,87 +808,257 @@ ] }, { - "id": 48101, + "id": 48105, "name": "Engine controls blueprint", "region": "CaravanIsland" }, { - "id": 48102, + "id": 48106, "name": "Metal detector blueprint", "region": "CaravanIsland" }, { - "id": 48103, + "id": 48107, "name": "Tangaroa Ruben 1", "region": "Tangaroa" }, { - "id": 48104, + "id": 48108, "name": "Tangaroa Ruben 2", "region": "Tangaroa" }, { - "id": 48105, + "id": 48109, "name": "Tangaroa Ruben 3", "region": "Tangaroa" }, { - "id": 48106, + "id": 48110, "name": "Tangaroa Ruben 4", "region": "Tangaroa" }, { - "id": 48107, + "id": 48111, "name": "Tangaroa Ruben 5", "region": "Tangaroa" }, { - "id": 48108, + "id": 48112, "name": "Tangaroa Gardener Diary", "region": "Tangaroa" }, { - "id": 48109, + "id": 48113, "name": "Tangaroa Riot Log", "region": "Tangaroa" }, { - "id": 48110, + "id": 48114, "name": "Tangaroa Tulley Note", "region": "Tangaroa" }, { - "id": 48111, + "id": 48115, "name": "Tangaroa Cipher", "region": "Tangaroa" }, - { - "id": 48112, - "name": "Tangaroa Next Frequency", - "region": "Tangaroa" - }, - { - "id": 48113, - "name": "Water pipe blueprint", - "region": "Tangaroa" - }, - { - "id": 48114, - "name": "Electric purifier blueprint", - "region": "Tangaroa" - }, - { - "id": 48115, - "name": "Water tank blueprint", - "region": "Tangaroa" - }, { "id": 48116, - "name": "Large Storage blueprint", + "name": "Tangaroa Frequency to Varuna Point", "region": "Tangaroa" }, { "id": 48117, + "name": "Water pipe blueprint", + "region": "Tangaroa" + }, + { + "id": 48118, + "name": "Electric purifier blueprint", + "region": "Tangaroa" + }, + { + "id": 48119, + "name": "Water tank blueprint", + "region": "Tangaroa" + }, + { + "id": 48120, + "name": "Large Storage blueprint", + "region": "Tangaroa" + }, + { + "id": 48121, + "name": "Elaine (Tangaroa)", + "region": "Tangaroa" + }, + { + "id": 48122, + "name": "Varuna Point Grabber diary 1", + "region": "Varuna Point" + }, + { + "id": 48123, + "name": "Varuna Point Grabber diary 2", + "region": "Varuna Point" + }, + { + "id": 48124, + "name": "Varuna Point Grabber diary 3", + "region": "Varuna Point" + }, + { + "id": 48125, + "name": "Varuna Point Grabber diary 4", + "region": "Varuna Point" + }, + { + "id": 48126, + "name": "Varuna Point Grabber diary 5", + "region": "Varuna Point" + }, + { + "id": 48127, + "name": "Varuna Point Grabber diary 6", + "region": "Varuna Point" + }, + { + "id": 48128, + "name": "Varuna Point Frequency to Temperance", + "region": "Varuna Point" + }, + { + "id": 48129, + "name": "Wind Turbine blueprint", + "region": "Varuna Point" + }, + { + "id": 48130, + "name": "Advanced Battery blueprint", + "region": "Varuna Point" + }, + { + "id": 48131, + "name": "Advanced Headlight blueprint", + "region": "Varuna Point" + }, + { + "id": 48132, + "name": "Electric Grill blueprint", + "region": "Varuna Point" + }, + { + "id": 48133, + "name": "Temperance Bruno diary 1", + "region": "Temperance" + }, + { + "id": 48134, + "name": "Temperance Bruno diary 2", + "region": "Temperance" + }, + { + "id": 48135, + "name": "Temperance Bruno diary 3", + "region": "Temperance" + }, + { + "id": 48136, + "name": "Temperance Bruno diary 4", + "region": "Temperance" + }, + { + "id": 48137, + "name": "Temperance Bruno diary 5", + "region": "Temperance" + }, + { + "id": 48138, + "name": "Temperance Sparrow note 1", + "region": "Temperance" + }, + { + "id": 48139, + "name": "Temperance Sparrow note 2", + "region": "Temperance" + }, + { + "id": 48140, + "name": "Temperance Frequency to Utopia", + "region": "Temperance" + }, + { + "id": 48141, + "name": "Temperance Star sign 1", + "region": "Temperance" + }, + { + "id": 48142, + "name": "Temperance Star sign 2", + "region": "Temperance" + }, + { + "id": 48143, + "name": "Temperance Star sign 3", + "region": "Temperance" + }, + { + "id": 48144, + "name": "Temperance Star sign 4", + "region": "Temperance" + }, + { + "id": 48145, + "name": "Electric Smelter blueprint", + "region": "Temperance" + }, + { + "id": 48146, + "name": "Advanced Biofuel Extractor blueprint", + "region": "Temperance" + }, + { + "id": 48147, + "name": "Advanced Stationary Anchor blueprint", + "region": "Temperance" + }, + { + "id": 48148, + "name": "Shogo (Temperance)", + "region": "Temperance" + }, + { + "id": 48149, + "name": "Electric Zipline blueprint", + "region": "Utopia" + }, + { + "id": 48150, + "name": "Advanced Backpack blueprint", + "region": "Utopia" + }, + { + "id": 48151, + "name": "Titanium Tools blueprint", + "region": "Utopia" + }, + { + "id": 48152, + "name": "Utopia Captives note", + "region": "Utopia" + }, + { + "id": 48153, + "name": "Utopia Detto map", + "region": "Utopia" + }, + { + "id": 48154, + "name": "Utopia Complete", + "region": "Utopia" + }, + { + "id": 48155, "name": "Relay Station quest", "region": "BalboaIsland" } diff --git a/worlds/raft/progressives.json b/worlds/raft/progressives.json index 0f6b6e7799..11bd614ab0 100644 --- a/worlds/raft/progressives.json +++ b/worlds/raft/progressives.json @@ -1,26 +1,62 @@ { "Healing salve": "progressive-salve", "Good healing salve": "progressive-salve", + "Backpack": "progressive-backpack", + "Big backpack": "progressive-backpack", + "Clay bowl": "progressive-containers", + "Drinking glass": "progressive-containers", + "Head light": "progressive-headlight", + "Advanced head light": "progressive-headlight", + "Biofuel refiner": "progressive-biofuel", + "Advanced biofuel refiner": "progressive-biofuel", + "Empty bottle": "progressive-bottle", + "Empty canteen": "progressive-bottle", + "Advanced grill": "progressive-grill", + "Electric grill": "progressive-grill", "Advanced purifier": "progressive-purifier", "Electric purifier": "progressive-purifier", "Medium crop plot": "progressive-crop-plot", "Large crop plot": "progressive-crop-plot", + "Advanced small crop plot": "progressive-crop-plot", + "Advanced medium crop plot": "progressive-crop-plot", + "Advanced large crop plot": "progressive-crop-plot", "Battery": "progressive-battery", "Battery charger": "progressive-battery", + "Advanced Battery": "progressive-battery", + "Wind turbine": "progressive-battery", + "Stationary anchor": "progressive-anchor", + "Advanced stationary anchor": "progressive-anchor", "Engine": "progressive-engine", "Steering Wheel": "progressive-engine", "Engine controls": "progressive-engine", + "Scarecrow": "progressive-scarecrow", + "Advanced scarecrow": "progressive-scarecrow", + "Simple collection net": "progressive-net", + "Advanced collection net": "progressive-net", "Storage": "progressive-storage", "Large Storage": "progressive-storage", "Zipline tool": "progressive-zipline", "Zipline": "progressive-zipline", + "Electric zipline tool": "progressive-zipline", "Smelter": "progressive-metals", "Metal detector": "progressive-metals", + "Electric Smelter": "progressive-metals", "Basic bow": "progressive-bow", "Stone arrow": "progressive-bow", "Metal arrow": "progressive-bow", + "Titanium arrow": "progressive-bow", + "Metal axe": "progressive-axe", + "Titanium axe": "progressive-axe", + "Scrap hook": "progressive-hook", + "Titanium hook": "progressive-hook", + "Metal spear": "progressive-spear", + "Machete": "progressive-spear", + "Titanium sword": "progressive-spear", "Vasagatan Frequency": "progressive-frequency", "Balboa Island Frequency": "progressive-frequency", "Caravan Island Frequency": "progressive-frequency", - "Tangaroa Frequency": "progressive-frequency" + "Tangaroa Frequency": "progressive-frequency", + "Varuna Point Frequency": "progressive-frequency", + "Temperance Frequency": "progressive-frequency", + "Utopia Frequency": "progressive-frequency" } \ No newline at end of file diff --git a/worlds/raft/regions.json b/worlds/raft/regions.json index b69d9347ff..b2737a1298 100644 --- a/worlds/raft/regions.json +++ b/worlds/raft/regions.json @@ -5,5 +5,8 @@ "Vasagatan": ["BalboaIsland"], "BalboaIsland": ["CaravanIsland"], "CaravanIsland": ["Tangaroa"], - "Tangaroa": [] + "Tangaroa": ["Varuna Point"], + "Varuna Point": ["Temperance"], + "Temperance": ["Utopia"], + "Utopia": [] } \ No newline at end of file diff --git a/worlds/raft/resourcepacks.json b/worlds/raft/resourcepacks.json index 94e1d5e160..1b8cc9174b 100644 --- a/worlds/raft/resourcepacks.json +++ b/worlds/raft/resourcepacks.json @@ -8,5 +8,9 @@ "Thatch", "Sand", "Raw_Beet", - "Raw_Potato" + "Raw_Potato", + "MetalOre", + "TitaniumOre", + "CopperOre", + "ExplosiveGoo" ] \ No newline at end of file From d76b41afe71b4411523083d02a0809584b10eb2f Mon Sep 17 00:00:00 2001 From: Doug Hoskisson Date: Wed, 6 Jul 2022 14:18:28 -0500 Subject: [PATCH 21/32] RL: Rename Rogue Legacy Folder (#452) * rename rogue legacy "`rogue-legacy` is not a valid python module name" * revert rename of the documentation file --- worlds/{rogue-legacy => rogue_legacy}/Items.py | 0 worlds/{rogue-legacy => rogue_legacy}/Locations.py | 0 worlds/{rogue-legacy => rogue_legacy}/Names/ItemName.py | 0 worlds/{rogue-legacy => rogue_legacy}/Names/LocationName.py | 0 worlds/{rogue-legacy => rogue_legacy}/Options.py | 0 worlds/{rogue-legacy => rogue_legacy}/Regions.py | 0 worlds/{rogue-legacy => rogue_legacy}/Rules.py | 0 worlds/{rogue-legacy => rogue_legacy}/Traits.py | 0 worlds/{rogue-legacy => rogue_legacy}/__init__.py | 0 worlds/{rogue-legacy => rogue_legacy}/docs/en_Rogue Legacy.md | 0 worlds/{rogue-legacy => rogue_legacy}/docs/rogue-legacy_en.md | 0 11 files changed, 0 insertions(+), 0 deletions(-) rename worlds/{rogue-legacy => rogue_legacy}/Items.py (100%) rename worlds/{rogue-legacy => rogue_legacy}/Locations.py (100%) rename worlds/{rogue-legacy => rogue_legacy}/Names/ItemName.py (100%) rename worlds/{rogue-legacy => rogue_legacy}/Names/LocationName.py (100%) rename worlds/{rogue-legacy => rogue_legacy}/Options.py (100%) rename worlds/{rogue-legacy => rogue_legacy}/Regions.py (100%) rename worlds/{rogue-legacy => rogue_legacy}/Rules.py (100%) rename worlds/{rogue-legacy => rogue_legacy}/Traits.py (100%) rename worlds/{rogue-legacy => rogue_legacy}/__init__.py (100%) rename worlds/{rogue-legacy => rogue_legacy}/docs/en_Rogue Legacy.md (100%) rename worlds/{rogue-legacy => rogue_legacy}/docs/rogue-legacy_en.md (100%) diff --git a/worlds/rogue-legacy/Items.py b/worlds/rogue_legacy/Items.py similarity index 100% rename from worlds/rogue-legacy/Items.py rename to worlds/rogue_legacy/Items.py diff --git a/worlds/rogue-legacy/Locations.py b/worlds/rogue_legacy/Locations.py similarity index 100% rename from worlds/rogue-legacy/Locations.py rename to worlds/rogue_legacy/Locations.py diff --git a/worlds/rogue-legacy/Names/ItemName.py b/worlds/rogue_legacy/Names/ItemName.py similarity index 100% rename from worlds/rogue-legacy/Names/ItemName.py rename to worlds/rogue_legacy/Names/ItemName.py diff --git a/worlds/rogue-legacy/Names/LocationName.py b/worlds/rogue_legacy/Names/LocationName.py similarity index 100% rename from worlds/rogue-legacy/Names/LocationName.py rename to worlds/rogue_legacy/Names/LocationName.py diff --git a/worlds/rogue-legacy/Options.py b/worlds/rogue_legacy/Options.py similarity index 100% rename from worlds/rogue-legacy/Options.py rename to worlds/rogue_legacy/Options.py diff --git a/worlds/rogue-legacy/Regions.py b/worlds/rogue_legacy/Regions.py similarity index 100% rename from worlds/rogue-legacy/Regions.py rename to worlds/rogue_legacy/Regions.py diff --git a/worlds/rogue-legacy/Rules.py b/worlds/rogue_legacy/Rules.py similarity index 100% rename from worlds/rogue-legacy/Rules.py rename to worlds/rogue_legacy/Rules.py diff --git a/worlds/rogue-legacy/Traits.py b/worlds/rogue_legacy/Traits.py similarity index 100% rename from worlds/rogue-legacy/Traits.py rename to worlds/rogue_legacy/Traits.py diff --git a/worlds/rogue-legacy/__init__.py b/worlds/rogue_legacy/__init__.py similarity index 100% rename from worlds/rogue-legacy/__init__.py rename to worlds/rogue_legacy/__init__.py diff --git a/worlds/rogue-legacy/docs/en_Rogue Legacy.md b/worlds/rogue_legacy/docs/en_Rogue Legacy.md similarity index 100% rename from worlds/rogue-legacy/docs/en_Rogue Legacy.md rename to worlds/rogue_legacy/docs/en_Rogue Legacy.md diff --git a/worlds/rogue-legacy/docs/rogue-legacy_en.md b/worlds/rogue_legacy/docs/rogue-legacy_en.md similarity index 100% rename from worlds/rogue-legacy/docs/rogue-legacy_en.md rename to worlds/rogue_legacy/docs/rogue-legacy_en.md From a49bcd618d00ad2db0fdf6247f08653c71c20bb1 Mon Sep 17 00:00:00 2001 From: Hussein Farran Date: Wed, 6 Jul 2022 16:12:53 -0400 Subject: [PATCH 22/32] Dev Docs: Add SA2B and SC2 to network diagram (#719) * Add SA2B and SC2 to network diagram * Remove jpg version of image. * Fix png of image... Github web editor borked it * Update network diagram.svg * We're back to light mode, friends. Use SVG and JPG that are valid and let you zoom in properly. --- docs/network diagram.jpg | Bin 383052 -> 252329 bytes docs/network diagram.md | 11 +++++++++++ docs/network diagram.svg | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/network diagram.jpg b/docs/network diagram.jpg index 96f7d084ebc635e531fda057d2d4c7b8805e719d..e738778d262eb6a61f9d6cac18322db013649121 100644 GIT binary patch literal 252329 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

    nULTQllfwt9(g+NAt%>E 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�BdG~iOoC9?W2z6&RbFd+XnD@wu0O4G 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

    )Ss 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 CC + subgraph "Starcraft 2" + SC2[Starcraft 2 Game Client] + SC2C[Starcraft2Client.py] + SC2AI[apsc2 Python Package] + + SC2C <--> SC2AI <-- WebSockets --> SC2 + end + CC <-- Integrated --> SC2C + %% ChecksFinder subgraph ChecksFinder CFC[ChecksFinderClient] @@ -72,12 +81,14 @@ flowchart LR V6[VVVVVV] MT[Meritous] TW[The Witness] + SA2B[Sonic Adventure 2: Battle] APCLIENTPP <--> SOE APCLIENTPP <--> MT APCLIENTPP <-- The Witness Randomizer --> TW APCPP <--> SM64 APCPP <--> V6 + APCPP <--> SA2B end SOE <--> SNI <-- Various, depending on SNES device --> SOESNES AS <-- WebSockets --> APCLIENTPP diff --git a/docs/network diagram.svg b/docs/network diagram.svg index 927883a6d8..f8bc7ef46d 100644 --- a/docs/network diagram.svg +++ b/docs/network diagram.svg @@ -1 +1 @@ -
    Factorio
    Secret of Evermore
    WebHost (archipelago.gg)
    .NET
    Java
    Native
    SMZ3
    Super Metroid
    Ocarina of Time
    Final Fantasy 1
    A Link to the Past
    ChecksFinder
    FNA/XNA
    Unity
    Minecraft
    Secret of Evermore
    WebSockets
    Integrated
    Various, depending on SNES device
    LuaSockets
    Integrated
    LuaSockets
    Integrated
    Integrated
    WebSockets
    Various, depending on SNES device
    Various, depending on SNES device
    The Witness Randomizer
    Various, depending on SNES device
    WebSockets
    WebSockets
    Mod the Spire
    TCP
    Forge Mod Loader
    WebSockets
    TsRandomizer
    RogueLegacyRandomizer
    BepInEx
    QModLoader (BepInEx)
    HK Modding API
    WebSockets
    SQL
    Subprocesses
    SQL
    Deposit Generated Worlds
    Provide Generation Instructions
    Subprocesses
    Subprocesses
    RCON
    UDP
    Integrated
    Factorio Server
    FactorioClient
    Factorio Games
    Factorio Mod Generated by AP
    Factorio Modding API
    SNES
    Configurable (waitress, gunicorn, flask)
    AutoHoster
    PonyORM DB
    WebHost
    Flask WebContent
    AutoGenerator
    Mod with Archipelago.MultiClient.Net
    Risk of Rain 2
    Subnautica
    Hollow Knight
    Raft
    Timespinner
    Rogue Legacy
    Mod with Archipelago.MultiClient.Java
    Slay the Spire
    Minecraft Forge Server
    Any Java Minecraft Clients
    Game using apclientpp Client Library
    Game using Apcpp Client Library
    Super Mario 64 Ex
    VVVVVV
    Meritous
    The Witness
    ap-soeclient
    SNES
    SNES
    OoTClient
    Lua Connector
    BizHawk with Ocarina of Time Loaded
    FF1Client
    Lua Connector
    BizHawk with Final Fantasy Loaded
    SNES
    ChecksFinderClient
    ChecksFinder
    Archipelago Server
    CommonClient.py
    Super Nintendo Interface (SNI)
    SNIClient
    ```
    \ No newline at end of file +
    Factorio
    Secret of Evermore
    WebHost (archipelago.gg)
    .NET
    Java
    Native
    SMZ3
    Super Metroid
    Ocarina of Time
    Final Fantasy 1
    A Link to the Past
    ChecksFinder
    Starcraft 2
    FNA/XNA
    Unity
    Minecraft
    Secret of Evermore
    WebSockets
    WebSockets
    Integrated
    Integrated
    Various, depending on SNES device
    LuaSockets
    Integrated
    LuaSockets
    Integrated
    Integrated
    WebSockets
    Various, depending on SNES device
    Various, depending on SNES device
    The Witness Randomizer
    Various, depending on SNES device
    WebSockets
    WebSockets
    Mod the Spire
    TCP
    Forge Mod Loader
    WebSockets
    TsRandomizer
    RogueLegacyRandomizer
    BepInEx
    QModLoader (BepInEx)
    HK Modding API
    WebSockets
    SQL
    Subprocesses
    SQL
    Deposit Generated Worlds
    Provide Generation Instructions
    Subprocesses
    Subprocesses
    RCON
    UDP
    Integrated
    Factorio Server
    FactorioClient
    Factorio Games
    Factorio Mod Generated by AP
    Factorio Modding API
    SNES
    Configurable (waitress, gunicorn, flask)
    AutoHoster
    PonyORM DB
    WebHost
    Flask WebContent
    AutoGenerator
    Mod with Archipelago.MultiClient.Net
    Risk of Rain 2
    Subnautica
    Hollow Knight
    Raft
    Timespinner
    Rogue Legacy
    Mod with Archipelago.MultiClient.Java
    Slay the Spire
    Minecraft Forge Server
    Any Java Minecraft Clients
    Game using apclientpp Client Library
    Game using Apcpp Client Library
    Super Mario 64 Ex
    VVVVVV
    Meritous
    The Witness
    Sonic Adventure 2: Battle
    ap-soeclient
    SNES
    SNES
    OoTClient
    Lua Connector
    BizHawk with Ocarina of Time Loaded
    FF1Client
    Lua Connector
    BizHawk with Final Fantasy Loaded
    SNES
    ChecksFinderClient
    ChecksFinder
    Starcraft 2 Game Client
    Starcraft2Client.py
    apsc2 Python Package
    Archipelago Server
    CommonClient.py
    Super Nintendo Interface (SNI)
    SNIClient
    \ No newline at end of file From 5c2163a1a7ab5dab2f0bd461548f1a2a20662db4 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Wed, 6 Jul 2022 17:24:16 +0200 Subject: [PATCH 23/32] WebHost: fix comment typo --- WebHostLib/generate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WebHostLib/generate.py b/WebHostLib/generate.py index 9c35a591ed..c33d2648a7 100644 --- a/WebHostLib/generate.py +++ b/WebHostLib/generate.py @@ -114,7 +114,7 @@ def gen_game(gen_options, meta: TypeOptional[Dict[str, object]] = None, owner=No erargs = parse_arguments(['--multi', str(playercount)]) erargs.seed = seed - erargs.name = {x: "" for x in range(1, playercount + 1)} # only so it can be overwrittin in mystery + erargs.name = {x: "" for x in range(1, playercount + 1)} # only so it can be overwritten in mystery erargs.spoiler = 0 if race else 2 erargs.race = race erargs.outputname = seedname From 6a60c46a99101d7654c1ef41c0e9caec964c2c5a Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Wed, 6 Jul 2022 23:04:22 +0200 Subject: [PATCH 24/32] Subnautica: fix generation crash on valuable item pool (#739) --- worlds/subnautica/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/worlds/subnautica/__init__.py b/worlds/subnautica/__init__.py index 6875f21f30..ae92331809 100644 --- a/worlds/subnautica/__init__.py +++ b/worlds/subnautica/__init__.py @@ -1,5 +1,4 @@ import logging -import typing logger = logging.getLogger("Subnautica") @@ -65,7 +64,7 @@ class SubnauticaWorld(World): for item_name in self.world.random.choices(sorted(advancement_item_names - {"Neptune Launch Platform"}), k=extras): item = self.create_item(item_name) - item.advancement = False # as it's an extra, just fast-fill it somewhere + item.classification = ItemClassification.filler # as it's an extra, just fast-fill it somewhere pool.append(item) self.world.itempool += pool From 8597b04c41a1d03083f4b584401fbabe67a0216b Mon Sep 17 00:00:00 2001 From: alwaysintreble Date: Wed, 6 Jul 2022 16:06:32 -0500 Subject: [PATCH 25/32] WebHost: Advanced guide cleanup (#725) * advanced yaml cleanup * Update advanced_settings_en.md * i hate this game now * formatting reverting --- worlds/generic/docs/advanced_settings_en.md | 36 ++++++++++----------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/worlds/generic/docs/advanced_settings_en.md b/worlds/generic/docs/advanced_settings_en.md index 11d01c3fc4..a0808fb444 100644 --- a/worlds/generic/docs/advanced_settings_en.md +++ b/worlds/generic/docs/advanced_settings_en.md @@ -52,7 +52,7 @@ For `nested_option_two`, `option_two_setting_one` will be rolled 14 times and `o times against each other. This means `option_two_setting_two` will be more likely to occur, but it isn't guaranteed, adding more randomness and "mystery" to your settings. Every configurable setting supports weights. -### Root Options +## Root Options Currently, there are only a few options that are root options. Everything else should be nested within one of these root options or in some cases nested within other nested options. The only options that should exist in root @@ -95,14 +95,14 @@ games you want settings for. more triggers in the triggers guide. Triggers guide: [Archipelago Triggers Guide](/tutorial/Archipelago/triggers/en) -### Game Options +## Game Options One of your root settings will be the name of the game you would like to populate with settings. Since it is possible to give a weight to any option it is possible to have one file that can generate a seed for you where you don't know which game you'll play. For these cases you'll want to fill the game options for every game that can be rolled by these settings. If a game can be rolled it **must** have a settings section even if it is empty. -#### Universal Game Options +### Universal Game Options Some options in Archipelago can be used by every game but must still be placed within the relevant game's section. @@ -174,6 +174,8 @@ A Link to the Past: - Moon Pearl start_location_hints: - Spike Cave + priority_locations: + - Link's House exclude_locations: - Cave 45 item_links: @@ -207,9 +209,10 @@ Timespinner: * `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` 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. +* `game` has an equal chance of being either `A Link to the Past` or `Timespinner` with a 10/20 chance for each. This is + because each game has a weight of 10 and the total 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 +* `accessibility` is set to `none` which will set this seed to beatable only, so 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 earlier increasing the chance of having things to do. @@ -225,8 +228,8 @@ Timespinner: 1 and 7 will be chosen at random, weighted towards a high number. * `start_inventory` defines an area for us to determine what items we would like to start the seed with. For this example we have: - * `Pegasus Boots: 1` which gives us 1 copy of the Pegasus Boots - * `Bombs (3)` gives us 2 packs of 3 bombs or 6 total bombs + * `Pegasus Boots: 1` which gives us 1 copy of the Pegasus Boots + * `Bombs (3): 2` gives us 2 packs of 3 bombs or 6 total bombs * `start_hints` gives us a starting hint for the hammer available at the beginning of the multiworld which we can use with no cost. * `local_items` forces the `Bombos`, `Ether`, and `Quake` medallions to all be placed within our own world, meaning we @@ -234,22 +237,19 @@ Timespinner: * `non_local_items` forces the `Moon Pearl` to be placed in someone else's world, meaning we won't be able to find it. * `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. +* `priority_locations` forces a progression item to be placed on the `Link's House` location. * `exclude_locations` forces a not important item to be placed on the `Cave 45` location. * `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. + 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. + 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 to replace the player items. * `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` - result. + result it will also ensure that `bigkey_shuffle`, `map_shuffle`, and `compass_shuffle` are also forced to the + `any_world` result. More information on triggers can be found in the [triggers guide](/tutorial/Archipelago/triggers/en). -### Generating Multiple Worlds +## Generating Multiple Worlds YAML files can be configured to generate multiple worlds using only one file. This is mostly useful if you are playing an asynchronous multiworld (shortened to async) and are wanting to submit multiple worlds as they can be condensed into one file, removing the need to manage separate files if one chooses to do so. @@ -257,7 +257,7 @@ As a precautionary measure, before submitting a multi-game yaml like this one in To configure your file to generate multiple worlds, use 3 dashes `---` on an empty line to separate the ending of one world and the beginning of another world. -#### Example +### Example ```yaml description: Example of generating multiple worlds. World 1 of 3 From 60b80083e0fedcc3311e345518a4690c152ea8f6 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Mon, 4 Jul 2022 19:09:03 +0200 Subject: [PATCH 26/32] LttP: fix shop inventory corruption in upgrade fairy --- worlds/alttp/Shops.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/worlds/alttp/Shops.py b/worlds/alttp/Shops.py index 77eec9dd0f..5abbdd07bc 100644 --- a/worlds/alttp/Shops.py +++ b/worlds/alttp/Shops.py @@ -460,10 +460,11 @@ def shuffle_shops(world, items, player: int): f"Not all upgrades put into Player{player}' item pool. Putting remaining items in Capacity Upgrade shop instead.") bombupgrades = sum(1 for item in new_items if 'Bomb Upgrade' in item) arrowupgrades = sum(1 for item in new_items if 'Arrow Upgrade' in item) + slots = iter(range(2)) if bombupgrades: - capacityshop.add_inventory(1, 'Bomb Upgrade (+5)', 100, bombupgrades) + capacityshop.add_inventory(next(slots), 'Bomb Upgrade (+5)', 100, bombupgrades) if arrowupgrades: - capacityshop.add_inventory(1, 'Arrow Upgrade (+5)', 100, arrowupgrades) + capacityshop.add_inventory(next(slots), 'Arrow Upgrade (+5)', 100, arrowupgrades) else: for item in new_items: world.push_precollected(ItemFactory(item, player)) From 9ac780102e282e1f92e774f00fad03247ec13fce Mon Sep 17 00:00:00 2001 From: black-sliver <59490463+black-sliver@users.noreply.github.com> Date: Thu, 7 Jul 2022 00:01:28 +0200 Subject: [PATCH 27/32] Subnautica: display item_pool as Item Pool on the settings page --- worlds/subnautica/Options.py | 1 + 1 file changed, 1 insertion(+) diff --git a/worlds/subnautica/Options.py b/worlds/subnautica/Options.py index 0695a08950..4189aecb19 100644 --- a/worlds/subnautica/Options.py +++ b/worlds/subnautica/Options.py @@ -4,6 +4,7 @@ from Options import Choice class ItemPool(Choice): """Valuable item pool moves all not progression relevant items to starting inventory and creates random duplicates of important items in their place.""" + display_name = "Item Pool" option_standard = 0 option_valuable = 1 From 2f53972c853543190eb9d088621f43db36217d5f Mon Sep 17 00:00:00 2001 From: CaitSith2 Date: Fri, 8 Jul 2022 06:35:33 -0700 Subject: [PATCH 28/32] Factorio: fix accidental removal of fluids from make_balanced_recipe (#754) --- worlds/factorio/Technologies.py | 1 + worlds/factorio/__init__.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/worlds/factorio/Technologies.py b/worlds/factorio/Technologies.py index 0d32f51cbb..f89dc53ee3 100644 --- a/worlds/factorio/Technologies.py +++ b/worlds/factorio/Technologies.py @@ -501,6 +501,7 @@ def get_science_pack_pools() -> Dict[str, Set[str]]: item_stack_sizes: Dict[str, int] = items_future.result() non_stacking_items: Set[str] = {item for item, stack in item_stack_sizes.items() if stack == 1} stacking_items: Set[str] = set(item_stack_sizes) - non_stacking_items +valid_ingredients: Set[str] = stacking_items | fluids # cleanup async helpers pool.shutdown() diff --git a/worlds/factorio/__init__.py b/worlds/factorio/__init__.py index 53c9897c17..14304c4b8b 100644 --- a/worlds/factorio/__init__.py +++ b/worlds/factorio/__init__.py @@ -8,7 +8,7 @@ from .Technologies import base_tech_table, recipe_sources, base_technology_table all_ingredient_names, all_product_sources, required_technologies, get_rocket_requirements, \ progressive_technology_table, common_tech_table, tech_to_progressive_lookup, progressive_tech_table, \ get_science_pack_pools, Recipe, recipes, technology_table, tech_table, factorio_base_id, useless_technologies, \ - fluids, stacking_items + fluids, stacking_items, valid_ingredients from .Shapes import get_shapes from .Mod import generate_mod from .Options import factorio_options, MaxSciencePack, Silo, Satellite, TechTreeInformation, Goal @@ -231,7 +231,7 @@ class Factorio(World): """Generate a recipe from pool with time and cost similar to original * factor""" new_ingredients = {} # have to first sort for determinism, while filtering out non-stacking items - pool: typing.List[str] = sorted(pool & stacking_items) + pool: typing.List[str] = sorted(pool & valid_ingredients) # then sort with random data to shuffle self.world.random.shuffle(pool) target_raw = int(sum((count for ingredient, count in original.base_cost.items())) * factor) From 17db0805a7fa6757d0862a5a36a7c4862fc9d5ca Mon Sep 17 00:00:00 2001 From: CaitSith2 Date: Sat, 9 Jul 2022 03:35:38 -0700 Subject: [PATCH 29/32] Allow potentially all rocket-part ingredients to be fluids. (#753) --- worlds/factorio/__init__.py | 4 +- .../data/mod_template/data-final-fixes.lua | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/worlds/factorio/__init__.py b/worlds/factorio/__init__.py index 14304c4b8b..33f1809cf7 100644 --- a/worlds/factorio/__init__.py +++ b/worlds/factorio/__init__.py @@ -329,10 +329,8 @@ class Factorio(World): def set_custom_recipes(self): original_rocket_part = recipes["rocket-part"] science_pack_pools = get_science_pack_pools() - valid_pool = sorted(science_pack_pools[self.world.max_science_pack[self.player].get_max_pack()] & stacking_items) + valid_pool = sorted(science_pack_pools[self.world.max_science_pack[self.player].get_max_pack()] & valid_ingredients) self.world.random.shuffle(valid_pool) - while any([valid_pool[x] in fluids for x in range(3)]): - self.world.random.shuffle(valid_pool) self.custom_recipes = {"rocket-part": Recipe("rocket-part", original_rocket_part.category, {valid_pool[x]: 10 for x in range(3)}, original_rocket_part.products, diff --git a/worlds/factorio/data/mod_template/data-final-fixes.lua b/worlds/factorio/data/mod_template/data-final-fixes.lua index 7da4f3a62d..29bfa7276a 100644 --- a/worlds/factorio/data/mod_template/data-final-fixes.lua +++ b/worlds/factorio/data/mod_template/data-final-fixes.lua @@ -1,6 +1,48 @@ {% from "macros.lua" import dict_to_recipe %} -- this file gets written automatically by the Archipelago Randomizer and is in its raw form a Jinja2 Template require('lib') +data.raw["rocket-silo"]["rocket-silo"].fluid_boxes = { + { + production_type = "input", + pipe_picture = assembler2pipepictures(), + pipe_covers = pipecoverspictures(), + base_area = 10, + base_level = -1, + pipe_connections = { + { type = "input", position = { 0, 5 } }, + { type = "input", position = { 0, -5 } }, + { type = "input", position = { 5, 0 } }, + { type = "input", position = { -5, 0 } } + } + }, + { + production_type = "input", + pipe_picture = assembler2pipepictures(), + pipe_covers = pipecoverspictures(), + base_area = 10, + base_level = -1, + pipe_connections = { + { type = "input", position = { -3, 5 } }, + { type = "input", position = { -3, -5 } }, + { type = "input", position = { 5, -3 } }, + { type = "input", position = { -5, -3 } } + } + }, + { + production_type = "input", + pipe_picture = assembler2pipepictures(), + pipe_covers = pipecoverspictures(), + base_area = 10, + base_level = -1, + pipe_connections = { + { type = "input", position = { 3, 5 } }, + { type = "input", position = { 3, -5 } }, + { type = "input", position = { 5, 3 } }, + { type = "input", position = { -5, 3 } } + } + }, + off_when_no_fluid_recipe = true +} {%- for recipe_name, recipe in custom_recipes.items() %} data.raw["recipe"]["{{recipe_name}}"].category = "{{recipe.category}}" From 1cc9c7a469ff750cf1ef22b6f8d3fd7af2567347 Mon Sep 17 00:00:00 2001 From: Bicoloursnake <60069210+Bicoloursnake@users.noreply.github.com> Date: Sat, 9 Jul 2022 21:16:41 -0400 Subject: [PATCH 30/32] Doc: Add english mac guide (running from source) (#744) * Create RunFromSourceGuideForMac.md * Update and rename RunFromSourceGuideForMac.md to docs/RunFromSourceGuideForMac.md * Clarified the source code download. * Rename docs/RunFromSourceGuideForMac.md to worlds/generic/docs/RunFromSourceGuideForMac.md * Update __init__.py * Noted the case where a user might want EnemizerCLI * Updated document to reflect requested changes Updated to reflect the requested changes as well as including some information on virtual environments. * Added Capital Letters to SNIClient.py * Reworked Document Structure Numeric order of lists now makes sense and changed the virtual environment section to match Archipelago tradition. * Update __init__.py * Minor Changes for clarity's sake * Renamed file to make webhost happy * Changed mac guide filename --- worlds/generic/__init__.py | 4 +++- worlds/generic/docs/mac_en.md | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 worlds/generic/docs/mac_en.md diff --git a/worlds/generic/__init__.py b/worlds/generic/__init__.py index 3baba9a709..0d8a220d98 100644 --- a/worlds/generic/__init__.py +++ b/worlds/generic/__init__.py @@ -15,6 +15,8 @@ class GenericWeb(WebWorld): commands = Tutorial('Archipelago Server and Client Commands', 'A guide detailing the commands available to the user when participating in an Archipelago session.', 'English', 'commands_en.md', 'commands/en', ['jat2980', 'Ijwu']) + mac = Tutorial('Archipelago Setup Guide for Mac', 'A guide detailing how to run Archipelago clients on macOS.', + 'English', 'mac_en.md','mac/en', ['Bicoloursnake']) plando = Tutorial('Archipelago Plando Guide', 'A guide to understanding and using plando for your game.', 'English', 'plando_en.md', 'plando/en', ['alwaysintreble', 'Alchav']) setup = Tutorial('Multiworld Setup Tutorial', @@ -25,7 +27,7 @@ class GenericWeb(WebWorld): using_website = Tutorial('Archipelago Website User Guide', 'A guide to using the Archipelago website to generate multiworlds or host pre-generated multiworlds.', 'English', 'using_website_en.md', 'using_website/en', ['alwaysintreble']) - tutorials = [setup, using_website, commands, advanced_settings, triggers, plando] + tutorials = [setup, using_website, mac, commands, advanced_settings, triggers, plando] class GenericWorld(World): diff --git a/worlds/generic/docs/mac_en.md b/worlds/generic/docs/mac_en.md new file mode 100644 index 0000000000..1e2d235c8c --- /dev/null +++ b/worlds/generic/docs/mac_en.md @@ -0,0 +1,32 @@ +# Guide to Run Archipelago from Source Code on macOS +Archipelago does not have a compiled release on macOS. However, it is possible to run from source code on macOS. This guide expects you to have some experience with running software from the terminal. +## Prerequisite Software +Here is a list of software to install and source code to download. +1. Python 3.8 or newer from the [macOS Python downloads page](https://www.python.org/downloads/macos/). +2. Xcode from the [macOS App Store](https://apps.apple.com/us/app/xcode/id497799835). +3. The source code from the [Archipelago releases page](https://github.com/ArchipelagoMW/Archipelago/releases). +4. The asset with darwin in the name from the [SNI Github releases page](https://github.com/alttpo/sni/releases). +5. If you would like to generate Enemized seeds for ALTTP locally (not on the website), you may need the EnemizerCLI from its [Github releases page](https://github.com/Ijwu/Enemizer/releases). +6. An Emulator of your choosing for games that need an emulator. For SNES games, I recommend RetroArch, entirely because it was the easiest for me to setup on macOS. It can be downloaded at the [RetroArch downloads page](https://www.retroarch.com/?page=platforms) +## Extracting the Archipelago Directory +1. Double click on the Archipelago source code zip file to extract the files to an Archipelago directory. +2. Move this Archipelago directory out of your downloads directory. +3. Open terminal and navigate to your Archipelago directory. +## Setting up a Virtual Environment +It is generally recommended that you use a virtual environment to run python based software to avoid contamination that can break some software. If Archipelago is the only piece of software you use that runs from python source code however, it is not necessary to use a virtual environment. +1. Open terminal and navigate to the Archipelago directory. +2. Run the command `python3 -m venv venv` to create a virtual environment. Running this command will create a new directory at the specified path, so make sure that path is clear for a new directory to be created. +3. Run the command `source venv/bin/activate` to activate the virtual environment. +4. If you want to exit the virtual environment, run the command `deactivate`. +## Steps to Run the Clients +1. If your game doesn't have a patch file, run the command `python3 SNIClient.py`, changing the filename with the file of the client you want to run. +2. If your game does have a patch file, move the base rom to the Archipelago directory and run the command `python3 SNIClient.py 'patchfile'` with the filename extension for the patch file (apsm, aplttp, apsmz3, etc.) included and changing the filename with the file of the client you want to run. +3. Your client should now be running and rom created (where applicable). +## Additional Steps for SNES Games +1. If using RetroArch, the instructions to set up your emulator [here in the Link to the Past setup guide](https://archipelago.gg/tutorial/A%20Link%20to%20the%20Past/multiworld/en) also work on the macOS version of RetroArch. +2. Double click on the SNI tar.gz download to extract the files to an SNI directory. If it isn't already, rename this directory to SNI to make some steps easier. +3. Move the SNI directory out of the downloads directory, preferably into the Archipelago directory created earlier. +4. If the SNI directory is correctly named and moved into the Archipelago directory, it should auto run with the SNI client. If it doesn't automatically run, open up the SNI directory and run the SNI executable file manually. +5. If using EnemizerCLI, extract that downloaded directory and rename it to EnemizerCLI. +6. Move the EnemizerCLI directory into the Archipelago directory so that Generate.py can take advantage of it. +7. Now that SNI, the client, and the emulator are all running, you should be good to go. From beac0b1acdba270c939e72885af0362731a786ff Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Sat, 9 Jul 2022 14:57:35 +0200 Subject: [PATCH 31/32] Requirements: update some modules --- WebHostLib/requirements.txt | 4 ++-- requirements.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/WebHostLib/requirements.txt b/WebHostLib/requirements.txt index 83132b5625..6280ecdfc6 100644 --- a/WebHostLib/requirements.txt +++ b/WebHostLib/requirements.txt @@ -1,7 +1,7 @@ flask>=2.1.2 pony>=0.7.16 waitress>=2.1.1 -flask-caching>=1.11.1 +flask-caching>=2.0.0 Flask-Compress>=1.12 -Flask-Limiter>=2.4.6 +Flask-Limiter>=2.5.0 bokeh>=2.4.3 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 0067d461d7..661209e072 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -colorama>=0.4.4 +colorama>=0.4.5 websockets>=10.3 PyYAML>=6.0 jellyfish>=0.9.0 From 0d3bd6e2e87842df76fa92f1efd69d07b7a1e151 Mon Sep 17 00:00:00 2001 From: Zach Parks Date: Sun, 10 Jul 2022 19:24:07 +0000 Subject: [PATCH 32/32] gitignore general Windows/macOS files (#763) --- .gitignore | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index b052625508..3733723427 100644 --- a/.gitignore +++ b/.gitignore @@ -152,10 +152,17 @@ dmypy.json # Cython debug symbols cython_debug/ -#minecraft server stuff +# minecraft server stuff jdk*/ minecraft*/ minecraft_versions.json -#pyenv +# pyenv .python-version + +# OS General Files +.DS_Store +.AppleDouble +.LSOverride +Thumbs.db +[Dd]esktop.ini