From 199b778d2b7a85cd13d70f1d9b249852fffad1d8 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Fri, 1 Apr 2022 03:23:52 +0200 Subject: [PATCH] Bug Squashing --- worlds/hk/.gitignore | 1 + worlds/hk/ExtractedData.py | 16 + worlds/hk/Extractor.py | 377 +++++++ worlds/hk/Items.py | 409 +------ worlds/hk/Locations.py | 308 ------ worlds/hk/Options.py | 167 ++- worlds/hk/Regions.py | 32 +- worlds/hk/Rules.py | 2088 +++++++++++++++++++++++++++++------- worlds/hk/Types.py | 7 - worlds/hk/__init__.py | 324 ++++-- worlds/hk/requirements.txt | 1 + 11 files changed, 2510 insertions(+), 1220 deletions(-) create mode 100644 worlds/hk/.gitignore create mode 100644 worlds/hk/ExtractedData.py create mode 100644 worlds/hk/Extractor.py delete mode 100644 worlds/hk/Locations.py delete mode 100644 worlds/hk/Types.py create mode 100644 worlds/hk/requirements.txt diff --git a/worlds/hk/.gitignore b/worlds/hk/.gitignore new file mode 100644 index 00000000..3a80b7da --- /dev/null +++ b/worlds/hk/.gitignore @@ -0,0 +1 @@ +/Resources \ No newline at end of file diff --git a/worlds/hk/ExtractedData.py b/worlds/hk/ExtractedData.py new file mode 100644 index 00000000..beb899a4 --- /dev/null +++ b/worlds/hk/ExtractedData.py @@ -0,0 +1,16 @@ +# This module is written by Extractor.py, do not edit manually!. + +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 = {'Mines_23', 'Fungus2_14', 'Fungus2_11', 'Defeated_Colosseum_Zote', 'Abyss_06_Core', 'Opened_Waterways_Exit', 'Mines_05', 'Deepnest_26', 'Opened_Resting_Grounds_Catacombs_Wall', 'Deepnest_41', 'Defeated_Flukemarm', 'Right_Elevator', 'Defeated_Dung_Defender', 'Ruins2_03b', 'Deepnest_01', 'Completed_Path_of_Pain', 'Abyss_03', 'Fungus3_26', 'Warp-Path_of_Pain_Complete', 'Fungus3_22', 'Ruins1_31', 'Upper_Tram', 'RestingGrounds_05', 'Defeated_Galien', 'White_Palace_01', 'Left_Elevator', 'Opened_Resting_Grounds_Floor', 'Deepnest_35', 'Abyss_19', 'Deepnest_01b', 'Ruins1_28', 'Warp-White_Palace_Atrium_to_Palace_Grounds', 'Can_Bench', 'White_Palace_13', 'Lever-Shade_Soul', 'Defeated_Xero', 'Defeated_White_Defender', 'Fungus3_02', 'Deepnest_East_07', 'Opened_Tramway_Exit_Gate', 'Ruins1_05b', 'Mines_02', 'Palace_Atrium_Gates_Opened', 'Can_Stag', 'Can_Repair_Fragile_Charms', 'Defeated_Soul_Master', 'Mines_04', 'First_Grimmchild_Upgrade', 'Palace_Right_Lantern_Lit', 'Fungus2_03', 'Lever-Dung_Defender', 'Defeated_Path_of_Pain_Arena', 'Defeated_Grimm', 'Defeated_Crystal_Guardian', 'Defeated_Shrumal_Ogre_Arena', 'Deepnest_42', 'Defeated_False_Knight', 'Abyss_09', 'Ruins1_03', 'Defeated_Nosk', 'Ruins1_05c', 'Ruins2_04', 'Abyss_04', 'Waterways_04', 'Defeated_No_Eyes', 'Defeated_Grey_Prince_Zote', 'Deepnest_37', 'Deepnest_East_03', 'Opened_Shaman_Pillar', 'Deepnest_East_02', 'Ruins2_10', 'Warp-Palace_Grounds_to_White_Palace', 'Mines_10', 'Ruins1_23', 'Opened_Archives_Exit_Wall', 'Crossroads_33', 'Defeated_Broken_Vessel', 'Fungus3_44', 'RestingGrounds_02', 'Can_Replenish_Geo-Crossroads', 'Opened_Gardens_Stag_Exit', 'Ruins2_01', 'Fungus3_01', 'Deepnest_02', 'Crossroads_07', 'Defeated_Colosseum_2', 'Cliffs_01', 'Fungus3_04', 'Defeated_Colosseum_1', 'Mines_20', 'Opened_Glade_Door', 'Abyss_03_b', 'Cliffs_02', 'Defeated_Hornet_2', 'Defeated_Marmu', 'Mines_11', 'Lower_Tram', 'Fungus1_21', 'Defeated_Lost_Kin', 'Ruins2_01_b', 'Town', 'Can_Replenish_Geo', 'Defeated_Mantis_Lords', 'Defeated_Hive_Knight', 'Waterways_04b', 'Fungus2_23', 'Rescued_Bretta', 'White_Palace_03_hub', 'Defeated_Gruz_Mother', 'Defeated_Gorb', 'Deepnest_03', 'Abyss_03_c', 'Abyss_05', 'Fungus3_13', 'Fungus2_04', 'Deepnest_East_11', 'Defeated_Pale_Lurker', 'Warp-White_Palace_Entrance_to_Palace_Grounds', 'Defeated_Elegant_Warrior', 'Defeated_Traitor_Lord', 'Tutorial_01', 'Fungus3_47', 'Fungus2_06', 'Deepnest_East_18', 'Fungus3_40', 'Deepnest_39', 'Deepnest_East_04', 'Defeated_Failed_Champion', 'Crossroads_21', 'Crossroads_08', 'Second_Grimmchild_Upgrade', 'Crossroads_03', 'Fungus2_13', 'Nightmare_Lantern_Lit', 'Fungus2_17', 'Warp-Lifeblood_Core_to_Abyss', "Defeated_West_Queen's_Gardens_Arena", 'Fungus3_11', 'Rescued_Deepnest_Zote', 'Mines_18', 'Defeated_Hornet_1', 'Fungus3_34', 'Hive_03_c', 'Opened_Dung_Defender_Wall', 'Abyss_01', 'Defeated_Uumuu', 'Defeated_Enraged_Guardian', 'Crossroads_27', 'Lit_Abyss_Lighthouse', 'Ruins1_30', "Defeated_King's_Station_Arena", 'Opened_Emilitia_Door', 'Defeated_Watcher_Knights', 'Defeated_Markoth', 'Fungus1_11', "Opened_Lower_Kingdom's_Edge_Wall", 'Opened_Mawlek_Wall', 'Crossroads_19', 'Fungus1_30', 'Defeated_Sanctum_Warrior', 'Fungus2_20', 'Deepnest_10', 'Waterways_02', 'RestingGrounds_10', 'Mines_03', 'Deepnest_34', 'Defeated_Elder_Hu', 'Defeated_Brooding_Mawlek', 'Opened_Pleasure_House_Wall', 'Deepnest_17', 'Opened_Black_Egg_Temple', 'Palace_Left_Lantern_Lit', 'Ruins1_05', 'Broke_Sanctum_Glass_Floor', 'Fungus2_01', 'Defeated_Collector', 'Palace_Entrance_Lantern_Lit', 'Waterways_01', 'Deepnest_14', 'Crossroads_18', 'Waterways_07', 'Defeated_Soul_Tyrant', 'Rescued_Sly', 'Crossroads_14', 'Opened_Waterways_Manhole'} +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}, "Wanderer's_Journal": {'WANDERERSJOURNALS': 1}, 'Hallownest_Seal': {'HALLOWNESTSEALS': 1}, "King's_Idol": {'KINGSIDOLS': 1}, 'Arcane_Egg': {'ARCANEEGGS': 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_Map': {'MAPS': 1}, 'Greenpath_Map': {'MAPS': 1}, 'Fog_Canyon_Map': {'MAPS': 1}, 'Fungal_Wastes_Map': {'MAPS': 1}, 'Deepnest_Map': {'MAPS': 1}, 'Ancient_Basin_Map': {'MAPS': 1}, "Kingdom's_Edge_Map": {'MAPS': 1}, 'City_of_Tears_Map': {'MAPS': 1}, 'Royal_Waterways_Map': {'MAPS': 1}, 'Howling_Cliffs_Map': {'MAPS': 1}, 'Crystal_Peak_Map': {'MAPS': 1}, "Queen's_Gardens_Map": {'MAPS': 1}, 'Resting_Grounds_Map': {'MAPS': 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}} +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 = {'Ruins1_02[top1]', 'Fungus1_08[left1]', 'Fungus1_03[left1]', 'Fungus1_37[left1]', 'Fungus2_20[right1]', 'Abyss_09[right1]', 'Mines_18[left1]', 'Crossroads_33[right1]', 'Fungus2_03[right1]', 'Fungus1_05[bot1]', 'Fungus2_11', 'Grimm_Divine[left1]', 'Ruins2_06[right1]', 'Deepnest_Spider_Town[left1]', 'Fungus3_03[left1]', 'White_Palace_08[right1]', 'Fungus3_01[right2]', 'Mines_05', 'Ruins_House_03[left2]', 'QUAKE', 'Opened_Resting_Grounds_Catacombs_Wall', 'Fungus1_21[bot1]', 'Fungus2_11[left2]', 'Crossroads_05[right1]', 'Fungus3_02[right1]', 'Right_Elevator', 'Crossroads_14[right2]', 'White_Palace_15[right2]', 'RestingGrounds_04[right1]', 'Deepnest_09[left1]', 'Crossroads_03[bot1]', 'Ruins1_23[right1]', 'Waterways_07[right2]', 'Abyss_21[right1]', 'Cliffs_02[bot2]', 'Waterways_09[right1]', 'Deepnest_37[top1]', 'Fungus2_03[left1]', 'Deepnest_East_02[right1]', 'Mines_24[left1]', 'Crossroads_39[right1]', 'Ruins1_31', 'Deepnest_01[bot2]', 'Cliffs_02[left1]', 'GG_Waterways[door1]', 'White_Palace_01', 'Deepnest_35', 'Ruins1_28', 'Ruins1_28[bot1]', 'Deepnest_02[left2]', 'Fungus1_04[left1]', 'Can_Bench', 'Tutorial_01[right1]', 'Mines_28[left1]', 'Ruins2_07[left1]', 'Lever-Shade_Soul', 'Defeated_Xero', 'Defeated_White_Defender', 'Deepnest_34[right1]', 'Mines_23[right1]', 'Opened_Tramway_Exit_Gate', 'Crossroads_36[right2]', 'Fungus2_26[left1]', 'Ruins1_24[left2]', 'UPSLASH', 'Deepnest_East_11[right1]', 'Herrah', 'First_Grimmchild_Upgrade', 'Waterways_01[right1]', 'Deepnest_37[right1]', 'Fungus1_31[bot1]', 'Fungus2_03', 'Ruins2_01_b[left1]', 'White_Palace_11[door2]', 'Palace_Right_Lantern_Lit', 'Deepnest_26[left2]', 'Deepnest_East_03[top1]', 'Deepnest_42', 'Mines_10[bot1]', 'Fungus2_11[right1]', 'Crossroads_50[left1]', 'Deepnest_East_14[left1]', 'Mines_04[left2]', 'Mines_23[right2]', 'RestingGrounds_02[top1]', 'Fungus3_26[left2]', 'Room_shop[left1]', 'Ruins1_18[left1]', 'Mines_06[left1]', 'Ruins1_27[right1]', 'Crossroads_11_alt[right1]', 'Fungus2_34[right1]', 'Mines_05[top1]', 'Mines_29[left1]', 'Defeated_Grey_Prince_Zote', 'Deepnest_East_03', 'Fungus1_19[right1]', 'Deepnest_East_13[bot1]', 'Deepnest_East_02', 'Crossroads_45[right1]', 'Mines_19[right1]', 'Fungus3_23[right1]', 'Deepnest_East_04[left1]', 'Deepnest_01[bot1]', 'Fungus2_19[top1]', 'Fungus3_03[right1]', 'Ruins2_11[right1]', 'Fungus1_32[bot1]', 'Ruins1_05[right2]', 'Deepnest_East_14[door1]', 'Crossroads_14[left2]', 'White_Palace_17[right1]', 'Deepnest_03[left1]', 'Fungus3_08[top1]', 'White_Palace_13[left2]', 'Crossroads_07', 'Deepnest_26b[right1]', 'Fungus1_22[top1]', 'Crossroads_25[left1]', 'Crossroads_42[right1]', 'Ruins1_23[left1]', 'Opened_Glade_Door', 'Fungus3_35[right1]', 'Abyss_03_b', 'Crossroads_04[door1]', 'Room_mapper[left1]', 'Deepnest_East_02[bot1]', 'Fungus1_07[left1]', 'Fungus1_16_alt[right1]', 'MASKSHARDS', 'Ruins1_05[top1]', 'Lower_Tram', 'Fungus3_24[left1]', 'Fungus1_21', 'Town[top1]', 'GRIMMCHILD', 'Deepnest_03[top1]', 'Fungus2_07[left1]', 'Defeated_Lost_Kin', 'Ruins2_11_b[left1]', 'Ruins2_10[right1]', 'Cliffs_03[right1]', 'Cliffs_06[left1]', 'Deepnest_17[left1]', 'Deepnest_36[left1]', 'Abyss_03_c[right1]', 'Fungus3_28[right1]', 'Ruins_House_01[left1]', 'CYCLONE', 'Abyss_06_Core[bot1]', 'White_Palace_03_hub', 'Deepnest_03', 'Ruins2_Watcher_Room[bot1]', 'GG_Lurker[left1]', 'Ruins2_04[door_Ruin_House_02]', 'Fungus2_04', 'Ruins2_07[top1]', 'Fungus3_39[right1]', 'Deepnest_East_11', 'Warp-White_Palace_Entrance_to_Palace_Grounds', 'Crossroads_04[right1]', 'Defeated_Traitor_Lord', 'Fungus2_03[bot1]', 'Fungus3_47', 'Fungus2_06', 'Fungus1_11[left1]', 'White_Palace_03_hub[left1]', 'Waterways_08[left1]', 'Deepnest_01b[bot1]', 'White_Palace_14[right1]', 'Fungus3_48[door1]', 'Mines_34[left1]', 'Fungus2_13', 'Crossroads_03[top1]', 'Fungus2_29[right1]', 'Abyss_03_c[top1]', 'Abyss_19[bot2]', 'Deepnest_East_11[bot1]', 'STAGS', 'Deepnest_East_11[top1]', 'Deepnest_03[left2]', 'Warp-Lifeblood_Core_to_Abyss', 'White_Palace_03_hub[top1]', 'Hive_04[right1]', 'Room_Wyrm[right1]', 'Fungus3_10[top1]', 'Waterways_04b[right2]', 'Crossroads_37[right1]', 'Deepnest_East_14b[top1]', 'Deepnest_10[right2]', 'Fungus1_20_v02[bot1]', 'White_Palace_13', 'Fungus3_34[right1]', 'Defeated_Hornet_1', 'Ruins1_17[right1]', 'Fungus3_08[right1]', 'Deepnest_33[top1]', "Defender's_Crest", 'Fungus1_30[left1]', 'Waterways_07[right1]', 'Room_Queen[left1]', 'White_Palace_09[right1]', 'Mines_30[left1]', 'Mines_20[right1]', 'Ruins1_30', 'Ruins2_10b[right2]', 'Mines_02[right1]', 'SPELLS', 'Crossroads_48[left1]', 'Fungus3_48[bot1]', 'Fungus2_17[right1]', 'Deepnest_39[left1]', 'Crossroads_06[door1]', 'Ruins1_30[left1]', 'Fungus1_30', 'Town[door_sly]', 'Hive_02[left2]', 'Fungus1_11[right1]', 'Fungus2_20', 'Waterways_07[door1]', 'Deepnest_10', 'Mines_03', 'Deepnest_East_06[top1]', 'Ruins1_09[top1]', 'RestingGrounds_02[left1]', 'LEFTSLASH', 'Defeated_Brooding_Mawlek', 'Mines_37[bot1]', 'Fungus2_09[left1]', 'Fungus2_17[left1]', 'Deepnest_03[right1]', 'Waterways_04b[right1]', 'Fungus1_05[right1]', 'Fungus2_14[right1]', 'Deepnest_01b[right2]', 'Mines_25[left1]', 'Abyss_09[right3]', 'Fungus3_22[bot1]', 'Fungus2_33[right1]', 'Fungus2_01[left2]', 'Ruins1_05', 'Fungus2_06[right1]', 'Ruins2_01_b[right1]', 'Town[door_jiji]', 'Room_Colosseum_01[left1]', 'Broke_Sanctum_Glass_Floor', 'Fungus2_12[left1]', 'Fungus2_28[left1]', 'Deepnest_33[bot1]', 'Palace_Entrance_Lantern_Lit', 'Waterways_01', 'Deepnest_14', 'Mines_05[left1]', 'White_Palace_12[bot1]', 'Fungus3_11[right1]', 'Defeated_Soul_Tyrant', 'Deepnest_42[left1]', 'White_Palace_16[left2]', 'Abyss_01[left2]', 'Crossroads_14', 'Deepnest_East_14b[right1]', 'Fungus2_18[bot1]', 'Room_Colosseum_Spectate[bot1]', 'Crossroads_43[right1]', 'Abyss_10[left2]', 'Opened_Waterways_Manhole', 'Deepnest_East_01[bot1]', 'Ruins1_25[left3]', 'Greenpath_Stag', 'Fungus1_25[left1]', 'Deepnest_East_04[right1]', 'Ruins1_31[right1]', 'RestingGrounds_02[right1]', 'Fungus2_04[top1]', 'White_Palace_07[top1]', 'Abyss_09[right2]', 'RestingGrounds_06[left1]', 'Waterways_13[left2]', 'Fungus1_02[right2]', 'Mines_18[right1]', 'Fungus1_07[top1]', 'Defeated_Colosseum_Zote', 'Fungus3_02[left1]', 'Fungus3_44[door1]', 'Ruins1_04[right1]', 'Abyss_06_Core', 'Fungus1_11[top1]', 'Waterways_04b[left1]', 'Mines_10[right1]', 'Great_Slash', 'Crossroads_22[bot1]', 'Crossroads_35[bot1]', 'Crossroads_02[left1]', 'Crossroads_49[left1]', 'Deepnest_East_12[left1]', 'Defeated_Dung_Defender', 'Deepnest_01', 'Cyclone_Slash', 'Cliffs_04[right1]', 'Waterways_05[bot2]', 'Mines_31[left1]', 'Hidden_Station_Stag', 'Waterways_01[left1]', 'RestingGrounds_05[right2]', 'Abyss_15[top1]', 'Abyss_19', 'RIGHTSUPERDASH', 'RestingGrounds_07[right1]', 'Elevator_Pass', 'Warp-White_Palace_Atrium_to_Palace_Grounds', "King's_Station_Stag", 'White_Palace_03_hub[left2]', 'Ruins2_01[left2]', 'Waterways_02[top3]', 'Cliffs_05[left1]', 'Deepnest_East_07', 'Crossroads_03[left2]', 'Ruins1_01[top1]', 'Waterways_02[bot1]', 'Mines_11[right1]', 'Crossroads_13[right1]', 'Abyss_17[top1]', 'Crossroads_01[left1]', 'Abyss_04[right1]', 'Town[room_grimm]', 'Crossroads_50[right1]', 'Fungus3_26[left3]', 'Fungus3_47[left1]', 'Ruins1_30[left2]', 'Fungus3_34[top1]', 'Fungus3_48[right2]', 'Deepnest_East_01[right1]', 'Fungus1_13[left1]', 'Fungus1_14[left1]', 'Mines_04[left3]', 'Cliffs_02[right1]', 'Defeated_Path_of_Pain_Arena', 'Deepnest_41[right1]', 'LEFTSUPERDASH', 'Crossroads_30[left1]', 'Fragile_Strength', 'Abyss_09', 'Deepnest_38[bot1]', 'Hive_02[left1]', 'Fungus3_05[right1]', 'Fragile_Greed', 'RIGHTDASH', 'Ruins2_04', 'Fungus3_22[left1]', 'RestingGrounds_12[door_Mansion]', 'Abyss_04', 'White_Palace_12[right1]', 'Ruins_Bathhouse[right1]', 'Deepnest_39[right1]', 'Abyss_16[left1]', 'Deepnest_37', 'Ruins1_23[top1]', 'Mines_18[top1]', 'Mines_33[left1]', 'Warp-Palace_Grounds_to_White_Palace', 'Mines_10[left1]', 'Ruins1_04[bot1]', 'Waterways_07[top1]', 'Ruins1_31[left1]', 'Abyss_20[top1]', 'Crossroads_07[left1]', 'Opened_Archives_Exit_Wall', 'Crossroads_33', 'Defeated_Broken_Vessel', 'Fungus1_26[left1]', 'Waterways_04[bot1]', 'Ruins2_10b[left1]', 'Crossroads_18[right2]', 'Abyss_03_b[left1]', 'Opened_Gardens_Stag_Exit', 'Waterways_14[bot1]', 'Deepnest_East_16[bot1]', 'Fungus2_11[top1]', 'Fungus3_01', 'Town[left1]', 'Deepnest_East_06[bot1]', 'Crossroads_07[bot1]', 'Deepnest_17[top1]', 'Deepnest_East_04[left2]', 'Crossroads_21[right1]', 'Fungus2_09[right1]', 'LEFTDASH', 'Cliffs_01', 'Deepnest_01[left1]', 'Ruins1_03[right2]', 'Crossroads_05[left1]', 'Glowing_Womb', 'SWIM', 'Mines_20', 'Abyss_02[bot1]', 'Fungus2_02[right1]', 'Deepnest_East_01[top1]', 'Crossroads_08[left1]', 'Fungus1_23[right1]', 'Mines_36[right1]', 'Fungus3_13[right1]', 'RIGHTCLAW', 'Fungus1_06[left1]', 'Cliffs_02[left2]', 'Abyss_16[right1]', 'Deepnest_34[left1]', 'Ruins1_25[left2]', 'Fungus3_30[bot1]', 'Ruins1_05c[left2]', 'Ruins2_01_b', 'Ruins2_01[bot1]', 'Fungus1_10[right1]', 'Deepnest_East_02[top1]', 'Fungus2_01[right1]', 'Defeated_Mantis_Lords', 'Crossroads_43[left1]', 'Fungus2_13[top1]', 'Fungus2_21[right1]', 'White_Palace_04[right2]', 'Deepnest_East_09[right1]', 'Ruins1_03[left1]', 'Rescued_Bretta', 'Mines_03[bot1]', 'Defeated_Gorb', 'White_Palace_05[right1]', 'Abyss_05', 'Fungus3_25b[right1]', 'RestingGrounds_05[left3]', 'ESSENCE', 'Fungus3_02[right2]', 'Town[right1]', 'Ruins_Bathhouse[door1]', 'Crossroads_16[bot1]', 'City_Storerooms_Stag', 'Abyss_12[right1]', 'Deepnest_East_18', 'Abyss_04[bot1]', 'Waterways_13[left1]', 'Deepnest_39', 'Deepnest_East_04', 'Hive_01[right1]', 'White_Palace_04[top1]', 'Deepnest_41[left2]', 'SHOPKEY', 'Fungus3_archive_02[top1]', 'Mines_16[top1]', 'Fungus1_24[left1]', 'Crossroads_21', 'Crossroads_19[left2]', 'Waterways_02[bot2]', 'Second_Grimmchild_Upgrade', 'DREAMNAIL', 'Crossroads_03[right1]', 'Crossroads_27[bot1]', 'Deepnest_35[top1]', 'Crossroads_19[right1]', 'Crossroads_19[top1]', 'Mines_05[right1]', 'FIREBALL', 'Ruins2_08[left1]', 'Fungus1_11[bot1]', 'Tutorial_01[top1]', "Defeated_West_Queen's_Gardens_Arena", 'Fungus3_11', 'Ruins_House_02[left1]', 'White_Palace_18[top1]', 'Waterways_04[right1]', 'Room_Fungus_Shaman[left1]', 'Fungus3_02[left2]', 'Deepnest_East_07[left1]', 'Ruins1_31[left3]', 'Ruins2_07[right1]', 'Mines_18', 'Waterways_06[top1]', 'DREAMER', 'Crossroads_01[right1]', 'Fungus2_21[left1]', 'Waterways_15[top1]', 'Abyss_19[bot1]', 'Deepnest_30[left1]', 'Ruins2_05[left1]', 'Abyss_01', 'Fungus2_08[right1]', 'Fungus1_17[right1]', 'Deepnest_14[left1]', 'Defeated_Enraged_Guardian', 'Room_Bretta[right1]', 'Fungus2_10[right2]', 'Ruins1_05c[top3]', 'Mines_13[top1]', 'Ruins2_05[top1]', 'Dash_Slash', 'Defeated_Watcher_Knights', 'Defeated_Markoth', 'Hive_04[left1]', "Opened_Lower_Kingdom's_Edge_Wall", "Queen's_Gardens_Stag", 'Ruins1_01[bot1]', 'Opened_Mawlek_Wall', 'Ruins2_04[door_Ruin_Elevator]', 'Ruins2_04[door_Ruin_House_01]', 'Dirtmouth_Stag', 'Fungus3_47[right1]', 'Fungus3_44[right1]', 'Room_nailmaster[left1]', 'Deepnest_34', 'Room_Colosseum_01[bot1]', 'Crossroads_38[right1]', 'Fungus1_21[left1]', 'Fungus3_archive[left1]', 'Defeated_Elder_Hu', 'Fungus1_06[bot1]', 'Deepnest_10[door2]', 'Mines_04[right1]', 'Abyss_Lighthouse_room[left1]', 'SCREAM', 'Fungus3_26[right1]', 'Hive_04[left2]', 'Fungus2_13[left2]', 'Ruins_Elevator[left1]', 'Waterways_14[bot2]', 'Fungus1_31[top1]', 'Fungus1_35[left1]', 'Fungus3_13[left2]', 'Deepnest_43[bot1]', 'Deepnest_East_03[right1]', 'Crossroads_49b[right1]', 'Deepnest_10[right3]', 'White_Palace_05[left1]', 'Abyss_01[right2]', 'Fungus2_06[top1]', 'Fungus2_17[bot1]', 'Fungus2_01', 'Deepnest_East_08[top1]', 'Fungus2_30[bot1]', 'Fungus3_25b[left1]', 'WHITEFRAGMENT', 'Fungus3_22[right1]', 'Ruins1_24[left1]', 'Ruins2_03b[left1]', 'Fungus3_49[right1]', 'Ruins2_06[left2]', 'Waterways_08[top1]', 'Deepnest_40[right1]', 'Crossroads_08[left2]', 'Deepnest_East_15[left1]', 'Fungus1_22[left1]', 'Waterways_05[bot1]', 'Fungus3_40[top1]', 'Lifeblood_Core', 'Crossroads_12[right1]', 'Crossroads_16[left1]', 'Waterways_02[top1]', 'Mark_of_Pride', 'Deepnest_37[bot1]', 'Abyss_18[left1]', 'Crossroads_09[left1]', "Queen's_Station_Stag", 'Crossroads_04[door_Mender_House]', 'Deepnest_26[right1]', 'Deepnest_33[top2]', 'Fungus2_23[right1]', 'Abyss_19[left1]', 'Fungus2_05[bot1]', 'Abyss_03[bot1]', 'Opened_Waterways_Exit', 'Ruins1_29[left1]', 'Sprintmaster', 'Deepnest_42[top1]', 'Lifeblood_Heart', 'Defeated_Flukemarm', 'Mines_05[left2]', 'Deepnest_East_06[left1]', 'White_Palace_13[right1]', 'White_Palace_15[left1]', 'Crossroads_Stag', 'Fungus1_01b[left1]', 'Ruins1_05c[top1]', 'Deepnest_01b[top1]', 'White_Palace_19[left1]', 'Ruins2_03b', 'Cliffs_02[bot1]', 'Crossroads_21[top1]', 'Deepnest_45_v02[left1]', 'Ruins2_09[bot1]', 'Room_nailmaster_03[left1]', 'Crossroads_08[right1]', 'White_Palace_05[right2]', 'Fungus3_08[left1]', 'Ruins2_03[bot1]', 'Fungus3_26', 'Fungus2_14[top1]', 'Room_temple[left1]', 'RestingGrounds_06[right1]', 'Abyss_01[right1]', 'Ruins2_06[right2]', 'Crossroads_02[right1]', 'Fungus2_20[left1]', 'Fungus3_02[left3]', 'RestingGrounds_05[left2]', 'Left_Elevator', 'Opened_Resting_Grounds_Floor', 'Mines_13[right1]', 'Ruins1_03[right1]', 'Deepnest_01b', 'Dashmaster', 'Stag_Nest_Stag', 'Fungus3_04[left1]', 'Deepnest_26b[right2]', 'Abyss_04[top1]', 'Ruins1_27[left1]', 'FLAMES', 'Deepnest_10[door1]', 'Deepnest_East_04[right2]', 'Room_GG_Shortcut[left1]', 'Fungus1_01[left1]', 'White_Palace_18[right1]', 'Mines_13[bot1]', 'Ruins1_05b', 'Grimm_Main_Tent[left1]', 'Mines_05[bot1]', 'Fungus3_05[right2]', 'RestingGrounds_06[top1]', 'Fungus3_05[left1]', 'Fungus2_32[left1]', 'Fungus1_22[bot1]', 'Crossroads_35[right1]', 'Defeated_Crystal_Guardian', 'Ruins1_03', 'Ruins1_28[left1]', 'Defeated_False_Knight', 'Fungus2_18[top1]', 'Deepnest_East_18[bot1]', 'Deepnest_14[right1]', 'Room_GG_Shortcut[top1]', 'Abyss_06_Core[right2]', 'Crossroads_19[left1]', 'Fungus3_11[left2]', 'Ruins2_04[right2]', 'Cliffs_01[right1]', 'Ruins1_17[bot1]', 'Crossroads_14[right1]', 'Hive_03[bot1]', 'Crossroads_ShamanTemple[left1]', 'Fungus1_32[top1]', 'Crossroads_25[right1]', 'Defeated_No_Eyes', 'Fungus1_26[door_SlugShrine]', 'Room_Colosseum_Spectate[right1]', 'Fungus2_01[left1]', 'Mines_10', 'Waterways_04[left1]', 'Deepnest_01[right1]', 'RestingGrounds_17[right1]', 'Waterways_08[left2]', 'Fungus1_17[left1]', 'Mines_03[right1]', 'Mines_28[bot1]', 'Waterways_12[right1]', 'Ruins1_23', 'Deepnest_32[left1]', 'RestingGrounds_05[bot1]', 'Deepnest_East_14[top2]', 'Mines_11[top1]', 'Crossroads_27[left1]', 'Mines_20[left1]', 'Can_Replenish_Geo-Crossroads', 'Ruins2_05[bot1]', 'Ruins2_04[door_Ruin_House_03]', 'Ruins1_24[right2]', 'Deepnest_02', 'Mines_34[bot1]', 'Fungus3_47[door1]', 'Fungus2_13[left3]', 'RestingGrounds_04[left1]', 'Fungus2_18[right1]', 'Crossroads_52[left1]', 'BRAND', 'Fungus3_25[left1]', 'Defeated_Colosseum_1', 'Mines_35[left1]', 'Mines_28[door1]', 'Crossroads_33[left2]', 'Cliffs_02', 'Fungus1_26[right1]', 'Fungus3_13[bot1]', 'Cliffs_01[right4]', 'Deepnest_37[left1]', 'Deepnest_41[left1]', 'White_Palace_17[bot1]', 'Abyss_10[left1]', 'Fungus2_23[right2]', 'White_Palace_06[bot1]', 'Fungus1_10[top1]', 'White_Palace_13[left3]', 'Hive_03_c[right3]', 'Deepnest_43[right1]', 'Deepnest_39[top1]', 'Ruins2_03[bot2]', 'White_Palace_01[right1]', 'Fungus1_07[right1]', 'Fungus3_archive[bot1]', 'Mines_11[bot1]', 'Fungus3_13[left1]', 'Deepnest_01b[top2]', 'Crossroads_33[right2]', 'Hive_03_c[left1]', 'Ruins1_05b[bot1]', 'Room_nailmaster_02[left1]', 'Abyss_05[right1]', 'GG_Waterways[right1]', 'Defeated_Hive_Knight', 'Waterways_06[right1]', 'Fungus3_11[left1]', 'Fungus2_23', 'Hive_03[top1]', 'Room_Mansion[left1]', 'Crossroads_40[left1]', 'Ruins1_05b[top1]', 'Fungus3_34[left1]', 'Defeated_Gruz_Mother', 'Deepnest_01b[right1]', 'Abyss_03_c', 'Deepnest_East_06[door1]', 'Ruins1_05[bot3]', 'Fungus3_13', 'TRAM', 'Fungus3_01[right1]', 'Crossroads_15[right1]', 'Crossroads_27[right1]', 'Room_Mender_House[left1]', 'Defeated_Elegant_Warrior', 'Tutorial_01', 'Crossroads_02[door1]', 'Fungus1_03[right1]', 'Fungus1_20_v02[right1]', 'Defeated_Failed_Champion', 'Fungus2_06[right2]', 'Mines_34[bot2]', 'Crossroads_08', 'RestingGrounds_05[right1]', 'Crossroads_03', 'Abyss_18[right1]', 'Ruins1_17[top1]', 'Fungus1_29[left1]', 'Nightmare_Lantern_Lit', 'Fungus2_17', 'Ruins2_03[top1]', 'Fungus2_11[left1]', 'Ruins1_32[right2]', 'GG_Pipeway[right1]', 'Crossroads_49[right1]', "Joni's_Blessing", 'Ruins2_04[left2]', 'Fungus1_03[bot1]', 'Hive_03_c[top1]', 'Crossroads_10[right1]', 'Deepnest_East_07[right1]', 'Resting_Grounds_Stag', 'Ruins1_05[bot2]', 'Cliffs_02[door1]', 'Ruins_House_03[left1]', 'RestingGrounds_10[top1]', 'Fungus3_10[bot1]', 'Fungus3_24[top1]', 'Fungus2_04[left1]', 'Deepnest_02[left1]', 'Room_Town_Stag_Station[left1]', 'Ruins2_03b[top2]', 'Mines_20[right2]', 'Ruins1_31[left2]', 'Fungus3_26[top1]', 'Fungus1_11[right2]', 'Deepnest_East_Hornet[left2]', 'Hive_03[right1]', 'Mines_20[bot1]', 'Defeated_Uumuu', 'Fungus1_13[right1]', 'Crossroads_27', 'Crossroads_03[left1]', 'Fungus1_28[left1]', 'Mines_29[right1]', 'Fungus1_34[left1]', 'Deepnest_14[bot2]', 'Ruins2_03b[top1]', 'Fungus2_07[right1]', 'Crossroads_33[top1]', 'Abyss_01[left3]', 'Mines_04[top1]', 'Crossroads_27[left2]', 'Fungus2_10[bot1]', 'Ruins2_11_b[right1]', 'Crossroads_11_alt[left1]', 'Fungus1_21[top1]', 'Deepnest_39[door1]', 'Fungus1_21[right1]', 'RestingGrounds_10', 'Fungus2_06[left2]', 'Defeated_Sanctum_Warrior', 'Waterways_02', 'Fungus1_12[left1]', 'Deepnest_16[bot1]', 'Abyss_01[left1]', 'Crossroads_21[left1]', 'Fungus2_15[left1]', 'LANTERN', 'Waterways_01[bot1]', 'Ruins1_28[right1]', 'Fungus1_19[left1]', 'Fungus3_01[left1]', 'Opened_Pleasure_House_Wall', 'Deepnest_17', 'Ruins1_05[right1]', 'Mines_03[top1]', 'White_Palace_07[bot1]', 'Opened_Black_Egg_Temple', 'Room_ruinhouse[left1]', 'White_Palace_16[left1]', 'Room_Slug_Shrine[left1]', 'Deepnest_34[top1]', 'Deepnest_East_12[right1]', 'Mines_20[left3]', 'Fungus2_29[bot1]', 'Fungus1_29[right1]', 'Fungus1_09[right1]', 'Ruins2_06[left1]', 'Ruins2_06[top1]', 'Crossroads_03[right2]', 'Fungus2_33[left1]', 'Fungus1_15[right1]', 'Deepnest_35[bot1]', 'Fungus2_15[right1]', 'Sharp_Shadow', 'Fungus1_04[right1]', 'Fungus1_30[top1]', 'Deepnest_26[left1]', 'Mines_07[right1]', 'Abyss_06_Core[left3]', 'Mines_20[left2]', 'Ruins1_05c[top2]', 'Fungus1_01b[right1]', 'Cliffs_01[right3]', 'Deepnest_East_03[right2]', 'Room_spider_small[left1]', 'Mines_32[bot1]', 'RestingGrounds_08[left1]', 'Ruins1_31[bot1]', 'Fungus1_30[right1]', 'Fungus2_14', 'Waterways_02[top2]', 'Mines_02[top2]', 'Fungus3_04[left2]', 'Deepnest_East_18[right2]', 'Abyss_05[left1]', 'Fungus1_02[right1]', 'Mines_17[right1]', 'Crossroads_09[right1]', 'Deepnest_26', 'Crossroads_47[right1]', 'Distant_Village_Stag', 'Ruins2_10[left1]', 'Deepnest_31[right1]', 'Fungus2_15[top3]', 'FOCUS', 'Crossroads_04[top1]', 'White_Palace_01[left1]', 'Fungus3_25[right1]', 'Mines_25[top1]', 'Completed_Path_of_Pain', 'Fungus1_23[left1]', 'Fungus1_02[left1]', 'White_Palace_14[bot1]', 'Abyss_03', 'Ruins1_24[right1]', 'Fungus2_01[left3]', 'White_Palace_19[top1]', 'Ruins1_04[door1]', 'Fungus3_22', 'Warp-Path_of_Pain_Complete', 'Crossroads_10[left1]', 'Waterways_09[left1]', 'RestingGrounds_05', 'Defeated_Galien', 'Crossroads_18[right1]', 'SIMPLE', 'Upper_Tram', 'Fungus3_27[left1]', 'Fungus3_21[right1]', 'Room_Colosseum_02[top1]', 'RestingGrounds_12[bot1]', 'White_Palace_05[left2]', 'Room_Mask_Maker[right1]', 'Fungus3_02', 'Crossroads_13[left1]', 'Fungus2_10[right1]', 'Hive_03_c[right2]', 'Ruins1_23[right2]', 'Fungus2_06[left1]', 'ELEGANT', 'Mines_02', 'White_Palace_06[left1]', 'Cliffs_01[right2]', 'Can_Repair_Fragile_Charms', 'Can_Stag', 'Defeated_Soul_Master', 'Palace_Atrium_Gates_Opened', 'Mines_02[top1]', 'Deepnest_30[right1]', 'Town[door_bretta]', 'Fungus1_05[top1]', 'Fungus3_21[top1]', 'Deepnest_16[left1]', 'Defeated_Grimm', 'Lever-Dung_Defender', 'Defeated_Shrumal_Ogre_Arena', 'Ruins1_05c', 'Defeated_Nosk', 'Crossroads_14[left1]', 'Fungus3_26[left1]', 'Mines_07[left1]', 'Ruins1_18[right2]', 'Mines_01[bot1]', 'Crossroads_31[right1]', 'Fungus2_25[top1]', 'Abyss_03[top1]', 'Fungus3_01[top1]', 'RestingGrounds_09[left1]', 'Deepnest_02[right1]', 'Hive_02[left3]', 'Opened_Shaman_Pillar', 'Deepnest_East_09[bot1]', 'Fungus3_50[right1]', 'Fungus1_32[left1]', 'WINGS', 'Abyss_08[right1]', 'Fungus3_40[right1]', 'Fungus3_13[left3]', 'Mines_04[left1]', 'Deepnest_East_03[top2]', 'Deepnest_East_10[left1]', 'Crossroads_07[right1]', 'Ruins1_03[top1]', 'Fungus3_44', 'ACID', 'Hive_05[left1]', 'RestingGrounds_02', 'Ruins1_31b[right2]', 'Waterways_03[left1]', 'Abyss_04[left1]', 'Deepnest_East_02[bot2]', 'Deepnest_42[bot1]', 'Crossroads_33[left1]', 'Abyss_06_Core[top1]', 'Ruins2_01', 'Ruins1_01[left1]', 'Fungus2_08[left2]', 'Abyss_06_Core[left1]', 'Deepnest_30[top1]', 'Town[door_station]', 'Defeated_Colosseum_2', 'Deepnest_East_11[left1]', 'RestingGrounds_05[left1]', 'White_Palace_08[left1]', 'Deepnest_East_07[left2]', 'Fungus3_04[right1]', 'Crossroads_07[left3]', 'Fungus2_08[left1]', 'Hive_01[left1]', 'Fungus3_04[right2]', 'Fungus3_24[right1]', 'White_Palace_01[top1]', 'Abyss_22[left1]', 'Deepnest_East_17[left1]', 'Fungus3_04', 'Fungus2_30[top1]', 'Mines_11', 'Defeated_Marmu', 'Tutorial_01[top2]', 'Defeated_Hornet_2', 'Room_Charm_Shop[left1]', 'Deepnest_East_07[bot2]', 'Waterways_05[right1]', 'Deepnest_10[right1]', 'Mines_02[left1]', 'Ruins1_02[bot1]', 'Abyss_03[bot2]', 'Crossroads_04[door_charmshop]', 'Crossroads_06[right1]', 'LEFTCLAW', 'Fungus1_20_v02[bot2]', 'Crossroads_36[right1]', 'White_Palace_03_hub[bot1]', 'Fungus2_04[right1]', 'Ruins1_32[right1]', 'Town', 'Can_Replenish_Geo', 'Ruins1_05c[bot1]', 'Crossroads_07[left2]', 'Ruins2_03b[bot1]', 'Crossroads_06[left1]', 'Ruins2_01[top1]', 'Mines_01[left1]', 'Fungus1_19[bot1]', 'Crossroads_45[left1]', 'Deepnest_31[right2]', 'Crossroads_15[left1]', 'Abyss_20[top2]', 'Crossroads_08[right2]', 'Fungus1_15[door1]', 'Fungus2_28[left2]', 'Ruins1_06[left1]', 'Mines_17[left1]', 'Fungus1_31[right1]', 'Cliffs_04[left1]', 'White_Palace_15[right1]', 'Defeated_Pale_Lurker', 'Deepnest_35[left1]', 'GG_Pipeway[left1]', 'White_Palace_20[bot1]', 'Town[door_mapper]', 'Ruins1_30[right1]', 'Deepnest_14[bot1]', 'Mines_23[left1]', 'Fungus3_48[right1]', 'Waterways_07[left1]', 'Crossroads_46b[right1]', 'Ruins1_09[left1]', 'Abyss_09[left1]', 'Fungus2_05[right1]', 'Ruins2_04[left1]', 'Deepnest_East_09[left1]', 'Mines_33[right1]', 'Deepnest_East_18[top1]', 'Fungus3_39[left1]', 'Fungus1_34[door1]', 'Crossroads_04[left1]', 'Deepnest_East_08[right1]', 'Crossroads_12[left1]', 'Fungus1_09[left1]', 'Crossroads_16[right1]', 'Rescued_Deepnest_Zote', 'White_Palace_02[left1]', 'Fungus3_27[right1]', 'Ruins1_31b[right1]', 'Fungus2_14[bot3]', 'Crossroads_46[left1]', 'Town[bot1]', 'Deepnest_17[bot1]', 'Fungus2_04[right2]', 'Longnail', 'Deepnest_East_06[right1]', 'Fungus1_28[left2]', 'Fungus1_10[left1]', 'Mines_06[right1]', 'Deepnest_East_03[left2]', 'Fungus3_34', 'NOTCHES', 'Crossroads_42[left1]', 'Crossroads_07[right2]', 'Hive_03_c', 'Crossroads_01[top1]', 'Opened_Dung_Defender_Wall', 'Room_Ouiji[left1]', 'Lit_Abyss_Lighthouse', "Defeated_King's_Station_Arena", 'Opened_Emilitia_Door', 'Ruins1_23[bot1]', "Grubberfly's_Elegy", 'Fungus2_25[top2]', 'Fungus1_Slug[right1]', 'Mines_29[right2]', 'Hive_01[right2]', 'Ruins1_25[left1]', 'Ruins1_30[bot1]', 'Fungus1_11', 'Room_nailsmith[left1]', 'Fungus1_30[top3]', 'Crossroads_40[right1]', 'Fungus1_01[right1]', 'Fungus3_23[left1]', 'Deepnest_26[bot1]', 'Room_Colosseum_02[top2]', 'Waterways_04[left2]', 'Crossroads_19', 'Ruins1_05b[left1]', 'Fungus3_44[bot1]', 'RestingGrounds_02[bot1]', 'Fungus2_25[right1]', 'Ruins1_05b[right1]', 'Deepnest_43[left1]', 'Ruins2_04[right1]', 'Deepnest_East_07[bot1]', 'Fungus1_36[left1]', 'Abyss_02[right1]', 'Mines_30[right1]', 'Ruins1_05[bot1]', 'Crossroads_18[bot1]', 'CREST', 'Mines_19[left1]', 'Ruins1_18[right1]', 'Fungus1_35[right1]', 'Deepnest_44[top1]', 'Crossroads_39[left1]', 'Fungus1_25[right1]', 'Fragile_Heart', 'Deepnest_East_03[left1]', 'Ruins2_11_b[bot1]', 'Waterways_01[top1]', 'LOVE', 'White_Palace_03_hub[right1]', 'White_Palace_06[top1]', 'Palace_Left_Lantern_Lit', 'Fungus1_12[right1]', 'Ruins1_06[right1]', 'White_Palace_13[left1]', 'Ruins_Elevator[left2]', 'RestingGrounds_10[left1]', 'Ruins2_01_b[top1]', 'Fungus2_31[left1]', 'Defeated_Collector', 'Town[room_divine]', 'Abyss_19[right1]', 'Fungus2_19[left1]', 'Ruins2_10b[right1]', 'RestingGrounds_10[top2]', 'Mines_23[top1]', 'Crossroads_18', 'Deepnest_17[right1]', 'Waterways_07', 'Rescued_Sly', 'Fungus2_12[bot1]', 'Weaversong', 'Deepnest_East_Hornet[left1]', 'Spore_Shroom', 'RIGHTSLASH', 'Deepnest_East_16[left1]', 'Mines_37[top1]', 'Mines_04'} +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'} +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[right1]', 'Cliffs_02[bot2]', 'Mines_13[top1]', 'Mines_23[top1]', 'Deepnest_01[bot2]', 'Fungus2_25[top2]', 'RestingGrounds_02[top1]', 'Deepnest_East_07[bot2]', 'Deepnest_East_03[top2]', 'Mines_28[bot1]', 'Tutorial_01[top1]', 'Town[top1]', 'Mines_34[bot2]', 'Fungus2_30[bot1]', 'Mines_34[left1]', 'Deepnest_01b[top2]'} +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 = {'Mines_33', 'Fungus3_10', 'Hive_05', 'Fungus3_23', 'Crossroads_46b', 'Fungus2_11', 'Fungus1_05', 'Room_Bretta', 'Abyss_10', 'Mines_05', 'Fungus1_01b', 'Ruins2_Watcher_Room', 'Fungus3_05', 'Room_Colosseum_02', 'Mines_16', 'Ruins2_10b', 'Deepnest_East_08', 'Crossroads_39', 'Ruins2_03b', 'Crossroads_16', 'Room_Wyrm', 'Crossroads_11_alt', 'Room_Fungus_Shaman', 'Deepnest_16', 'Deepnest_East_10', 'Fungus3_26', 'Mines_17', 'Room_nailsmith', 'Crossroads_12', 'Deepnest_44', 'Abyss_22', 'Ruins1_31', 'Ruins1_06', 'Fungus3_21', 'RestingGrounds_08', 'White_Palace_01', 'Deepnest_35', 'Ruins1_28', 'Ruins_House_02', 'Crossroads_40', 'Deepnest_01b', 'Fungus1_19', 'Fungus1_22', 'White_Palace_13', 'Fungus2_18', 'Fungus1_06', 'Cliffs_05', 'Ruins1_05b', 'Deepnest_36', 'Crossroads_05', 'Crossroads_09', 'Crossroads_45', 'Hive_03', 'Mines_31', 'Waterways_06', 'Fungus2_03', 'Fungus1_13', 'Deepnest_42', 'Ruins1_03', 'Fungus1_12', 'Deepnest_26b', 'Fungus1_04', 'White_Palace_11', 'Waterways_04', 'Grimm_Main_Tent', 'White_Palace_18', 'Fungus1_34', 'White_Palace_06', 'Room_Colosseum_Spectate', 'Deepnest_East_03', 'Fungus1_08', 'Mines_10', 'Deepnest_East_02', 'Fungus1_15', 'Fungus1_17', 'Crossroads_06', 'Fungus2_19', 'Fungus2_05', 'Waterways_13', 'Ruins1_23', 'Ruins1_32', 'Fungus3_archive', 'RestingGrounds_09', 'Ruins_House_03', 'White_Palace_15', 'Fungus1_25', 'Deepnest_02', 'Crossroads_07', 'Crossroads_49b', 'RestingGrounds_07', 'Cliffs_04', 'Fungus2_28', 'GG_Lurker', 'Fungus2_29', 'Fungus1_03', 'Fungus1_29', 'Crossroads_48', 'Fungus3_39', 'Abyss_03_b', 'Crossroads_37', 'Cliffs_02', 'White_Palace_04', 'Waterways_12', 'Mines_06', 'Room_spider_small', 'Fungus2_09', 'Fungus1_21', 'Mines_30', 'White_Palace_02', 'Room_mapper', 'Mines_13', 'Fungus1_16_alt', 'Crossroads_42', 'Deepnest_East_09', 'Room_Mansion', 'Deepnest_30', 'Fungus2_23', 'Room_Charm_Shop', 'Mines_32', 'Fungus2_12', 'Deepnest_03', 'Abyss_03_c', 'Waterways_14', 'White_Palace_03_hub', 'Mines_29', 'Fungus3_13', 'Fungus1_14', 'Fungus2_04', 'Deepnest_East_11', 'Tutorial_01', 'Ruins2_06', 'Fungus3_47', 'Fungus2_06', 'Deepnest_East_16', 'Fungus3_40', 'RestingGrounds_17', 'Fungus1_24', 'Crossroads_04', 'Crossroads_08', 'Crossroads_13', 'Crossroads_03', 'Fungus2_13', 'Ruins2_05', 'Fungus2_17', 'Deepnest_32', 'Fungus3_49', 'White_Palace_05', 'Room_temple', 'Crossroads_22', 'Ruins2_11_b', 'Fungus2_21', 'Ruins1_01', 'Fungus3_27', 'Ruins1_17', 'Crossroads_47', 'Mines_19', 'Room_Mask_Maker', 'Room_nailmaster_03', 'Ruins1_30', 'Crossroads_27', 'Room_Town_Stag_Station', 'Fungus2_08', 'Crossroads_10', 'Ruins_Bathhouse', 'Fungus1_26', 'Fungus1_23', 'Fungus2_02', 'Fungus1_30', 'RestingGrounds_10', 'Fungus3_28', 'Deepnest_10', 'Fungus2_20', 'Fungus3_50', 'Waterways_02', 'Mines_03', 'Crossroads_25', 'Fungus1_35', 'White_Palace_19', 'Deepnest_33', 'Deepnest_17', 'Fungus1_01', 'Waterways_05', 'Room_Slug_Shrine', 'GG_Pipeway', 'Ruins1_05', 'Deepnest_East_Hornet', 'Mines_24', 'Fungus2_30', 'White_Palace_17', 'Fungus1_07', 'Crossroads_ShamanTemple', 'Ruins1_18', 'Waterways_01', 'Deepnest_14', 'Fungus2_31', 'Ruins1_27', 'Ruins_House_01', 'Crossroads_14', 'Hive_01', 'Fungus2_07', 'Fungus3_35', 'Ruins2_11', 'Mines_23', 'Fungus2_14', 'Deepnest_31', 'Abyss_12', 'Room_Ouiji', 'Fungus2_33', 'Hive_04', 'Fungus1_37', 'Abyss_06_Core', 'Deepnest_26', 'Deepnest_41', 'Mines_35', 'Deepnest_East_01', 'Abyss_08', 'Ruins2_07', 'Fungus3_03', 'Fungus3_08', 'Deepnest_01', 'Room_shop', 'Deepnest_38', 'Abyss_03', 'Fungus3_24', 'Deepnest_East_06', 'Deepnest_East_14', 'RestingGrounds_04', 'Room_nailmaster_02', 'Fungus1_36', 'Fungus3_22', 'Abyss_15', 'RestingGrounds_05', 'Abyss_19', 'Deepnest_East_14b', 'Fungus1_32', 'Fungus2_15', 'White_Palace_20', 'Waterways_03', 'Fungus3_02', 'Ruins2_09', 'Deepnest_East_07', 'Fungus3_25b', 'Mines_02', 'Crossroads_35', 'Fungus1_Slug', 'Deepnest_45_v02', 'Abyss_09', 'Ruins1_05c', 'Fungus3_archive_02', 'Deepnest_Spider_Town', 'Cliffs_03', 'Room_GG_Shortcut', 'Ruins2_04', 'Crossroads_52', 'Deepnest_East_17', 'Crossroads_50', 'Abyss_04', 'White_Palace_09', 'Ruins2_03', 'Fungus1_09', 'Room_nailmaster', 'Deepnest_37', 'Mines_25', 'Ruins2_10', 'Ruins2_08', 'Mines_36', 'Deepnest_40', 'Ruins_Elevator', 'Fungus3_44', 'Crossroads_33', 'RestingGrounds_02', 'Crossroads_01', 'White_Palace_07', 'Ruins2_01', 'Fungus3_01', 'Ruins1_25', 'Abyss_Lighthouse_room', 'Cliffs_01', 'Fungus3_04', 'Mines_20', 'Ruins1_29', 'Ruins1_02', 'Crossroads_43', 'Fungus2_34', 'Mines_11', 'Mines_07', 'Ruins1_04', 'Ruins1_09', 'Room_Mender_House', 'Crossroads_38', 'RestingGrounds_06', 'Ruins2_01_b', 'GG_Waterways', 'Town', 'Start', 'Fungus2_26', 'RestingGrounds_12', 'Waterways_04b', 'Abyss_05', 'Mines_28', 'Deepnest_East_15', 'Room_ruinhouse', 'Abyss_18', 'Waterways_15', 'Deepnest_East_18', 'Abyss_02', 'Deepnest_39', 'Deepnest_East_04', 'Mines_01', 'Fungus1_20_v02', 'Ruins1_24', 'Crossroads_21', 'Abyss_16', 'Cliffs_06', 'Crossroads_02', 'Grimm_Divine', 'Fungus1_28', 'Fungus3_11', 'Fungus3_25', 'Mines_37', 'Unknown', 'Crossroads_30', 'Crossroads_31', 'Room_Queen', 'Waterways_09', 'Mines_18', 'Fungus3_30', 'Deepnest_43', 'Fungus3_34', 'Hive_03_c', 'Abyss_01', 'Crossroads_46', 'Abyss_21', 'Fungus2_25', 'Fungus1_11', 'Crossroads_36', 'Crossroads_19', 'Hive_02', 'Deepnest_09', 'White_Palace_16', 'Deepnest_34', 'Fungus1_10', 'Waterways_08', 'Ruins1_31b', 'Abyss_17', 'Room_Colosseum_01', 'Deepnest_East_13', 'Mines_34', 'Fungus1_31', 'Fungus1_02', 'White_Palace_14', 'Fungus2_01', 'White_Palace_12', 'Abyss_20', 'White_Palace_08', 'Crossroads_15', 'Fungus2_10', 'Crossroads_18', 'Crossroads_49', 'Waterways_07', 'Fungus2_32', 'Fungus3_48', 'Deepnest_East_12', 'Mines_04'} +starts = {"king's_pass": 'Tutorial_01'} diff --git a/worlds/hk/Extractor.py b/worlds/hk/Extractor.py new file mode 100644 index 00000000..4f099000 --- /dev/null +++ b/worlds/hk/Extractor.py @@ -0,0 +1,377 @@ +""" +Logic Extractor designed for "Randomizer 4". +Place a Randomizer 4 compatible "Resources" folder next to this script, then run the script, to create AP data. +""" +import os +import json +import typing +import ast + +import jinja2 + +try: + from ast import unparse +except ImportError: + # Py 3.8 and earlier compatibility module + from astunparse import unparse + +from Utils import get_text_between + + +def put_digits_at_end(text: str) -> str: + for x in range(len(text)): + if text[0].isdigit(): + text = text[1:] + text[0] + else: + break + return text + + +def hk_loads(file: str) -> typing.Any: + with open(file) as f: + data = f.read() + new_data = [] + for row in data.split("\n"): + if not row.strip().startswith(r"//"): + new_data.append(row) + return json.loads("\n".join(new_data)) + + +def hk_convert(text: str) -> str: + parts = text.replace("(", "( ").replace(")", " )").replace(">", " > ").replace("=", "==").split() + new_parts = [] + for part in parts: + part = put_digits_at_end(part) + + if part in items or part in effect_names or part in event_names or part in connectors: + new_parts.append(f"\"{part}\"") + else: + new_parts.append(part) + text = " ".join(new_parts) + result = "" + parts = text.split("$StartLocation[") + for i, part in enumerate(parts[:-1]): + result += part + "StartLocation[\"" + parts[i+1] = parts[i+1].replace("]", "\"]", 1) + + text = result + parts[-1] + + result = "" + parts = text.split("COMBAT[") + for i, part in enumerate(parts[:-1]): + result += part + "COMBAT[\"" + parts[i+1] = parts[i+1].replace("]", "\"]", 1) + + text = result + parts[-1] + return text.replace("+", "and").replace("|", "or").replace("$", "").strip() + + +class Absorber(ast.NodeTransformer): + additional_truths = set() + additional_falses = set() + + def __init__(self, truth_values, false_values): + self.truth_values = truth_values + self.truth_values |= {"True", "None", "ANY", "ITEMRANDO"} + self.false_values = false_values + self.false_values |= {"False", "NONE", "RANDOMELEVATORS"} + + super(Absorber, self).__init__() + + def generic_visit(self, node: ast.AST) -> ast.AST: + # Need to call super() in any case to visit child nodes of the current one. + node = super().generic_visit(node) + return node + + def visit_BoolOp(self, node: ast.BoolOp) -> ast.AST: + if type(node.op) == ast.And: + if self.is_always_true(node.values[0]): + return self.visit(node.values[1]) + if self.is_always_true(node.values[1]): + return self.visit(node.values[0]) + if self.is_always_false(node.values[0]) or self.is_always_false(node.values[1]): + return ast.Constant(False, ctx=ast.Load()) + elif type(node.op) == ast.Or: + if self.is_always_true(node.values[0]) or self.is_always_true(node.values[1]): + return ast.Constant(True, ctx=ast.Load()) + if self.is_always_false(node.values[0]): + return self.visit(node.values[1]) + if self.is_always_false(node.values[1]): + return self.visit(node.values[0]) + return self.generic_visit(node) + + def visit_Name(self, node: ast.Name) -> ast.AST: + if node.id in self.truth_values: + return ast.Constant(True, ctx=node.ctx) + if node.id in self.false_values: + return ast.Constant(False, ctx=node.ctx) + if node.id in logic_options: + return ast.Call( + func=ast.Attribute(value=ast.Name(id='state', ctx=ast.Load()), attr='_kh_option', ctx=ast.Load()), + args=[ast.Name(id="player", ctx=ast.Load()), ast.Constant(value=logic_options[node.id])], keywords=[]) + if node.id in macros: + return macros[node.id].body + if node.id in region_names: + raise Exception(f"Should be event {node.id}") + # You'd think this means reach Scene/Region of that name, but is actually waypoint/event + # if node.id in region_names: + # return ast.Call( + # func=ast.Attribute(value=ast.Name(id='state', ctx=ast.Load()), attr='can_reach', ctx=ast.Load()), + # args=[ast.Constant(value=node.id), + # ast.Constant(value="Region"), + # ast.Name(id="player", ctx=ast.Load())], + # keywords=[]) + return self.generic_visit(node) + + def visit_Constant(self, node: ast.Constant) -> ast.AST: + if type(node.value) == str: + logic_items.add(node.value) + return ast.Call( + func=ast.Attribute(value=ast.Name(id='state', ctx=ast.Load()), attr='count', ctx=ast.Load()), + args=[ast.Constant(value=node.value), ast.Name(id="player", ctx=ast.Load())], keywords=[]) + + return node + + def visit_Subscript(self, node: ast.Subscript) -> ast.AST: + if node.value.id == "NotchCost": + notches = [ast.Constant(value=notch.value - 1) for notch in node.slice.elts] # apparently 1-indexed + return ast.Call( + func=ast.Attribute(value=ast.Name(id='state', ctx=ast.Load()), attr='_hk_notches', ctx=ast.Load()), + args=[ast.Name(id="player", ctx=ast.Load())] + notches, keywords=[]) + elif node.value.id == "StartLocation": + node.slice.value = node.slice.value.replace(" ", "_").lower() + if node.slice.value in removed_starts: + return ast.Constant(False, ctx=node.ctx) + return ast.Call( + func=ast.Attribute(value=ast.Name(id='state', ctx=ast.Load()), attr='_kh_start', ctx=ast.Load()), + args=[ast.Name(id="player", ctx=ast.Load()), node.slice], keywords=[]) + elif node.value.id == "COMBAT": + return macros[unparse(node)].body + else: + name = unparse(node) + if name in self.additional_truths: + return ast.Constant(True, ctx=ast.Load()) + elif name in self.additional_falses: + return ast.Constant(False, ctx=ast.Load()) + elif name in macros: + # macro such as "COMBAT[White_Palace_Arenas]" + return macros[name].body + else: + # assume Entrance + entrance = unparse(node) + assert entrance in connectors, entrance + return ast.Call( + func=ast.Attribute(value=ast.Name(id='state', ctx=ast.Load()), attr='can_reach', ctx=ast.Load()), + args=[ast.Constant(value=entrance), + ast.Constant(value="Entrance"), + ast.Name(id="player", ctx=ast.Load())], + keywords=[]) + return node + + def is_always_true(self, node): + if isinstance(node, ast.Name) and (node.id in self.truth_values or node.id in self.additional_truths): + return True + if isinstance(node, ast.Subscript) and unparse(node) in self.additional_truths: + return True + + def is_always_false(self, node): + if isinstance(node, ast.Name) and (node.id in self.false_values or node.id in self.additional_falses): + return True + if isinstance(node, ast.Subscript) and unparse(node) in self.additional_falses: + return True + + +def get_parser(truths: typing.Set[str] = frozenset(), falses: typing.Set[str] = frozenset()): + return Absorber(truths, falses) + + +def ast_parse(parser, rule_text, truths: typing.Set[str] = frozenset(), falses: typing.Set[str] = frozenset()): + tree = ast.parse(hk_convert(rule_text), mode='eval') + parser.additional_truths = truths + parser.additional_falses = falses + new_tree = parser.visit(tree) + parser.additional_truths = set() + parser.additional_truths = set() + return new_tree + + +world_folder = os.path.dirname(__file__) + +resources_source = os.path.join(world_folder, "Resources") +data_folder = os.path.join(resources_source, "Data") +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"]) +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: + if option["Path"] != "False": + items: typing.List[str] = [] + locations: typing.List[str] = [] + 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)" + locations.append(location_name) + if option["Path"]: + # basename carries over from prior entry if no Path given + basename = option["Path"].split(".", 1)[-1] + if not basename.startswith("Randomize"): + basename = "Randomize" + basename + assert len(items) == len(locations) + if items: # skip empty pools + if basename in pool_options: + pool_options[basename] = pool_options[basename][0]+items, pool_options[basename][1]+locations + else: + pool_options[basename] = items, locations +del extra_pool_options + +# items +items: typing.Dict[str, typing.Dict] = hk_loads(os.path.join(data_folder, "items.json")) +logic_items: typing.Set[str] = set() +for item_name in sorted(items): + item = items[item_name] + items[item_name] = item["Pool"] +items: typing.Dict[str, str] + +extra_item_data: typing.List[typing.Dict[str, typing.Any]] = hk_loads(os.path.join(logic_folder, "items.json")) +item_effects: typing.Dict[str, typing.Dict[str, int]] = {} +effect_names: typing.Set[str] = set() +for item_data in extra_item_data: + if "FalseItem" in item_data: + item_data = item_data["FalseItem"] + effects = [] + if "Effect" in item_data: + effects = [item_data["Effect"]] + elif "Effects" in item_data: + effects = item_data["Effects"] + for effect in effects: + effect_names.add(effect["Term"]) + effects = {effect["Term"]: effect["Value"] for effect in effects if + effect["Term"] != item_data["Name"] and effect["Term"] != "GEO"} + if effects: + item_effects[item_data["Name"]] = effects + +del extra_item_data + +# locations +original_locations: typing.Dict[str, typing.Dict[str, typing.Any]] = hk_loads(os.path.join(data_folder, "locations.json")) +del(original_locations["Start"]) # Starting Inventory works different in AP + +locations: typing.List[str] = [] +locations_in_regions: typing.Dict[str, typing.List[str]] = {} +location_to_region_lookup: typing.Dict[str, str] = {} +multi_locations: typing.Dict[str, typing.List[str]] = {} +for location_name, location_data in original_locations.items(): + region_name = location_data["SceneName"] + if location_data["FlexibleCount"]: + location_names = [f"{location_name}_{count}" for count in range(1, 17)] + multi_locations[location_name] = location_names + else: + location_names = [location_name] + + location_to_region_lookup.update({name: region_name for name in location_names}) + locations_in_regions.setdefault(region_name, []).extend(location_names) + locations.extend(location_names) +del original_locations + +# regions +region_names: typing.Set[str] = set(hk_loads(os.path.join(data_folder, "rooms.json"))) +connectors_data: typing.Dict[str, typing.Dict[str, typing.Any]] = hk_loads(os.path.join(data_folder, "transitions.json")) +connectors_logic: typing.List[typing.Dict[str, typing.Any]] = hk_loads(os.path.join(logic_folder, "transitions.json")) +exits: typing.Dict[str, typing.List[str]] = {} +connectors: typing.Dict[str, str] = {} +one_ways: typing.Set[str] = set() +for connector_name, connector_data in connectors_data.items(): + exits.setdefault(connector_data["SceneName"], []).append(connector_name) + connectors[connector_name] = connector_data["VanillaTarget"] + if connector_data["Sides"] != "Both": + one_ways.add(connector_name) +del connectors_data + +# starts +starts: typing.Dict[str, typing.Dict[str, typing.Any]] = hk_loads(os.path.join(data_folder, "starts.json")) + +# only allow always valid starts for now +removed_starts: typing.Set[str] = {name.replace(" ", "_").lower() for name, data in starts.items() if + name != "King's Pass"} + +starts: typing.Dict[str, str] = { + name.replace(" ", "_").lower(): data["sceneName"] for name, data in starts.items() if name == "King's Pass"} + +# logic +falses = {"MAPAREARANDO", "FULLAREARANDO"} +macros: typing.Dict[str, ast.AST] = { +} +parser = get_parser(set(), falses) +extra_macros: typing.Dict[str, str] = hk_loads(os.path.join(logic_folder, "macros.json")) +raw_location_rules: typing.List[typing.Dict[str, str]] = hk_loads(os.path.join(logic_folder, "locations.json")) +events: typing.List[typing.Dict[str, typing.Any]] = hk_loads(os.path.join(logic_folder, "waypoints.json")) + +event_names: typing.Set[str] = {event["name"] for event in events} + +for macro_name, rule in extra_macros.items(): + if macro_name not in macros: + macro_name = put_digits_at_end(macro_name) + if macro_name in items or macro_name in effect_names: + continue + assert macro_name not in events + rule = ast_parse(parser, rule) + macros[macro_name] = rule + if macro_name.startswith("COMBAT["): + name = get_text_between(macro_name, "COMBAT[", "]") + if not "'" in name: + macros[f"COMBAT['{name}']"] = rule + macros[f'COMBAT["{name}"]'] = rule + +location_rules: typing.Dict[str, str] = {} +for loc_obj in raw_location_rules: + loc_name = loc_obj["name"] + rule = loc_obj["logic"] + if rule != "ANY": + rule = ast_parse(parser, rule) + location_rules[loc_name] = unparse(rule) +location_rules["Salubra_(Requires_Charms)"] = location_rules["Salubra"] + +connectors_rules: typing.Dict[str, str] = {} +for connector_obj in connectors_logic: + name = connector_obj["Name"] + rule = connector_obj["logic"] + rule = ast_parse(parser, rule) + rule = unparse(rule) + if rule != "True": + connectors_rules[name] = rule + +event_rules: typing.Dict[str, str] = {} +for event in events: + rule = ast_parse(parser, event["logic"]) + rule = unparse(rule) + if rule != "True": + event_rules[event["name"]] = rule + + +event_rules.update(connectors_rules) +connectors_rules = {} + +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"}) +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) + for name in names: + py.write(f"{name} = {globals()[name]}\n") + + +template_env: jinja2.Environment = \ + jinja2.Environment(loader=jinja2.FileSystemLoader([os.path.join(os.path.dirname(__file__), "templates")])) +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: + py.write(warning) + py.write(rules) diff --git a/worlds/hk/Items.py b/worlds/hk/Items.py index 51a3605d..3c2273d2 100644 --- a/worlds/hk/Items.py +++ b/worlds/hk/Items.py @@ -1,397 +1,20 @@ -# generated by https://github.com/Berserker66/HollowKnight.RandomizerMod/blob/master/extract_data.py -# do not edit manually +from typing import Dict, Set, NamedTuple +from .ExtractedData import items, logic_items, item_effects -from .Types import HKItemData -from typing import Dict, Set +item_table = {} -item_table = \ -{ '150_Geo-Resting_Grounds_Chest': HKItemData(advancement=False, id=16777336, type='Geo'), - '160_Geo-Weavers_Den_Chest': HKItemData(advancement=False, id=16777338, type='Geo'), - '1_Geo': HKItemData(advancement=False, id=16777339, type='Fake'), - '200_Geo-False_Knight_Chest': HKItemData(advancement=False, id=16777331, type='Geo'), - '380_Geo-Soul_Master_Chest': HKItemData(advancement=False, id=16777332, type='Geo'), - '620_Geo-Mantis_Lords_Chest': HKItemData(advancement=False, id=16777335, type='Geo'), - '655_Geo-Watcher_Knights_Chest': HKItemData(advancement=False, id=16777333, type='Geo'), - '80_Geo-Crystal_Peak_Chest': HKItemData(advancement=False, id=16777337, type='Geo'), - '85_Geo-Greenpath_Chest': HKItemData(advancement=False, id=16777334, type='Geo'), - 'Abyss': HKItemData(advancement=True, id=0, type='Event'), - 'Abyss_Shriek': HKItemData(advancement=True, id=16777236, type='Skill'), - 'Ancestral_Mound': HKItemData(advancement=True, id=0, type='Event'), - 'Ancient_Basin_Map': HKItemData(advancement=False, id=16777482, type='Map'), - 'Arcane_Egg-Birthplace': HKItemData(advancement=False, id=16777402, type='Relic'), - 'Arcane_Egg-Lifeblood_Core': HKItemData(advancement=False, id=16777400, type='Relic'), - 'Arcane_Egg-Seer': HKItemData(advancement=False, id=16777399, type='Relic'), - 'Arcane_Egg-Shade_Cloak': HKItemData(advancement=False, id=16777401, type='Relic'), - 'Awoken_Dream_Nail': HKItemData(advancement=True, id=16777230, type='Skill'), - 'Baldur_Shell': HKItemData(advancement=False, id=16777245, type='Charm'), - "Beast's_Den": HKItemData(advancement=True, id=0, type='Event'), - 'Blue_Lake': HKItemData(advancement=True, id=0, type='Event'), - 'Boss_Essence-Elder_Hu': HKItemData(advancement=True, id=16777418, type='Essence_Boss'), - 'Boss_Essence-Failed_Champion': HKItemData(advancement=True, id=16777425, type='Essence_Boss'), - 'Boss_Essence-Galien': HKItemData(advancement=True, id=16777423, type='Essence_Boss'), - 'Boss_Essence-Gorb': HKItemData(advancement=True, id=16777420, type='Essence_Boss'), - 'Boss_Essence-Grey_Prince_Zote': HKItemData(advancement=True, id=16777429, type='Essence_Boss'), - 'Boss_Essence-Lost_Kin': HKItemData(advancement=True, id=16777427, type='Essence_Boss'), - 'Boss_Essence-Markoth': HKItemData(advancement=True, id=16777424, type='Essence_Boss'), - 'Boss_Essence-Marmu': HKItemData(advancement=True, id=16777421, type='Essence_Boss'), - 'Boss_Essence-No_Eyes': HKItemData(advancement=True, id=16777422, type='Essence_Boss'), - 'Boss_Essence-Soul_Tyrant': HKItemData(advancement=True, id=16777426, type='Essence_Boss'), - 'Boss_Essence-White_Defender': HKItemData(advancement=True, id=16777428, type='Essence_Boss'), - 'Boss_Essence-Xero': HKItemData(advancement=True, id=16777419, type='Essence_Boss'), - 'Bottom_Left_Fungal_Wastes': HKItemData(advancement=True, id=0, type='Event'), - "Bottom_Left_Queen's_Gardens": HKItemData(advancement=True, id=0, type='Event'), - "Bottom_Right_Queen's_Gardens": HKItemData(advancement=True, id=0, type='Event'), - 'Can_Stag': HKItemData(advancement=True, id=0, type='Event'), - 'Cast_Off_Shell': HKItemData(advancement=True, id=0, type='Event'), - "Center_Right_Kingdom's_Edge": HKItemData(advancement=True, id=0, type='Event'), - "Central_Kingdom's_Edge": HKItemData(advancement=True, id=0, type='Event'), - 'Central_Left_Waterways': HKItemData(advancement=True, id=0, type='Event'), - 'Charm_Notch-Colosseum': HKItemData(advancement=False, id=16777323, type='Notch'), - 'Charm_Notch-Fog_Canyon': HKItemData(advancement=False, id=16777322, type='Notch'), - 'Charm_Notch-Grimm': HKItemData(advancement=False, id=16777324, type='Notch'), - 'Charm_Notch-Shrumal_Ogres': HKItemData(advancement=False, id=16777321, type='Notch'), - 'City_Crest': HKItemData(advancement=True, id=16777283, type='Key'), - 'City_Storerooms_Stag': HKItemData(advancement=True, id=16777495, type='Stag'), - 'City_of_Tears_Map': HKItemData(advancement=False, id=16777484, type='Map'), - "Collector's_Map": HKItemData(advancement=False, id=16777295, type='Key'), - 'Colosseum': HKItemData(advancement=True, id=0, type='Event'), - 'Crossroads': HKItemData(advancement=True, id=0, type='Event'), - 'Crossroads_Map': HKItemData(advancement=False, id=16777476, type='Map'), - 'Crossroads_Stag': HKItemData(advancement=True, id=16777491, type='Stag'), - 'Crystal_Heart': HKItemData(advancement=True, id=16777224, type='Skill'), - 'Crystal_Peak': HKItemData(advancement=True, id=0, type='Event'), - 'Crystal_Peak_Map': HKItemData(advancement=False, id=16777487, type='Map'), - 'Crystallized_Mound': HKItemData(advancement=True, id=0, type='Event'), - 'Cyclone_Slash': HKItemData(advancement=True, id=16777237, type='Skill'), - 'Dark_Deepnest': HKItemData(advancement=True, id=0, type='Event'), - 'Dash_Slash': HKItemData(advancement=True, id=16777238, type='Skill'), - 'Dashmaster': HKItemData(advancement=True, id=16777271, type='Charm'), - 'Deep_Focus': HKItemData(advancement=False, id=16777274, type='Charm'), - 'Deepnest': HKItemData(advancement=True, id=0, type='Event'), - 'Deepnest_Map-Right_[Gives_Quill]': HKItemData(advancement=False, id=16777481, type='Map'), - 'Deepnest_Map-Upper': HKItemData(advancement=False, id=16777480, type='Map'), - "Defender's_Crest": HKItemData(advancement=False, id=16777250, type='Charm'), - 'Descending_Dark': HKItemData(advancement=True, id=16777234, type='Skill'), - 'Desolate_Dive': HKItemData(advancement=True, id=16777233, type='Skill'), - 'Dirtmouth': HKItemData(advancement=True, id=0, type='Event'), - 'Dirtmouth_Stag': HKItemData(advancement=True, id=16777490, type='Stag'), - 'Distant_Village': HKItemData(advancement=True, id=0, type='Event'), - 'Distant_Village_Stag': HKItemData(advancement=True, id=16777498, type='Stag'), - 'Dream_Gate': HKItemData(advancement=True, id=16777229, type='Skill'), - 'Dream_Nail': HKItemData(advancement=True, id=16777228, type='Skill'), - 'Dream_Wielder': HKItemData(advancement=False, id=16777270, type='Charm'), - 'Dreamer': HKItemData(advancement=True, id=16777221, type='Fake'), - 'Dreamshield': HKItemData(advancement=False, id=16777280, type='Charm'), - 'Elegant_Key': HKItemData(advancement=True, id=16777291, type='Key'), - 'Emilitia': HKItemData(advancement=True, id=0, type='Event'), - 'Equipped': HKItemData(advancement=False, id=16777521, type='Fake'), - 'Failed_Tramway': HKItemData(advancement=True, id=0, type='Event'), - 'Far_Left_Basin': HKItemData(advancement=True, id=0, type='Event'), - 'Far_Left_Waterways': HKItemData(advancement=True, id=0, type='Event'), - "Far_Queen's_Gardens": HKItemData(advancement=True, id=0, type='Event'), - 'Far_Right_Deepnest': HKItemData(advancement=True, id=0, type='Event'), - 'Flukenest': HKItemData(advancement=False, id=16777251, type='Charm'), - 'Focus': HKItemData(advancement=True, id=16777240, type='Cursed'), - 'Fog_Canyon_Map': HKItemData(advancement=False, id=16777478, type='Map'), - 'Fragile_Greed': HKItemData(advancement=False, id=16777264, type='Charm'), - 'Fragile_Heart': HKItemData(advancement=False, id=16777263, type='Charm'), - 'Fragile_Strength': HKItemData(advancement=False, id=16777265, type='Charm'), - 'Fungal_Core': HKItemData(advancement=True, id=0, type='Event'), - 'Fungal_Wastes': HKItemData(advancement=True, id=0, type='Event'), - 'Fungal_Wastes_Map': HKItemData(advancement=False, id=16777479, type='Map'), - 'Fury_of_the_Fallen': HKItemData(advancement=False, id=16777246, type='Charm'), - 'Gathering_Swarm': HKItemData(advancement=False, id=16777241, type='Charm'), - 'Glowing_Womb': HKItemData(advancement=True, id=16777262, type='Charm'), - 'Godtuner': HKItemData(advancement=False, id=16777294, type='Key'), - 'Great_Slash': HKItemData(advancement=True, id=16777239, type='Skill'), - 'Greenpath': HKItemData(advancement=True, id=0, type='Event'), - 'Greenpath-QG': HKItemData(advancement=True, id=0, type='Event'), - 'Greenpath_Map': HKItemData(advancement=False, id=16777477, type='Map'), - 'Greenpath_Stag': HKItemData(advancement=True, id=16777492, type='Stag'), - 'Grimmchild': HKItemData(advancement=True, id=16777282, type='Charm'), - 'Grimmkin_Flame-Ancient_Basin': HKItemData(advancement=True, id=16777516, type='Flame'), - 'Grimmkin_Flame-Brumm': HKItemData(advancement=True, id=16777518, type='Flame'), - 'Grimmkin_Flame-City_Storerooms': HKItemData(advancement=True, id=16777509, type='Flame'), - 'Grimmkin_Flame-Crystal_Peak': HKItemData(advancement=True, id=16777511, type='Flame'), - 'Grimmkin_Flame-Fungal_Core': HKItemData(advancement=True, id=16777515, type='Flame'), - 'Grimmkin_Flame-Greenpath': HKItemData(advancement=True, id=16777510, type='Flame'), - 'Grimmkin_Flame-Hive': HKItemData(advancement=True, id=16777517, type='Flame'), - "Grimmkin_Flame-King's_Pass": HKItemData(advancement=True, id=16777512, type='Flame'), - "Grimmkin_Flame-Kingdom's_Edge": HKItemData(advancement=True, id=16777514, type='Flame'), - 'Grimmkin_Flame-Resting_Grounds': HKItemData(advancement=True, id=16777513, type='Flame'), - 'Grub-Basin_Requires_Dive': HKItemData(advancement=True, id=16777452, type='Grub'), - 'Grub-Basin_Requires_Wings': HKItemData(advancement=True, id=16777451, type='Grub'), - "Grub-Beast's_Den": HKItemData(advancement=True, id=16777446, type='Grub'), - 'Grub-City_of_Tears_Guarded': HKItemData(advancement=True, id=16777459, type='Grub'), - 'Grub-City_of_Tears_Left': HKItemData(advancement=True, id=16777456, type='Grub'), - 'Grub-Collector_1': HKItemData(advancement=True, id=16777473, type='Grub'), - 'Grub-Collector_2': HKItemData(advancement=True, id=16777474, type='Grub'), - 'Grub-Collector_3': HKItemData(advancement=True, id=16777475, type='Grub'), - 'Grub-Crossroads_Acid': HKItemData(advancement=True, id=16777430, type='Grub'), - 'Grub-Crossroads_Center': HKItemData(advancement=True, id=16777431, type='Grub'), - 'Grub-Crossroads_Guarded': HKItemData(advancement=True, id=16777434, type='Grub'), - 'Grub-Crossroads_Spike': HKItemData(advancement=True, id=16777433, type='Grub'), - 'Grub-Crossroads_Stag': HKItemData(advancement=True, id=16777432, type='Grub'), - 'Grub-Crystal_Heart': HKItemData(advancement=True, id=16777467, type='Grub'), - 'Grub-Crystal_Peak_Below_Chest': HKItemData(advancement=True, id=16777462, type='Grub'), - 'Grub-Crystal_Peak_Crushers': HKItemData(advancement=True, id=16777466, type='Grub'), - 'Grub-Crystal_Peak_Mimic': HKItemData(advancement=True, id=16777465, type='Grub'), - 'Grub-Crystal_Peak_Spike': HKItemData(advancement=True, id=16777464, type='Grub'), - 'Grub-Crystallized_Mound': HKItemData(advancement=True, id=16777463, type='Grub'), - 'Grub-Dark_Deepnest': HKItemData(advancement=True, id=16777445, type='Grub'), - 'Grub-Deepnest_Mimic': HKItemData(advancement=True, id=16777442, type='Grub'), - 'Grub-Deepnest_Nosk': HKItemData(advancement=True, id=16777443, type='Grub'), - 'Grub-Deepnest_Spike': HKItemData(advancement=True, id=16777444, type='Grub'), - 'Grub-Fog_Canyon': HKItemData(advancement=True, id=16777439, type='Grub'), - 'Grub-Fungal_Bouncy': HKItemData(advancement=True, id=16777440, type='Grub'), - 'Grub-Fungal_Spore_Shroom': HKItemData(advancement=True, id=16777441, type='Grub'), - 'Grub-Greenpath_Cornifer': HKItemData(advancement=True, id=16777435, type='Grub'), - 'Grub-Greenpath_Journal': HKItemData(advancement=True, id=16777436, type='Grub'), - 'Grub-Greenpath_MMC': HKItemData(advancement=True, id=16777437, type='Grub'), - 'Grub-Greenpath_Stag': HKItemData(advancement=True, id=16777438, type='Grub'), - 'Grub-Hallownest_Crown': HKItemData(advancement=True, id=16777468, type='Grub'), - 'Grub-Hive_External': HKItemData(advancement=True, id=16777449, type='Grub'), - 'Grub-Hive_Internal': HKItemData(advancement=True, id=16777450, type='Grub'), - 'Grub-Howling_Cliffs': HKItemData(advancement=True, id=16777469, type='Grub'), - "Grub-King's_Station": HKItemData(advancement=True, id=16777460, type='Grub'), - "Grub-Kingdom's_Edge_Camp": HKItemData(advancement=True, id=16777448, type='Grub'), - "Grub-Kingdom's_Edge_Oro": HKItemData(advancement=True, id=16777447, type='Grub'), - "Grub-Queen's_Gardens_Marmu": HKItemData(advancement=True, id=16777471, type='Grub'), - "Grub-Queen's_Gardens_Stag": HKItemData(advancement=True, id=16777470, type='Grub'), - "Grub-Queen's_Gardens_Top": HKItemData(advancement=True, id=16777472, type='Grub'), - 'Grub-Resting_Grounds': HKItemData(advancement=True, id=16777461, type='Grub'), - 'Grub-Soul_Sanctum': HKItemData(advancement=True, id=16777457, type='Grub'), - "Grub-Watcher's_Spire": HKItemData(advancement=True, id=16777458, type='Grub'), - 'Grub-Waterways_East': HKItemData(advancement=True, id=16777454, type='Grub'), - 'Grub-Waterways_Main': HKItemData(advancement=True, id=16777453, type='Grub'), - 'Grub-Waterways_Requires_Tram': HKItemData(advancement=True, id=16777455, type='Grub'), - "Grubberfly's_Elegy": HKItemData(advancement=True, id=16777275, type='Charm'), - 'Grubfather': HKItemData(advancement=False, id=16777519, type='Fake'), - 'Grubsong': HKItemData(advancement=False, id=16777243, type='Charm'), - "Hallownest's_Crown": HKItemData(advancement=True, id=0, type='Event'), - "Hallownest_Seal-Beast's_Den": HKItemData(advancement=False, id=16777389, type='Relic'), - 'Hallownest_Seal-City_Rafters': HKItemData(advancement=False, id=16777385, type='Relic'), - 'Hallownest_Seal-Crossroads_Well': HKItemData(advancement=False, id=16777374, type='Relic'), - 'Hallownest_Seal-Deepnest_By_Mantis_Lords': HKItemData(advancement=False, id=16777388, type='Relic'), - 'Hallownest_Seal-Fog_Canyon_East': HKItemData(advancement=False, id=16777378, type='Relic'), - 'Hallownest_Seal-Fog_Canyon_West': HKItemData(advancement=False, id=16777377, type='Relic'), - 'Hallownest_Seal-Fungal_Wastes_Sporgs': HKItemData(advancement=False, id=16777380, type='Relic'), - 'Hallownest_Seal-Greenpath': HKItemData(advancement=False, id=16777376, type='Relic'), - 'Hallownest_Seal-Grubs': HKItemData(advancement=False, id=16777375, type='Relic'), - "Hallownest_Seal-King's_Station": HKItemData(advancement=False, id=16777384, type='Relic'), - 'Hallownest_Seal-Mantis_Lords': HKItemData(advancement=False, id=16777381, type='Relic'), - "Hallownest_Seal-Queen's_Gardens": HKItemData(advancement=False, id=16777390, type='Relic'), - "Hallownest_Seal-Queen's_Station": HKItemData(advancement=False, id=16777379, type='Relic'), - 'Hallownest_Seal-Resting_Grounds_Catacombs': HKItemData(advancement=False, id=16777383, type='Relic'), - 'Hallownest_Seal-Seer': HKItemData(advancement=False, id=16777382, type='Relic'), - 'Hallownest_Seal-Soul_Sanctum': HKItemData(advancement=False, id=16777386, type='Relic'), - 'Hallownest_Seal-Watcher_Knight': HKItemData(advancement=False, id=16777387, type='Relic'), - 'Heavy_Blow': HKItemData(advancement=False, id=16777255, type='Charm'), - 'Herrah': HKItemData(advancement=True, id=16777219, type='Dreamer'), - 'Hidden_Station_Stag': HKItemData(advancement=True, id=16777499, type='Stag'), - 'Hive': HKItemData(advancement=True, id=0, type='Event'), - 'Hiveblood': HKItemData(advancement=False, id=16777269, type='Charm'), - 'Hollow Knight': HKItemData(advancement=True, id=0, type='Event'), - 'Howling_Cliffs': HKItemData(advancement=True, id=0, type='Event'), - 'Howling_Cliffs_Map': HKItemData(advancement=False, id=16777486, type='Map'), - 'Howling_Wraiths': HKItemData(advancement=True, id=16777235, type='Skill'), - "Isma's_Grove": HKItemData(advancement=True, id=0, type='Event'), - "Isma's_Tear": HKItemData(advancement=True, id=16777227, type='Skill'), - "Joni's_Blessing": HKItemData(advancement=True, id=16777267, type='Charm'), - 'Junk_Pit': HKItemData(advancement=True, id=0, type='Event'), - "King's_Brand": HKItemData(advancement=True, id=16777293, type='Key'), - "King's_Idol-Cliffs": HKItemData(advancement=False, id=16777392, type='Relic'), - "King's_Idol-Crystal_Peak": HKItemData(advancement=False, id=16777393, type='Relic'), - "King's_Idol-Deepnest": HKItemData(advancement=False, id=16777398, type='Relic'), - "King's_Idol-Dung_Defender": HKItemData(advancement=False, id=16777395, type='Relic'), - "King's_Idol-Glade_of_Hope": HKItemData(advancement=False, id=16777394, type='Relic'), - "King's_Idol-Great_Hopper": HKItemData(advancement=False, id=16777396, type='Relic'), - "King's_Idol-Grubs": HKItemData(advancement=False, id=16777391, type='Relic'), - "King's_Idol-Pale_Lurker": HKItemData(advancement=False, id=16777397, type='Relic'), - "King's_Pass": HKItemData(advancement=True, id=0, type='Event'), - "King's_Station_Stag": HKItemData(advancement=True, id=16777496, type='Stag'), - 'King_Fragment': HKItemData(advancement=True, id=16777277, type='Charm'), - "Kingdom's_Edge_Map": HKItemData(advancement=False, id=16777483, type='Map'), - 'Lake_of_Unn': HKItemData(advancement=True, id=0, type='Event'), - 'Left_City': HKItemData(advancement=True, id=0, type='Event'), - 'Left_Elevator': HKItemData(advancement=True, id=0, type='Event'), - 'Left_Fog_Canyon': HKItemData(advancement=True, id=0, type='Event'), - 'Lifeblood_Cocoon-Ancestral_Mound': HKItemData(advancement=False, id=16777502, type='Cocoon'), - 'Lifeblood_Cocoon-Failed_Tramway': HKItemData(advancement=False, id=16777506, type='Cocoon'), - 'Lifeblood_Cocoon-Fog_Canyon_West': HKItemData(advancement=False, id=16777504, type='Cocoon'), - 'Lifeblood_Cocoon-Galien': HKItemData(advancement=False, id=16777507, type='Cocoon'), - 'Lifeblood_Cocoon-Greenpath': HKItemData(advancement=False, id=16777503, type='Cocoon'), - "Lifeblood_Cocoon-King's_Pass": HKItemData(advancement=False, id=16777501, type='Cocoon'), - "Lifeblood_Cocoon-Kingdom's_Edge": HKItemData(advancement=False, id=16777508, type='Cocoon'), - 'Lifeblood_Cocoon-Mantis_Village': HKItemData(advancement=False, id=16777505, type='Cocoon'), - 'Lifeblood_Core': HKItemData(advancement=True, id=16777249, type='Charm'), - 'Lifeblood_Heart': HKItemData(advancement=True, id=16777248, type='Charm'), - 'Longnail': HKItemData(advancement=False, id=16777258, type='Charm'), - 'Love_Key': HKItemData(advancement=True, id=16777292, type='Key'), - 'Lower_Basin': HKItemData(advancement=True, id=0, type='Event'), - "Lower_King's_Station": HKItemData(advancement=True, id=0, type='Event'), - "Lower_Kingdom's_Edge": HKItemData(advancement=True, id=0, type='Event'), - 'Lower_Left_Waterways': HKItemData(advancement=True, id=0, type='Event'), - 'Lower_Resting_Grounds': HKItemData(advancement=True, id=0, type='Event'), - 'Lower_Tram': HKItemData(advancement=True, id=0, type='Event'), - 'Lumafly_Lantern': HKItemData(advancement=True, id=16777284, type='Key'), - 'Lurien': HKItemData(advancement=True, id=16777217, type='Dreamer'), - 'Mantis_Claw': HKItemData(advancement=True, id=16777223, type='Skill'), - 'Mantis_Outskirts': HKItemData(advancement=True, id=0, type='Event'), - 'Mantis_Village': HKItemData(advancement=True, id=0, type='Event'), - 'Mark_of_Pride': HKItemData(advancement=True, id=16777253, type='Charm'), - 'Mask_Shard-5_Grubs': HKItemData(advancement=False, id=16777301, type='Mask'), - 'Mask_Shard-Bretta': HKItemData(advancement=False, id=16777311, type='Mask'), - 'Mask_Shard-Brooding_Mawlek': HKItemData(advancement=False, id=16777302, type='Mask'), - 'Mask_Shard-Crossroads_Goam': HKItemData(advancement=False, id=16777303, type='Mask'), - 'Mask_Shard-Deepnest': HKItemData(advancement=False, id=16777306, type='Mask'), - 'Mask_Shard-Enraged_Guardian': HKItemData(advancement=False, id=16777308, type='Mask'), - 'Mask_Shard-Grey_Mourner': HKItemData(advancement=False, id=16777310, type='Mask'), - 'Mask_Shard-Hive': HKItemData(advancement=False, id=16777309, type='Mask'), - "Mask_Shard-Queen's_Station": HKItemData(advancement=False, id=16777305, type='Mask'), - 'Mask_Shard-Seer': HKItemData(advancement=False, id=16777300, type='Mask'), - 'Mask_Shard-Sly1': HKItemData(advancement=False, id=16777296, type='Mask'), - 'Mask_Shard-Sly2': HKItemData(advancement=False, id=16777297, type='Mask'), - 'Mask_Shard-Sly3': HKItemData(advancement=False, id=16777298, type='Mask'), - 'Mask_Shard-Sly4': HKItemData(advancement=False, id=16777299, type='Mask'), - 'Mask_Shard-Stone_Sanctuary': HKItemData(advancement=False, id=16777304, type='Mask'), - 'Mask_Shard-Waterways': HKItemData(advancement=False, id=16777307, type='Mask'), - 'Mid_Basin': HKItemData(advancement=True, id=0, type='Event'), - 'Monarch_Wings': HKItemData(advancement=True, id=16777225, type='Skill'), - 'Monomon': HKItemData(advancement=True, id=16777218, type='Dreamer'), - 'Mothwing_Cloak': HKItemData(advancement=True, id=16777222, type='Skill'), - "Nailmaster's_Glory": HKItemData(advancement=False, id=16777266, type='Charm'), - 'Oro_Bench': HKItemData(advancement=True, id=0, type='Event'), - 'Overgrown_Mound': HKItemData(advancement=True, id=0, type='Event'), - 'Palace_Grounds': HKItemData(advancement=True, id=0, type='Event'), - 'Pale_Lurker_Area': HKItemData(advancement=True, id=0, type='Event'), - 'Pale_Ore-Basin': HKItemData(advancement=False, id=16777325, type='Ore'), - 'Pale_Ore-Colosseum': HKItemData(advancement=False, id=16777330, type='Ore'), - 'Pale_Ore-Crystal_Peak': HKItemData(advancement=False, id=16777326, type='Ore'), - 'Pale_Ore-Grubs': HKItemData(advancement=False, id=16777329, type='Ore'), - 'Pale_Ore-Nosk': HKItemData(advancement=False, id=16777327, type='Ore'), - 'Pale_Ore-Seer': HKItemData(advancement=False, id=16777328, type='Ore'), - 'Placeholder': HKItemData(advancement=False, id=16777522, type='Fake'), - 'Pleasure_House': HKItemData(advancement=True, id=0, type='Event'), - "Queen's_Gardens_Map": HKItemData(advancement=False, id=16777488, type='Map'), - "Queen's_Gardens_Stag": HKItemData(advancement=True, id=16777494, type='Stag'), - "Queen's_Station": HKItemData(advancement=True, id=0, type='Event'), - "Queen's_Station_Stag": HKItemData(advancement=True, id=16777493, type='Stag'), - 'Queen_Fragment': HKItemData(advancement=True, id=16777276, type='Charm'), - 'Quick_Focus': HKItemData(advancement=False, id=16777247, type='Charm'), - 'Quick_Slash': HKItemData(advancement=False, id=16777272, type='Charm'), - "Rancid_Egg-Beast's_Den": HKItemData(advancement=False, id=16777351, type='Egg'), - 'Rancid_Egg-Blue_Lake': HKItemData(advancement=False, id=16777345, type='Egg'), - 'Rancid_Egg-City_of_Tears_Left': HKItemData(advancement=False, id=16777349, type='Egg'), - 'Rancid_Egg-City_of_Tears_Pleasure_House': HKItemData(advancement=False, id=16777350, type='Egg'), - 'Rancid_Egg-Crystal_Peak_Dark_Room': HKItemData(advancement=False, id=16777347, type='Egg'), - 'Rancid_Egg-Crystal_Peak_Dive_Entrance': HKItemData(advancement=False, id=16777346, type='Egg'), - 'Rancid_Egg-Crystal_Peak_Tall_Room': HKItemData(advancement=False, id=16777348, type='Egg'), - 'Rancid_Egg-Dark_Deepnest': HKItemData(advancement=False, id=16777352, type='Egg'), - 'Rancid_Egg-Fungal_Core': HKItemData(advancement=False, id=16777343, type='Egg'), - 'Rancid_Egg-Grubs': HKItemData(advancement=False, id=16777341, type='Egg'), - 'Rancid_Egg-Near_Quick_Slash': HKItemData(advancement=False, id=16777354, type='Egg'), - "Rancid_Egg-Queen's_Gardens": HKItemData(advancement=False, id=16777344, type='Egg'), - 'Rancid_Egg-Sheo': HKItemData(advancement=False, id=16777342, type='Egg'), - 'Rancid_Egg-Sly': HKItemData(advancement=False, id=16777340, type='Egg'), - "Rancid_Egg-Upper_Kingdom's_Edge": HKItemData(advancement=False, id=16777355, type='Egg'), - 'Rancid_Egg-Waterways_East': HKItemData(advancement=False, id=16777356, type='Egg'), - 'Rancid_Egg-Waterways_Main': HKItemData(advancement=False, id=16777357, type='Egg'), - 'Rancid_Egg-Waterways_West_Bluggsac': HKItemData(advancement=False, id=16777358, type='Egg'), - 'Rancid_Egg-Waterways_West_Pickup': HKItemData(advancement=False, id=16777359, type='Egg'), - "Rancid_Egg-Weaver's_Den": HKItemData(advancement=False, id=16777353, type='Egg'), - 'Resting_Grounds_Map': HKItemData(advancement=False, id=16777489, type='Map'), - 'Resting_Grounds_Stag': HKItemData(advancement=True, id=16777497, type='Stag'), - 'Right_City': HKItemData(advancement=True, id=0, type='Event'), - 'Right_Elevator': HKItemData(advancement=True, id=0, type='Event'), - 'Right_Fog_Canyon': HKItemData(advancement=True, id=0, type='Event'), - 'Right_Waterways': HKItemData(advancement=True, id=0, type='Event'), - 'Royal_Waterways_Map': HKItemData(advancement=False, id=16777485, type='Map'), - 'Seer': HKItemData(advancement=False, id=16777520, type='Fake'), - 'Shade_Cloak': HKItemData(advancement=True, id=16777226, type='Skill'), - 'Shade_Soul': HKItemData(advancement=True, id=16777232, type='Skill'), - 'Shaman_Stone': HKItemData(advancement=False, id=16777259, type='Charm'), - 'Shape_of_Unn': HKItemData(advancement=False, id=16777268, type='Charm'), - 'Sharp_Shadow': HKItemData(advancement=True, id=16777256, type='Charm'), - "Shopkeeper's_Key": HKItemData(advancement=True, id=16777290, type='Key'), - 'Simple_Key-Basin': HKItemData(advancement=True, id=16777287, type='Key'), - 'Simple_Key-City': HKItemData(advancement=True, id=16777288, type='Key'), - 'Simple_Key-Lurker': HKItemData(advancement=True, id=16777289, type='Key'), - 'Simple_Key-Sly': HKItemData(advancement=True, id=16777286, type='Key'), - 'Soul_Catcher': HKItemData(advancement=False, id=16777260, type='Charm'), - 'Soul_Eater': HKItemData(advancement=False, id=16777261, type='Charm'), - 'Soul_Sanctum': HKItemData(advancement=True, id=0, type='Event'), - 'Spell_Twister': HKItemData(advancement=False, id=16777273, type='Charm'), - 'Spirits_Glade': HKItemData(advancement=True, id=0, type='Event'), - 'Spore_Shroom': HKItemData(advancement=True, id=16777257, type='Charm'), - 'Sprintmaster': HKItemData(advancement=True, id=16777279, type='Charm'), - 'Stag_Nest': HKItemData(advancement=True, id=0, type='Event'), - 'Stag_Nest_Stag': HKItemData(advancement=True, id=16777500, type='Stag'), - 'Stalwart_Shell': HKItemData(advancement=False, id=16777244, type='Charm'), - 'Steady_Body': HKItemData(advancement=False, id=16777254, type='Charm'), - 'Stone_Sanctuary': HKItemData(advancement=True, id=0, type='Event'), - "Teacher's_Archives": HKItemData(advancement=True, id=0, type='Event'), - 'Thorns_of_Agony': HKItemData(advancement=False, id=16777252, type='Charm'), - "Top_Kingdom's_Edge": HKItemData(advancement=True, id=0, type='Event'), - "Top_Left_Queen's_Gardens": HKItemData(advancement=True, id=0, type='Event'), - "Top_Right_Queen's_Gardens": HKItemData(advancement=True, id=0, type='Event'), - 'Tower_of_Love': HKItemData(advancement=True, id=0, type='Event'), - 'Tram_Pass': HKItemData(advancement=True, id=16777285, type='Key'), - 'Upper_Basin': HKItemData(advancement=True, id=0, type='Event'), - 'Upper_Crystal_Peak': HKItemData(advancement=True, id=0, type='Event'), - 'Upper_Deepnest': HKItemData(advancement=True, id=0, type='Event'), - "Upper_King's_Station": HKItemData(advancement=True, id=0, type='Event'), - "Upper_Kingdom's_Edge": HKItemData(advancement=True, id=0, type='Event'), - 'Upper_Left_Waterways': HKItemData(advancement=True, id=0, type='Event'), - 'Upper_Resting_Grounds': HKItemData(advancement=True, id=0, type='Event'), - 'Upper_Tram': HKItemData(advancement=True, id=0, type='Event'), - 'Vengeful_Spirit': HKItemData(advancement=True, id=16777231, type='Skill'), - 'Vessel_Fragment-Basin': HKItemData(advancement=False, id=16777318, type='Vessel'), - 'Vessel_Fragment-City': HKItemData(advancement=False, id=16777316, type='Vessel'), - 'Vessel_Fragment-Crossroads': HKItemData(advancement=False, id=16777317, type='Vessel'), - 'Vessel_Fragment-Deepnest': HKItemData(advancement=False, id=16777319, type='Vessel'), - 'Vessel_Fragment-Greenpath': HKItemData(advancement=False, id=16777315, type='Vessel'), - 'Vessel_Fragment-Seer': HKItemData(advancement=False, id=16777314, type='Vessel'), - 'Vessel_Fragment-Sly1': HKItemData(advancement=False, id=16777312, type='Vessel'), - 'Vessel_Fragment-Sly2': HKItemData(advancement=False, id=16777313, type='Vessel'), - 'Vessel_Fragment-Stag_Nest': HKItemData(advancement=False, id=16777320, type='Vessel'), - 'Void_Heart': HKItemData(advancement=True, id=16777278, type='Charm'), - "Wanderer's_Journal-Above_Mantis_Village": HKItemData(advancement=False, id=16777364, type='Relic'), - "Wanderer's_Journal-Ancient_Basin": HKItemData(advancement=False, id=16777370, type='Relic'), - "Wanderer's_Journal-City_Storerooms": HKItemData(advancement=False, id=16777369, type='Relic'), - "Wanderer's_Journal-Cliffs": HKItemData(advancement=False, id=16777360, type='Relic'), - "Wanderer's_Journal-Crystal_Peak_Crawlers": HKItemData(advancement=False, id=16777365, type='Relic'), - "Wanderer's_Journal-Fungal_Wastes_Thorns_Gauntlet": HKItemData(advancement=False, id=16777363, type='Relic'), - "Wanderer's_Journal-Greenpath_Lower": HKItemData(advancement=False, id=16777362, type='Relic'), - "Wanderer's_Journal-Greenpath_Stag": HKItemData(advancement=False, id=16777361, type='Relic'), - "Wanderer's_Journal-King's_Station": HKItemData(advancement=False, id=16777367, type='Relic'), - "Wanderer's_Journal-Kingdom's_Edge_Camp": HKItemData(advancement=False, id=16777372, type='Relic'), - "Wanderer's_Journal-Kingdom's_Edge_Entrance": HKItemData(advancement=False, id=16777371, type='Relic'), - "Wanderer's_Journal-Kingdom's_Edge_Requires_Dive": HKItemData(advancement=False, id=16777373, type='Relic'), - "Wanderer's_Journal-Pleasure_House": HKItemData(advancement=False, id=16777368, type='Relic'), - "Wanderer's_Journal-Resting_Grounds_Catacombs": HKItemData(advancement=False, id=16777366, type='Relic'), - 'Waterways_Shaft': HKItemData(advancement=True, id=0, type='Event'), - 'Wayward_Compass': HKItemData(advancement=False, id=16777242, type='Charm'), - "Weaver's_Den": HKItemData(advancement=True, id=0, type='Event'), - 'Weaversong': HKItemData(advancement=True, id=16777281, type='Charm'), - 'Whispering_Root-Ancestral_Mound': HKItemData(advancement=True, id=16777416, type='Root'), - 'Whispering_Root-City': HKItemData(advancement=True, id=16777411, type='Root'), - 'Whispering_Root-Crossroads': HKItemData(advancement=True, id=16777403, type='Root'), - 'Whispering_Root-Crystal_Peak': HKItemData(advancement=True, id=16777414, type='Root'), - 'Whispering_Root-Deepnest': HKItemData(advancement=True, id=16777407, type='Root'), - 'Whispering_Root-Greenpath': HKItemData(advancement=True, id=16777404, type='Root'), - 'Whispering_Root-Hive': HKItemData(advancement=True, id=16777417, type='Root'), - 'Whispering_Root-Howling_Cliffs': HKItemData(advancement=True, id=16777415, type='Root'), - 'Whispering_Root-Kingdoms_Edge': HKItemData(advancement=True, id=16777409, type='Root'), - 'Whispering_Root-Leg_Eater': HKItemData(advancement=True, id=16777405, type='Root'), - 'Whispering_Root-Mantis_Village': HKItemData(advancement=True, id=16777406, type='Root'), - 'Whispering_Root-Queens_Gardens': HKItemData(advancement=True, id=16777408, type='Root'), - 'Whispering_Root-Resting_Grounds': HKItemData(advancement=True, id=16777412, type='Root'), - 'Whispering_Root-Spirits_Glade': HKItemData(advancement=True, id=16777413, type='Root'), - 'Whispering_Root-Waterways': HKItemData(advancement=True, id=16777410, type='Root'), - 'World_Sense': HKItemData(advancement=False, id=16777220, type='Dreamer')} -lookup_id_to_name:Dict[int, str] = {data.id: item_name for item_name, data in item_table.items() if data.type != 'Event'} -lookup_type_to_names:Dict[str, Set[str]] = {} +class HKItemData(NamedTuple): + advancement: bool + id: int + type: str + + +for i, (item_name, item_type) in enumerate(items.items(), start=0x1000000): + item_table[item_name] = HKItemData(advancement=item_name in logic_items or item_name in item_effects, + id=i, type=item_type) + +lookup_id_to_name: Dict[int, str] = {data.id: item_name for item_name, data in item_table.items()} +lookup_type_to_names: Dict[str, Set[str]] = {} for item, item_data in item_table.items(): - lookup_type_to_names.setdefault(item_data.type, set()).add(item) \ No newline at end of file + lookup_type_to_names.setdefault(item_data.type, set()).add(item) diff --git a/worlds/hk/Locations.py b/worlds/hk/Locations.py deleted file mode 100644 index eae06dda..00000000 --- a/worlds/hk/Locations.py +++ /dev/null @@ -1,308 +0,0 @@ -# generated by https://github.com/Berserker66/HollowKnight.RandomizerMod/blob/master/extract_data.py -# do not edit manually - -lookup_id_to_name = \ -{ 17825793: 'Lurien', - 17825794: 'Monomon', - 17825795: 'Herrah', - 17825796: 'World_Sense', - 17825798: 'Mothwing_Cloak', - 17825799: 'Mantis_Claw', - 17825800: 'Crystal_Heart', - 17825801: 'Monarch_Wings', - 17825802: 'Shade_Cloak', - 17825803: "Isma's_Tear", - 17825804: 'Dream_Nail', - 17825805: 'Dream_Gate', - 17825806: 'Awoken_Dream_Nail', - 17825807: 'Vengeful_Spirit', - 17825808: 'Shade_Soul', - 17825809: 'Desolate_Dive', - 17825810: 'Descending_Dark', - 17825811: 'Howling_Wraiths', - 17825812: 'Abyss_Shriek', - 17825813: 'Cyclone_Slash', - 17825814: 'Dash_Slash', - 17825815: 'Great_Slash', - 17825816: 'Focus', - 17825817: 'Gathering_Swarm', - 17825818: 'Wayward_Compass', - 17825819: 'Grubsong', - 17825820: 'Stalwart_Shell', - 17825821: 'Baldur_Shell', - 17825822: 'Fury_of_the_Fallen', - 17825823: 'Quick_Focus', - 17825824: 'Lifeblood_Heart', - 17825825: 'Lifeblood_Core', - 17825826: "Defender's_Crest", - 17825827: 'Flukenest', - 17825828: 'Thorns_of_Agony', - 17825829: 'Mark_of_Pride', - 17825830: 'Steady_Body', - 17825831: 'Heavy_Blow', - 17825832: 'Sharp_Shadow', - 17825833: 'Spore_Shroom', - 17825834: 'Longnail', - 17825835: 'Shaman_Stone', - 17825836: 'Soul_Catcher', - 17825837: 'Soul_Eater', - 17825838: 'Glowing_Womb', - 17825839: 'Fragile_Heart', - 17825840: 'Fragile_Greed', - 17825841: 'Fragile_Strength', - 17825842: "Nailmaster's_Glory", - 17825843: "Joni's_Blessing", - 17825844: 'Shape_of_Unn', - 17825845: 'Hiveblood', - 17825846: 'Dream_Wielder', - 17825847: 'Dashmaster', - 17825848: 'Quick_Slash', - 17825849: 'Spell_Twister', - 17825850: 'Deep_Focus', - 17825851: "Grubberfly's_Elegy", - 17825852: 'Queen_Fragment', - 17825853: 'King_Fragment', - 17825854: 'Void_Heart', - 17825855: 'Sprintmaster', - 17825856: 'Dreamshield', - 17825857: 'Weaversong', - 17825858: 'Grimmchild', - 17825859: 'City_Crest', - 17825860: 'Lumafly_Lantern', - 17825861: 'Tram_Pass', - 17825862: 'Simple_Key-Sly', - 17825863: 'Simple_Key-Basin', - 17825864: 'Simple_Key-City', - 17825865: 'Simple_Key-Lurker', - 17825866: "Shopkeeper's_Key", - 17825867: 'Elegant_Key', - 17825868: 'Love_Key', - 17825869: "King's_Brand", - 17825870: 'Godtuner', - 17825871: "Collector's_Map", - 17825872: 'Mask_Shard-Sly1', - 17825873: 'Mask_Shard-Sly2', - 17825874: 'Mask_Shard-Sly3', - 17825875: 'Mask_Shard-Sly4', - 17825876: 'Mask_Shard-Seer', - 17825877: 'Mask_Shard-5_Grubs', - 17825878: 'Mask_Shard-Brooding_Mawlek', - 17825879: 'Mask_Shard-Crossroads_Goam', - 17825880: 'Mask_Shard-Stone_Sanctuary', - 17825881: "Mask_Shard-Queen's_Station", - 17825882: 'Mask_Shard-Deepnest', - 17825883: 'Mask_Shard-Waterways', - 17825884: 'Mask_Shard-Enraged_Guardian', - 17825885: 'Mask_Shard-Hive', - 17825886: 'Mask_Shard-Grey_Mourner', - 17825887: 'Mask_Shard-Bretta', - 17825888: 'Vessel_Fragment-Sly1', - 17825889: 'Vessel_Fragment-Sly2', - 17825890: 'Vessel_Fragment-Seer', - 17825891: 'Vessel_Fragment-Greenpath', - 17825892: 'Vessel_Fragment-City', - 17825893: 'Vessel_Fragment-Crossroads', - 17825894: 'Vessel_Fragment-Basin', - 17825895: 'Vessel_Fragment-Deepnest', - 17825896: 'Vessel_Fragment-Stag_Nest', - 17825897: 'Charm_Notch-Shrumal_Ogres', - 17825898: 'Charm_Notch-Fog_Canyon', - 17825899: 'Charm_Notch-Colosseum', - 17825900: 'Charm_Notch-Grimm', - 17825901: 'Pale_Ore-Basin', - 17825902: 'Pale_Ore-Crystal_Peak', - 17825903: 'Pale_Ore-Nosk', - 17825904: 'Pale_Ore-Seer', - 17825905: 'Pale_Ore-Grubs', - 17825906: 'Pale_Ore-Colosseum', - 17825907: '200_Geo-False_Knight_Chest', - 17825908: '380_Geo-Soul_Master_Chest', - 17825909: '655_Geo-Watcher_Knights_Chest', - 17825910: '85_Geo-Greenpath_Chest', - 17825911: '620_Geo-Mantis_Lords_Chest', - 17825912: '150_Geo-Resting_Grounds_Chest', - 17825913: '80_Geo-Crystal_Peak_Chest', - 17825914: '160_Geo-Weavers_Den_Chest', - 17825916: 'Rancid_Egg-Sly', - 17825917: 'Rancid_Egg-Grubs', - 17825918: 'Rancid_Egg-Sheo', - 17825919: 'Rancid_Egg-Fungal_Core', - 17825920: "Rancid_Egg-Queen's_Gardens", - 17825921: 'Rancid_Egg-Blue_Lake', - 17825922: 'Rancid_Egg-Crystal_Peak_Dive_Entrance', - 17825923: 'Rancid_Egg-Crystal_Peak_Dark_Room', - 17825924: 'Rancid_Egg-Crystal_Peak_Tall_Room', - 17825925: 'Rancid_Egg-City_of_Tears_Left', - 17825926: 'Rancid_Egg-City_of_Tears_Pleasure_House', - 17825927: "Rancid_Egg-Beast's_Den", - 17825928: 'Rancid_Egg-Dark_Deepnest', - 17825929: "Rancid_Egg-Weaver's_Den", - 17825930: 'Rancid_Egg-Near_Quick_Slash', - 17825931: "Rancid_Egg-Upper_Kingdom's_Edge", - 17825932: 'Rancid_Egg-Waterways_East', - 17825933: 'Rancid_Egg-Waterways_Main', - 17825934: 'Rancid_Egg-Waterways_West_Bluggsac', - 17825935: 'Rancid_Egg-Waterways_West_Pickup', - 17825936: "Wanderer's_Journal-Cliffs", - 17825937: "Wanderer's_Journal-Greenpath_Stag", - 17825938: "Wanderer's_Journal-Greenpath_Lower", - 17825939: "Wanderer's_Journal-Fungal_Wastes_Thorns_Gauntlet", - 17825940: "Wanderer's_Journal-Above_Mantis_Village", - 17825941: "Wanderer's_Journal-Crystal_Peak_Crawlers", - 17825942: "Wanderer's_Journal-Resting_Grounds_Catacombs", - 17825943: "Wanderer's_Journal-King's_Station", - 17825944: "Wanderer's_Journal-Pleasure_House", - 17825945: "Wanderer's_Journal-City_Storerooms", - 17825946: "Wanderer's_Journal-Ancient_Basin", - 17825947: "Wanderer's_Journal-Kingdom's_Edge_Entrance", - 17825948: "Wanderer's_Journal-Kingdom's_Edge_Camp", - 17825949: "Wanderer's_Journal-Kingdom's_Edge_Requires_Dive", - 17825950: 'Hallownest_Seal-Crossroads_Well', - 17825951: 'Hallownest_Seal-Grubs', - 17825952: 'Hallownest_Seal-Greenpath', - 17825953: 'Hallownest_Seal-Fog_Canyon_West', - 17825954: 'Hallownest_Seal-Fog_Canyon_East', - 17825955: "Hallownest_Seal-Queen's_Station", - 17825956: 'Hallownest_Seal-Fungal_Wastes_Sporgs', - 17825957: 'Hallownest_Seal-Mantis_Lords', - 17825958: 'Hallownest_Seal-Seer', - 17825959: 'Hallownest_Seal-Resting_Grounds_Catacombs', - 17825960: "Hallownest_Seal-King's_Station", - 17825961: 'Hallownest_Seal-City_Rafters', - 17825962: 'Hallownest_Seal-Soul_Sanctum', - 17825963: 'Hallownest_Seal-Watcher_Knight', - 17825964: 'Hallownest_Seal-Deepnest_By_Mantis_Lords', - 17825965: "Hallownest_Seal-Beast's_Den", - 17825966: "Hallownest_Seal-Queen's_Gardens", - 17825967: "King's_Idol-Grubs", - 17825968: "King's_Idol-Cliffs", - 17825969: "King's_Idol-Crystal_Peak", - 17825970: "King's_Idol-Glade_of_Hope", - 17825971: "King's_Idol-Dung_Defender", - 17825972: "King's_Idol-Great_Hopper", - 17825973: "King's_Idol-Pale_Lurker", - 17825974: "King's_Idol-Deepnest", - 17825975: 'Arcane_Egg-Seer', - 17825976: 'Arcane_Egg-Lifeblood_Core', - 17825977: 'Arcane_Egg-Shade_Cloak', - 17825978: 'Arcane_Egg-Birthplace', - 17825979: 'Whispering_Root-Crossroads', - 17825980: 'Whispering_Root-Greenpath', - 17825981: 'Whispering_Root-Leg_Eater', - 17825982: 'Whispering_Root-Mantis_Village', - 17825983: 'Whispering_Root-Deepnest', - 17825984: 'Whispering_Root-Queens_Gardens', - 17825985: 'Whispering_Root-Kingdoms_Edge', - 17825986: 'Whispering_Root-Waterways', - 17825987: 'Whispering_Root-City', - 17825988: 'Whispering_Root-Resting_Grounds', - 17825989: 'Whispering_Root-Spirits_Glade', - 17825990: 'Whispering_Root-Crystal_Peak', - 17825991: 'Whispering_Root-Howling_Cliffs', - 17825992: 'Whispering_Root-Ancestral_Mound', - 17825993: 'Whispering_Root-Hive', - 17825994: 'Boss_Essence-Elder_Hu', - 17825995: 'Boss_Essence-Xero', - 17825996: 'Boss_Essence-Gorb', - 17825997: 'Boss_Essence-Marmu', - 17825998: 'Boss_Essence-No_Eyes', - 17825999: 'Boss_Essence-Galien', - 17826000: 'Boss_Essence-Markoth', - 17826001: 'Boss_Essence-Failed_Champion', - 17826002: 'Boss_Essence-Soul_Tyrant', - 17826003: 'Boss_Essence-Lost_Kin', - 17826004: 'Boss_Essence-White_Defender', - 17826005: 'Boss_Essence-Grey_Prince_Zote', - 17826006: 'Grub-Crossroads_Acid', - 17826007: 'Grub-Crossroads_Center', - 17826008: 'Grub-Crossroads_Stag', - 17826009: 'Grub-Crossroads_Spike', - 17826010: 'Grub-Crossroads_Guarded', - 17826011: 'Grub-Greenpath_Cornifer', - 17826012: 'Grub-Greenpath_Journal', - 17826013: 'Grub-Greenpath_MMC', - 17826014: 'Grub-Greenpath_Stag', - 17826015: 'Grub-Fog_Canyon', - 17826016: 'Grub-Fungal_Bouncy', - 17826017: 'Grub-Fungal_Spore_Shroom', - 17826018: 'Grub-Deepnest_Mimic', - 17826019: 'Grub-Deepnest_Nosk', - 17826020: 'Grub-Deepnest_Spike', - 17826021: 'Grub-Dark_Deepnest', - 17826022: "Grub-Beast's_Den", - 17826023: "Grub-Kingdom's_Edge_Oro", - 17826024: "Grub-Kingdom's_Edge_Camp", - 17826025: 'Grub-Hive_External', - 17826026: 'Grub-Hive_Internal', - 17826027: 'Grub-Basin_Requires_Wings', - 17826028: 'Grub-Basin_Requires_Dive', - 17826029: 'Grub-Waterways_Main', - 17826030: 'Grub-Waterways_East', - 17826031: 'Grub-Waterways_Requires_Tram', - 17826032: 'Grub-City_of_Tears_Left', - 17826033: 'Grub-Soul_Sanctum', - 17826034: "Grub-Watcher's_Spire", - 17826035: 'Grub-City_of_Tears_Guarded', - 17826036: "Grub-King's_Station", - 17826037: 'Grub-Resting_Grounds', - 17826038: 'Grub-Crystal_Peak_Below_Chest', - 17826039: 'Grub-Crystallized_Mound', - 17826040: 'Grub-Crystal_Peak_Spike', - 17826041: 'Grub-Crystal_Peak_Mimic', - 17826042: 'Grub-Crystal_Peak_Crushers', - 17826043: 'Grub-Crystal_Heart', - 17826044: 'Grub-Hallownest_Crown', - 17826045: 'Grub-Howling_Cliffs', - 17826046: "Grub-Queen's_Gardens_Stag", - 17826047: "Grub-Queen's_Gardens_Marmu", - 17826048: "Grub-Queen's_Gardens_Top", - 17826049: 'Grub-Collector_1', - 17826050: 'Grub-Collector_2', - 17826051: 'Grub-Collector_3', - 17826052: 'Crossroads_Map', - 17826053: 'Greenpath_Map', - 17826054: 'Fog_Canyon_Map', - 17826055: 'Fungal_Wastes_Map', - 17826056: 'Deepnest_Map-Upper', - 17826057: 'Deepnest_Map-Right_[Gives_Quill]', - 17826058: 'Ancient_Basin_Map', - 17826059: "Kingdom's_Edge_Map", - 17826060: 'City_of_Tears_Map', - 17826061: 'Royal_Waterways_Map', - 17826062: 'Howling_Cliffs_Map', - 17826063: 'Crystal_Peak_Map', - 17826064: "Queen's_Gardens_Map", - 17826065: 'Resting_Grounds_Map', - 17826066: 'Dirtmouth_Stag', - 17826067: 'Crossroads_Stag', - 17826068: 'Greenpath_Stag', - 17826069: "Queen's_Station_Stag", - 17826070: "Queen's_Gardens_Stag", - 17826071: 'City_Storerooms_Stag', - 17826072: "King's_Station_Stag", - 17826073: 'Resting_Grounds_Stag', - 17826074: 'Distant_Village_Stag', - 17826075: 'Hidden_Station_Stag', - 17826076: 'Stag_Nest_Stag', - 17826077: "Lifeblood_Cocoon-King's_Pass", - 17826078: 'Lifeblood_Cocoon-Ancestral_Mound', - 17826079: 'Lifeblood_Cocoon-Greenpath', - 17826080: 'Lifeblood_Cocoon-Fog_Canyon_West', - 17826081: 'Lifeblood_Cocoon-Mantis_Village', - 17826082: 'Lifeblood_Cocoon-Failed_Tramway', - 17826083: 'Lifeblood_Cocoon-Galien', - 17826084: "Lifeblood_Cocoon-Kingdom's_Edge", - 17826085: 'Grimmkin_Flame-City_Storerooms', - 17826086: 'Grimmkin_Flame-Greenpath', - 17826087: 'Grimmkin_Flame-Crystal_Peak', - 17826088: "Grimmkin_Flame-King's_Pass", - 17826089: 'Grimmkin_Flame-Resting_Grounds', - 17826090: "Grimmkin_Flame-Kingdom's_Edge", - 17826091: 'Grimmkin_Flame-Fungal_Core', - 17826092: 'Grimmkin_Flame-Ancient_Basin', - 17826093: 'Grimmkin_Flame-Hive', - 17826094: 'Grimmkin_Flame-Brumm'} - - - -lookup_name_to_id = {location_name: location_id for location_id, location_name in lookup_id_to_name.items()} \ No newline at end of file diff --git a/worlds/hk/Options.py b/worlds/hk/Options.py index e2be94fa..0a4cd54f 100644 --- a/worlds/hk/Options.py +++ b/worlds/hk/Options.py @@ -1,39 +1,138 @@ import typing +from .ExtractedData import logic_options, starts, pool_options +from Options import Option, DefaultOnToggle, Toggle, Choice, Range -from Options import Option, DefaultOnToggle, Toggle +# This way the dynamic start names are picked up by the MetaClass Choice belongs to +StartLocation = type("StartLocation", (Choice,), { + "option_" + start: i for i, start in enumerate(starts)} | {"auto_display_name": False}) -hollow_knight_randomize_options: typing.Dict[str, type(Option)] = { - "RandomizeDreamers": DefaultOnToggle, - "RandomizeSkills": DefaultOnToggle, - "RandomizeCharms": DefaultOnToggle, - "RandomizeKeys": DefaultOnToggle, - "RandomizeGeoChests": Toggle, - "RandomizeMaskShards": DefaultOnToggle, - "RandomizeVesselFragments": DefaultOnToggle, - "RandomizeCharmNotches": Toggle, - "RandomizePaleOre": DefaultOnToggle, - "RandomizeRancidEggs": Toggle, - "RandomizeRelics": DefaultOnToggle, - "RandomizeMaps": Toggle, - "RandomizeStags": Toggle, - "RandomizeGrubs": Toggle, - "RandomizeWhisperingRoots": Toggle, - "RandomizeRocks": Toggle, - "RandomizeSoulTotems": Toggle, - "RandomizePalaceTotems": Toggle, - "RandomizeLoreTablets": Toggle, - "RandomizeLifebloodCocoons": Toggle, - "RandomizeFlames": Toggle +default_on = { + "RandomizeDreamers", + "RandomizeSkills", + "RandomizeCharms", + "RandomizeKeys", + "RandomizeMaskShards", + "RandomizeVesselFragments", + "RandomizePaleOre", + "RandomizeRelics" } -hollow_knight_skip_options: typing.Dict[str, type(Option)] = { - "MILDSKIPS": Toggle, - "SPICYSKIPS": Toggle, - "FIREBALLSKIPS": Toggle, - "ACIDSKIPS": Toggle, - "SPIKETUNNELS": Toggle, - "DARKROOMS": Toggle, - "CURSED": Toggle, - "SHADESKIPS": Toggle, + +# not supported at this time +disabled = { + "RandomizeFocus", + "RandomizeSwim", + "RandomizeMimics", + "RandomizeNail", + +} + +hollow_knight_randomize_options: typing.Dict[str, type(Option)] = {} + +for option_name, option_data in pool_options.items(): + extra_data = {"items": option_data[0], "locations": option_data[1]} + if option_name in default_on: + option = type(option_name, (DefaultOnToggle,), extra_data) + else: + option = type(option_name, (Toggle,), extra_data) + hollow_knight_randomize_options[option_name] = option + +hollow_knight_logic_options: typing.Dict[str, type(Option)] = { + option_name: Toggle for option_name in logic_options.values() if + option_name not in hollow_knight_randomize_options + and option_name != "RandomizeCharmNotches"} + + +class MinimumGrubPrice(Range): + display_name = "Minimum Grub Price" + range_start = 1 + range_end = 46 + default = 1 + + +class MaximumGrubPrice(MinimumGrubPrice): + display_name = "Maximum Grub Price" + default = 23 + + +class MinimumEssencePrice(Range): + display_name = "Minimum Essence Price" + range_start = 1 + range_end = 2800 + default = 1 + + +class MaximumEssencePrice(MinimumEssencePrice): + display_name = "Maximum Essence Price" + default = 1400 + + +class MinimumEggPrice(Range): + display_name = "Minimum Egg Price" + range_start = 1 + range_end = 21 + default = 1 + + +class MaximumEggPrice(MinimumEggPrice): + display_name = "Maximum Egg Price" + default = 10 + + +class MinimumCharmPrice(Range): + """For Salubra's Charm-count based locations.""" + display_name = "Minimum Charm Requirement" + range_start = 1 + range_end = 40 + default = 1 + + +class MaximumCharmPrice(MinimumCharmPrice): + default = 20 + + +class RandomCharmCosts(Range): + """Total Cost of all Charms together. Set to -1 for vanilla costs. Vanilla sums to 90.""" + + display_name = "Random Charm Costs" + range_start = -1 + range_end = 240 + default = -1 + vanilla_costs: typing.List[int] = [1, 1, 1, 2, 2, 2, 3, 2, 3, 1, 3, 1, 3, 1, 2, 2, 1, 2, 3, 2, + 4, 2, 2, 2, 3, 1, 4, 2, 4, 1, 2, 3, 2, 4, 3, 5, 1, 3, 2, 2] + charm_count: int = len(vanilla_costs) + + def get_costs(self, random_source) -> typing.List[int]: + if -1 == self.value: + return self.vanilla_costs + else: + charms = [0]*self.charm_count + for x in range(self.value): + index = random_source.randint(0, self.charm_count-1) + while charms[index] > 5: + index = random_source.randint(0, self.charm_count-1) + charms[index] += 1 + return charms + + +class EggShopSlots(Range): + """For each slot, add a location to the Egg Shop and a Geo drop to the item pool.""" + + display_name = "Egg Shop Item Slots" + range_end = 16 + + +hollow_knight_options: typing.Dict[str, type(Option)] = { + **hollow_knight_randomize_options, + **hollow_knight_logic_options, + "start_location": StartLocation, + "minimum_grub_price": MinimumGrubPrice, + "maximum_grub_price": MaximumGrubPrice, + "minimum_essence_price": MinimumEssencePrice, + "maximum_essence_price": MaximumEssencePrice, + "minimum_egg_price": MinimumEggPrice, + "maximum_egg_price": MaximumEggPrice, + "minimum_charm_price": MinimumCharmPrice, + "maximum_charm_price": MaximumCharmPrice, + "random_charm_costs": RandomCharmCosts, + "egg_shop_slots": EggShopSlots, } -hollow_knight_options: typing.Dict[str, type(Option)] = {**hollow_knight_randomize_options, - **hollow_knight_skip_options} \ No newline at end of file diff --git a/worlds/hk/Regions.py b/worlds/hk/Regions.py index 246f4b85..c6b2b219 100644 --- a/worlds/hk/Regions.py +++ b/worlds/hk/Regions.py @@ -1,13 +1,25 @@ -# generated by https://github.com/Berserker66/HollowKnight.RandomizerMod/blob/master/extract_data.py -# do not edit manually +from .ExtractedData import region_names, exits, connectors def create_regions(world, player: int): - from . import create_region - from .Items import item_table - from .Locations import lookup_name_to_id - world.regions += [ - create_region(world, player, 'Menu', None, ['Hollow Nest S&Q']), - create_region(world, player, 'Hollow Nest', [location for location in lookup_name_to_id] + - [item_name for item_name, item_data in item_table.items() if item_data.type == "Event"]) - ] + from . import create_region, HKLocation, HKItem + world.regions.append(create_region(world, player, 'Menu', None, ['Hollow Nest S&Q'])) + for region in region_names: + world.regions.append(create_region(world, player, region, [], + exits.get(region, []))) + for entrance_name, exit_name in connectors.items(): + if exit_name: + target_region = world.get_entrance(exit_name, player).parent_region + world.get_entrance(entrance_name, player).connect(target_region) + if not entrance_name.endswith("_R"): + # a traversable entrance puts the name of the target door "into logic". + loc = HKLocation(player, exit_name, None, target_region) + loc.place_locked_item(HKItem(exit_name, + not exit_name.startswith("White_Palace_"), + None, "Event", player)) + target_region.locations.append(loc) + else: + ent = world.get_entrance(entrance_name, player) + ent.parent_region.exits.remove(ent) + + diff --git a/worlds/hk/Rules.py b/worlds/hk/Rules.py index b65dbeab..4c17a76d 100644 --- a/worlds/hk/Rules.py +++ b/worlds/hk/Rules.py @@ -1,373 +1,1729 @@ -# generated by https://github.com/Berserker66/HollowKnight.RandomizerMod/blob/master/extract_data.py -# do not edit manually +# This module is written by Extractor.py, do not edit manually!. -from ..generic.Rules import set_rule +from ..generic.Rules import set_rule, add_rule -def set_rules(world, player): - if world.logic[player] != 'nologic': - world.completion_condition[player] = lambda state: state.has('Hollow Knight', player) +units = { + "egg": "RANCIDEGGS", + "grub": "GRUBS", + "essence": "ESSENCE", + "charm": "CHARMS", +} - set_rule(world.get_location("Lurien", player), lambda state: ((((state.has("Right_City", player) and state.has("Mantis_Claw", player)) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and (state.has("Monarch_Wings", player) or state.world.MILDSKIPS[player])) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Monomon", player), lambda state: ((((state.has("Teacher's_Archives", player) and state.has("Mantis_Claw", player)) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])) or state.world.SPICYSKIPS[player])) and (state.has("Isma's_Tear", player) or state.has("Crystal_Heart", player)))) - set_rule(world.get_location("Herrah", player), lambda state: ((state.has("Beast's_Den", player) and state.has("Mantis_Claw", player)) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("World_Sense", player), lambda state: (((state.has("Crossroads", player) and state.has("Lurien", player)) and state.has("Monomon", player)) and state.has("Herrah", player))) - set_rule(world.get_location("Mothwing_Cloak", player), lambda state: state.has("Greenpath", player)) - set_rule(world.get_location("Mantis_Claw", player), lambda state: (state.has("Mantis_Village", player) and ((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or (state.has("Crystal_Heart", player) and state.has("Mantis_Claw", player))) or state.world.MILDSKIPS[player]))) - set_rule(world.get_location("Crystal_Heart", player), lambda state: (state.has("Upper_Crystal_Peak", player) and ((state.has("Crystal_Heart", player) or (state.has("Mantis_Claw", player) and (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))))) or (state.has("Monarch_Wings", player) and state.world.SHADESKIPS[player])))) - set_rule(world.get_location("Monarch_Wings", player), lambda state: ((state.has("Far_Left_Basin", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player]))) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Shade_Cloak", player), lambda state: (state.has("Abyss", player) and ((state.has("Mantis_Claw", player) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player))) or (state.has("Monarch_Wings", player) and ((state.world.SHADESKIPS[player] or (state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player))) or ((state.has("Queen_Fragment", player) and state.has("King_Fragment", player)) and state.has("Void_Heart", player))))))) - set_rule(world.get_location("Isma's_Tear", player), lambda state: state.has("Isma's_Grove", player)) - set_rule(world.get_location("Dream_Nail", player), lambda state: state.has("Upper_Resting_Grounds", player)) - set_rule(world.get_location("Dream_Gate", player), lambda state: (state.has("Upper_Resting_Grounds", player) and state._hk_has_essence(player, 300))) - set_rule(world.get_location("Awoken_Dream_Nail", player), lambda state: (state.has("Upper_Resting_Grounds", player) and state._hk_has_essence(player, 300))) - set_rule(world.get_location("Vengeful_Spirit", player), lambda state: state.has("Ancestral_Mound", player)) - set_rule(world.get_location("Shade_Soul", player), lambda state: ((state.has("Soul_Sanctum", player) and state.has("Elegant_Key", player)) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Desolate_Dive", player), lambda state: (state.has("Soul_Sanctum", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Descending_Dark", player), lambda state: ((state.has("Crystallized_Mound", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Howling_Wraiths", player), lambda state: state.has("Overgrown_Mound", player)) - set_rule(world.get_location("Abyss_Shriek", player), lambda state: (state.has("Abyss", player) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) - set_rule(world.get_location("Cyclone_Slash", player), lambda state: state.has("Howling_Cliffs", player)) - set_rule(world.get_location("Dash_Slash", player), lambda state: state.has("Oro_Bench", player)) - set_rule(world.get_location("Great_Slash", player), lambda state: (state.has("Greenpath", player) and (state.has("Mantis_Claw", player) and (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and (state.has("Crystal_Heart", player) or state.has("Monarch_Wings", player))) or (state.has("Monarch_Wings", player) and state.has("Crystal_Heart", player)))))) - set_rule(world.get_location("Focus", player), lambda state: state.has("King's_Pass", player)) - set_rule(world.get_location("Grubsong", player), lambda state: (state.has("Crossroads", player) and state._hk_has_grubs(player, 5))) - set_rule(world.get_location("Baldur_Shell", player), lambda state: ((((((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.has("Grubberfly's_Elegy", player)) or state.has("Glowing_Womb", player)) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.has("Dash_Slash", player))) or (state.world.MILDSKIPS[player] and (state.has("Weaversong", player) or (state.has("Spore_Shroom", player) and (state.world.NOTCURSED[player] or state.has("Focus", player)))))) or (((state.has("Mark_of_Pride", player) or state.has("Cyclone_Slash", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.world.SPICYSKIPS[player])) and (state.has("Howling_Cliffs", player) or (state.has("Greenpath", player) and ((((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Crystal_Heart", player)) or state.world.SHADESKIPS[player]))))) - set_rule(world.get_location("Fury_of_the_Fallen", player), lambda state: state.has("King's_Pass", player)) - set_rule(world.get_location("Lifeblood_Core", player), lambda state: ((state.has("Abyss", player) and ((state.has("Lifeblood_Heart", player) or state.has("Lifeblood_Core", player)) or state.has("Joni's_Blessing", player))) and (state.world.SPICYSKIPS[player] or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.has("Monarch_Wings", player))))) - set_rule(world.get_location("Defender's_Crest", player), lambda state: ((state.has("Central_Left_Waterways", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player]))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Flukenest", player), lambda state: (state.has("Lower_Left_Waterways", player) and ((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])) and state.world.MILDSKIPS[player])) or (state.world.CURSED[player] and (state.has("Vengeful_Spirit", player) or state.has("Howling_Wraiths", player)))))) - set_rule(world.get_location("Thorns_of_Agony", player), lambda state: (state.has("Greenpath", player) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or (state.has("Mantis_Claw", player) and state.has("Crystal_Heart", player))))) - set_rule(world.get_location("Mark_of_Pride", player), lambda state: (state.has("Mantis_Village", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Sharp_Shadow", player), lambda state: (state.has("Deepnest", player) and (state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player)))) - set_rule(world.get_location("Spore_Shroom", player), lambda state: ((state.has("Bottom_Left_Fungal_Wastes", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) and ((state.has("Isma's_Tear", player) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or (state.has("Mantis_Claw", player) and state.has("Crystal_Heart", player))))) - set_rule(world.get_location("Soul_Catcher", player), lambda state: (state.has("Ancestral_Mound", player) and ((state.has("Mantis_Claw", player) or (((((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.has("Grubberfly's_Elegy", player)) or state.has("Glowing_Womb", player)) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.has("Dash_Slash", player))) or (state.world.MILDSKIPS[player] and (state.has("Weaversong", player) or (state.has("Spore_Shroom", player) and (state.world.NOTCURSED[player] or state.has("Focus", player)))))) or (((state.has("Mark_of_Pride", player) or state.has("Cyclone_Slash", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.world.SPICYSKIPS[player]))) or (state.has("Monarch_Wings", player) and state.world.SHADESKIPS[player])))) - set_rule(world.get_location("Soul_Eater", player), lambda state: ((state.has("Upper_Resting_Grounds", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Glowing_Womb", player), lambda state: ((state.has("Crossroads", player) and (state.has("Crystal_Heart", player) or ((state.world.SPIKETUNNELS[player] and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and ((state.has("Dashmaster", player) or (state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player))) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))))) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or ((((state.has("Lurien", player) or state.has("Monomon", player)) or state.has("Herrah", player)) or state.has("Dreamer", player)) and state.world.SPICYSKIPS[player])))) - set_rule(world.get_location("Nailmaster's_Glory", player), lambda state: ((((state.has("Dirtmouth", player) and state.has("Crossroads", player)) and state.has("Cyclone_Slash", player)) and state.has("Dash_Slash", player)) and state.has("Great_Slash", player))) - set_rule(world.get_location("Joni's_Blessing", player), lambda state: (state.has("Howling_Cliffs", player) and (state.world.DARKROOMS[player] or state.has("Lumafly_Lantern", player)))) - set_rule(world.get_location("Shape_of_Unn", player), lambda state: (state.has("Lake_of_Unn", player) and (((state.has("Isma's_Tear", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) or ((((((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.has("Crystal_Heart", player)) and state.world.ACIDSKIPS[player]) and state.has("Monarch_Wings", player)) and (((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and state.world.FIREBALLSKIPS[player]) or (state.has("Sharp_Shadow", player) and (state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player))))) and state.world.SPICYSKIPS[player])) or ((((state.world.SPICYSKIPS[player] and state.world.ACIDSKIPS[player]) and state.has("Monarch_Wings", player)) and state.has("Crystal_Heart", player)) and (state.has("Sharp_Shadow", player) and (state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player))))))) - set_rule(world.get_location("Hiveblood", player), lambda state: ((state.has("Hive", player) and ((state.has("Mantis_Claw", player) and state.has("Monarch_Wings", player)) or (state.world.MILDSKIPS[player] and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Dream_Wielder", player), lambda state: (state.has("Upper_Resting_Grounds", player) and state._hk_has_essence(player, 300))) - set_rule(world.get_location("Dashmaster", player), lambda state: state.has("Mantis_Outskirts", player)) - set_rule(world.get_location("Quick_Slash", player), lambda state: (((state.has("Oro_Bench", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.SPIKETUNNELS[player]))) - set_rule(world.get_location("Spell_Twister", player), lambda state: (state.has("Soul_Sanctum", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Deep_Focus", player), lambda state: (state.has("Upper_Crystal_Peak", player) and (((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) and state.has("Crystal_Heart", player)) or ((state.world.SPICYSKIPS[player] and state.has("Monarch_Wings", player)) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))))) - set_rule(world.get_location("Grubberfly's_Elegy", player), lambda state: (state.has("Crossroads", player) and state._hk_has_grubs(player, 5))) - set_rule(world.get_location("Queen_Fragment", player), lambda state: (((state.has("Far_Queen's_Gardens", player) and (state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player))) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("King_Fragment", player), lambda state: (((((state.has("Palace_Grounds", player) and ((state.has("Dream_Nail", player) and state.has("Dream_Gate", player)) and state.has("Awoken_Dream_Nail", player))) and state.has("Mantis_Claw", player)) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.has("Monarch_Wings", player)) and state.has("Crystal_Heart", player))) - set_rule(world.get_location("Void_Heart", player), lambda state: ((((state.has("Abyss", player) and (state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and (((state.has("Queen_Fragment", player) and state.has("King_Fragment", player)) or (state.has("Queen_Fragment", player) and state.has("Void_Heart", player))) or (state.has("King_Fragment", player) and state.has("Void_Heart", player)))) and ((state.world.MILDSKIPS[player] or state.has("Mantis_Claw", player)) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Dreamshield", player), lambda state: state.has("Upper_Resting_Grounds", player)) - set_rule(world.get_location("Weaversong", player), lambda state: (state.has("Weaver's_Den", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Grimmchild", player), lambda state: (state.has("Dirtmouth", player) and ((state.has("Howling_Cliffs", player) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) or state.has("Grimmchild", player)))) - set_rule(world.get_location("City_Crest", player), lambda state: state.has("Crossroads", player)) - set_rule(world.get_location("Tram_Pass", player), lambda state: (state.has("Failed_Tramway", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Simple_Key-Basin", player), lambda state: state.has("Far_Left_Basin", player)) - set_rule(world.get_location("Simple_Key-City", player), lambda state: (state.has("Left_Elevator", player) and ((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)) or state.world.MILDSKIPS[player]))) - set_rule(world.get_location("Simple_Key-Lurker", player), lambda state: ((state.has("Pale_Lurker_Area", player) and state.has("Mantis_Claw", player)) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Shopkeeper's_Key", player), lambda state: (state.has("Upper_Crystal_Peak", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Love_Key", player), lambda state: (state.has("Bottom_Right_Queen's_Gardens", player) and (((state.has("Isma's_Tear", player) or (((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.has("Crystal_Heart", player)) and state.world.ACIDSKIPS[player])) or ((((state.world.ACIDSKIPS[player] and state.has("Mantis_Claw", player)) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.has("Monarch_Wings", player)) and (state.has("Dashmaster", player) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))))) or (((state.world.SPICYSKIPS[player] and state.world.ACIDSKIPS[player]) and (state.has("Sharp_Shadow", player) and (state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player)))) and state.has("Monarch_Wings", player))))) - set_rule(world.get_location("King's_Brand", player), lambda state: (state.has("Cast_Off_Shell", player) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Godtuner", player), lambda state: (state.has("Junk_Pit", player) and (((state.has("Simple_Key-Sly", player) and state.has("Simple_Key-City", player)) and state.has("Simple_Key-Basin", player)) and state.has("Simple_Key-Lurker", player)))) - set_rule(world.get_location("Collector's_Map", player), lambda state: (((state.has("Tower_of_Love", player) and state.has("Love_Key", player)) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player]))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Mask_Shard-Seer", player), lambda state: (state.has("Upper_Resting_Grounds", player) and state._hk_has_essence(player, 300))) - set_rule(world.get_location("Mask_Shard-5_Grubs", player), lambda state: (state.has("Crossroads", player) and state._hk_has_grubs(player, 5))) - set_rule(world.get_location("Mask_Shard-Brooding_Mawlek", player), lambda state: (state.has("Crossroads", player) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Mask_Shard-Crossroads_Goam", player), lambda state: (state.has("Crossroads", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.world.MILDSKIPS[player]))) - set_rule(world.get_location("Mask_Shard-Stone_Sanctuary", player), lambda state: state.has("Stone_Sanctuary", player)) - set_rule(world.get_location("Mask_Shard-Queen's_Station", player), lambda state: (state.has("Queen's_Station", player) and ((state.has("Mantis_Claw", player) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Crystal_Heart", player))) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Mask_Shard-Deepnest", player), lambda state: state.has("Fungal_Core", player)) - set_rule(world.get_location("Mask_Shard-Waterways", player), lambda state: (state.has("Upper_Left_Waterways", player) or state.has("Far_Left_Waterways", player))) - set_rule(world.get_location("Mask_Shard-Enraged_Guardian", player), lambda state: (((state.has("Upper_Crystal_Peak", player) and state.has("Mantis_Claw", player)) and state.has("Monarch_Wings", player)) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Mask_Shard-Hive", player), lambda state: (state.has("Hive", player) and ((state.has("Mantis_Claw", player) and state.has("Monarch_Wings", player)) or (state.world.MILDSKIPS[player] and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))))) - set_rule(world.get_location("Mask_Shard-Grey_Mourner", player), lambda state: (((((((state.has("Upper_Resting_Grounds", player) and state.has("Top_Left_Queen's_Gardens", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and state.has("Mantis_Claw", player)) and state.has("Monarch_Wings", player)) and state.has("Crystal_Heart", player)) and state.has("Isma's_Tear", player)) and (state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player)))) - set_rule(world.get_location("Mask_Shard-Bretta", player), lambda state: (((state.has("Mantis_Outskirts", player) and state.has("Dirtmouth", player)) and state.has("Mantis_Claw", player)) and ((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)) or ((state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and state.world.SHADESKIPS[player])))) - set_rule(world.get_location("Vessel_Fragment-Seer", player), lambda state: (state.has("Upper_Resting_Grounds", player) and state._hk_has_essence(player, 300))) - set_rule(world.get_location("Vessel_Fragment-Greenpath", player), lambda state: (state.has("Greenpath", player) and (state.has("Mantis_Claw", player) or (state.world.SPICYSKIPS[player] and state.has("Monarch_Wings", player))))) - set_rule(world.get_location("Vessel_Fragment-City", player), lambda state: (state.has("Upper_King's_Station", player) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Vessel_Fragment-Crossroads", player), lambda state: state.has("Left_Elevator", player)) - set_rule(world.get_location("Vessel_Fragment-Basin", player), lambda state: (state.has("Mid_Basin", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Vessel_Fragment-Deepnest", player), lambda state: (state.has("Deepnest", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Vessel_Fragment-Stag_Nest", player), lambda state: state.has("Stag_Nest", player)) - set_rule(world.get_location("Charm_Notch-Shrumal_Ogres", player), lambda state: state.has("Fungal_Wastes", player)) - set_rule(world.get_location("Charm_Notch-Fog_Canyon", player), lambda state: ((state.has("Right_Fog_Canyon", player) and state.has("Mantis_Claw", player)) and (((state.has("Isma's_Tear", player) or (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.has("Crystal_Heart", player)) and state.world.ACIDSKIPS[player])) or ((state.has("Monarch_Wings", player) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))))) and state.world.ACIDSKIPS[player])) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.world.SPICYSKIPS[player])))) - set_rule(world.get_location("Charm_Notch-Colosseum", player), lambda state: (state.has("Colosseum", player) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Charm_Notch-Grimm", player), lambda state: (((state.has("Dirtmouth", player) and state.has("Grimmchild", player)) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player]))) and state._hk_has_flames(player, 6))) - set_rule(world.get_location("Pale_Ore-Basin", player), lambda state: (state.has("Mid_Basin", player) and (((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.world.MILDSKIPS[player])) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Pale_Ore-Crystal_Peak", player), lambda state: state.has("Hallownest's_Crown", player)) - set_rule(world.get_location("Pale_Ore-Nosk", player), lambda state: (((state.has("Deepnest", player) and state.has("Mantis_Claw", player)) and ((state.has("Monarch_Wings", player) or state.has("Crystal_Heart", player)) or state.world.SHADESKIPS[player])) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Pale_Ore-Seer", player), lambda state: (state.has("Upper_Resting_Grounds", player) and state._hk_has_essence(player, 300))) - set_rule(world.get_location("Pale_Ore-Grubs", player), lambda state: (state.has("Crossroads", player) and state._hk_has_grubs(player, 5))) - set_rule(world.get_location("Pale_Ore-Colosseum", player), lambda state: ((state.has("Colosseum", player) and (state.has("Mantis_Claw", player) or (state.world.SPICYSKIPS[player] and state.has("Monarch_Wings", player)))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("200_Geo-False_Knight_Chest", player), lambda state: state.has("Crossroads", player)) - set_rule(world.get_location("380_Geo-Soul_Master_Chest", player), lambda state: (state.has("Soul_Sanctum", player) and state.has("Mantis_Claw", player))) - set_rule(world.get_location("655_Geo-Watcher_Knights_Chest", player), lambda state: (((state.has("Right_City", player) and state.has("Mantis_Claw", player)) and (state.has("Monarch_Wings", player) or state.world.MILDSKIPS[player])) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("85_Geo-Greenpath_Chest", player), lambda state: (state.has("Greenpath", player) and ((((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Mantis_Claw", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))) or state.world.SHADESKIPS[player]))) - set_rule(world.get_location("620_Geo-Mantis_Lords_Chest", player), lambda state: (state.has("Mantis_Village", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player])))) - set_rule(world.get_location("150_Geo-Resting_Grounds_Chest", player), lambda state: (state.has("Upper_Resting_Grounds", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) - set_rule(world.get_location("80_Geo-Crystal_Peak_Chest", player), lambda state: (state.has("Upper_Crystal_Peak", player) and ((state.has("Mantis_Claw", player) and (((state.has("Sprintmaster", player) and state.has("Dashmaster", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or (state.has("Crystal_Heart", player) and state.world.SPICYSKIPS[player]))) or ((((state.has("Monarch_Wings", player) and state.has("Grubberfly's_Elegy", player)) and state.world.SHADESKIPS[player]) and state.world.SPICYSKIPS[player]) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or (state.has("Sprintmaster", player) and state.has("Dashmaster", player))))))) - set_rule(world.get_location("160_Geo-Weavers_Den_Chest", player), lambda state: (((state.has("Weaver's_Den", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player]))) and (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.SPIKETUNNELS[player]))) - set_rule(world.get_location("Rancid_Egg-Grubs", player), lambda state: (state.has("Crossroads", player) and state._hk_has_grubs(player, 5))) - set_rule(world.get_location("Rancid_Egg-Sheo", player), lambda state: ((state.has("Greenpath", player) and state.has("Mantis_Claw", player)) and (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and (state.has("Crystal_Heart", player) or state.has("Monarch_Wings", player))) or (state.has("Monarch_Wings", player) and state.has("Crystal_Heart", player))))) - set_rule(world.get_location("Rancid_Egg-Fungal_Core", player), lambda state: (state.has("Fungal_Core", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Rancid_Egg-Queen's_Gardens", player), lambda state: (state.has("Top_Right_Queen's_Gardens", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))))) - set_rule(world.get_location("Rancid_Egg-Blue_Lake", player), lambda state: (state.has("Blue_Lake", player) and (state.has("Monarch_Wings", player) or state.has("Crystal_Heart", player)))) - set_rule(world.get_location("Rancid_Egg-Crystal_Peak_Dive_Entrance", player), lambda state: (((state.has("Crossroads", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and (state.has("Monarch_Wings", player) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))) or ((state.has("Crystal_Peak", player) and state.has("Mantis_Claw", player)) and (state.has("Monarch_Wings", player) or state.has("Crystal_Heart", player))))) - set_rule(world.get_location("Rancid_Egg-Crystal_Peak_Dark_Room", player), lambda state: state.has("Crystal_Peak", player)) - set_rule(world.get_location("Rancid_Egg-Crystal_Peak_Tall_Room", player), lambda state: (state.has("Upper_Crystal_Peak", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) - set_rule(world.get_location("Rancid_Egg-City_of_Tears_Left", player), lambda state: (state.has("Left_City", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.world.MILDSKIPS[player]))) - set_rule(world.get_location("Rancid_Egg-City_of_Tears_Pleasure_House", player), lambda state: state.has("Pleasure_House", player)) - set_rule(world.get_location("Rancid_Egg-Beast's_Den", player), lambda state: (state.has("Beast's_Den", player) and (state.has("Mantis_Claw", player) or ((state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player]) and state.world.SHADESKIPS[player])))) - set_rule(world.get_location("Rancid_Egg-Dark_Deepnest", player), lambda state: (state.has("Dark_Deepnest", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and (state.world.MILDSKIPS[player] or state.has("Bottom_Left_Queen's_Gardens", player)))))) - set_rule(world.get_location("Rancid_Egg-Weaver's_Den", player), lambda state: (state.has("Weaver's_Den", player) and (state.world.SPIKETUNNELS[player] or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))))) - set_rule(world.get_location("Rancid_Egg-Near_Quick_Slash", player), lambda state: ((state.has("Oro_Bench", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Rancid_Egg-Upper_Kingdom's_Edge", player), lambda state: (state.has("Upper_Kingdom's_Edge", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Rancid_Egg-Waterways_East", player), lambda state: state.has("Right_Waterways", player)) - set_rule(world.get_location("Rancid_Egg-Waterways_Main", player), lambda state: (state.has("Upper_Left_Waterways", player) or (state.has("Central_Left_Waterways", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.world.SPICYSKIPS[player])))) - set_rule(world.get_location("Rancid_Egg-Waterways_West_Bluggsac", player), lambda state: (state.has("Upper_Left_Waterways", player) or state.has("Far_Left_Waterways", player))) - set_rule(world.get_location("Rancid_Egg-Waterways_West_Pickup", player), lambda state: ((state.has("Upper_Left_Waterways", player) or state.has("Far_Left_Waterways", player)) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player])))) - set_rule(world.get_location("Wanderer's_Journal-Cliffs", player), lambda state: state.has("Howling_Cliffs", player)) - set_rule(world.get_location("Wanderer's_Journal-Greenpath_Stag", player), lambda state: state.has("Greenpath", player)) - set_rule(world.get_location("Wanderer's_Journal-Greenpath_Lower", player), lambda state: (state.has("Greenpath", player) and state.has("Mantis_Claw", player))) - set_rule(world.get_location("Wanderer's_Journal-Fungal_Wastes_Thorns_Gauntlet", player), lambda state: ((state.has("Fungal_Wastes", player) and state.has("Mantis_Claw", player)) and (((state.has("Monarch_Wings", player) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Crystal_Heart", player)) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))))) - set_rule(world.get_location("Wanderer's_Journal-Above_Mantis_Village", player), lambda state: (state.has("Fungal_Wastes", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SHADESKIPS[player])))) - set_rule(world.get_location("Wanderer's_Journal-Crystal_Peak_Crawlers", player), lambda state: (state.has("Upper_Crystal_Peak", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.world.MILDSKIPS[player]))) - set_rule(world.get_location("Wanderer's_Journal-Resting_Grounds_Catacombs", player), lambda state: ((state.has("Upper_Resting_Grounds", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Wanderer's_Journal-King's_Station", player), lambda state: state.has("Upper_King's_Station", player)) - set_rule(world.get_location("Wanderer's_Journal-Pleasure_House", player), lambda state: state.has("Pleasure_House", player)) - set_rule(world.get_location("Wanderer's_Journal-City_Storerooms", player), lambda state: state.has("Left_Elevator", player)) - set_rule(world.get_location("Wanderer's_Journal-Ancient_Basin", player), lambda state: (state.has("Upper_Basin", player) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.SPIKETUNNELS[player]))) - set_rule(world.get_location("Wanderer's_Journal-Kingdom's_Edge_Entrance", player), lambda state: (state.has("Central_Kingdom's_Edge", player) and state.has("Mantis_Claw", player))) - set_rule(world.get_location("Wanderer's_Journal-Kingdom's_Edge_Camp", player), lambda state: (state.has("Center_Right_Kingdom's_Edge", player) and (state.has("Monarch_Wings", player) or (state.has("Mantis_Claw", player) and (state.world.SPICYSKIPS[player] or state.has("Cast_Off_Shell", player)))))) - set_rule(world.get_location("Wanderer's_Journal-Kingdom's_Edge_Requires_Dive", player), lambda state: (state.has("Center_Right_Kingdom's_Edge", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) - set_rule(world.get_location("Hallownest_Seal-Crossroads_Well", player), lambda state: (state.has("Crossroads", player) and ((state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and (state.world.SHADESKIPS[player] or ((((state.has("Lurien", player) or state.has("Monomon", player)) or state.has("Herrah", player)) or state.has("Dreamer", player)) and state.world.SPICYSKIPS[player])))) or ((((((state.has("Lurien", player) or state.has("Monomon", player)) or state.has("Herrah", player)) or state.has("Dreamer", player)) and state.world.SPICYSKIPS[player]) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))))))) - set_rule(world.get_location("Hallownest_Seal-Grubs", player), lambda state: (state.has("Crossroads", player) and state._hk_has_grubs(player, 5))) - set_rule(world.get_location("Hallownest_Seal-Greenpath", player), lambda state: (state.has("Greenpath", player) and (((state.has("Isma's_Tear", player) or (state.has("Monarch_Wings", player) and (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))))) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and ((((state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) or state.has("Dashmaster", player)) or state.has("Monarch_Wings", player)) or state.has("Mantis_Claw", player)))) or state.has("Crystal_Heart", player)))) - set_rule(world.get_location("Hallownest_Seal-Fog_Canyon_West", player), lambda state: state.has("Left_Fog_Canyon", player)) - set_rule(world.get_location("Hallownest_Seal-Fog_Canyon_East", player), lambda state: ((state.has("Right_Fog_Canyon", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.world.MILDSKIPS[player]))) or ((state.has("Crossroads", player) and ((state.has("Isma's_Tear", player) or (((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.has("Crystal_Heart", player)) and state.world.ACIDSKIPS[player])) or ((state.has("Monarch_Wings", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.world.ACIDSKIPS[player]))) and ((((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Crystal_Heart", player)) or state.world.SPICYSKIPS[player])))) - set_rule(world.get_location("Hallownest_Seal-Queen's_Station", player), lambda state: (state.has("Queen's_Station", player) and state.has("Monarch_Wings", player))) - set_rule(world.get_location("Hallownest_Seal-Fungal_Wastes_Sporgs", player), lambda state: state.has("Fungal_Wastes", player)) - set_rule(world.get_location("Hallownest_Seal-Mantis_Lords", player), lambda state: (state.has("Mantis_Village", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Hallownest_Seal-Seer", player), lambda state: (state.has("Upper_Resting_Grounds", player) and state._hk_has_essence(player, 300))) - set_rule(world.get_location("Hallownest_Seal-Resting_Grounds_Catacombs", player), lambda state: (state.has("Upper_Resting_Grounds", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) - set_rule(world.get_location("Hallownest_Seal-King's_Station", player), lambda state: (state.has("Upper_King's_Station", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Hallownest_Seal-City_Rafters", player), lambda state: state.has("Left_City", player)) - set_rule(world.get_location("Hallownest_Seal-Soul_Sanctum", player), lambda state: ((state.has("Soul_Sanctum", player) and state.has("Mantis_Claw", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) - set_rule(world.get_location("Hallownest_Seal-Watcher_Knight", player), lambda state: (((state.has("Right_City", player) and state.has("Mantis_Claw", player)) and (state.has("Monarch_Wings", player) or state.world.MILDSKIPS[player])) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Hallownest_Seal-Deepnest_By_Mantis_Lords", player), lambda state: (state.has("Far_Right_Deepnest", player) and state.has("Mantis_Claw", player))) - set_rule(world.get_location("Hallownest_Seal-Beast's_Den", player), lambda state: state.has("Beast's_Den", player)) - set_rule(world.get_location("Hallownest_Seal-Queen's_Gardens", player), lambda state: (state.has("Top_Left_Queen's_Gardens", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.world.SPICYSKIPS[player])))) - set_rule(world.get_location("King's_Idol-Grubs", player), lambda state: (state.has("Crossroads", player) and state._hk_has_grubs(player, 5))) - set_rule(world.get_location("King's_Idol-Cliffs", player), lambda state: state.has("Howling_Cliffs", player)) - set_rule(world.get_location("King's_Idol-Crystal_Peak", player), lambda state: (state.has("Upper_Crystal_Peak", player) and ((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("King's_Idol-Glade_of_Hope", player), lambda state: (state.has("Spirits_Glade", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))))) - set_rule(world.get_location("King's_Idol-Dung_Defender", player), lambda state: (((state.has("Central_Left_Waterways", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player]))) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("King's_Idol-Great_Hopper", player), lambda state: state.has("Top_Kingdom's_Edge", player)) - set_rule(world.get_location("King's_Idol-Pale_Lurker", player), lambda state: state.has("Pale_Lurker_Area", player)) - set_rule(world.get_location("King's_Idol-Deepnest", player), lambda state: state.has("Failed_Tramway", player)) - set_rule(world.get_location("Arcane_Egg-Seer", player), lambda state: (state.has("Upper_Resting_Grounds", player) and state._hk_has_essence(player, 300))) - set_rule(world.get_location("Arcane_Egg-Lifeblood_Core", player), lambda state: ((state.has("Abyss", player) and ((state.has("Lifeblood_Heart", player) or state.has("Lifeblood_Core", player)) or state.has("Joni's_Blessing", player))) and (state.has("Crystal_Heart", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))))) - set_rule(world.get_location("Arcane_Egg-Shade_Cloak", player), lambda state: ((state.has("Abyss", player) and ((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Monarch_Wings", player))) and ((state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player)) or ((state.has("Queen_Fragment", player) and state.has("King_Fragment", player)) and state.has("Void_Heart", player))))) - set_rule(world.get_location("Arcane_Egg-Birthplace", player), lambda state: (state.has("Abyss", player) and (((state.has("Queen_Fragment", player) and state.has("King_Fragment", player)) or (state.has("Queen_Fragment", player) and state.has("Void_Heart", player))) or (state.has("King_Fragment", player) and state.has("Void_Heart", player))))) - set_rule(world.get_location("Whispering_Root-Crossroads", player), lambda state: (((state.has("Crossroads", player) and state.has("Mantis_Claw", player)) and (((state.has("Monarch_Wings", player) or state.has("Crystal_Heart", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or ((((state.has("Lurien", player) or state.has("Monomon", player)) or state.has("Herrah", player)) or state.has("Dreamer", player)) and state.world.SPICYSKIPS[player]))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Greenpath", player), lambda state: (((state.has("Far_Queen's_Gardens", player) and state.has("Greenpath", player)) and state.has("Mantis_Claw", player)) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Leg_Eater", player), lambda state: (state.has("Right_Fog_Canyon", player) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Mantis_Village", player), lambda state: ((state.has("Fungal_Wastes", player) and state.has("Mantis_Claw", player)) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Deepnest", player), lambda state: (((state.has("Dark_Deepnest", player) and (state.has("Lumafly_Lantern", player) or state.world.DARKROOMS[player])) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player]))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Queens_Gardens", player), lambda state: ((state.has("Bottom_Right_Queen's_Gardens", player) and state.has("Mantis_Claw", player)) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Kingdoms_Edge", player), lambda state: ((state.has("Upper_Kingdom's_Edge", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Waterways", player), lambda state: (((state.has("Waterways_Shaft", player) and state.has("Mantis_Claw", player)) and ((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)) or state.world.MILDSKIPS[player])) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-City", player), lambda state: ((state.has("Left_Elevator", player) and ((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)) or state.world.MILDSKIPS[player])) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Resting_Grounds", player), lambda state: (state.has("Upper_Resting_Grounds", player) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Spirits_Glade", player), lambda state: (((state.has("Spirits_Glade", player) and state.has("Mantis_Claw", player)) and (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Crystal_Peak", player), lambda state: (((state.has("Upper_Crystal_Peak", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Howling_Cliffs", player), lambda state: ((state.has("Howling_Cliffs", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.world.MILDSKIPS[player]))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Ancestral_Mound", player), lambda state: (((state.has("Ancestral_Mound", player) and (state.has("Monarch_Wings", player) or (state.has("Mantis_Claw", player) and state.world.SPICYSKIPS[player]))) and (state.has("Mantis_Claw", player) or (((((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.has("Grubberfly's_Elegy", player)) or state.has("Glowing_Womb", player)) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.has("Dash_Slash", player))) or (state.world.MILDSKIPS[player] and (state.has("Weaversong", player) or (state.has("Spore_Shroom", player) and (state.world.NOTCURSED[player] or state.has("Focus", player)))))) or (((state.has("Mark_of_Pride", player) or state.has("Cyclone_Slash", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.world.SPICYSKIPS[player])))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Whispering_Root-Hive", player), lambda state: ((state.has("Hive", player) and ((state.has("Mantis_Claw", player) and state.has("Monarch_Wings", player)) or (state.world.MILDSKIPS[player] and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player)))) - set_rule(world.get_location("Boss_Essence-Elder_Hu", player), lambda state: ((state.has("Fungal_Wastes", player) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Boss_Essence-Xero", player), lambda state: ((state.has("Upper_Resting_Grounds", player) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Boss_Essence-Gorb", player), lambda state: ((state.has("Howling_Cliffs", player) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Boss_Essence-Marmu", player), lambda state: (((state.has("Top_Left_Queen's_Gardens", player) or ((state.has("Queen's_Gardens_Stag", player) and state.has("Can_Stag", player)) and (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Mantis_Claw", player)) or state.has("Monarch_Wings", player)))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Boss_Essence-No_Eyes", player), lambda state: (((state.has("Stone_Sanctuary", player) and state.has("Lumafly_Lantern", player)) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Boss_Essence-Galien", player), lambda state: ((((state.has("Failed_Tramway", player) and (state.has("Lumafly_Lantern", player) or state.world.DARKROOMS[player])) or (state.has("Dark_Deepnest", player) and state.has("Mantis_Claw", player))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Boss_Essence-Markoth", player), lambda state: (((state.has("Center_Right_Kingdom's_Edge", player) and (state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Boss_Essence-Failed_Champion", player), lambda state: (((state.has("Crossroads", player) and ((state.has("Mantis_Claw", player) and ((state.has("Monarch_Wings", player) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Crystal_Heart", player))) or (state.has("Monarch_Wings", player) and ((((state.has("Lurien", player) or state.has("Monomon", player)) or state.has("Herrah", player)) or state.has("Dreamer", player)) and state.world.SPICYSKIPS[player])))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Boss_Essence-Soul_Tyrant", player), lambda state: (((state.has("Soul_Sanctum", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Boss_Essence-Lost_Kin", player), lambda state: (((state.has("Far_Left_Basin", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player]))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Boss_Essence-White_Defender", player), lambda state: (((((((state.has("Central_Left_Waterways", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player]))) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player]))) and state.has("Lurien", player)) and state.has("Monomon", player)) and state.has("Herrah", player))) - set_rule(world.get_location("Boss_Essence-Grey_Prince_Zote", player), lambda state: (((((((state.has("Dirtmouth", player) and ((state.has("Dream_Nail", player) or state.has("Dream_Gate", player)) or state.has("Awoken_Dream_Nail", player))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player]))) and state.has("Mantis_Outskirts", player)) and state.has("Mantis_Claw", player)) and state.has("Monarch_Wings", player)) and state.has("Failed_Tramway", player)) and state.has("Colosseum", player))) - set_rule(world.get_location("Grub-Crossroads_Acid", player), lambda state: state.has("Crossroads", player)) - set_rule(world.get_location("Grub-Crossroads_Center", player), lambda state: (state.has("Crossroads", player) and (((state.world.MILDSKIPS[player] or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)))) - set_rule(world.get_location("Grub-Crossroads_Stag", player), lambda state: state.has("Crossroads", player)) - set_rule(world.get_location("Grub-Crossroads_Spike", player), lambda state: state.has("Crossroads", player)) - set_rule(world.get_location("Grub-Crossroads_Guarded", player), lambda state: state.has("Crossroads", player)) - set_rule(world.get_location("Grub-Greenpath_Cornifer", player), lambda state: state.has("Greenpath", player)) - set_rule(world.get_location("Grub-Greenpath_Journal", player), lambda state: state.has("Greenpath", player)) - set_rule(world.get_location("Grub-Greenpath_MMC", player), lambda state: (state.has("Greenpath", player) and ((((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Mantis_Claw", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))) or state.world.SHADESKIPS[player]))) - set_rule(world.get_location("Grub-Greenpath_Stag", player), lambda state: state.has("Greenpath", player)) - set_rule(world.get_location("Grub-Fog_Canyon", player), lambda state: (state.has("Crystal_Heart", player) and state.has("Right_Fog_Canyon", player))) - set_rule(world.get_location("Grub-Fungal_Bouncy", player), lambda state: state.has("Fungal_Wastes", player)) - set_rule(world.get_location("Grub-Fungal_Spore_Shroom", player), lambda state: state.has("Bottom_Left_Fungal_Wastes", player)) - set_rule(world.get_location("Grub-Deepnest_Mimic", player), lambda state: (state.has("Bottom_Left_Fungal_Wastes", player) or (state.has("Upper_Deepnest", player) and (state.has("Monarch_Wings", player) or (state.has("Mantis_Claw", player) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Crystal_Heart", player))))))) - set_rule(world.get_location("Grub-Deepnest_Nosk", player), lambda state: (state.has("Deepnest", player) and ((state.has("Crystal_Heart", player) or state.has("Monarch_Wings", player)) or (state.has("Mantis_Claw", player) and state.world.SHADESKIPS[player])))) - set_rule(world.get_location("Grub-Deepnest_Spike", player), lambda state: (state.has("Deepnest", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Grub-Dark_Deepnest", player), lambda state: (state.has("Dark_Deepnest", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and (state.world.MILDSKIPS[player] or state.has("Bottom_Left_Queen's_Gardens", player)))))) - set_rule(world.get_location("Grub-Beast's_Den", player), lambda state: (state.has("Beast's_Den", player) and (state.has("Mantis_Claw", player) or ((state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player]) and state.world.SHADESKIPS[player])))) - set_rule(world.get_location("Grub-Kingdom's_Edge_Oro", player), lambda state: (((state.has("Oro_Bench", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and (state.world.MILDSKIPS[player] or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))))) - set_rule(world.get_location("Grub-Kingdom's_Edge_Camp", player), lambda state: (state.has("Center_Right_Kingdom's_Edge", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or (state.world.MILDSKIPS[player] and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))))) - set_rule(world.get_location("Grub-Hive_External", player), lambda state: (((state.has("Lower_Kingdom's_Edge", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and (state.has("Isma's_Tear", player) or ((state.has("Mantis_Claw", player) and state.has("Crystal_Heart", player)) and state.world.ACIDSKIPS[player])))) - set_rule(world.get_location("Grub-Hive_Internal", player), lambda state: (((state.has("Hive", player) and state.has("Mantis_Claw", player)) and state.has("Monarch_Wings", player)) and (state.has("Crystal_Heart", player) or state.world.SPICYSKIPS[player]))) - set_rule(world.get_location("Grub-Basin_Requires_Wings", player), lambda state: ((state.has("Far_Left_Basin", player) and state.has("Monarch_Wings", player)) and (state.has("Mantis_Claw", player) or ((state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and state.world.SPICYSKIPS[player])))) - set_rule(world.get_location("Grub-Basin_Requires_Dive", player), lambda state: (state.has("Mid_Basin", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) - set_rule(world.get_location("Grub-Waterways_Main", player), lambda state: (state.has("Upper_Left_Waterways", player) or state.has("Far_Left_Waterways", player))) - set_rule(world.get_location("Grub-Waterways_East", player), lambda state: ((state.has("Isma's_Grove", player) and state.has("Mantis_Claw", player)) and (state.has("Isma's_Tear", player) or (((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.has("Crystal_Heart", player)) and state.world.ACIDSKIPS[player])))) - set_rule(world.get_location("Grub-Waterways_Requires_Tram", player), lambda state: ((state.has("Lower_Kingdom's_Edge", player) and state.has("Mantis_Claw", player)) and ((state.has("Crystal_Heart", player) and state.has("Monarch_Wings", player)) or state.has("Isma's_Tear", player)))) - set_rule(world.get_location("Grub-City_of_Tears_Left", player), lambda state: ((state.has("Left_City", player) and ((state.has("Mantis_Claw", player) and ((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Crystal_Heart", player)) or state.has("Monarch_Wings", player)) or state.world.MILDSKIPS[player])) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player]))) or ((state.has("Left_Elevator", player) or state.has("Soul_Sanctum", player)) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Grub-Soul_Sanctum", player), lambda state: ((state.has("Soul_Sanctum", player) and state.has("Mantis_Claw", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) - set_rule(world.get_location("Grub-Watcher's_Spire", player), lambda state: ((state.has("Right_City", player) and state.has("Mantis_Claw", player)) and (state.has("Monarch_Wings", player) or state.world.MILDSKIPS[player]))) - set_rule(world.get_location("Grub-City_of_Tears_Guarded", player), lambda state: (state.has("Right_City", player) and (((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Upper_King's_Station", player)))) - set_rule(world.get_location("Grub-King's_Station", player), lambda state: state.has("Lower_King's_Station", player)) - set_rule(world.get_location("Grub-Resting_Grounds", player), lambda state: ((state.has("Upper_Resting_Grounds", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Grub-Crystal_Peak_Below_Chest", player), lambda state: (state.has("Upper_Crystal_Peak", player) and (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or (state.has("Mantis_Claw", player) and state.has("Crystal_Heart", player))) or (state.has("Dashmaster", player) and state.has("Sprintmaster", player))))) - set_rule(world.get_location("Grub-Crystallized_Mound", player), lambda state: ((state.has("Crystallized_Mound", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Grub-Crystal_Peak_Spike", player), lambda state: (state.has("Crystal_Peak", player) and ((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or ((state.has("Monarch_Wings", player) and state.world.SPIKETUNNELS[player]) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))))))) - set_rule(world.get_location("Grub-Crystal_Peak_Mimic", player), lambda state: (((state.has("Upper_Crystal_Peak", player) and state.has("Mantis_Claw", player)) and state.has("Crystal_Heart", player)) or ((state.has("King's_Pass", player) and state.has("Monarch_Wings", player)) and state.has("Crystal_Heart", player)))) - set_rule(world.get_location("Grub-Crystal_Peak_Crushers", player), lambda state: ((state.has("Upper_Crystal_Peak", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Grub-Crystal_Heart", player), lambda state: (state.has("Upper_Crystal_Peak", player) and ((state.has("Mantis_Claw", player) and state.has("Crystal_Heart", player)) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Grub-Hallownest_Crown", player), lambda state: (((state.has("Upper_Crystal_Peak", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or (state.has("Hallownest's_Crown", player) and (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Crystal_Heart", player)) or state.world.SPIKETUNNELS[player])))) - set_rule(world.get_location("Grub-Howling_Cliffs", player), lambda state: state.has("Howling_Cliffs", player)) - set_rule(world.get_location("Grub-Queen's_Gardens_Stag", player), lambda state: (state.has("Top_Left_Queen's_Gardens", player) or (state.has("Queen's_Gardens_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("Grub-Queen's_Gardens_Marmu", player), lambda state: (state.has("Top_Left_Queen's_Gardens", player) and state.has("Mantis_Claw", player))) - set_rule(world.get_location("Grub-Queen's_Gardens_Top", player), lambda state: (((state.has("Far_Queen's_Gardens", player) and state.has("Mantis_Claw", player)) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.has("Crystal_Heart", player))) - set_rule(world.get_location("Grub-Collector_1", player), lambda state: (((state.has("Tower_of_Love", player) and state.has("Love_Key", player)) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player]))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Grub-Collector_2", player), lambda state: (((state.has("Tower_of_Love", player) and state.has("Love_Key", player)) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player]))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Grub-Collector_3", player), lambda state: (((state.has("Tower_of_Love", player) and state.has("Love_Key", player)) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player]))) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Crossroads_Map", player), lambda state: state.has("Crossroads", player)) - set_rule(world.get_location("Greenpath_Map", player), lambda state: state.has("Greenpath", player)) - set_rule(world.get_location("Fog_Canyon_Map", player), lambda state: (state.has("Right_Fog_Canyon", player) and (((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.world.MILDSKIPS[player]) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Fungal_Wastes_Map", player), lambda state: state.has("Fungal_Wastes", player)) - set_rule(world.get_location("Deepnest_Map-Upper", player), lambda state: state.has("Upper_Deepnest", player)) - set_rule(world.get_location("Deepnest_Map-Right_[Gives_Quill]", player), lambda state: (state.has("Far_Right_Deepnest", player) and state.has("Mantis_Claw", player))) - set_rule(world.get_location("Ancient_Basin_Map", player), lambda state: (state.has("Mid_Basin", player) and (((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Mantis_Claw", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)) or state.world.MILDSKIPS[player]))) - set_rule(world.get_location("Kingdom's_Edge_Map", player), lambda state: state.has("Central_Kingdom's_Edge", player)) - set_rule(world.get_location("City_of_Tears_Map", player), lambda state: state.has("Left_Elevator", player)) - set_rule(world.get_location("Royal_Waterways_Map", player), lambda state: (state.has("Far_Left_Waterways", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Howling_Cliffs_Map", player), lambda state: state.has("Howling_Cliffs", player)) - set_rule(world.get_location("Crystal_Peak_Map", player), lambda state: state.has("Upper_Crystal_Peak", player)) - set_rule(world.get_location("Queen's_Gardens_Map", player), lambda state: ((state.has("Top_Left_Queen's_Gardens", player) or (state.has("Top_Right_Queen's_Gardens", player) and (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or (state.has("Crystal_Heart", player) and state.has("Mantis_Claw", player))))) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Resting_Grounds_Map", player), lambda state: state.has("Upper_Resting_Grounds", player)) - set_rule(world.get_location("Dirtmouth_Stag", player), lambda state: state.has("Can_Stag", player)) - set_rule(world.get_location("Crossroads_Stag", player), lambda state: state.has("Crossroads", player)) - set_rule(world.get_location("Greenpath_Stag", player), lambda state: state.has("Greenpath", player)) - set_rule(world.get_location("Queen's_Station_Stag", player), lambda state: state.has("Queen's_Station", player)) - set_rule(world.get_location("Queen's_Gardens_Stag", player), lambda state: (state.has("Top_Left_Queen's_Gardens", player) or (state.has("Queen's_Gardens_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("City_Storerooms_Stag", player), lambda state: state.has("Left_Elevator", player)) - set_rule(world.get_location("King's_Station_Stag", player), lambda state: ((state.has("Upper_King's_Station", player) or (state.has("Right_City", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))) or (state.has("King's_Station_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("Resting_Grounds_Stag", player), lambda state: state.has("Upper_Resting_Grounds", player)) - set_rule(world.get_location("Distant_Village_Stag", player), lambda state: ((state.has("Distant_Village", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) or (state.has("Distant_Village_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("Hidden_Station_Stag", player), lambda state: state.has("Palace_Grounds", player)) - set_rule(world.get_location("Stag_Nest_Stag", player), lambda state: state.has("Stag_Nest", player)) - set_rule(world.get_location("Lifeblood_Cocoon-King's_Pass", player), lambda state: state.has("King's_Pass", player)) - set_rule(world.get_location("Lifeblood_Cocoon-Ancestral_Mound", player), lambda state: state.has("Ancestral_Mound", player)) - set_rule(world.get_location("Lifeblood_Cocoon-Greenpath", player), lambda state: state.has("Greenpath", player)) - set_rule(world.get_location("Lifeblood_Cocoon-Fog_Canyon_West", player), lambda state: state.has("Left_Fog_Canyon", player)) - set_rule(world.get_location("Lifeblood_Cocoon-Mantis_Village", player), lambda state: ((state.has("Mantis_Village", player) and state.has("Mantis_Claw", player)) and (state.has("Monarch_Wings", player) or state.has("Crystal_Heart", player)))) - set_rule(world.get_location("Lifeblood_Cocoon-Failed_Tramway", player), lambda state: (state.has("Failed_Tramway", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and (state.world.MILDSKIPS[player] or state.world.SHADESKIPS[player]))))) - set_rule(world.get_location("Lifeblood_Cocoon-Galien", player), lambda state: (state.has("Dark_Deepnest", player) and state.has("Mantis_Claw", player))) - set_rule(world.get_location("Lifeblood_Cocoon-Kingdom's_Edge", player), lambda state: (state.has("Upper_Kingdom's_Edge", player) and (state.has("Monarch_Wings", player) or (state.has("Mantis_Claw", player) and state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Grimmkin_Flame-City_Storerooms", player), lambda state: (state.has("Left_Elevator", player) and state.has("Grimmchild", player))) - set_rule(world.get_location("Grimmkin_Flame-Greenpath", player), lambda state: (state.has("Greenpath", player) and state.has("Grimmchild", player))) - set_rule(world.get_location("Grimmkin_Flame-Crystal_Peak", player), lambda state: (((state.has("Upper_Crystal_Peak", player) and state.has("Crystal_Heart", player)) or (((state.has("King's_Pass", player) and state.has("Monarch_Wings", player)) and state.has("Crystal_Heart", player)) and (state.has("Mantis_Claw", player) or (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))) and state.world.SHADESKIPS[player])))) and state.has("Grimmchild", player))) - set_rule(world.get_location("Grimmkin_Flame-King's_Pass", player), lambda state: (((state.has("King's_Pass", player) and state.has("Grimmchild", player)) and state._hk_has_flames(player, 3)) and state.has("Dirtmouth", player))) - set_rule(world.get_location("Grimmkin_Flame-Resting_Grounds", player), lambda state: (((state.has("Lower_Resting_Grounds", player) and state.has("Grimmchild", player)) and state._hk_has_flames(player, 3)) and state.has("Dirtmouth", player))) - set_rule(world.get_location("Grimmkin_Flame-Kingdom's_Edge", player), lambda state: (((state.has("Central_Kingdom's_Edge", player) and state.has("Grimmchild", player)) and state._hk_has_flames(player, 3)) and state.has("Dirtmouth", player))) - set_rule(world.get_location("Grimmkin_Flame-Fungal_Core", player), lambda state: ((((state.has("Fungal_Core", player) and state.has("Grimmchild", player)) and state._hk_has_flames(player, 6)) and state.has("Dirtmouth", player)) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Grimmkin_Flame-Ancient_Basin", player), lambda state: ((((state.has("Upper_Basin", player) and state.has("Grimmchild", player)) and state._hk_has_flames(player, 6)) and state.has("Dirtmouth", player)) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Grimmkin_Flame-Hive", player), lambda state: (((((state.has("Hive", player) and ((state.has("Mantis_Claw", player) and state.has("Monarch_Wings", player)) or (state.world.MILDSKIPS[player] and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))))) and state.has("Grimmchild", player)) and state._hk_has_flames(player, 6)) and state.has("Dirtmouth", player)) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Grimmkin_Flame-Brumm", player), lambda state: ((((state.has("Distant_Village", player) and state.has("Grimmchild", player)) and state._hk_has_flames(player, 6)) and state.has("Dirtmouth", player)) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) - # set_rule(world.get_location("Grubfather", player), lambda state: state.has("Crossroads", player)) - # set_rule(world.get_location("Seer", player), lambda state: state.has("Upper_Resting_Grounds", player)) +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): + 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 # Events - set_rule(world.get_location("Hollow Knight", player), lambda state: state.has('Lurien', player) and \ - state.has('Monomon', player) and \ - state.has('Herrah', player)) + + 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._kh_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._kh_option(player, 'InfectionSkips') and state.count('DREAMER', player))) or (state.count('Crossroads_12[right1]', player) and (state._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True and state._kh_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15))) or ((state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state._kh_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._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_option(player, 'DifficultSkips')))) and state._kh_option(player, 'ProficientCombat')) or (state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_option(player, 'DifficultSkips')))) and (state.count('FOCUS', player) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_option(player, 'DifficultSkips')))) and (state.count('FOCUS', player) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ComplexSkips') and state._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'SpikeTunnels') and state.count('RIGHTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._kh_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._kh_option(player, 'SpikeTunnels') and state.count('LEFTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._kh_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._kh_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._kh_option(player, 'BackgroundObjectPogos') or (True and state._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or state._kh_option(player, 'ShadeSkips') or (state._kh_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._kh_option(player, 'InfectionSkips') and state.count('DREAMER', player)) or ((state._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._kh_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._kh_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._kh_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._kh_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._kh_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._kh_option(player, 'InfectionSkips') and state.count('DREAMER', player))) and (state.count('LEFTSUPERDASH', player) or (state._kh_option(player, 'SpikeTunnels') and state.count('LEFTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'DangerousSkips') and state._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True) or (True and state._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_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._kh_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._kh_option(player, 'ComplexSkips') and state._kh_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._kh_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._kh_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._kh_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._kh_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._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) and (True and state._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and True)) and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos') and (state._kh_option(player, 'ObscureSkips') or state.count('LEFTDASH', player))) or ((state._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos') or state._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos')) or state.count('RIGHTSUPERDASH', player) or (state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state._kh_option(player, 'ObscureSkips') or (state._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_option(player, 'EnemyPogos') or state._kh_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._kh_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._kh_option(player, 'ObscureSkips')) or (state.count('LEFTCLAW', player) and (state._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_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._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) and (state.count('RIGHTDASH', player) or state.count('RIGHTCLAW', player) or ((state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'DarkRooms')) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._kh_option(player, 'EnemyPogos'))) or (state.count('LEFTCLAW', player) and state._kh_option(player, 'EnemyPogos')))) or (state.count('Deepnest_41[left2]', player) and (state.count('LANTERN', player) or state._kh_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._kh_option(player, 'DarkRooms')) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and (state.count('RIGHTCLAW', player) or state._kh_option(player, 'EnemyPogos'))) or (state.count('RIGHTCLAW', player) and state._kh_option(player, 'EnemyPogos')))) or (state.count('Deepnest_41[left2]', player) and (state.count('LANTERN', player) or state._kh_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._kh_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._kh_option(player, 'AcidSkips')) or (state.count('LEFTDASH', player) and state.count('WINGS', player) and state._kh_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._kh_option(player, 'ObscureSkips'))) and (state.count('LEFTCLAW', player) or (state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((True and state._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) or (state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_option(player, 'EnemyPogos')) or state.count('WINGS', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and state._kh_option(player, 'EnemyPogos')) or (state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player))) or (state._kh_option(player, 'EnemyPogos') and state._kh_option(player, 'DangerousSkips'))) and (state.count('LEFTCLAW', player) or (state.count('WINGS', player) and state._kh_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._kh_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._kh_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._kh_option(player, 'PreciseMovement'))) or (state.count('Deepnest_East_14[left1]', player) and (state.count('RIGHTDASH', player) or state._kh_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._kh_option(player, 'EnemyPogos')) or (state.count('Deepnest_East_14b[right1]', player) and (state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'SpikeTunnels') and state.count('LEFTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state._kh_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._kh_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._kh_option(player, 'EnemyPogos')))) or (state.count('Abyss_01[left1]', player) and state.count('LEFTCLAW', player) and (state.count('RIGHTSUPERDASH', player) or state._kh_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._kh_option(player, 'SpikeTunnels') and state.count('RIGHTDASH', player) and (state.count('Dashmaster', player) and state.count('Can_Bench', player) or (state._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'PreciseMovement'))) or (state.count('Waterways_02', player) and ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) or (state._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state.count('SWIM', player)) or (state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_option(player, 'EnemyPogos') and state.count('SWIM', player)) or (state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'AcidSkips'))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state._kh_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._kh_option(player, 'AcidSkips')))) or (state.count('Waterways_04[left1]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos'))) and (state.count('LEFTCLAW', player) or state._kh_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._kh_option(player, 'EnemyPogos') and state._kh_option(player, 'DangerousSkips') or (state.count('LEFTCLAW', player) and (state.count('LEFTDASH', player) or state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'PreciseMovement'))) or (state.count('WINGS', player) and state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player) and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'PreciseMovement'))))) and (state.count('LEFTCLAW', player) and state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (state._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos'))) or (state.count('WINGS', player) and state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_option(player, 'EnemyPogos'))) or (state.count('WINGS', player) and state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[right2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._kh_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._kh_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._kh_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._kh_option(player, 'EnemyPogos') and state._kh_option(player, 'DifficultSkips')) or ((state._kh_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._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) or state._kh_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._kh_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or (True and state._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) or state._kh_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._kh_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._kh_option(player, 'EnemyPogos'))) or (state.count('Ruins2_06[right2]', player) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._kh_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._kh_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or state.count('WINGS', player) or state._kh_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._kh_option(player, 'AcidSkips')) or (state._kh_option(player, 'DifficultSkips') and state._kh_option(player, 'AcidSkips') and state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._kh_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._kh_option(player, 'AcidSkips')) or (state._kh_option(player, 'ComplexSkips') and state._kh_option(player, 'AcidSkips') and state.count('LEFTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._kh_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._kh_option(player, 'AcidSkips')) or (state._kh_option(player, 'ComplexSkips') and state._kh_option(player, 'AcidSkips') and state.count('LEFTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._kh_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._kh_option(player, 'AcidSkips')) or (state._kh_option(player, 'ComplexSkips') and state._kh_option(player, 'AcidSkips') and state.count('RIGHTDASH', player) and state.count('RIGHTCLAW', player) and state.count('WINGS', player) and ((state._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'SpikeTunnels') and state.count('WINGS', player) and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or ((state._kh_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._kh_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._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) or state._kh_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._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) or state._kh_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._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) or state._kh_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._kh_option(player, 'BackgroundObjectPogos') and state._kh_option(player, 'PreciseMovement') and state._kh_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._kh_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._kh_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._kh_option(player, 'BackgroundObjectPogos') or (state.count('LEFTDASH', player) and state.count('LEFTCLAW', player) and state._kh_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._kh_option(player, 'PreciseMovement') or state._kh_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._kh_option(player, 'PreciseMovement')) or ((state.count('LEFTCLAW', player) or state.count('RIGHTCLAW', player)) and state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_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._kh_option(player, 'ObscureSkips') and state._kh_option(player, 'PreciseMovement') and state._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos')) or state.count('Fungus3_13[right1]', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (True and state._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) and state._kh_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._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) and state._kh_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._kh_option(player, 'EnemyPogos')) or state.count('Fungus3_13[left1]', player) or ((state.count('LEFTDASH', player) and state.count('RIGHTDASH', player)) and (True and state._kh_option(player, 'ShadeSkips') or ((state.count('DREAMNAIL', player) > 1 and state.count('ESSENCE', player)) and state._kh_option(player, 'ShadeSkips'))) and state._kh_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._kh_option(player, 'BackgroundObjectPogos') or state._kh_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._kh_option(player, 'EnemyPogos') or state._kh_option(player, 'ShadeSkips') or ((state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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)) - set_rule(world.get_location("King's_Pass", player), lambda state: (state.has("Howling_Cliffs", player) or (state.has("Dirtmouth", player) and state.has("Mantis_Claw", player)))) - set_rule(world.get_location("Dirtmouth", player), lambda state: ((((state.has("Crossroads", player) or ((state.has("Upper_Crystal_Peak", player) and state.has("Mantis_Claw", player)) and state.has("Crystal_Heart", player))) or state.has("King's_Pass", player)) or (state.has("Howling_Cliffs", player) and (state.has("Crystal_Heart", player) or (state.has("Monarch_Wings", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))))) or (state.has("Dirtmouth_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("Can_Stag", player), lambda state: (((((((((state.has("Crossroads", player) or state.has("Greenpath", player)) or state.has("Queen's_Station", player)) or state.has("Top_Left_Queen's_Gardens", player)) or state.has("Left_Elevator", player)) or state.has("Upper_King's_Station", player)) or (state.has("Right_City", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))) or state.has("Upper_Resting_Grounds", player)) or (state.has("Distant_Village", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or (state.has("Beast's_Den", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))))) or state.has("Palace_Grounds", player))) - set_rule(world.get_location("Crossroads", player), lambda state: ((((((((state.has("Dirtmouth", player) or (state.has("Crystal_Peak", player) and state.has("Lumafly_Lantern", player))) or (state.has("Blue_Lake", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) or (state.has("Fungal_Wastes", player) and ((((state.has("Isma's_Tear", player) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Crystal_Heart", player)) or state.has("Mantis_Claw", player)) or state.has("Monarch_Wings", player)))) or (state.has("Right_Fog_Canyon", player) and (state.has("Mantis_Claw", player) and (state.has("Isma's_Tear", player) or ((state.has("Crystal_Heart", player) or (state.has("Monarch_Wings", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))) and state.world.ACIDSKIPS[player]))))) or state.has("Ancestral_Mound", player)) or state.has("Upper_Tram", player)) or (state.has("Crossroads_Stag", player) and state.has("Can_Stag", player))) or state.has("Left_Elevator", player))) - set_rule(world.get_location("Ancestral_Mound", player), lambda state: state.has("Crossroads", player)) - set_rule(world.get_location("Greenpath", player), lambda state: (((((((state.has("Crossroads", player) and (((((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.has("Grubberfly's_Elegy", player)) or state.has("Glowing_Womb", player)) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.has("Dash_Slash", player))) or (state.world.MILDSKIPS[player] and (state.has("Weaversong", player) or (state.has("Spore_Shroom", player) and (state.world.NOTCURSED[player] or state.has("Focus", player)))))) or (((state.has("Mark_of_Pride", player) or state.has("Cyclone_Slash", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.world.SPICYSKIPS[player]))) or state.has("Howling_Cliffs", player)) or state.has("Left_Fog_Canyon", player)) or (state.has("Lake_of_Unn", player) and (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or (state.has("Mantis_Claw", player) and (state.has("Isma's_Tear", player) or state.has("Crystal_Heart", player)))))) or state.has("Stone_Sanctuary", player)) or (state.has("Greenpath-QG", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) or (state.has("Greenpath_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("Lake_of_Unn", player), lambda state: (state.has("Greenpath", player) and (((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)) or state.has("Isma's_Tear", player)) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))))) - set_rule(world.get_location("Stone_Sanctuary", player), lambda state: (state.has("Greenpath", player) and (state.has("Lumafly_Lantern", player) or state.world.DARKROOMS[player]))) - set_rule(world.get_location("Greenpath-QG", player), lambda state: ((state.has("Greenpath", player) and state.has("Far_Queen's_Gardens", player)) and state.has("Mantis_Claw", player))) - set_rule(world.get_location("Left_Fog_Canyon", player), lambda state: (((state.has("Greenpath", player) or state.has("Queen's_Station", player)) or (state.has("Top_Right_Queen's_Gardens", player) and (((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.has("Isma's_Tear", player)) or (((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.has("Crystal_Heart", player)) and state.world.ACIDSKIPS[player])))) or state.has("Right_Fog_Canyon", player))) - set_rule(world.get_location("Overgrown_Mound", player), lambda state: (state.has("Left_Fog_Canyon", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Right_Fog_Canyon", player), lambda state: ((((state.has("Left_Fog_Canyon", player) and (state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player))) or (state.has("Fungal_Wastes", player) and state.has("Isma's_Tear", player))) or (state.has("Crossroads", player) and (state.has("Isma's_Tear", player) or (((state.has("Mantis_Claw", player) and state.has("Crystal_Heart", player)) or (state.has("Monarch_Wings", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))) and state.world.ACIDSKIPS[player])))) or state.has("Teacher's_Archives", player))) - set_rule(world.get_location("Teacher's_Archives", player), lambda state: state.has("Right_Fog_Canyon", player)) - set_rule(world.get_location("Queen's_Station", player), lambda state: ((state.has("Left_Fog_Canyon", player) or state.has("Fungal_Wastes", player)) or (state.has("Queen's_Station_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("Fungal_Wastes", player), lambda state: (((((((state.has("Queen's_Station", player) and ((((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Crystal_Heart", player)) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))))) or (state.has("Isma's_Tear", player) and state.has("Right_Fog_Canyon", player))) or (state.has("Crossroads", player) and ((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or ((((state.has("Lurien", player) or state.has("Monomon", player)) or state.has("Herrah", player)) or state.has("Dreamer", player)) and state.world.SPICYSKIPS[player])) or (state.has("Mantis_Claw", player) and (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))))))) or (((state.has("Left_City", player) or state.has("Left_Elevator", player)) and state.has("Mantis_Claw", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or (state.has("Fungal_Core", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) or (state.has("Mantis_Village", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.world.MILDSKIPS[player]))) or (state.has("Mantis_Outskirts", player) and (((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Mantis_Claw", player)) or state.has("Monarch_Wings", player)) or state.has("Isma's_Tear", player)) or state.world.MILDSKIPS[player])))) - set_rule(world.get_location("Bottom_Left_Fungal_Wastes", player), lambda state: (((state.has("Fungal_Wastes", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and (state.world.SHADESKIPS[player] or state.world.SPICYSKIPS[player])))) or state.has("Bottom_Right_Queen's_Gardens", player)) or (state.has("Upper_Deepnest", player) and ((state.has("Mantis_Claw", player) and (((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Crystal_Heart", player)) or state.has("Monarch_Wings", player)) or state.world.SHADESKIPS[player]) or state.world.SPICYSKIPS[player])) or (state.has("Monarch_Wings", player) and (state.world.SHADESKIPS[player] or state.world.SPICYSKIPS[player])))))) - set_rule(world.get_location("Fungal_Core", player), lambda state: ((state.has("Fungal_Wastes", player) and state.has("Mantis_Claw", player)) and state.has("Monarch_Wings", player))) - set_rule(world.get_location("Mantis_Outskirts", player), lambda state: (state.has("Fungal_Wastes", player) or (state.has("Mantis_Village", player) and ((((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.has("Isma's_Tear", player)) or state.has("Crystal_Heart", player)) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.world.MILDSKIPS[player]))))) - set_rule(world.get_location("Mantis_Village", player), lambda state: ((state.has("Fungal_Wastes", player) and ((state.world.MILDSKIPS[player] or state.has("Mantis_Claw", player)) or state.has("Monarch_Wings", player))) or (state.has("Mantis_Outskirts", player) and (((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Mantis_Claw", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)) or state.has("Isma's_Tear", player))))) - set_rule(world.get_location("Left_City", player), lambda state: (((((state.has("Fungal_Wastes", player) and state.has("City_Crest", player)) and ((state.has("Isma's_Tear", player) or state.has("Crystal_Heart", player)) or (state.has("Mantis_Claw", player) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or (state.has("Monarch_Wings", player) and (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))))))) or state.has("Right_City", player)) or state.has("Soul_Sanctum", player)) or state.has("Left_Elevator", player))) - set_rule(world.get_location("Left_Elevator", player), lambda state: (((state.has("Left_City", player) and ((state.has("Mantis_Claw", player) and ((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Crystal_Heart", player)) or state.has("Monarch_Wings", player)) or state.world.MILDSKIPS[player])) or (state.has("Monarch_Wings", player) and state.world.SHADESKIPS[player]))) or state.has("Soul_Sanctum", player)) or (state.has("City_Storerooms_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("Soul_Sanctum", player), lambda state: ((state.has("Left_City", player) and ((state.has("Mantis_Claw", player) and ((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Crystal_Heart", player)) or state.has("Monarch_Wings", player)) or state.world.MILDSKIPS[player])) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player]))) or (state.has("Left_Elevator", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))))) - set_rule(world.get_location("Right_City", player), lambda state: ((((((((state.has("Left_City", player) and state.has("Mantis_Claw", player)) and state.has("Monarch_Wings", player)) or state.has("Lower_King's_Station", player)) or state.has("Pleasure_House", player)) or state.has("Emilitia", player)) or (state.has("Waterways_Shaft", player) and ((state.has("Mantis_Claw", player) and ((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)) or state.world.MILDSKIPS[player])) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player])))) or (((state.has("Central_Left_Waterways", player) and state.world.SPICYSKIPS[player]) and state.has("Monarch_Wings", player)) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player])))) or (((state.has("Central_Left_Waterways", player) and state.has("Crystal_Heart", player)) and state.world.MILDSKIPS[player]) and state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Lower_King's_Station", player), lambda state: ((((state.has("Right_City", player) or state.has("Upper_King's_Station", player)) or state.has("Tower_of_Love", player)) or state.has("Central_Kingdom's_Edge", player)) or (state.has("King's_Station_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("Upper_King's_Station", player), lambda state: ((((state.has("Right_City", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or (state.world.MILDSKIPS[player] and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))))) or (state.has("Lower_King's_Station", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) or state.has("Right_Elevator", player)) or ((state.has("King's_Station_Stag", player) and state.has("Can_Stag", player)) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.world.SPICYSKIPS[player])))) - set_rule(world.get_location("Right_Elevator", player), lambda state: (((state.has("Lower_Resting_Grounds", player) or state.has("Top_Kingdom's_Edge", player)) or state.has("Pleasure_House", player)) or state.has("Upper_King's_Station", player))) - set_rule(world.get_location("Pleasure_House", player), lambda state: ((state.has("Right_City", player) and (((state.has("Upper_King's_Station", player) or state.has("Mantis_Claw", player)) or state.has("Monarch_Wings", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))) and (((state.has("Simple_Key-Sly", player) and state.has("Simple_Key-City", player)) and state.has("Simple_Key-Basin", player)) and state.has("Simple_Key-Lurker", player)))) - set_rule(world.get_location("Tower_of_Love", player), lambda state: state.has("Upper_Kingdom's_Edge", player)) - set_rule(world.get_location("Upper_Left_Waterways", player), lambda state: (((state.has("Left_City", player) and (((state.has("Simple_Key-Sly", player) or state.has("Simple_Key-City", player)) or state.has("Simple_Key-Basin", player)) or state.has("Simple_Key-Lurker", player))) or (state.has("Far_Left_Waterways", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) or (state.has("Central_Left_Waterways", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player]))))) - set_rule(world.get_location("Central_Left_Waterways", player), lambda state: (((state.has("Upper_Left_Waterways", player) or (state.has("Lower_Left_Waterways", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) or (((state.has("Waterways_Shaft", player) and ((state.world.SPIKETUNNELS[player] and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and ((state.has("Dashmaster", player) or (state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player))) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))) and (state.has("Crystal_Heart", player) or state.has("Isma's_Tear", player))) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.world.SPICYSKIPS[player]))) or ((state.has("Right_Waterways", player) and state.has("Mantis_Claw", player)) and state.has("Crystal_Heart", player)))) - set_rule(world.get_location("Far_Left_Waterways", player), lambda state: (state.has("Upper_Left_Waterways", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Lower_Left_Waterways", player), lambda state: ((state.has("Central_Left_Waterways", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or (state.has("Junk_Pit", player) and state.has("Mantis_Claw", player)))) - set_rule(world.get_location("Waterways_Shaft", player), lambda state: (((state.has("Right_City", player) or (state.has("Upper_Basin", player) and state.has("Mantis_Claw", player))) or (state.has("Central_Left_Waterways", player) and ((((state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player])) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player]))) or state.has("Crystal_Heart", player)) or (state.has("Isma's_Tear", player) and ((state.world.SPIKETUNNELS[player] and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and ((state.has("Dashmaster", player) or (state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player))) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))))))) or ((state.has("Right_Waterways", player) and state.has("Mantis_Claw", player)) and (state.has("Crystal_Heart", player) or ((state.has("Isma's_Tear", player) and state.has("Monarch_Wings", player)) and ((state.world.SPIKETUNNELS[player] and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and ((state.has("Dashmaster", player) or (state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player))) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))))))) - set_rule(world.get_location("Right_Waterways", player), lambda state: ((((((state.has("Central_Left_Waterways", player) and state.has("Crystal_Heart", player)) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.has("Isma's_Tear", player)))) or ((state.has("Waterways_Shaft", player) and ((state.world.SPIKETUNNELS[player] and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and ((state.has("Dashmaster", player) or (state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player))) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))) and (((state.has("Mantis_Claw", player) and state.has("Crystal_Heart", player)) or ((state.has("Mantis_Claw", player) and state.has("Monarch_Wings", player)) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))) or ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) and state.has("Isma's_Tear", player))))) or ((state.has("Lower_Kingdom's_Edge", player) and state.has("Mantis_Claw", player)) and (state.has("Crystal_Heart", player) or state.has("Isma's_Tear", player)))) or (state.has("Isma's_Grove", player) and (state.has("Isma's_Tear", player) or (((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.has("Crystal_Heart", player)) and state.world.ACIDSKIPS[player])))) or state.has("Emilitia", player))) - set_rule(world.get_location("Junk_Pit", player), lambda state: (state.has("Lower_Left_Waterways", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Isma's_Grove", player), lambda state: (state.has("Right_Waterways", player) and ((((state.has("Mantis_Claw", player) and state.has("Central_Left_Waterways", player)) and (((((((state.has("Vengeful_Spirit", player) and state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) and state.has("Descending_Dark", player))) or (state.has("Howling_Wraiths", player) and state.has("Abyss_Shriek", player))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) and (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.world.MILDSKIPS[player]))) or (state.has("Isma's_Tear", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.world.MILDSKIPS[player]))) or (((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.has("Crystal_Heart", player)) and state.world.ACIDSKIPS[player])))) - set_rule(world.get_location("Emilitia", player), lambda state: (state.has("Right_Waterways", player) and state.has("Mantis_Claw", player))) - set_rule(world.get_location("Upper_Deepnest", player), lambda state: ((state.has("Bottom_Left_Fungal_Wastes", player) or state.has("Failed_Tramway", player)) or (state.has("Far_Right_Deepnest", player) and state.has("Mantis_Claw", player)))) - set_rule(world.get_location("Far_Right_Deepnest", player), lambda state: ((state.has("Mantis_Village", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) or state.has("Fungal_Core", player))) - set_rule(world.get_location("Deepnest", player), lambda state: ((((state.has("Upper_Deepnest", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) or state.has("Lower_Tram", player)) or state.has("Failed_Tramway", player)) or ((state.has("Dark_Deepnest", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))) and (state.has("Lumafly_Lantern", player) or state.world.DARKROOMS[player])))) - set_rule(world.get_location("Failed_Tramway", player), lambda state: ((state.has("Deepnest", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) or (state.has("Dark_Deepnest", player) and state.has("Mantis_Claw", player)))) - set_rule(world.get_location("Dark_Deepnest", player), lambda state: ((state.has("Lumafly_Lantern", player) or state.world.DARKROOMS[player]) and (((((state.has("Deepnest", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) or (state.has("Bottom_Left_Queen's_Gardens", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) or state.has("Weaver's_Den", player)) or (state.has("Distant_Village", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player])))) or (state.has("Failed_Tramway", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))))) - set_rule(world.get_location("Weaver's_Den", player), lambda state: (state.has("Dark_Deepnest", player) and ((((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player)) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player]))) or (state.has("Bottom_Left_Queen's_Gardens", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))))) - set_rule(world.get_location("Distant_Village", player), lambda state: (((state.has("Dark_Deepnest", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player]))) or state.has("Beast's_Den", player)) or (state.has("Distant_Village_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("Beast's_Den", player), lambda state: (((state.has("Dark_Deepnest", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player]))) or (state.has("Distant_Village_Stag", player) and state.has("Can_Stag", player))) or (state.has("Distant_Village", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))))) - set_rule(world.get_location("Lower_Tram", player), lambda state: (state.has("Tram_Pass", player) and ((state.has("Deepnest", player) or state.has("Mid_Basin", player)) or state.has("Lower_Kingdom's_Edge", player)))) - set_rule(world.get_location("Upper_Basin", player), lambda state: (state.has("Waterways_Shaft", player) or (state.has("Mid_Basin", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))))) - set_rule(world.get_location("Mid_Basin", player), lambda state: ((state.has("Upper_Basin", player) or (state.has("Lower_Basin", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player])))) or state.has("Lower_Tram", player))) - set_rule(world.get_location("Lower_Basin", player), lambda state: (((state.has("Mid_Basin", player) or (state.has("Abyss", player) and ((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Monarch_Wings", player)))) or state.has("Palace_Grounds", player)) or (state.has("Far_Left_Basin", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player))))) - set_rule(world.get_location("Far_Left_Basin", player), lambda state: (state.has("Lower_Basin", player) and (state.has("Monarch_Wings", player) or state.has("Crystal_Heart", player)))) - set_rule(world.get_location("Palace_Grounds", player), lambda state: (((state.has("Lower_Basin", player) and state.has("Mantis_Claw", player)) and state.has("Monarch_Wings", player)) or (state.has("Hidden_Station_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("Abyss", player), lambda state: (state.has("Lower_Basin", player) and state.has("King's_Brand", player))) - set_rule(world.get_location("Lower_Kingdom's_Edge", player), lambda state: (state.has("Lower_Tram", player) or (state.has("Hive", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))))) - set_rule(world.get_location("Central_Kingdom's_Edge", player), lambda state: (((state.has("Right_City", player) or (state.has("Lower_Kingdom's_Edge", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) or state.has("Upper_Kingdom's_Edge", player)) or state.has("Center_Right_Kingdom's_Edge", player))) - set_rule(world.get_location("Upper_Kingdom's_Edge", player), lambda state: (((state.has("Center_Right_Kingdom's_Edge", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.world.MILDSKIPS[player])) or state.has("Top_Kingdom's_Edge", player)) or state.has("Tower_of_Love", player))) - set_rule(world.get_location("Center_Right_Kingdom's_Edge", player), lambda state: (((state.has("Central_Kingdom's_Edge", player) and ((state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player])) or (state.has("Isma's_Tear", player) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player))))) or state.has("Upper_Kingdom's_Edge", player)) or state.has("Cast_Off_Shell", player))) - set_rule(world.get_location("Oro_Bench", player), lambda state: ((state.has("Central_Kingdom's_Edge", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player]))) or (state.has("Center_Right_Kingdom's_Edge", player) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or state.world.SPICYSKIPS[player])))) - set_rule(world.get_location("Cast_Off_Shell", player), lambda state: (state.has("Center_Right_Kingdom's_Edge", player) and (state.has("Monarch_Wings", player) or (state.world.SPICYSKIPS[player] and state.has("Mantis_Claw", player))))) - set_rule(world.get_location("Top_Kingdom's_Edge", player), lambda state: ((state.has("Upper_Kingdom's_Edge", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) or state.has("Colosseum", player))) - set_rule(world.get_location("Hive", player), lambda state: (state.has("Lower_Kingdom's_Edge", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)))) - set_rule(world.get_location("Colosseum", player), lambda state: (state.has("Top_Kingdom's_Edge", player) or state.has("Pale_Lurker_Area", player))) - set_rule(world.get_location("Pale_Lurker_Area", player), lambda state: (state.has("Colosseum", player) and state.has("Mantis_Claw", player))) - set_rule(world.get_location("Crystal_Peak", player), lambda state: ((((state.has("Crossroads", player) and (state.has("Lumafly_Lantern", player) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player)))) or (((state.has("Dirtmouth", player) and state.has("Mantis_Claw", player)) and state.has("Monarch_Wings", player)) and state.has("Crystal_Heart", player))) or (((state.has("Crystal_Heart", player) or (state.has("Monarch_Wings", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)))) and (state.has("Lumafly_Lantern", player) or state.world.DARKROOMS[player])) and state.has("Crystallized_Mound", player))) or state.has("Upper_Crystal_Peak", player))) - set_rule(world.get_location("Upper_Crystal_Peak", player), lambda state: (((state.has("Crystal_Peak", player) and (state.has("Mantis_Claw", player) or ((state.world.SPIKETUNNELS[player] and state.has("Monarch_Wings", player)) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))))))) or (((state.has("King's_Pass", player) and state.has("Mantis_Claw", player)) and state.has("Monarch_Wings", player)) and state.has("Crystal_Heart", player))) or state.has("Hallownest's_Crown", player))) - set_rule(world.get_location("Hallownest's_Crown", player), lambda state: (((state.has("Upper_Crystal_Peak", player) and state.has("Mantis_Claw", player)) and (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)) or state.has("Crystal_Heart", player))) and (state.has("Monarch_Wings", player) or state.world.MILDSKIPS[player]))) - set_rule(world.get_location("Crystallized_Mound", player), lambda state: ((state.has("Crystal_Peak", player) and (state.has("Lumafly_Lantern", player) or state.world.DARKROOMS[player])) and (((state.has("Monarch_Wings", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Crystal_Heart", player)) or ((state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player)))) and (state.has("Monarch_Wings", player) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))))))) - set_rule(world.get_location("Upper_Tram", player), lambda state: (state.has("Tram_Pass", player) and (state.has("Crossroads", player) or state.has("Upper_Resting_Grounds", player)))) - set_rule(world.get_location("Upper_Resting_Grounds", player), lambda state: (((((state.has("Upper_Tram", player) or (state.has("Lower_Resting_Grounds", player) and ((((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Mantis_Claw", player)) or state.has("Monarch_Wings", player)) or state.world.MILDSKIPS[player]))) or (state.has("Crystal_Peak", player) and (state.has("Lumafly_Lantern", player) or state.world.DARKROOMS[player]))) or state.has("Crystallized_Mound", player)) or state.has("Spirits_Glade", player)) or (state.has("Resting_Grounds_Stag", player) and state.has("Can_Stag", player)))) - set_rule(world.get_location("Spirits_Glade", player), lambda state: (state._hk_has_essence(player, 200) and state.has("Upper_Resting_Grounds", player))) - set_rule(world.get_location("Lower_Resting_Grounds", player), lambda state: (((state.has("Upper_Resting_Grounds", player) and (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.has("Blue_Lake", player)) or state.has("Right_Elevator", player))) - set_rule(world.get_location("Blue_Lake", player), lambda state: ((state.has("Crossroads", player) and (((state.has("Mantis_Claw", player) and (state.has("Monarch_Wings", player) or state.has("Crystal_Heart", player))) or ((((state.has("Lurien", player) or state.has("Monomon", player)) or state.has("Herrah", player)) or state.has("Dreamer", player)) and state.world.SPICYSKIPS[player])) or (state.world.SHADESKIPS[player] and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or ((state.world.SPICYSKIPS[player] and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))))))) or (state.has("Lower_Resting_Grounds", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))))) - set_rule(world.get_location("Top_Right_Queen's_Gardens", player), lambda state: ((state.has("Left_Fog_Canyon", player) and ((state.has("Isma's_Tear", player) or (((state.has("Mantis_Claw", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.has("Crystal_Heart", player)) and state.world.ACIDSKIPS[player])) or (state.has("Mothwing_Cloak", player) and state.has("Shade_Cloak", player)))) or (state.has("Top_Left_Queen's_Gardens", player) and ((state.has("Crystal_Heart", player) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or state.has("Monarch_Wings", player))))) - set_rule(world.get_location("Bottom_Right_Queen's_Gardens", player), lambda state: ((state.has("Top_Right_Queen's_Gardens", player) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) and state.has("Crystal_Heart", player)))) or (state.has("Bottom_Left_Queen's_Gardens", player) and state.has("Mantis_Claw", player)))) - set_rule(world.get_location("Bottom_Left_Queen's_Gardens", player), lambda state: ((state.has("Bottom_Right_Queen's_Gardens", player) or ((state.has("Top_Left_Queen's_Gardens", player) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.world.SPICYSKIPS[player])) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player)))) or (((state.has("Dark_Deepnest", player) and state.has("Mantis_Claw", player)) and (state.has("Monarch_Wings", player) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.world.MILDSKIPS[player]))) and (state.has("Lumafly_Lantern", player) or (state.world.DARKROOMS[player] and state.world.SPICYSKIPS[player]))))) - set_rule(world.get_location("Top_Left_Queen's_Gardens", player), lambda state: (((((state.has("Bottom_Left_Queen's_Gardens", player) and ((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.world.SPICYSKIPS[player])) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.MILDSKIPS[player]))) and ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) or state.has("Monarch_Wings", player))) or ((state.has("Queen's_Gardens_Stag", player) and state.has("Can_Stag", player)) and ((state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player)) or (((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.world.SHADESKIPS[player]) and state.world.SPICYSKIPS[player])))) or (state.has("Far_Queen's_Gardens", player) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))))) - set_rule(world.get_location("Far_Queen's_Gardens", player), lambda state: (((state.has("Top_Left_Queen's_Gardens", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))) and (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) or (state.has("Greenpath-QG", player) and (state.has("Mantis_Claw", player) or state.has("Monarch_Wings", player))))) - set_rule(world.get_location("Howling_Cliffs", player), lambda state: (((state.has("Greenpath", player) and ((state.has("Mantis_Claw", player) and ((((((((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Desolate_Dive", player) or state.has("Descending_Dark", player))) or state.has("Grubberfly's_Elegy", player)) or state.has("Glowing_Womb", player)) or ((state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player)) and state.has("Dash_Slash", player))) or (state.world.MILDSKIPS[player] and (state.has("Weaversong", player) or (state.has("Spore_Shroom", player) and (state.world.NOTCURSED[player] or state.has("Focus", player)))))) or (((state.has("Mark_of_Pride", player) or state.has("Cyclone_Slash", player)) or (state.has("Mothwing_Cloak", player) or state.has("Shade_Cloak", player))) and state.world.SPICYSKIPS[player])) or state.has("Monarch_Wings", player))) or (((state.has("Monarch_Wings", player) and (state.world.FIREBALLSKIPS[player] and ((state.has("Vengeful_Spirit", player) or state.has("Shade_Soul", player)) or (state.has("Howling_Wraiths", player) or state.has("Abyss_Shriek", player))))) and state.world.SHADESKIPS[player]) and state.world.SPICYSKIPS[player]))) or (state.has("King's_Pass", player) and (state.has("Mantis_Claw", player) or (state.has("Monarch_Wings", player) and state.world.SPICYSKIPS[player])))) or state.has("Stag_Nest", player))) - set_rule(world.get_location("Stag_Nest", player), lambda state: (((state.has("Howling_Cliffs", player) and state.has("Monarch_Wings", player)) and state.world.MILDSKIPS[player]) or ((((((((((state.has("Crossroads_Stag", player) and state.has("Greenpath_Stag", player)) and state.has("Queen's_Station_Stag", player)) and state.has("Queen's_Gardens_Stag", player)) and state.has("City_Storerooms_Stag", player)) and state.has("King's_Station_Stag", player)) and state.has("Resting_Grounds_Stag", player)) and state.has("Distant_Village_Stag", player)) and state.has("Hidden_Station_Stag", player)) or state.has("Stag_Nest_Stag", player)) and state.has("Can_Stag", player)))) \ No newline at end of file + # 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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or (state.count('WINGS', player) and state._kh_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._kh_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._kh_option(player, 'PreciseMovement') or state._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos')) or (state._kh_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._kh_option(player, 'PreciseMovement') and (state.count('RIGHTDASH', player) or (state._kh_option(player, 'DifficultSkips') and (state._kh_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._kh_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._kh_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._kh_option(player, 'DifficultSkips'))) or (state.count('WINGS', player) and state._kh_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._kh_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._kh_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._kh_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._kh_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._kh_option(player, 'BackgroundObjectPogos') or state._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_option(player, 'ObscureSkips') and state.count('RIGHTCLAW', player)) or (state._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'AcidSkips')) or (state._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or (state._kh_option(player, 'ComplexSkips') and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state._kh_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._kh_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._kh_option(player, 'ObscureSkips')) or (state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ShadeSkips') and state._kh_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._kh_option(player, 'ObscureSkips') and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'ComplexSkips') and state._kh_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._kh_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._kh_option(player, 'EnemyPogos')))))) + hk_set_rule(hk_world, "Rancid_Egg-Weaver's_Den", lambda state: state.count('Deepnest_45_v02[left1]', player) and (state._kh_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._kh_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._kh_option(player, 'AcidSkips')) and state.count('WINGS', player)) or (state._kh_option(player, 'ComplexSkips') and state._kh_option(player, 'FireballSkips') and state._kh_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._kh_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._kh_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._kh_option(player, 'AcidSkips')) and state.count('WINGS', player)) or (state._kh_option(player, 'ComplexSkips') and state._kh_option(player, 'FireballSkips') and state._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'ShadeSkips') and (state.count('MASKSHARDS', player) > 15 or (state._kh_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._kh_option(player, 'InfectionSkips') and state.count('DREAMER', player)))) or ((state._kh_option(player, 'InfectionSkips') and state.count('DREAMER', player)) and (state.count('LEFTDASH', player) or state.count('RIGHTDASH', player)) and (state._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) or (state.count('LEFTDASH', player) and (state._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)) or (state.count('Dashmaster', player) and state._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)))) and state._kh_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._kh_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._kh_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._kh_option(player, 'PreciseMovement') or (state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos'))) or (state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_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._kh_option(player, 'ComplexSkips') and state._kh_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._kh_option(player, 'PreciseMovement') or state.count('RIGHTDASH', player)) or (state.count('Deepnest_East_14[left1]', player) and (state._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'PreciseMovement') and (state.count('RIGHTDASH', player) or (state._kh_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._kh_option(player, 'SpikeTunnels') and (state.count('LEFTDASH', player) and state.count('RIGHTDASH', player) or (state._kh_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._kh_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._kh_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._kh_option(player, 'ObscureSkips')) or (state.count('CYCLONE', player) and state._kh_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._kh_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._kh_option(player, 'ComplexSkips') and (state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos') or state._kh_option(player, 'ShadeSkips') or ((state._kh_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._kh_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._kh_option(player, 'EnemyPogos') or state._kh_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._kh_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._kh_option(player, 'ShadeSkips') and (state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))))) or (state.count('WINGS', player) and state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos') or (state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos'))))) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and state.count('LEFTCLAW', player) and state._kh_option(player, 'EnemyPogos')) or (state.count('WINGS', player) and state._kh_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._kh_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._kh_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._kh_option(player, 'ComplexSkips') and state._kh_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._kh_option(player, 'ComplexSkips') and state._kh_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._kh_option(player, 'ComplexSkips') and state._kh_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._kh_option(player, 'ComplexSkips') and state._kh_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._kh_option(player, 'ComplexSkips') and state._kh_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._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'ProficientCombat')) or (state._kh_option(player, 'ProficientCombat') and state._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or state._kh_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._kh_option(player, 'EnemyPogos') or state._kh_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._kh_option(player, 'EnemyPogos'))) + hk_set_rule(hk_world, "Geo_Rock-Mantis_Village_Above_Claw", lambda state: state.count('Fungus2_14', player) and (state._kh_option(player, 'ComplexSkips') and state._kh_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._kh_option(player, 'EnemyPogos'))))) + hk_set_rule(hk_world, "Geo_Rock-Mantis_Village_Above_Claw_Dupe", lambda state: state.count('Fungus2_14', player) and (state._kh_option(player, 'ComplexSkips') and state._kh_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._kh_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._kh_option(player, 'EnemyPogos')) and (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state._kh_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._kh_option(player, 'EnemyPogos')) and (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos')) or (state.count('WINGS', player) and state._kh_option(player, 'EnemyPogos') and state._kh_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._kh_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._kh_option(player, 'ShadeSkips')) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._kh_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._kh_option(player, 'PreciseMovement'))) and (state.count('RIGHTCLAW', player) or (state.count('WINGS', player) and (state.count('LEFTCLAW', player) or state._kh_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._kh_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._kh_option(player, 'EnemyPogos') and state._kh_option(player, 'DangerousSkips'))) and (state.count('LEFTCLAW', player) or state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player)) or (state._kh_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._kh_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._kh_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._kh_option(player, 'PreciseMovement')) or state.count('WINGS', player) or (state._kh_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._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or state._kh_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._kh_option(player, 'EnemyPogos')))) and (state.count('LEFTDASH', player) or state.count('LEFTCLAW', player) or state.count('WINGS', player) or state._kh_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._kh_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._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or (state.count('RIGHTSUPERDASH', player) and state._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'PreciseMovement') and (state.count('RIGHTDASH', player) or (state._kh_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._kh_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._kh_option(player, 'EnemyPogos') or (state._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) or state._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_option(player, 'EnemyPogos') and state._kh_option(player, 'DangerousSkips')))) or (state.count('Waterways_04b[right2]', player) and (state.count('WINGS', player) or (state.count('LEFTCLAW', player) and state._kh_option(player, 'EnemyPogos') and state._kh_option(player, 'DangerousSkips'))) and (state.count('LEFTCLAW', player) or state._kh_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._kh_option(player, 'EnemyPogos') and state._kh_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._kh_option(player, 'FireballSkips') and (state.count('FIREBALL', player) or state.count('SCREAM', player))) and state.count('RIGHTCLAW', player)) or state._kh_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._kh_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._kh_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._kh_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._kh_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._kh_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._kh_option(player, 'EnemyPogos')) and (state.count('RIGHTCLAW', player) and (state.count('WINGS', player) or state._kh_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._kh_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._kh_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 diff --git a/worlds/hk/Types.py b/worlds/hk/Types.py deleted file mode 100644 index 8d5aee00..00000000 --- a/worlds/hk/Types.py +++ /dev/null @@ -1,7 +0,0 @@ -import typing - - -class HKItemData(typing.NamedTuple): - advancement: bool - id: int - type: str \ No newline at end of file diff --git a/worlds/hk/__init__.py b/worlds/hk/__init__.py index 6cd251bb..02d3479a 100644 --- a/worlds/hk/__init__.py +++ b/worlds/hk/__init__.py @@ -1,111 +1,262 @@ +from __future__ import annotations + import logging +import typing +from collections import Counter logger = logging.getLogger("Hollow Knight") -from .Locations import lookup_name_to_id from .Items import item_table, lookup_type_to_names from .Regions import create_regions from .Rules import set_rules -from .Options import hollow_knight_options +from .Options import hollow_knight_options, hollow_knight_randomize_options +from .ExtractedData import locations, starts, multi_locations, location_to_region_lookup, \ + event_names, item_effects, connectors, one_ways from BaseClasses import Region, Entrance, Location, MultiWorld, Item, RegionType from ..AutoWorld import World, LogicMixin +white_palace_locations = { + "Soul_Totem-Path_of_Pain_Below_Thornskip", + "Soul_Totem-White_Palace_Final", + "Lore_Tablet-Path_of_Pain_Entrance", + "Soul_Totem-Path_of_Pain_Left_of_Lever", + "Soul_Totem-Path_of_Pain_Hidden", + "Soul_Totem-Path_of_Pain_Entrance", + "Soul_Totem-Path_of_Pain_Final", + "Soul_Totem-White_Palace_Entrance", + "Soul_Totem-Path_of_Pain_Below_Lever", + "Lore_Tablet-Palace_Throne", + "Soul_Totem-Path_of_Pain_Second", + "Soul_Totem-White_Palace_Left", + "Lore_Tablet-Palace_Workshop", + "Soul_Totem-White_Palace_Hub", + "Journal_Entry-Seal_of_Binding", + "Soul_Totem-White_Palace_Right", + "King_Fragment", + # Events: + "Palace_Entrance_Lantern_Lit", + "Palace_Left_Lantern_Lit", + "Palace_Right_Lantern_Lit", + "Warp-Path_of_Pain_Complete", + "Defeated_Path_of_Pain_Arena", + "Palace_Atrium_Gates_Opened", + "Completed_Path_of_Pain", + "Warp-White_Palace_Atrium_to_Palace_Grounds", + "Warp-White_Palace_Entrance_to_Palace_Grounds", + # Event-Regions: + "White_Palace_03_hub", + "White_Palace_13", + "White_Palace_01", + # Event-Transitions: + "White_Palace_12[bot1]", "White_Palace_12[bot1]", "White_Palace_03_hub[bot1]", "White_Palace_16[left2]", + "White_Palace_16[left2]", "White_Palace_11[door2]", "White_Palace_11[door2]", "White_Palace_18[top1]", + "White_Palace_18[top1]", "White_Palace_15[left1]", "White_Palace_15[left1]", "White_Palace_05[left2]", + "White_Palace_05[left2]", "White_Palace_14[bot1]", "White_Palace_14[bot1]", "White_Palace_13[left2]", + "White_Palace_13[left2]", "White_Palace_03_hub[left1]", "White_Palace_03_hub[left1]", "White_Palace_15[right2]", + "White_Palace_15[right2]", "White_Palace_06[top1]", "White_Palace_06[top1]", "White_Palace_03_hub[bot1]", + "White_Palace_08[right1]", "White_Palace_08[right1]", "White_Palace_03_hub[right1]", "White_Palace_03_hub[right1]", + "White_Palace_01[right1]", "White_Palace_01[right1]", "White_Palace_08[left1]", "White_Palace_08[left1]", + "White_Palace_19[left1]", "White_Palace_19[left1]", "White_Palace_04[right2]", "White_Palace_04[right2]", + "White_Palace_01[left1]", "White_Palace_01[left1]", "White_Palace_17[right1]", "White_Palace_17[right1]", + "White_Palace_07[bot1]", "White_Palace_07[bot1]", "White_Palace_20[bot1]", "White_Palace_20[bot1]", + "White_Palace_03_hub[left2]", "White_Palace_03_hub[left2]", "White_Palace_18[right1]", "White_Palace_18[right1]", + "White_Palace_05[right1]", "White_Palace_05[right1]", "White_Palace_17[bot1]", "White_Palace_17[bot1]", + "White_Palace_09[right1]", "White_Palace_09[right1]", "White_Palace_16[left1]", "White_Palace_16[left1]", + "White_Palace_13[left1]", "White_Palace_13[left1]", "White_Palace_06[bot1]", "White_Palace_06[bot1]", + "White_Palace_15[right1]", "White_Palace_15[right1]", "White_Palace_06[left1]", "White_Palace_06[left1]", + "White_Palace_05[right2]", "White_Palace_05[right2]", "White_Palace_04[top1]", "White_Palace_04[top1]", + "White_Palace_19[top1]", "White_Palace_19[top1]", "White_Palace_14[right1]", "White_Palace_14[right1]", + "White_Palace_03_hub[top1]", "White_Palace_03_hub[top1]", "Grubfather_2", "White_Palace_13[left3]", + "White_Palace_13[left3]", "White_Palace_02[left1]", "White_Palace_02[left1]", "White_Palace_12[right1]", + "White_Palace_12[right1]", "White_Palace_07[top1]", "White_Palace_07[top1]", "White_Palace_05[left1]", + "White_Palace_05[left1]", "White_Palace_13[right1]", "White_Palace_13[right1]", "White_Palace_01[top1]", + "White_Palace_01[top1]", + +} + class HKWorld(World): game: str = "Hollow Knight" options = hollow_knight_options - item_name_to_id = {name: data.id for name, data in item_table.items() if data.type != "Event"} - location_name_to_id = lookup_name_to_id + item_name_to_id = {name: data.id for name, data in item_table.items()} + location_name_to_id = {location_name: location_id for location_id, location_name in + enumerate(locations, start=0x1000000)} hidden = True + ranges: typing.Dict[str, typing.Tuple[int, int]] + shops = {"Egg_Shop": "egg", "Grubfather": "grub", "Seer": "essence", "Salubra_(Requires_Charms)": "charm"} + charm_costs: typing.List[int] + data_version = 2 + + allow_white_palace = False + + def __init__(self, world, player): + super(HKWorld, self).__init__(world, player) + self.created_multi_locations: typing.Dict[str, int] = Counter() + self.ranges = {} + + def generate_early(self): + world = self.world + self.charm_costs = world.random_charm_costs[self.player].get_costs(world.random) + 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] + # if minimum > maximum, set minimum to maximum + mini.value = min(mini.value, maxi.value) + self.ranges[unit] = mini.value, maxi.value + world.push_precollected(HKItem(starts[world.start_location[self.player].current_key], + True, None, "Event", self.player)) + + def create_regions(self): + menu_region: Region = create_region(self.world, self.player, 'Menu') + self.world.regions.append(menu_region) - def generate_basic(self): # Link regions - self.world.get_entrance('Hollow Nest S&Q', self.player).connect(self.world.get_region('Hollow Nest', self.player)) + for event_name in event_names: + loc = HKLocation(self.player, event_name, None, menu_region) + loc.place_locked_item(HKItem(event_name, + self.allow_white_palace or event_name not in white_palace_locations, + None, "Event", self.player)) + menu_region.locations.append(loc) + for entry_transition, exit_transition in connectors.items(): + if exit_transition: + # if door logic fulfilled -> award vanilla target as event + loc = HKLocation(self.player, entry_transition, None, menu_region) + loc.place_locked_item(HKItem(exit_transition, + self.allow_white_palace or exit_transition not in white_palace_locations, + None, "Event", self.player)) + menu_region.locations.append(loc) - # Generate item pool - pool = [] - for item_name, item_data in item_table.items(): - item = self.create_item(item_name) + def create_items(self): + # 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") - if item_data.type == "Event": - event_location = self.world.get_location(item_name, self.player) - self.world.push_item(event_location, item, collect=False) - event_location.event = True - event_location.locked = True - if item.name == "King's_Pass": - self.world.push_precollected(item) - elif item_data.type == "Cursed": - if self.world.CURSED[self.player]: - pool.append(item) - else: - # fill Focus Location with Focus and add it to start inventory as well. - event_location = self.world.get_location(item_name, self.player) - self.world.push_item(event_location, item) - event_location.event = True - event_location.locked = True - - elif item_data.type == "Fake": - pass - elif item_data.type in not_shufflable_types: - location = self.world.get_location(item_name, self.player) - self.world.push_item(location, item, collect=False) - location.event = item.advancement - location.locked = True + for option_key, option in hollow_knight_randomize_options.items(): + if getattr(self.world, option_key)[self.player]: + for item_name, location_name in zip(option.items, option.locations): + if item_name in geo_replace: + item_name = "Geo_Rock-Default" + if location_name in white_palace_locations: + self.create_location(location_name).place_locked_item(self.create_item(item_name)) + else: + self.create_location(location_name) + pool.append(self.create_item(item_name)) else: - target = option_to_type_lookup[item.type] - shuffle_it = getattr(self.world, target) - if shuffle_it[self.player]: - pool.append(item) - else: - location = self.world.get_location(item_name, self.player) - self.world.push_item(location, item, collect=False) - location.event = item.advancement - location.locked = True - logger.debug(f"Placed {item_name} to vanilla for player {self.player}") - + for item_name, location_name in zip(option.items, option.locations): + item = self.create_item(item_name) + if location_name == "Start": + self.world.push_precollected(item) + else: + self.create_location(location_name).place_locked_item(item) + for i in range(self.world.egg_shop_slots[self.player].value): + self.create_location("Egg_Shop") + pool.append(self.create_item("Geo_Rock-Default")) + if not self.allow_white_palace: + loc = self.world.get_location("King_Fragment", self.player) + if loc.item and loc.item.name == loc.name: + loc.item.advancement = False self.world.itempool += pool def set_rules(self): - set_rules(self.world, self.player) + world = self.world + player = self.player + if world.logic[player] != 'nologic': + world.completion_condition[player] = lambda state: state.has('DREAMER', player, 3) + set_rules(self) - def create_regions(self): - create_regions(self.world, self.player) - - def fill_slot_data(self): + def fill_slot_data(self): slot_data = {} + + options = slot_data["options"] = {} for option_name in self.options: option = getattr(self.world, option_name)[self.player] - slot_data[option_name] = int(option.value) + options[option_name] = int(option.value) + + # 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]) + } + + slot_data["notch_costs"] = self.charm_costs + return slot_data - def create_item(self, name: str) -> Item: + def create_item(self, name: str) -> HKItem: 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 += f"_{self.created_multi_locations[name]}" -def create_region(world: MultiWorld, player: int, name: str, locations=None, exits=None): + 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 + region.locations.append(loc) + return loc + + def collect(self, state, item: HKItem) -> bool: + change = super(HKWorld, self).collect(state, item) + + for effect_name, effect_value in item_effects.get(item.name, {}).items(): + state.prog_items[effect_name, item.player] += effect_value + + return change + + def remove(self, state, item: HKItem) -> bool: + change = super(HKWorld, self).remove(state, item) + + for effect_name, effect_value in item_effects.get(item.name, {}).items(): + if state.prog_items[effect_name, item.player] == effect_value: + del state.prog_items[effect_name, item.player] + state.prog_items[effect_name, item.player] -= effect_value + + return change + + +def create_region(world: MultiWorld, player: int, name: str, location_names=None, exits=None) -> Region: ret = Region(name, RegionType.Generic, name, player) ret.world = world - if locations: - for location in locations: - loc_id = lookup_name_to_id.get(location, 0) + if location_names: + for location in location_names: + loc_id = HKWorld.location_name_to_id.get(location, None) location = HKLocation(player, location, loc_id, ret) ret.locations.append(location) if exits: for exit in exits: ret.exits.append(Entrance(player, exit, ret)) - return ret class HKLocation(Location): game: str = "Hollow Knight" + cost: int = 0 + unit: typing.Optional[str] = None - def __init__(self, player: int, name: str, address=None, parent=None): - super(HKLocation, self).__init__(player, name, address if address else None, parent) + def __init__(self, player: int, name: str, code=None, parent=None): + super(HKLocation, self).__init__(player, name, code if code else None, parent) class HKItem(Item): @@ -114,51 +265,20 @@ class HKItem(Item): def __init__(self, name, advancement, code, type, player: int = None): super(HKItem, self).__init__(name, advancement, code if code else None, player) self.type = type + if name == "Mimic_Grub": + self.trap = True -not_shufflable_types = {"Essence_Boss"} +class HKLogicMixin(LogicMixin): + world: MultiWorld -option_to_type_lookup = { - "Root": "RandomizeWhisperingRoots", - "Dreamer": "RandomizeDreamers", - "Geo": "RandomizeGeoChests", - "Skill": "RandomizeSkills", - "Map": "RandomizeMaps", - "Relic": "RandomizeRelics", - "Charm": "RandomizeCharms", - "Notch": "RandomizeCharmNotches", - "Key": "RandomizeKeys", - "Stag": "RandomizeStags", - "Flame": "RandomizeFlames", - "Grub": "RandomizeGrubs", - "Cocoon": "RandomizeLifebloodCocoons", - "Mask": "RandomizeMaskShards", - "Ore": "RandomizePaleOre", - "Egg": "RandomizeRancidEggs", - "Vessel": "RandomizeVesselFragments", -} + def _hk_notches(self, player: int, *notches: int) -> int: + return sum(self.world.worlds[player].charm_costs[notch] for notch in notches) + def _kh_option(self, player: int, option_name: str) -> int: + if option_name == "RandomizeCharmNotches": + return self.world.random_charm_costs[player] != -1 + return getattr(self.world, option_name)[player].value -class HKLogic(LogicMixin): - # these are all wip - def _hk_has_essence(self, player: int, count: int): - return self.prog_items["Dream_Nail", player] - # return self.prog_items["Essence", player] >= count - - def _hk_has_grubs(self, player: int, count: int): - found = 0 - for item_name in lookup_type_to_names["Grub"]: - found += self.prog_items[item_name, player] - if found >= count: - return True - - return False - - def _hk_has_flames(self, player: int, count: int): - found = 0 - for item_name in lookup_type_to_names["Flame"]: - found += self.prog_items[item_name, player] - if found >= count: - return True - - return False \ No newline at end of file + def _kh_start(self, player, start_location: str) -> bool: + return self.world.start_location[player] == start_location diff --git a/worlds/hk/requirements.txt b/worlds/hk/requirements.txt new file mode 100644 index 00000000..1b410ffb --- /dev/null +++ b/worlds/hk/requirements.txt @@ -0,0 +1 @@ +astunparse>=1.6.3; python_version <= '3.8' \ No newline at end of file