HK Logic
This commit is contained in:
parent
e60ae897b4
commit
499f67c586
|
@ -135,6 +135,11 @@ class MultiWorld():
|
|||
set_player_attr('game', "A Link to the Past")
|
||||
set_player_attr('completion_condition', lambda state: True)
|
||||
|
||||
for hk_logic in {"MILDSKIPS", "SPICYSKIPS", "FIREBALLSKIPS", "ACIDSKIPS", "SPIKETUNNELS",
|
||||
"DARKROOMS", "CURSED", "SHADESKIPS"}:
|
||||
set_player_attr(hk_logic, False)
|
||||
set_player_attr("NOTCURSED", True)
|
||||
|
||||
self.worlds = []
|
||||
#for i in range(players):
|
||||
# self.worlds.append(worlds.alttp.ALTTPWorld({}, i))
|
||||
|
@ -585,6 +590,19 @@ class CollectionState(object):
|
|||
def has(self, item, player: int, count: int = 1):
|
||||
return self.prog_items[item, player] >= count
|
||||
|
||||
def has_essence(self, count:int, player: int):
|
||||
# TODO: implement
|
||||
return True
|
||||
|
||||
def has_grubs(self, count:int, player: int):
|
||||
found: int = 0
|
||||
for (item, item_player), count in self.prog_items.items():
|
||||
if item_player == player and "Grub" in item:
|
||||
found += count
|
||||
if found > count:
|
||||
return True
|
||||
return False
|
||||
|
||||
def has_key(self, item, player, count: int = 1):
|
||||
if self.world.logic[player] == 'nologic':
|
||||
return True
|
||||
|
|
2
Fill.py
2
Fill.py
|
@ -164,7 +164,7 @@ def distribute_items_restrictive(world, gftower_trash=False, fill_locations=None
|
|||
world.push_item(location, ItemFactory('Nothing', location.player), False)
|
||||
|
||||
if unplaced or unfilled:
|
||||
logging.warning('Unplaced items: %s - Unfilled Locations: %s', unplaced, unfilled)
|
||||
logging.warning(f'Unplaced items({len(unplaced)}): {unplaced} - Unfilled Locations({len(unfilled)}): {unfilled}')
|
||||
|
||||
|
||||
def fast_fill(world, item_pool: typing.List, fill_locations: typing.List) -> typing.Tuple[typing.List, typing.List]:
|
||||
|
|
29
Main.py
29
Main.py
|
@ -8,7 +8,7 @@ import zlib
|
|||
import concurrent.futures
|
||||
import pickle
|
||||
|
||||
from BaseClasses import MultiWorld, CollectionState, Region
|
||||
from BaseClasses import MultiWorld, CollectionState, Region, Item
|
||||
from worlds.alttp import ALttPLocation, ALttPItem
|
||||
from worlds.alttp.Items import ItemFactory, item_table, item_name_groups
|
||||
from worlds.alttp.Regions import create_regions, mark_light_world_regions, \
|
||||
|
@ -22,7 +22,8 @@ from Fill import distribute_items_restrictive, flood_items, balance_multiworld_p
|
|||
from worlds.alttp.Shops import create_shops, ShopSlotFill, SHOP_ID_START, total_shop_slots, FillDisabledShopSlots
|
||||
from worlds.alttp.ItemPool import generate_itempool, difficulties, fill_prizes
|
||||
from Utils import output_path, parse_player_names, get_options, __version__, _version_tuple
|
||||
from worlds.hk import gen_hollow, gen_regions, set_rules as set_hk_rules
|
||||
from worlds.hk import gen_hollow, set_rules as set_hk_rules
|
||||
from worlds.hk import create_regions as hk_create_regions
|
||||
from worlds.generic.Rules import locality_rules
|
||||
import Patch
|
||||
|
||||
|
@ -157,6 +158,8 @@ def main(args, seed=None):
|
|||
world.non_local_items[player] -= item_name_groups['Pendants']
|
||||
world.non_local_items[player] -= item_name_groups['Crystals']
|
||||
|
||||
for player in world.hk_player_ids:
|
||||
hk_create_regions(world, player)
|
||||
|
||||
for player in world.alttp_player_ids:
|
||||
world.difficulty_requirements[player] = difficulties[world.difficulty[player]]
|
||||
|
@ -529,6 +532,7 @@ def copy_world(world):
|
|||
ret.dark_room_logic = world.dark_room_logic.copy()
|
||||
ret.restrict_dungeon_item_on_boss = world.restrict_dungeon_item_on_boss.copy()
|
||||
ret.game = world.game.copy()
|
||||
ret.completion_condition = world.completion_condition.copy()
|
||||
|
||||
for player in world.alttp_player_ids:
|
||||
if world.mode[player] != 'inverted':
|
||||
|
@ -539,7 +543,7 @@ def copy_world(world):
|
|||
create_dungeons(ret, player)
|
||||
|
||||
for player in world.hk_player_ids:
|
||||
gen_regions(ret, player)
|
||||
hk_create_regions(ret, player)
|
||||
|
||||
copy_dynamic_regions_and_locations(world, ret)
|
||||
|
||||
|
@ -564,21 +568,28 @@ def copy_world(world):
|
|||
# fill locations
|
||||
for location in world.get_locations():
|
||||
if location.item is not None:
|
||||
item = ALttPItem(location.item.name, location.item.advancement, location.item.type, player = location.item.player)
|
||||
item = Item(location.item.name, location.item.advancement, location.item.code, player = location.item.player)
|
||||
ret.get_location(location.name, location.player).item = item
|
||||
item.location = ret.get_location(location.name, location.player)
|
||||
item.world = ret
|
||||
item.type = location.item.type
|
||||
|
||||
if location.event:
|
||||
ret.get_location(location.name, location.player).event = True
|
||||
if location.locked:
|
||||
ret.get_location(location.name, location.player).locked = True
|
||||
|
||||
# copy remaining itempool. No item in itempool should have an assigned location
|
||||
for item in world.itempool:
|
||||
ret.itempool.append(ALttPItem(item.name, item.advancement, item.type, player = item.player))
|
||||
|
||||
for item in world.precollected_items:
|
||||
ret.push_precollected(ItemFactory(item.name, item.player))
|
||||
# copy remaining itempool. No item in itempool should have an assigned location
|
||||
for old_item in world.itempool:
|
||||
item = Item(old_item.name, old_item.advancement, old_item.code, player = old_item.player)
|
||||
item.type = old_item.type
|
||||
ret.itempool.append(item)
|
||||
|
||||
for old_item in world.precollected_items:
|
||||
item = Item(old_item.name, old_item.advancement, old_item.code, player = old_item.player)
|
||||
item.type = old_item.type
|
||||
ret.push_precollected(item)
|
||||
|
||||
# copy progress items in state
|
||||
ret.state.prog_items = world.state.prog_items.copy()
|
||||
|
|
|
@ -1,325 +1,382 @@
|
|||
items = \
|
||||
{ 16777217: {'advancement': True, 'name': 'Lurien'},
|
||||
16777218: {'advancement': True, 'name': 'Monomon'},
|
||||
16777219: {'advancement': True, 'name': 'Herrah'},
|
||||
16777220: {'advancement': False, 'name': 'World_Sense'},
|
||||
16777221: {'advancement': True, 'name': 'Dreamer'},
|
||||
16777222: {'advancement': True, 'name': 'Mothwing_Cloak'},
|
||||
16777223: {'advancement': True, 'name': 'Mantis_Claw'},
|
||||
16777224: {'advancement': True, 'name': 'Crystal_Heart'},
|
||||
16777225: {'advancement': True, 'name': 'Monarch_Wings'},
|
||||
16777226: {'advancement': True, 'name': 'Shade_Cloak'},
|
||||
16777227: {'advancement': True, 'name': "Isma's_Tear"},
|
||||
16777228: {'advancement': True, 'name': 'Dream_Nail'},
|
||||
16777229: {'advancement': True, 'name': 'Dream_Gate'},
|
||||
16777230: {'advancement': True, 'name': 'Awoken_Dream_Nail'},
|
||||
16777231: {'advancement': True, 'name': 'Vengeful_Spirit'},
|
||||
16777232: {'advancement': True, 'name': 'Shade_Soul'},
|
||||
16777233: {'advancement': True, 'name': 'Desolate_Dive'},
|
||||
16777234: {'advancement': True, 'name': 'Descending_Dark'},
|
||||
16777235: {'advancement': True, 'name': 'Howling_Wraiths'},
|
||||
16777236: {'advancement': True, 'name': 'Abyss_Shriek'},
|
||||
16777237: {'advancement': True, 'name': 'Cyclone_Slash'},
|
||||
16777238: {'advancement': True, 'name': 'Dash_Slash'},
|
||||
16777239: {'advancement': True, 'name': 'Great_Slash'},
|
||||
16777240: {'advancement': True, 'name': 'Focus'},
|
||||
16777241: {'advancement': False, 'name': 'Gathering_Swarm'},
|
||||
16777242: {'advancement': False, 'name': 'Wayward_Compass'},
|
||||
16777243: {'advancement': False, 'name': 'Grubsong'},
|
||||
16777244: {'advancement': False, 'name': 'Stalwart_Shell'},
|
||||
16777245: {'advancement': False, 'name': 'Baldur_Shell'},
|
||||
16777246: {'advancement': False, 'name': 'Fury_of_the_Fallen'},
|
||||
16777247: {'advancement': False, 'name': 'Quick_Focus'},
|
||||
16777248: {'advancement': True, 'name': 'Lifeblood_Heart'},
|
||||
16777249: {'advancement': True, 'name': 'Lifeblood_Core'},
|
||||
16777250: {'advancement': False, 'name': "Defender's_Crest"},
|
||||
16777251: {'advancement': False, 'name': 'Flukenest'},
|
||||
16777252: {'advancement': False, 'name': 'Thorns_of_Agony'},
|
||||
16777253: {'advancement': True, 'name': 'Mark_of_Pride'},
|
||||
16777254: {'advancement': False, 'name': 'Steady_Body'},
|
||||
16777255: {'advancement': False, 'name': 'Heavy_Blow'},
|
||||
16777256: {'advancement': True, 'name': 'Sharp_Shadow'},
|
||||
16777257: {'advancement': True, 'name': 'Spore_Shroom'},
|
||||
16777258: {'advancement': False, 'name': 'Longnail'},
|
||||
16777259: {'advancement': False, 'name': 'Shaman_Stone'},
|
||||
16777260: {'advancement': False, 'name': 'Soul_Catcher'},
|
||||
16777261: {'advancement': False, 'name': 'Soul_Eater'},
|
||||
16777262: {'advancement': True, 'name': 'Glowing_Womb'},
|
||||
16777263: {'advancement': False, 'name': 'Fragile_Heart'},
|
||||
16777264: {'advancement': False, 'name': 'Fragile_Greed'},
|
||||
16777265: {'advancement': False, 'name': 'Fragile_Strength'},
|
||||
16777266: {'advancement': False, 'name': "Nailmaster's_Glory"},
|
||||
16777267: {'advancement': True, 'name': "Joni's_Blessing"},
|
||||
16777268: {'advancement': False, 'name': 'Shape_of_Unn'},
|
||||
16777269: {'advancement': False, 'name': 'Hiveblood'},
|
||||
16777270: {'advancement': False, 'name': 'Dream_Wielder'},
|
||||
16777271: {'advancement': True, 'name': 'Dashmaster'},
|
||||
16777272: {'advancement': False, 'name': 'Quick_Slash'},
|
||||
16777273: {'advancement': False, 'name': 'Spell_Twister'},
|
||||
16777274: {'advancement': False, 'name': 'Deep_Focus'},
|
||||
16777275: {'advancement': True, 'name': "Grubberfly's_Elegy"},
|
||||
16777276: {'advancement': True, 'name': 'Queen_Fragment'},
|
||||
16777277: {'advancement': True, 'name': 'King_Fragment'},
|
||||
16777278: {'advancement': True, 'name': 'Void_Heart'},
|
||||
16777279: {'advancement': True, 'name': 'Sprintmaster'},
|
||||
16777280: {'advancement': False, 'name': 'Dreamshield'},
|
||||
16777281: {'advancement': True, 'name': 'Weaversong'},
|
||||
16777282: {'advancement': True, 'name': 'Grimmchild'},
|
||||
16777283: {'advancement': True, 'name': 'City_Crest'},
|
||||
16777284: {'advancement': True, 'name': 'Lumafly_Lantern'},
|
||||
16777285: {'advancement': True, 'name': 'Tram_Pass'},
|
||||
16777286: {'advancement': True, 'name': 'Simple_Key-Sly'},
|
||||
16777287: {'advancement': True, 'name': 'Simple_Key-Basin'},
|
||||
16777288: {'advancement': True, 'name': 'Simple_Key-City'},
|
||||
16777289: {'advancement': True, 'name': 'Simple_Key-Lurker'},
|
||||
16777290: {'advancement': True, 'name': "Shopkeeper's_Key"},
|
||||
16777291: {'advancement': True, 'name': 'Elegant_Key'},
|
||||
16777292: {'advancement': True, 'name': 'Love_Key'},
|
||||
16777293: {'advancement': True, 'name': "King's_Brand"},
|
||||
16777294: {'advancement': False, 'name': 'Godtuner'},
|
||||
16777295: {'advancement': False, 'name': "Collector's_Map"},
|
||||
16777296: {'advancement': False, 'name': 'Mask_Shard-Sly1'},
|
||||
16777297: {'advancement': False, 'name': 'Mask_Shard-Sly2'},
|
||||
16777298: {'advancement': False, 'name': 'Mask_Shard-Sly3'},
|
||||
16777299: {'advancement': False, 'name': 'Mask_Shard-Sly4'},
|
||||
16777300: {'advancement': False, 'name': 'Mask_Shard-Seer'},
|
||||
16777301: {'advancement': False, 'name': 'Mask_Shard-5_Grubs'},
|
||||
16777302: {'advancement': False, 'name': 'Mask_Shard-Brooding_Mawlek'},
|
||||
16777303: {'advancement': False, 'name': 'Mask_Shard-Crossroads_Goam'},
|
||||
16777304: {'advancement': False, 'name': 'Mask_Shard-Stone_Sanctuary'},
|
||||
16777305: {'advancement': False, 'name': "Mask_Shard-Queen's_Station"},
|
||||
16777306: {'advancement': False, 'name': 'Mask_Shard-Deepnest'},
|
||||
16777307: {'advancement': False, 'name': 'Mask_Shard-Waterways'},
|
||||
16777308: {'advancement': False, 'name': 'Mask_Shard-Enraged_Guardian'},
|
||||
16777309: {'advancement': False, 'name': 'Mask_Shard-Hive'},
|
||||
16777310: {'advancement': False, 'name': 'Mask_Shard-Grey_Mourner'},
|
||||
16777311: {'advancement': False, 'name': 'Mask_Shard-Bretta'},
|
||||
16777312: {'advancement': False, 'name': 'Vessel_Fragment-Sly1'},
|
||||
16777313: {'advancement': False, 'name': 'Vessel_Fragment-Sly2'},
|
||||
16777314: {'advancement': False, 'name': 'Vessel_Fragment-Seer'},
|
||||
16777315: {'advancement': False, 'name': 'Vessel_Fragment-Greenpath'},
|
||||
16777316: {'advancement': False, 'name': 'Vessel_Fragment-City'},
|
||||
16777317: {'advancement': False, 'name': 'Vessel_Fragment-Crossroads'},
|
||||
16777318: {'advancement': False, 'name': 'Vessel_Fragment-Basin'},
|
||||
16777319: {'advancement': False, 'name': 'Vessel_Fragment-Deepnest'},
|
||||
16777320: {'advancement': False, 'name': 'Vessel_Fragment-Stag_Nest'},
|
||||
16777321: {'advancement': False, 'name': 'Charm_Notch-Shrumal_Ogres'},
|
||||
16777322: {'advancement': False, 'name': 'Charm_Notch-Fog_Canyon'},
|
||||
16777323: {'advancement': False, 'name': 'Charm_Notch-Colosseum'},
|
||||
16777324: {'advancement': False, 'name': 'Charm_Notch-Grimm'},
|
||||
16777325: {'advancement': False, 'name': 'Pale_Ore-Basin'},
|
||||
16777326: {'advancement': False, 'name': 'Pale_Ore-Crystal_Peak'},
|
||||
16777327: {'advancement': False, 'name': 'Pale_Ore-Nosk'},
|
||||
16777328: {'advancement': False, 'name': 'Pale_Ore-Seer'},
|
||||
16777329: {'advancement': False, 'name': 'Pale_Ore-Grubs'},
|
||||
16777330: {'advancement': False, 'name': 'Pale_Ore-Colosseum'},
|
||||
16777331: {'advancement': False, 'name': '200_Geo-False_Knight_Chest'},
|
||||
16777332: {'advancement': False, 'name': '380_Geo-Soul_Master_Chest'},
|
||||
16777333: {'advancement': False, 'name': '655_Geo-Watcher_Knights_Chest'},
|
||||
16777334: {'advancement': False, 'name': '85_Geo-Greenpath_Chest'},
|
||||
16777335: {'advancement': False, 'name': '620_Geo-Mantis_Lords_Chest'},
|
||||
16777336: {'advancement': False, 'name': '150_Geo-Resting_Grounds_Chest'},
|
||||
16777337: {'advancement': False, 'name': '80_Geo-Crystal_Peak_Chest'},
|
||||
16777338: {'advancement': False, 'name': '160_Geo-Weavers_Den_Chest'},
|
||||
16777339: {'advancement': False, 'name': '1_Geo'},
|
||||
16777340: {'advancement': False, 'name': 'Rancid_Egg-Sly'},
|
||||
16777341: {'advancement': False, 'name': 'Rancid_Egg-Grubs'},
|
||||
16777342: {'advancement': False, 'name': 'Rancid_Egg-Sheo'},
|
||||
16777343: {'advancement': False, 'name': 'Rancid_Egg-Fungal_Core'},
|
||||
16777344: {'advancement': False, 'name': "Rancid_Egg-Queen's_Gardens"},
|
||||
16777345: {'advancement': False, 'name': 'Rancid_Egg-Blue_Lake'},
|
||||
16777346: { 'advancement': False,
|
||||
'name': 'Rancid_Egg-Crystal_Peak_Dive_Entrance'},
|
||||
16777347: { 'advancement': False,
|
||||
'name': 'Rancid_Egg-Crystal_Peak_Dark_Room'},
|
||||
16777348: { 'advancement': False,
|
||||
'name': 'Rancid_Egg-Crystal_Peak_Tall_Room'},
|
||||
16777349: {'advancement': False, 'name': 'Rancid_Egg-City_of_Tears_Left'},
|
||||
16777350: { 'advancement': False,
|
||||
'name': 'Rancid_Egg-City_of_Tears_Pleasure_House'},
|
||||
16777351: {'advancement': False, 'name': "Rancid_Egg-Beast's_Den"},
|
||||
16777352: {'advancement': False, 'name': 'Rancid_Egg-Dark_Deepnest'},
|
||||
16777353: {'advancement': False, 'name': "Rancid_Egg-Weaver's_Den"},
|
||||
16777354: {'advancement': False, 'name': 'Rancid_Egg-Near_Quick_Slash'},
|
||||
16777355: {'advancement': False, 'name': "Rancid_Egg-Upper_Kingdom's_Edge"},
|
||||
16777356: {'advancement': False, 'name': 'Rancid_Egg-Waterways_East'},
|
||||
16777357: {'advancement': False, 'name': 'Rancid_Egg-Waterways_Main'},
|
||||
16777358: { 'advancement': False,
|
||||
'name': 'Rancid_Egg-Waterways_West_Bluggsac'},
|
||||
16777359: { 'advancement': False,
|
||||
'name': 'Rancid_Egg-Waterways_West_Pickup'},
|
||||
16777360: {'advancement': False, 'name': "Wanderer's_Journal-Cliffs"},
|
||||
16777361: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-Greenpath_Stag"},
|
||||
16777362: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-Greenpath_Lower"},
|
||||
16777363: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-Fungal_Wastes_Thorns_Gauntlet"},
|
||||
16777364: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-Above_Mantis_Village"},
|
||||
16777365: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-Crystal_Peak_Crawlers"},
|
||||
16777366: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-Resting_Grounds_Catacombs"},
|
||||
16777367: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-King's_Station"},
|
||||
16777368: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-Pleasure_House"},
|
||||
16777369: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-City_Storerooms"},
|
||||
16777370: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-Ancient_Basin"},
|
||||
16777371: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-Kingdom's_Edge_Entrance"},
|
||||
16777372: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-Kingdom's_Edge_Camp"},
|
||||
16777373: { 'advancement': False,
|
||||
'name': "Wanderer's_Journal-Kingdom's_Edge_Requires_Dive"},
|
||||
16777374: {'advancement': False, 'name': 'Hallownest_Seal-Crossroads_Well'},
|
||||
16777375: {'advancement': False, 'name': 'Hallownest_Seal-Grubs'},
|
||||
16777376: {'advancement': False, 'name': 'Hallownest_Seal-Greenpath'},
|
||||
16777377: {'advancement': False, 'name': 'Hallownest_Seal-Fog_Canyon_West'},
|
||||
16777378: {'advancement': False, 'name': 'Hallownest_Seal-Fog_Canyon_East'},
|
||||
16777379: {'advancement': False, 'name': "Hallownest_Seal-Queen's_Station"},
|
||||
16777380: { 'advancement': False,
|
||||
'name': 'Hallownest_Seal-Fungal_Wastes_Sporgs'},
|
||||
16777381: {'advancement': False, 'name': 'Hallownest_Seal-Mantis_Lords'},
|
||||
16777382: {'advancement': False, 'name': 'Hallownest_Seal-Seer'},
|
||||
16777383: { 'advancement': False,
|
||||
'name': 'Hallownest_Seal-Resting_Grounds_Catacombs'},
|
||||
16777384: {'advancement': False, 'name': "Hallownest_Seal-King's_Station"},
|
||||
16777385: {'advancement': False, 'name': 'Hallownest_Seal-City_Rafters'},
|
||||
16777386: {'advancement': False, 'name': 'Hallownest_Seal-Soul_Sanctum'},
|
||||
16777387: {'advancement': False, 'name': 'Hallownest_Seal-Watcher_Knight'},
|
||||
16777388: { 'advancement': False,
|
||||
'name': 'Hallownest_Seal-Deepnest_By_Mantis_Lords'},
|
||||
16777389: {'advancement': False, 'name': "Hallownest_Seal-Beast's_Den"},
|
||||
16777390: {'advancement': False, 'name': "Hallownest_Seal-Queen's_Gardens"},
|
||||
16777391: {'advancement': False, 'name': "King's_Idol-Grubs"},
|
||||
16777392: {'advancement': False, 'name': "King's_Idol-Cliffs"},
|
||||
16777393: {'advancement': False, 'name': "King's_Idol-Crystal_Peak"},
|
||||
16777394: {'advancement': False, 'name': "King's_Idol-Glade_of_Hope"},
|
||||
16777395: {'advancement': False, 'name': "King's_Idol-Dung_Defender"},
|
||||
16777396: {'advancement': False, 'name': "King's_Idol-Great_Hopper"},
|
||||
16777397: {'advancement': False, 'name': "King's_Idol-Pale_Lurker"},
|
||||
16777398: {'advancement': False, 'name': "King's_Idol-Deepnest"},
|
||||
16777399: {'advancement': False, 'name': 'Arcane_Egg-Seer'},
|
||||
16777400: {'advancement': False, 'name': 'Arcane_Egg-Lifeblood_Core'},
|
||||
16777401: {'advancement': False, 'name': 'Arcane_Egg-Shade_Cloak'},
|
||||
16777402: {'advancement': False, 'name': 'Arcane_Egg-Birthplace'},
|
||||
16777403: {'advancement': True, 'name': 'Whispering_Root-Crossroads'},
|
||||
16777404: {'advancement': True, 'name': 'Whispering_Root-Greenpath'},
|
||||
16777405: {'advancement': True, 'name': 'Whispering_Root-Leg_Eater'},
|
||||
16777406: {'advancement': True, 'name': 'Whispering_Root-Mantis_Village'},
|
||||
16777407: {'advancement': True, 'name': 'Whispering_Root-Deepnest'},
|
||||
16777408: {'advancement': True, 'name': 'Whispering_Root-Queens_Gardens'},
|
||||
16777409: {'advancement': True, 'name': 'Whispering_Root-Kingdoms_Edge'},
|
||||
16777410: {'advancement': True, 'name': 'Whispering_Root-Waterways'},
|
||||
16777411: {'advancement': True, 'name': 'Whispering_Root-City'},
|
||||
16777412: {'advancement': True, 'name': 'Whispering_Root-Resting_Grounds'},
|
||||
16777413: {'advancement': True, 'name': 'Whispering_Root-Spirits_Glade'},
|
||||
16777414: {'advancement': True, 'name': 'Whispering_Root-Crystal_Peak'},
|
||||
16777415: {'advancement': True, 'name': 'Whispering_Root-Howling_Cliffs'},
|
||||
16777416: {'advancement': True, 'name': 'Whispering_Root-Ancestral_Mound'},
|
||||
16777417: {'advancement': True, 'name': 'Whispering_Root-Hive'},
|
||||
16777418: {'advancement': True, 'name': 'Boss_Essence-Elder_Hu'},
|
||||
16777419: {'advancement': True, 'name': 'Boss_Essence-Xero'},
|
||||
16777420: {'advancement': True, 'name': 'Boss_Essence-Gorb'},
|
||||
16777421: {'advancement': True, 'name': 'Boss_Essence-Marmu'},
|
||||
16777422: {'advancement': True, 'name': 'Boss_Essence-No_Eyes'},
|
||||
16777423: {'advancement': True, 'name': 'Boss_Essence-Galien'},
|
||||
16777424: {'advancement': True, 'name': 'Boss_Essence-Markoth'},
|
||||
16777425: {'advancement': True, 'name': 'Boss_Essence-Failed_Champion'},
|
||||
16777426: {'advancement': True, 'name': 'Boss_Essence-Soul_Tyrant'},
|
||||
16777427: {'advancement': True, 'name': 'Boss_Essence-Lost_Kin'},
|
||||
16777428: {'advancement': True, 'name': 'Boss_Essence-White_Defender'},
|
||||
16777429: {'advancement': True, 'name': 'Boss_Essence-Grey_Prince_Zote'},
|
||||
16777430: {'advancement': True, 'name': 'Grub-Crossroads_Acid'},
|
||||
16777431: {'advancement': True, 'name': 'Grub-Crossroads_Center'},
|
||||
16777432: {'advancement': True, 'name': 'Grub-Crossroads_Stag'},
|
||||
16777433: {'advancement': True, 'name': 'Grub-Crossroads_Spike'},
|
||||
16777434: {'advancement': True, 'name': 'Grub-Crossroads_Guarded'},
|
||||
16777435: {'advancement': True, 'name': 'Grub-Greenpath_Cornifer'},
|
||||
16777436: {'advancement': True, 'name': 'Grub-Greenpath_Journal'},
|
||||
16777437: {'advancement': True, 'name': 'Grub-Greenpath_MMC'},
|
||||
16777438: {'advancement': True, 'name': 'Grub-Greenpath_Stag'},
|
||||
16777439: {'advancement': True, 'name': 'Grub-Fog_Canyon'},
|
||||
16777440: {'advancement': True, 'name': 'Grub-Fungal_Bouncy'},
|
||||
16777441: {'advancement': True, 'name': 'Grub-Fungal_Spore_Shroom'},
|
||||
16777442: {'advancement': True, 'name': 'Grub-Deepnest_Mimic'},
|
||||
16777443: {'advancement': True, 'name': 'Grub-Deepnest_Nosk'},
|
||||
16777444: {'advancement': True, 'name': 'Grub-Deepnest_Spike'},
|
||||
16777445: {'advancement': True, 'name': 'Grub-Dark_Deepnest'},
|
||||
16777446: {'advancement': True, 'name': "Grub-Beast's_Den"},
|
||||
16777447: {'advancement': True, 'name': "Grub-Kingdom's_Edge_Oro"},
|
||||
16777448: {'advancement': True, 'name': "Grub-Kingdom's_Edge_Camp"},
|
||||
16777449: {'advancement': True, 'name': 'Grub-Hive_External'},
|
||||
16777450: {'advancement': True, 'name': 'Grub-Hive_Internal'},
|
||||
16777451: {'advancement': True, 'name': 'Grub-Basin_Requires_Wings'},
|
||||
16777452: {'advancement': True, 'name': 'Grub-Basin_Requires_Dive'},
|
||||
16777453: {'advancement': True, 'name': 'Grub-Waterways_Main'},
|
||||
16777454: {'advancement': True, 'name': 'Grub-Waterways_East'},
|
||||
16777455: {'advancement': True, 'name': 'Grub-Waterways_Requires_Tram'},
|
||||
16777456: {'advancement': True, 'name': 'Grub-City_of_Tears_Left'},
|
||||
16777457: {'advancement': True, 'name': 'Grub-Soul_Sanctum'},
|
||||
16777458: {'advancement': True, 'name': "Grub-Watcher's_Spire"},
|
||||
16777459: {'advancement': True, 'name': 'Grub-City_of_Tears_Guarded'},
|
||||
16777460: {'advancement': True, 'name': "Grub-King's_Station"},
|
||||
16777461: {'advancement': True, 'name': 'Grub-Resting_Grounds'},
|
||||
16777462: {'advancement': True, 'name': 'Grub-Crystal_Peak_Below_Chest'},
|
||||
16777463: {'advancement': True, 'name': 'Grub-Crystallized_Mound'},
|
||||
16777464: {'advancement': True, 'name': 'Grub-Crystal_Peak_Spike'},
|
||||
16777465: {'advancement': True, 'name': 'Grub-Crystal_Peak_Mimic'},
|
||||
16777466: {'advancement': True, 'name': 'Grub-Crystal_Peak_Crushers'},
|
||||
16777467: {'advancement': True, 'name': 'Grub-Crystal_Heart'},
|
||||
16777468: {'advancement': True, 'name': 'Grub-Hallownest_Crown'},
|
||||
16777469: {'advancement': True, 'name': 'Grub-Howling_Cliffs'},
|
||||
16777470: {'advancement': True, 'name': "Grub-Queen's_Gardens_Stag"},
|
||||
16777471: {'advancement': True, 'name': "Grub-Queen's_Gardens_Marmu"},
|
||||
16777472: {'advancement': True, 'name': "Grub-Queen's_Gardens_Top"},
|
||||
16777473: {'advancement': True, 'name': 'Grub-Collector_1'},
|
||||
16777474: {'advancement': True, 'name': 'Grub-Collector_2'},
|
||||
16777475: {'advancement': True, 'name': 'Grub-Collector_3'},
|
||||
16777476: {'advancement': False, 'name': 'Crossroads_Map'},
|
||||
16777477: {'advancement': False, 'name': 'Greenpath_Map'},
|
||||
16777478: {'advancement': False, 'name': 'Fog_Canyon_Map'},
|
||||
16777479: {'advancement': False, 'name': 'Fungal_Wastes_Map'},
|
||||
16777480: {'advancement': False, 'name': 'Deepnest_Map-Upper'},
|
||||
16777481: { 'advancement': False,
|
||||
'name': 'Deepnest_Map-Right_[Gives_Quill]'},
|
||||
16777482: {'advancement': False, 'name': 'Ancient_Basin_Map'},
|
||||
16777483: {'advancement': False, 'name': "Kingdom's_Edge_Map"},
|
||||
16777484: {'advancement': False, 'name': 'City_of_Tears_Map'},
|
||||
16777485: {'advancement': False, 'name': 'Royal_Waterways_Map'},
|
||||
16777486: {'advancement': False, 'name': 'Howling_Cliffs_Map'},
|
||||
16777487: {'advancement': False, 'name': 'Crystal_Peak_Map'},
|
||||
16777488: {'advancement': False, 'name': "Queen's_Gardens_Map"},
|
||||
16777489: {'advancement': False, 'name': 'Resting_Grounds_Map'},
|
||||
16777490: {'advancement': True, 'name': 'Dirtmouth_Stag'},
|
||||
16777491: {'advancement': True, 'name': 'Crossroads_Stag'},
|
||||
16777492: {'advancement': True, 'name': 'Greenpath_Stag'},
|
||||
16777493: {'advancement': True, 'name': "Queen's_Station_Stag"},
|
||||
16777494: {'advancement': True, 'name': "Queen's_Gardens_Stag"},
|
||||
16777495: {'advancement': True, 'name': 'City_Storerooms_Stag'},
|
||||
16777496: {'advancement': True, 'name': "King's_Station_Stag"},
|
||||
16777497: {'advancement': True, 'name': 'Resting_Grounds_Stag'},
|
||||
16777498: {'advancement': True, 'name': 'Distant_Village_Stag'},
|
||||
16777499: {'advancement': True, 'name': 'Hidden_Station_Stag'},
|
||||
16777500: {'advancement': True, 'name': 'Stag_Nest_Stag'},
|
||||
16777501: {'advancement': False, 'name': "Lifeblood_Cocoon-King's_Pass"},
|
||||
16777502: { 'advancement': False,
|
||||
'name': 'Lifeblood_Cocoon-Ancestral_Mound'},
|
||||
16777503: {'advancement': False, 'name': 'Lifeblood_Cocoon-Greenpath'},
|
||||
16777504: { 'advancement': False,
|
||||
'name': 'Lifeblood_Cocoon-Fog_Canyon_West'},
|
||||
16777505: {'advancement': False, 'name': 'Lifeblood_Cocoon-Mantis_Village'},
|
||||
16777506: {'advancement': False, 'name': 'Lifeblood_Cocoon-Failed_Tramway'},
|
||||
16777507: {'advancement': False, 'name': 'Lifeblood_Cocoon-Galien'},
|
||||
16777508: {'advancement': False, 'name': "Lifeblood_Cocoon-Kingdom's_Edge"},
|
||||
16777509: {'advancement': False, 'name': 'Grubfather'},
|
||||
16777510: {'advancement': False, 'name': 'Seer'},
|
||||
16777511: {'advancement': False, 'name': 'Equipped'},
|
||||
16777512: {'advancement': False, 'name': 'Placeholder'}}
|
||||
# generated by https://github.com/Berserker66/HollowKnight.RandomizerMod/blob/master/extract_data.py
|
||||
# do not edit manually
|
||||
|
||||
item_table = {data["name"]: item_id for item_id, data in items.items()}
|
||||
lookup_id_to_name = {item_id: data["name"] for item_id, data in items.items()}
|
||||
from .Types import HKItemData
|
||||
|
||||
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=16777511, 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'),
|
||||
'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=16777509, 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'),
|
||||
'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=16777512, 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=16777510, 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 = {data.id: item_name for item_name, data in item_table.items()}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,13 @@
|
|||
# generated by https://github.com/Berserker66/HollowKnight.RandomizerMod/blob/master/extract_data.py
|
||||
# do not edit manually
|
||||
|
||||
|
||||
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"])
|
||||
]
|
|
@ -0,0 +1,360 @@
|
|||
# generated by https://github.com/Berserker66/HollowKnight.RandomizerMod/blob/master/extract_data.py
|
||||
# do not edit manually
|
||||
|
||||
from ..generic.Rules import set_rule
|
||||
|
||||
def set_rules(world, player):
|
||||
if world.logic[player] != 'nologic':
|
||||
world.completion_condition[player] = lambda state: state.has('Lurien', player) and \
|
||||
state.has('Monomon', player) and \
|
||||
state.has('Herrah', player)
|
||||
|
||||
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.has_essence(1000, player)))
|
||||
set_rule(world.get_location("Awoken_Dream_Nail", player), lambda state: (state.has("Upper_Resting_Grounds", player) and state.has_essence(1000, player)))
|
||||
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.has_grubs(30, player)))
|
||||
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.has_essence(1000, player)))
|
||||
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.has_grubs(30, player)))
|
||||
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.has_essence(1000, player)))
|
||||
set_rule(world.get_location("Mask_Shard-5_Grubs", player), lambda state: (state.has("Crossroads", player) and state.has_grubs(30, player)))
|
||||
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.has_essence(1000, player)))
|
||||
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]))))
|
||||
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.has_essence(1000, player)))
|
||||
set_rule(world.get_location("Pale_Ore-Grubs", player), lambda state: (state.has("Crossroads", player) and state.has_grubs(30, player)))
|
||||
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.has_grubs(30, player)))
|
||||
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.has_grubs(30, player)))
|
||||
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.has_essence(1000, player)))
|
||||
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.has_grubs(30, player)))
|
||||
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.has_essence(1000, player)))
|
||||
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("Grubfather", player), lambda state: state.has("Crossroads", player))
|
||||
set_rule(world.get_location("Seer", player), lambda state: state.has("Upper_Resting_Grounds", player))
|
||||
|
||||
# Events
|
||||
|
||||
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.has_essence(200, player) 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))))
|
|
@ -0,0 +1,7 @@
|
|||
import typing
|
||||
|
||||
|
||||
class HKItemData(typing.NamedTuple):
|
||||
advancement: bool
|
||||
id: int
|
||||
type: str
|
|
@ -2,12 +2,28 @@ import logging
|
|||
|
||||
logger = logging.getLogger("Hollow Knight")
|
||||
|
||||
from .Locations import locations, lookup_name_to_id
|
||||
from .Items import items
|
||||
from .Locations import lookup_name_to_id
|
||||
from .Items import item_table
|
||||
from .Regions import create_regions
|
||||
from .Rules import set_rules
|
||||
|
||||
from BaseClasses import Region, Entrance, Location, MultiWorld, Item
|
||||
|
||||
|
||||
def create_region(world: MultiWorld, player: int, name: str, locations=None, exits=None):
|
||||
ret = Region(name, None, name, player)
|
||||
ret.world = world
|
||||
if locations:
|
||||
for location in locations:
|
||||
loc_id = lookup_name_to_id.get(location, 0)
|
||||
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"
|
||||
|
||||
|
@ -20,26 +36,13 @@ class HKItem(Item):
|
|||
def __init__(self, name, advancement, code, player: int = None):
|
||||
super(HKItem, self).__init__(name, advancement, code, player)
|
||||
|
||||
|
||||
def gen_hollow(world: MultiWorld, player: int):
|
||||
logger.info("Doing buggy things.")
|
||||
gen_regions(world, player)
|
||||
link_regions(world, player)
|
||||
gen_items(world, player)
|
||||
set_rules(world, player)
|
||||
world.clear_location_cache()
|
||||
world.clear_entrance_cache()
|
||||
|
||||
def set_rules(world: MultiWorld, player: int):
|
||||
if world.logic[player] != 'nologic':
|
||||
world.completion_condition[player] = lambda state: state.has('Lurien', player) and \
|
||||
state.has('Monomon', player) and \
|
||||
state.has('Herrah', player)
|
||||
|
||||
def gen_regions(world: MultiWorld, player: int):
|
||||
world.regions += [
|
||||
create_region(world, player, 'Menu', None, ['Hollow Nest S&Q']),
|
||||
create_region(world, player, 'Hollow Nest', [location["name"] for location in locations.values()])
|
||||
]
|
||||
|
||||
|
||||
def link_regions(world: MultiWorld, player: int):
|
||||
|
@ -48,23 +51,22 @@ def link_regions(world: MultiWorld, player: int):
|
|||
|
||||
def gen_items(world: MultiWorld, player: int):
|
||||
pool = []
|
||||
for item_id, item_data in items.items():
|
||||
name = item_data["name"]
|
||||
item = HKItem(name, item_data["advancement"], item_id, player=player)
|
||||
pool.append(item)
|
||||
for item_name, item_data in item_table.items():
|
||||
|
||||
item = HKItem(item_name, item_data.advancement, item_data.id, player=player)
|
||||
|
||||
if item_data.type == "Event":
|
||||
event_location = world.get_location(item_name, player)
|
||||
world.push_item(event_location, item)
|
||||
event_location.event = True
|
||||
event_location.locked = True
|
||||
if item.name == "King's_Pass":
|
||||
world.push_precollected(item)
|
||||
|
||||
else:
|
||||
pool.append(item)
|
||||
|
||||
world.itempool += pool
|
||||
|
||||
|
||||
def create_region(world: MultiWorld, player: int, name: str, locations=None, exits=None):
|
||||
ret = Region(name, None, name, player)
|
||||
ret.world = world
|
||||
if locations:
|
||||
for location in locations:
|
||||
loc_id = lookup_name_to_id[location]
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue