1243 lines
		
	
	
		
			55 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			1243 lines
		
	
	
		
			55 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								import typing
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from BaseClasses import MultiWorld, Region, Entrance
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from .Locations import KH2Location, RegionTable
							 | 
						||
| 
								 | 
							
								from .Names import LocationName, ItemName, RegionName
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def create_regions(world, player: int, active_locations):
							 | 
						||
| 
								 | 
							
								    menu_region = create_region(world, player, active_locations, 'Menu', None)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    goa_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.Crit_1,
							 | 
						||
| 
								 | 
							
								        LocationName.Crit_2,
							 | 
						||
| 
								 | 
							
								        LocationName.Crit_3,
							 | 
						||
| 
								 | 
							
								        LocationName.Crit_4,
							 | 
						||
| 
								 | 
							
								        LocationName.Crit_5,
							 | 
						||
| 
								 | 
							
								        LocationName.Crit_6,
							 | 
						||
| 
								 | 
							
								        LocationName.Crit_7,
							 | 
						||
| 
								 | 
							
								        LocationName.GardenofAssemblageMap,
							 | 
						||
| 
								 | 
							
								        LocationName.GoALostIllusion,
							 | 
						||
| 
								 | 
							
								        LocationName.ProofofNonexistence,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldStarting1,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldStarting2,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyStarting1,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyStarting2,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    goa_region = create_region(world, player, active_locations, RegionName.GoA_Region,
							 | 
						||
| 
								 | 
							
								                               goa_region_locations)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    lod_Region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.BambooGroveDarkShard,
							 | 
						||
| 
								 | 
							
								        LocationName.BambooGroveEther,
							 | 
						||
| 
								 | 
							
								        LocationName.BambooGroveMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.EncampmentAreaMap,
							 | 
						||
| 
								 | 
							
								        LocationName.Mission3,
							 | 
						||
| 
								 | 
							
								        LocationName.CheckpointHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.CheckpointMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.MountainTrailLightningShard,
							 | 
						||
| 
								 | 
							
								        LocationName.MountainTrailRecoveryRecipe,
							 | 
						||
| 
								 | 
							
								        LocationName.MountainTrailEther,
							 | 
						||
| 
								 | 
							
								        LocationName.MountainTrailMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.VillageCaveAreaMap,
							 | 
						||
| 
								 | 
							
								        LocationName.VillageCaveAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.VillageCaveDarkShard,
							 | 
						||
| 
								 | 
							
								        LocationName.VillageCaveBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.RidgeFrostShard,
							 | 
						||
| 
								 | 
							
								        LocationName.RidgeAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.ShanYu,
							 | 
						||
| 
								 | 
							
								        LocationName.ShanYuGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.HiddenDragon,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyShanYu,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    lod_Region = create_region(world, player, active_locations, RegionName.LoD_Region,
							 | 
						||
| 
								 | 
							
								                               lod_Region_locations)
							 | 
						||
| 
								 | 
							
								    lod2_Region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.ThroneRoomTornPages,
							 | 
						||
| 
								 | 
							
								        LocationName.ThroneRoomPalaceMap,
							 | 
						||
| 
								 | 
							
								        LocationName.ThroneRoomAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.ThroneRoomQueenRecipe,
							 | 
						||
| 
								 | 
							
								        LocationName.ThroneRoomAPBoost2,
							 | 
						||
| 
								 | 
							
								        LocationName.ThroneRoomOgreShield,
							 | 
						||
| 
								 | 
							
								        LocationName.ThroneRoomMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.ThroneRoomOrichalcum,
							 | 
						||
| 
								 | 
							
								        LocationName.StormRider,
							 | 
						||
| 
								 | 
							
								        LocationName.XigbarDataDefenseBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyStormRider,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    lod2_Region = create_region(world, player, active_locations, RegionName.LoD2_Region,
							 | 
						||
| 
								 | 
							
								                                lod2_Region_locations)
							 | 
						||
| 
								 | 
							
								    ag_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.AgrabahMap,
							 | 
						||
| 
								 | 
							
								        LocationName.AgrabahDarkShard,
							 | 
						||
| 
								 | 
							
								        LocationName.AgrabahMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.AgrabahHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.AgrabahAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.AgrabahMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.AgrabahMythrilShard2,
							 | 
						||
| 
								 | 
							
								        LocationName.AgrabahSerenityShard,
							 | 
						||
| 
								 | 
							
								        LocationName.BazaarMythrilGem,
							 | 
						||
| 
								 | 
							
								        LocationName.BazaarPowerShard,
							 | 
						||
| 
								 | 
							
								        LocationName.BazaarHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.BazaarAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.BazaarMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.PalaceWallsSkillRing,
							 | 
						||
| 
								 | 
							
								        LocationName.PalaceWallsMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.CaveEntrancePowerStone,
							 | 
						||
| 
								 | 
							
								        LocationName.CaveEntranceMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.ValleyofStoneMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.ValleyofStoneAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.ValleyofStoneMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.ValleyofStoneHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.AbuEscort,
							 | 
						||
| 
								 | 
							
								        LocationName.ChasmofChallengesCaveofWondersMap,
							 | 
						||
| 
								 | 
							
								        LocationName.ChasmofChallengesAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.TreasureRoom,
							 | 
						||
| 
								 | 
							
								        LocationName.TreasureRoomAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.TreasureRoomSerenityGem,
							 | 
						||
| 
								 | 
							
								        LocationName.ElementalLords,
							 | 
						||
| 
								 | 
							
								        LocationName.LampCharm,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyTreasureRoom,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldAbuEscort,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    ag_region = create_region(world, player, active_locations, RegionName.Ag_Region,
							 | 
						||
| 
								 | 
							
								                              ag_region_locations)
							 | 
						||
| 
								 | 
							
								    ag2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.RuinedChamberTornPages,
							 | 
						||
| 
								 | 
							
								        LocationName.RuinedChamberRuinsMap,
							 | 
						||
| 
								 | 
							
								        LocationName.GenieJafar,
							 | 
						||
| 
								 | 
							
								        LocationName.WishingLamp,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    ag2_region = create_region(world, player, active_locations, RegionName.Ag2_Region,
							 | 
						||
| 
								 | 
							
								                               ag2_region_locations)
							 | 
						||
| 
								 | 
							
								    lexaeus_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.LexaeusBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.LexaeusASStrengthBeyondStrength,
							 | 
						||
| 
								 | 
							
								        LocationName.LexaeusDataLostIllusion,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    lexaeus_region = create_region(world, player, active_locations, RegionName.Lexaeus_Region,
							 | 
						||
| 
								 | 
							
								                                   lexaeus_region_locations)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    dc_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.DCCourtyardMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.DCCourtyardStarRecipe,
							 | 
						||
| 
								 | 
							
								        LocationName.DCCourtyardAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.DCCourtyardMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.DCCourtyardBlazingStone,
							 | 
						||
| 
								 | 
							
								        LocationName.DCCourtyardBlazingShard,
							 | 
						||
| 
								 | 
							
								        LocationName.DCCourtyardMythrilShard2,
							 | 
						||
| 
								 | 
							
								        LocationName.LibraryTornPages,
							 | 
						||
| 
								 | 
							
								        LocationName.DisneyCastleMap,
							 | 
						||
| 
								 | 
							
								        LocationName.MinnieEscort,
							 | 
						||
| 
								 | 
							
								        LocationName.MinnieEscortGetBonus,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    dc_region = create_region(world, player, active_locations, RegionName.Dc_Region,
							 | 
						||
| 
								 | 
							
								                              dc_region_locations)
							 | 
						||
| 
								 | 
							
								    tr_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.CornerstoneHillMap,
							 | 
						||
| 
								 | 
							
								        LocationName.CornerstoneHillFrostShard,
							 | 
						||
| 
								 | 
							
								        LocationName.PierMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.PierHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.WaterwayMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.WaterwayAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.WaterwayFrostStone,
							 | 
						||
| 
								 | 
							
								        LocationName.WindowofTimeMap,
							 | 
						||
| 
								 | 
							
								        LocationName.BoatPete,
							 | 
						||
| 
								 | 
							
								        LocationName.FuturePete,
							 | 
						||
| 
								 | 
							
								        LocationName.FuturePeteGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.Monochrome,
							 | 
						||
| 
								 | 
							
								        LocationName.WisdomForm,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldBoatPete,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldBoatPeteGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyFuturePete,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    tr_region = create_region(world, player, active_locations, RegionName.Tr_Region,
							 | 
						||
| 
								 | 
							
								                              tr_region_locations)
							 | 
						||
| 
								 | 
							
								    marluxia_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.MarluxiaGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.MarluxiaASEternalBlossom,
							 | 
						||
| 
								 | 
							
								        LocationName.MarluxiaDataLostIllusion,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    marluxia_region = create_region(world, player, active_locations, RegionName.Marluxia_Region,
							 | 
						||
| 
								 | 
							
								                                    marluxia_region_locations)
							 | 
						||
| 
								 | 
							
								    terra_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.LingeringWillBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.LingeringWillProofofConnection,
							 | 
						||
| 
								 | 
							
								        LocationName.LingeringWillManifestIllusion,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    terra_region = create_region(world, player, active_locations, RegionName.Terra_Region,
							 | 
						||
| 
								 | 
							
								                                 terra_region_locations)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    hundred_acre1_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.PoohsHouse100AcreWoodMap,
							 | 
						||
| 
								 | 
							
								        LocationName.PoohsHouseAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.PoohsHouseMythrilStone,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    hundred_acre1_region = create_region(world, player, active_locations, RegionName.HundredAcre1_Region,
							 | 
						||
| 
								 | 
							
								                                         hundred_acre1_region_locations)
							 | 
						||
| 
								 | 
							
								    hundred_acre2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.PigletsHouseDefenseBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.PigletsHouseAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.PigletsHouseMythrilGem,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    hundred_acre2_region = create_region(world, player, active_locations, RegionName.HundredAcre2_Region,
							 | 
						||
| 
								 | 
							
								                                         hundred_acre2_region_locations)
							 | 
						||
| 
								 | 
							
								    hundred_acre3_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.RabbitsHouseDrawRing,
							 | 
						||
| 
								 | 
							
								        LocationName.RabbitsHouseMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.RabbitsHouseAPBoost,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    hundred_acre3_region = create_region(world, player, active_locations, RegionName.HundredAcre3_Region,
							 | 
						||
| 
								 | 
							
								                                         hundred_acre3_region_locations)
							 | 
						||
| 
								 | 
							
								    hundred_acre4_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.KangasHouseMagicBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.KangasHouseAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.KangasHouseOrichalcum,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    hundred_acre4_region = create_region(world, player, active_locations, RegionName.HundredAcre4_Region,
							 | 
						||
| 
								 | 
							
								                                         hundred_acre4_region_locations)
							 | 
						||
| 
								 | 
							
								    hundred_acre5_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.SpookyCaveMythrilGem,
							 | 
						||
| 
								 | 
							
								        LocationName.SpookyCaveAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.SpookyCaveOrichalcum,
							 | 
						||
| 
								 | 
							
								        LocationName.SpookyCaveGuardRecipe,
							 | 
						||
| 
								 | 
							
								        LocationName.SpookyCaveMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.SpookyCaveAPBoost2,
							 | 
						||
| 
								 | 
							
								        LocationName.SweetMemories,
							 | 
						||
| 
								 | 
							
								        LocationName.SpookyCaveMap,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    hundred_acre5_region = create_region(world, player, active_locations, RegionName.HundredAcre5_Region,
							 | 
						||
| 
								 | 
							
								                                         hundred_acre5_region_locations)
							 | 
						||
| 
								 | 
							
								    hundred_acre6_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.StarryHillCosmicRing,
							 | 
						||
| 
								 | 
							
								        LocationName.StarryHillStyleRecipe,
							 | 
						||
| 
								 | 
							
								        LocationName.StarryHillCureElement,
							 | 
						||
| 
								 | 
							
								        LocationName.StarryHillOrichalcumPlus,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    hundred_acre6_region = create_region(world, player, active_locations, RegionName.HundredAcre6_Region,
							 | 
						||
| 
								 | 
							
								                                         hundred_acre6_region_locations)
							 | 
						||
| 
								 | 
							
								    pr_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.RampartNavalMap,
							 | 
						||
| 
								 | 
							
								        LocationName.RampartMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.RampartDarkShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TownDarkStone,
							 | 
						||
| 
								 | 
							
								        LocationName.TownAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.TownMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TownMythrilGem,
							 | 
						||
| 
								 | 
							
								        LocationName.CaveMouthBrightShard,
							 | 
						||
| 
								 | 
							
								        LocationName.CaveMouthMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.IsladeMuertaMap,
							 | 
						||
| 
								 | 
							
								        LocationName.BoatFight,
							 | 
						||
| 
								 | 
							
								        LocationName.InterceptorBarrels,
							 | 
						||
| 
								 | 
							
								        LocationName.PowderStoreAPBoost1,
							 | 
						||
| 
								 | 
							
								        LocationName.PowderStoreAPBoost2,
							 | 
						||
| 
								 | 
							
								        LocationName.MoonlightNookMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.MoonlightNookSerenityGem,
							 | 
						||
| 
								 | 
							
								        LocationName.MoonlightNookPowerStone,
							 | 
						||
| 
								 | 
							
								        LocationName.Barbossa,
							 | 
						||
| 
								 | 
							
								        LocationName.BarbossaGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.FollowtheWind,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldBoatFight,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyBarbossa,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyBarbossaGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyInterceptorBarrels,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    pr_region = create_region(world, player, active_locations, RegionName.Pr_Region,
							 | 
						||
| 
								 | 
							
								                              pr_region_locations)
							 | 
						||
| 
								 | 
							
								    pr2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.GrimReaper1,
							 | 
						||
| 
								 | 
							
								        LocationName.InterceptorsHoldFeatherCharm,
							 | 
						||
| 
								 | 
							
								        LocationName.SeadriftKeepAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.SeadriftKeepOrichalcum,
							 | 
						||
| 
								 | 
							
								        LocationName.SeadriftKeepMeteorStaff,
							 | 
						||
| 
								 | 
							
								        LocationName.SeadriftRowSerenityGem,
							 | 
						||
| 
								 | 
							
								        LocationName.SeadriftRowKingRecipe,
							 | 
						||
| 
								 | 
							
								        LocationName.SeadriftRowMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.SeadriftRowCursedMedallion,
							 | 
						||
| 
								 | 
							
								        LocationName.SeadriftRowShipGraveyardMap,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyGrimReaper1,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    pr2_region = create_region(world, player, active_locations, RegionName.Pr2_Region,
							 | 
						||
| 
								 | 
							
								                               pr2_region_locations)
							 | 
						||
| 
								 | 
							
								    gr2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.DonaladGrimReaper2,
							 | 
						||
| 
								 | 
							
								        LocationName.GrimReaper2,
							 | 
						||
| 
								 | 
							
								        LocationName.SecretAnsemReport6,
							 | 
						||
| 
								 | 
							
								        LocationName.LuxordDataAPBoost,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    gr2_region = create_region(world, player, active_locations, RegionName.Gr2_Region,
							 | 
						||
| 
								 | 
							
								                               gr2_region_locations)
							 | 
						||
| 
								 | 
							
								    oc_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.PassageMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.PassageMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.PassageEther,
							 | 
						||
| 
								 | 
							
								        LocationName.PassageAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.PassageHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.InnerChamberUnderworldMap,
							 | 
						||
| 
								 | 
							
								        LocationName.InnerChamberMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.Cerberus,
							 | 
						||
| 
								 | 
							
								        LocationName.ColiseumMap,
							 | 
						||
| 
								 | 
							
								        LocationName.Urns,
							 | 
						||
| 
								 | 
							
								        LocationName.UnderworldEntrancePowerBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CavernsEntranceLucidShard,
							 | 
						||
| 
								 | 
							
								        LocationName.CavernsEntranceAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CavernsEntranceMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TheLostRoadBrightShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TheLostRoadEther,
							 | 
						||
| 
								 | 
							
								        LocationName.TheLostRoadMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TheLostRoadMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.AtriumLucidStone,
							 | 
						||
| 
								 | 
							
								        LocationName.AtriumAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.DemyxOC,
							 | 
						||
| 
								 | 
							
								        LocationName.SecretAnsemReport5,
							 | 
						||
| 
								 | 
							
								        LocationName.OlympusStone,
							 | 
						||
| 
								 | 
							
								        LocationName.TheLockCavernsMap,
							 | 
						||
| 
								 | 
							
								        LocationName.TheLockMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TheLockAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.PeteOC,
							 | 
						||
| 
								 | 
							
								        LocationName.Hydra,
							 | 
						||
| 
								 | 
							
								        LocationName.HydraGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.HerosCrest,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldDemyxOC,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyPeteOC,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    oc_region = create_region(world, player, active_locations, RegionName.Oc_Region,
							 | 
						||
| 
								 | 
							
								                              oc_region_locations)
							 | 
						||
| 
								 | 
							
								    oc2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.AuronsStatue,
							 | 
						||
| 
								 | 
							
								        LocationName.Hades,
							 | 
						||
| 
								 | 
							
								        LocationName.HadesGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.GuardianSoul,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    oc2_region = create_region(world, player, active_locations, RegionName.Oc2_Region,
							 | 
						||
| 
								 | 
							
								                               oc2_region_locations)
							 | 
						||
| 
								 | 
							
								    oc2_pain_and_panic_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.ProtectBeltPainandPanicCup,
							 | 
						||
| 
								 | 
							
								        LocationName.SerenityGemPainandPanicCup,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    oc2_titan_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.GenjiShieldTitanCup,
							 | 
						||
| 
								 | 
							
								        LocationName.SkillfulRingTitanCup,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    oc2_cerberus_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.RisingDragonCerberusCup,
							 | 
						||
| 
								 | 
							
								        LocationName.SerenityCrystalCerberusCup,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    oc2_gof_cup_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.FatalCrestGoddessofFateCup,
							 | 
						||
| 
								 | 
							
								        LocationName.OrichalcumPlusGoddessofFateCup,
							 | 
						||
| 
								 | 
							
								        LocationName.HadesCupTrophyParadoxCups,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    zexion_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.ZexionBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.ZexionASBookofShadows,
							 | 
						||
| 
								 | 
							
								        LocationName.ZexionDataLostIllusion,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyZexion,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    oc2_pain_and_panic_cup = create_region(world, player, active_locations, RegionName.Oc2_pain_and_panic_Region,
							 | 
						||
| 
								 | 
							
								                                           oc2_pain_and_panic_locations)
							 | 
						||
| 
								 | 
							
								    oc2_titan_cup = create_region(world, player, active_locations, RegionName.Oc2_titan_Region, oc2_titan_locations)
							 | 
						||
| 
								 | 
							
								    oc2_cerberus_cup = create_region(world, player, active_locations, RegionName.Oc2_cerberus_Region,
							 | 
						||
| 
								 | 
							
								                                     oc2_cerberus_locations)
							 | 
						||
| 
								 | 
							
								    oc2_gof_cup = create_region(world, player, active_locations, RegionName.Oc2_gof_Region, oc2_gof_cup_locations)
							 | 
						||
| 
								 | 
							
								    zexion_region = create_region(world, player, active_locations, RegionName.Zexion_Region, zexion_region_locations)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    bc_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.BCCourtyardAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.BCCourtyardHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.BCCourtyardMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.BellesRoomCastleMap,
							 | 
						||
| 
								 | 
							
								        LocationName.BellesRoomMegaRecipe,
							 | 
						||
| 
								 | 
							
								        LocationName.TheEastWingMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TheEastWingTent,
							 | 
						||
| 
								 | 
							
								        LocationName.TheWestHallHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.TheWestHallPowerShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TheWestHallMythrilShard2,
							 | 
						||
| 
								 | 
							
								        LocationName.TheWestHallBrightStone,
							 | 
						||
| 
								 | 
							
								        LocationName.TheWestHallMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.Thresholder,
							 | 
						||
| 
								 | 
							
								        LocationName.DungeonBasementMap,
							 | 
						||
| 
								 | 
							
								        LocationName.DungeonAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.SecretPassageMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.SecretPassageHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.SecretPassageLucidShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TheWestHallAPBoostPostDungeon,
							 | 
						||
| 
								 | 
							
								        LocationName.TheWestWingMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TheWestWingTent,
							 | 
						||
| 
								 | 
							
								        LocationName.Beast,
							 | 
						||
| 
								 | 
							
								        LocationName.TheBeastsRoomBlazingShard,
							 | 
						||
| 
								 | 
							
								        LocationName.DarkThorn,
							 | 
						||
| 
								 | 
							
								        LocationName.DarkThornGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.DarkThornCureElement,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldThresholder,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyBeast,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    bc_region = create_region(world, player, active_locations, RegionName.Bc_Region,
							 | 
						||
| 
								 | 
							
								                              bc_region_locations)
							 | 
						||
| 
								 | 
							
								    bc2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.RumblingRose,
							 | 
						||
| 
								 | 
							
								        LocationName.CastleWallsMap,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    bc2_region = create_region(world, player, active_locations, RegionName.Bc2_Region,
							 | 
						||
| 
								 | 
							
								                               bc2_region_locations)
							 | 
						||
| 
								 | 
							
								    xaldin_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.Xaldin,
							 | 
						||
| 
								 | 
							
								        LocationName.XaldinGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldXaldinGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.SecretAnsemReport4,
							 | 
						||
| 
								 | 
							
								        LocationName.XaldinDataDefenseBoost,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    xaldin_region = create_region(world, player, active_locations, RegionName.Xaldin_Region,
							 | 
						||
| 
								 | 
							
								                                  xaldin_region_locations)
							 | 
						||
| 
								 | 
							
								    sp_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.PitCellAreaMap,
							 | 
						||
| 
								 | 
							
								        LocationName.PitCellMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.CanyonDarkCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.CanyonMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.CanyonMythrilGem,
							 | 
						||
| 
								 | 
							
								        LocationName.CanyonFrostCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.Screens,
							 | 
						||
| 
								 | 
							
								        LocationName.HallwayPowerCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.HallwayAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CommunicationsRoomIOTowerMap,
							 | 
						||
| 
								 | 
							
								        LocationName.CommunicationsRoomGaiaBelt,
							 | 
						||
| 
								 | 
							
								        LocationName.HostileProgram,
							 | 
						||
| 
								 | 
							
								        LocationName.HostileProgramGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.PhotonDebugger,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldScreens,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyHostileProgram,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    sp_region = create_region(world, player, active_locations, RegionName.Sp_Region,
							 | 
						||
| 
								 | 
							
								                              sp_region_locations)
							 | 
						||
| 
								 | 
							
								    sp2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.SolarSailer,
							 | 
						||
| 
								 | 
							
								        LocationName.CentralComputerCoreAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CentralComputerCoreOrichalcumPlus,
							 | 
						||
| 
								 | 
							
								        LocationName.CentralComputerCoreCosmicArts,
							 | 
						||
| 
								 | 
							
								        LocationName.CentralComputerCoreMap,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldSolarSailer,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    sp2_region = create_region(world, player, active_locations, RegionName.Sp2_Region,
							 | 
						||
| 
								 | 
							
								                               sp2_region_locations)
							 | 
						||
| 
								 | 
							
								    mcp_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.MCP,
							 | 
						||
| 
								 | 
							
								        LocationName.MCPGetBonus,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    mcp_region = create_region(world, player, active_locations, RegionName.Mcp_Region,
							 | 
						||
| 
								 | 
							
								                               mcp_region_locations)
							 | 
						||
| 
								 | 
							
								    larxene_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.LarxeneBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.LarxeneASCloakedThunder,
							 | 
						||
| 
								 | 
							
								        LocationName.LarxeneDataLostIllusion,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    larxene_region = create_region(world, player, active_locations, RegionName.Larxene_Region,
							 | 
						||
| 
								 | 
							
								                                   larxene_region_locations)
							 | 
						||
| 
								 | 
							
								    ht_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.GraveyardMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.GraveyardSerenityGem,
							 | 
						||
| 
								 | 
							
								        LocationName.FinklesteinsLabHalloweenTownMap,
							 | 
						||
| 
								 | 
							
								        LocationName.TownSquareMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.TownSquareEnergyShard,
							 | 
						||
| 
								 | 
							
								        LocationName.HinterlandsLightningShard,
							 | 
						||
| 
								 | 
							
								        LocationName.HinterlandsMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.HinterlandsAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CandyCaneLaneMegaPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.CandyCaneLaneMythrilGem,
							 | 
						||
| 
								 | 
							
								        LocationName.CandyCaneLaneLightningStone,
							 | 
						||
| 
								 | 
							
								        LocationName.CandyCaneLaneMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.SantasHouseChristmasTownMap,
							 | 
						||
| 
								 | 
							
								        LocationName.SantasHouseAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.PrisonKeeper,
							 | 
						||
| 
								 | 
							
								        LocationName.OogieBoogie,
							 | 
						||
| 
								 | 
							
								        LocationName.OogieBoogieMagnetElement,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldPrisonKeeper,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyOogieBoogie,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    ht_region = create_region(world, player, active_locations, RegionName.Ht_Region,
							 | 
						||
| 
								 | 
							
								                              ht_region_locations)
							 | 
						||
| 
								 | 
							
								    ht2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.Lock,
							 | 
						||
| 
								 | 
							
								        LocationName.Present,
							 | 
						||
| 
								 | 
							
								        LocationName.DecoyPresents,
							 | 
						||
| 
								 | 
							
								        LocationName.Experiment,
							 | 
						||
| 
								 | 
							
								        LocationName.DecisivePumpkin,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldExperiment,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyLock,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    ht2_region = create_region(world, player, active_locations, RegionName.Ht2_Region,
							 | 
						||
| 
								 | 
							
								                               ht2_region_locations)
							 | 
						||
| 
								 | 
							
								    vexen_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.VexenBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.VexenASRoadtoDiscovery,
							 | 
						||
| 
								 | 
							
								        LocationName.VexenDataLostIllusion,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    vexen_region = create_region(world, player, active_locations, RegionName.Vexen_Region,
							 | 
						||
| 
								 | 
							
								                                 vexen_region_locations)
							 | 
						||
| 
								 | 
							
								    hb_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.MarketplaceMap,
							 | 
						||
| 
								 | 
							
								        LocationName.BoroughDriveRecovery,
							 | 
						||
| 
								 | 
							
								        LocationName.BoroughAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.BoroughHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.BoroughMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.BoroughDarkShard,
							 | 
						||
| 
								 | 
							
								        LocationName.MerlinsHouseMembershipCard,
							 | 
						||
| 
								 | 
							
								        LocationName.MerlinsHouseBlizzardElement,
							 | 
						||
| 
								 | 
							
								        LocationName.Bailey,
							 | 
						||
| 
								 | 
							
								        LocationName.BaileySecretAnsemReport7,
							 | 
						||
| 
								 | 
							
								        LocationName.BaseballCharm,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    hb_region = create_region(world, player, active_locations, RegionName.Hb_Region,
							 | 
						||
| 
								 | 
							
								                              hb_region_locations)
							 | 
						||
| 
								 | 
							
								    hb2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.PosternCastlePerimeterMap,
							 | 
						||
| 
								 | 
							
								        LocationName.PosternMythrilGem,
							 | 
						||
| 
								 | 
							
								        LocationName.PosternAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CorridorsMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.CorridorsMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.CorridorsDarkCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.CorridorsAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.AnsemsStudyMasterForm,
							 | 
						||
| 
								 | 
							
								        LocationName.AnsemsStudySleepingLion,
							 | 
						||
| 
								 | 
							
								        LocationName.AnsemsStudySkillRecipe,
							 | 
						||
| 
								 | 
							
								        LocationName.AnsemsStudyUkuleleCharm,
							 | 
						||
| 
								 | 
							
								        LocationName.RestorationSiteMoonRecipe,
							 | 
						||
| 
								 | 
							
								        LocationName.RestorationSiteAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRDepthsAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRDepthsPowerCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRDepthsFrostCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRDepthsManifestIllusion,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRDepthsAPBoost2,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRMineshaftLowerLevelDepthsofRemembranceMap,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRMineshaftLowerLevelAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldDemyxHBGetBonus,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    hb2_region = create_region(world, player, active_locations, RegionName.Hb2_Region,
							 | 
						||
| 
								 | 
							
								                               hb2_region_locations)
							 | 
						||
| 
								 | 
							
								    onek_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.DemyxHB,
							 | 
						||
| 
								 | 
							
								        LocationName.DemyxHBGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.FFFightsCureElement,
							 | 
						||
| 
								 | 
							
								        LocationName.CrystalFissureTornPages,
							 | 
						||
| 
								 | 
							
								        LocationName.CrystalFissureTheGreatMawMap,
							 | 
						||
| 
								 | 
							
								        LocationName.CrystalFissureEnergyCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.CrystalFissureAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.ThousandHeartless,
							 | 
						||
| 
								 | 
							
								        LocationName.ThousandHeartlessSecretAnsemReport1,
							 | 
						||
| 
								 | 
							
								        LocationName.ThousandHeartlessIceCream,
							 | 
						||
| 
								 | 
							
								        LocationName.ThousandHeartlessPicture,
							 | 
						||
| 
								 | 
							
								        LocationName.PosternGullWing,
							 | 
						||
| 
								 | 
							
								        LocationName.HeartlessManufactoryCosmicChain,
							 | 
						||
| 
								 | 
							
								        LocationName.DemyxDataAPBoost,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    onek_region = create_region(world, player, active_locations, RegionName.ThousandHeartless_Region,
							 | 
						||
| 
								 | 
							
								                                onek_region_locations)
							 | 
						||
| 
								 | 
							
								    mushroom_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.WinnersProof,
							 | 
						||
| 
								 | 
							
								        LocationName.ProofofPeace,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    mushroom_region = create_region(world, player, active_locations, RegionName.Mushroom13_Region,
							 | 
						||
| 
								 | 
							
								                                    mushroom_region_locations)
							 | 
						||
| 
								 | 
							
								    sephi_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.SephirothBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.SephirothFenrir,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    sephi_region = create_region(world, player, active_locations, RegionName.Sephi_Region,
							 | 
						||
| 
								 | 
							
								                                 sephi_region_locations)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    cor_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.CoRDepthsUpperLevelRemembranceGem,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRMiningAreaSerenityGem,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRMiningAreaAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRMiningAreaSerenityCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRMiningAreaManifestIllusion,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRMiningAreaSerenityGem2,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRMiningAreaDarkRemembranceMap,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRMineshaftMidLevelPowerBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CoREngineChamberSerenityCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.CoREngineChamberRemembranceCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.CoREngineChamberAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CoREngineChamberManifestIllusion,
							 | 
						||
| 
								 | 
							
								        LocationName.CoRMineshaftUpperLevelMagicBoost,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    cor_region = create_region(world, player, active_locations, RegionName.CoR_Region,
							 | 
						||
| 
								 | 
							
								                               cor_region_locations)
							 | 
						||
| 
								 | 
							
								    transport_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.CoRMineshaftUpperLevelAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.TransporttoRemembrance,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    transport_region = create_region(world, player, active_locations, RegionName.Transport_Region,
							 | 
						||
| 
								 | 
							
								                                     transport_region_locations)
							 | 
						||
| 
								 | 
							
								    pl_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.GorgeSavannahMap,
							 | 
						||
| 
								 | 
							
								        LocationName.GorgeDarkGem,
							 | 
						||
| 
								 | 
							
								        LocationName.GorgeMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.ElephantGraveyardFrostGem,
							 | 
						||
| 
								 | 
							
								        LocationName.ElephantGraveyardMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.ElephantGraveyardBrightStone,
							 | 
						||
| 
								 | 
							
								        LocationName.ElephantGraveyardAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.ElephantGraveyardMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.PrideRockMap,
							 | 
						||
| 
								 | 
							
								        LocationName.PrideRockMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.PrideRockSerenityCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.WildebeestValleyEnergyStone,
							 | 
						||
| 
								 | 
							
								        LocationName.WildebeestValleyAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.WildebeestValleyMythrilGem,
							 | 
						||
| 
								 | 
							
								        LocationName.WildebeestValleyMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.WildebeestValleyLucidGem,
							 | 
						||
| 
								 | 
							
								        LocationName.WastelandsMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.WastelandsSerenityGem,
							 | 
						||
| 
								 | 
							
								        LocationName.WastelandsMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.JungleSerenityGem,
							 | 
						||
| 
								 | 
							
								        LocationName.JungleMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.JungleSerenityCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.OasisMap,
							 | 
						||
| 
								 | 
							
								        LocationName.OasisTornPages,
							 | 
						||
| 
								 | 
							
								        LocationName.OasisAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.CircleofLife,
							 | 
						||
| 
								 | 
							
								        LocationName.Hyenas1,
							 | 
						||
| 
								 | 
							
								        LocationName.Scar,
							 | 
						||
| 
								 | 
							
								        LocationName.ScarFireElement,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldScar,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyHyenas1,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    pl_region = create_region(world, player, active_locations, RegionName.Pl_Region,
							 | 
						||
| 
								 | 
							
								                              pl_region_locations)
							 | 
						||
| 
								 | 
							
								    pl2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.Hyenas2,
							 | 
						||
| 
								 | 
							
								        LocationName.Groundshaker,
							 | 
						||
| 
								 | 
							
								        LocationName.GroundshakerGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.SaixDataDefenseBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.GoofyHyenas2,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    pl2_region = create_region(world, player, active_locations, RegionName.Pl2_Region,
							 | 
						||
| 
								 | 
							
								                               pl2_region_locations)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    stt_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.TwilightTownMap,
							 | 
						||
| 
								 | 
							
								        LocationName.MunnyPouchOlette,
							 | 
						||
| 
								 | 
							
								        LocationName.StationDusks,
							 | 
						||
| 
								 | 
							
								        LocationName.StationofSerenityPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.StationofCallingPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.TwilightThorn,
							 | 
						||
| 
								 | 
							
								        LocationName.Axel1,
							 | 
						||
| 
								 | 
							
								        LocationName.JunkChampionBelt,
							 | 
						||
| 
								 | 
							
								        LocationName.JunkMedal,
							 | 
						||
| 
								 | 
							
								        LocationName.TheStruggleTrophy,
							 | 
						||
| 
								 | 
							
								        LocationName.CentralStationPotion1,
							 | 
						||
| 
								 | 
							
								        LocationName.STTCentralStationHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.CentralStationPotion2,
							 | 
						||
| 
								 | 
							
								        LocationName.SunsetTerraceAbilityRing,
							 | 
						||
| 
								 | 
							
								        LocationName.SunsetTerraceHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.SunsetTerracePotion1,
							 | 
						||
| 
								 | 
							
								        LocationName.SunsetTerracePotion2,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionFoyerHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionFoyerPotion1,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionFoyerPotion2,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionDiningRoomElvenBandanna,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionDiningRoomPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.NaminesSketches,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionMap,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionLibraryHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.Axel2,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionBasementCorridorHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.RoxasDataMagicBoost,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    stt_region = create_region(world, player, active_locations, RegionName.STT_Region,
							 | 
						||
| 
								 | 
							
								                               stt_region_locations)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    tt_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.OldMansionPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.OldMansionMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TheWoodsPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.TheWoodsMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TheWoodsHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.TramCommonHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.TramCommonAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.TramCommonTent,
							 | 
						||
| 
								 | 
							
								        LocationName.TramCommonMythrilShard1,
							 | 
						||
| 
								 | 
							
								        LocationName.TramCommonPotion1,
							 | 
						||
| 
								 | 
							
								        LocationName.TramCommonMythrilShard2,
							 | 
						||
| 
								 | 
							
								        LocationName.TramCommonPotion2,
							 | 
						||
| 
								 | 
							
								        LocationName.StationPlazaSecretAnsemReport2,
							 | 
						||
| 
								 | 
							
								        LocationName.MunnyPouchMickey,
							 | 
						||
| 
								 | 
							
								        LocationName.CrystalOrb,
							 | 
						||
| 
								 | 
							
								        LocationName.CentralStationTent,
							 | 
						||
| 
								 | 
							
								        LocationName.TTCentralStationHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.CentralStationMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.TheTowerPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.TheTowerHiPotion,
							 | 
						||
| 
								 | 
							
								        LocationName.TheTowerEther,
							 | 
						||
| 
								 | 
							
								        LocationName.TowerEntrywayEther,
							 | 
						||
| 
								 | 
							
								        LocationName.TowerEntrywayMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.SorcerersLoftTowerMap,
							 | 
						||
| 
								 | 
							
								        LocationName.TowerWardrobeMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.StarSeeker,
							 | 
						||
| 
								 | 
							
								        LocationName.ValorForm,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    tt_region = create_region(world, player, active_locations, RegionName.TT_Region,
							 | 
						||
| 
								 | 
							
								                              tt_region_locations)
							 | 
						||
| 
								 | 
							
								    tt2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.SeifersTrophy,
							 | 
						||
| 
								 | 
							
								        LocationName.Oathkeeper,
							 | 
						||
| 
								 | 
							
								        LocationName.LimitForm,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    tt2_region = create_region(world, player, active_locations, RegionName.TT2_Region,
							 | 
						||
| 
								 | 
							
								                               tt2_region_locations)
							 | 
						||
| 
								 | 
							
								    tt3_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.UndergroundConcourseMythrilGem,
							 | 
						||
| 
								 | 
							
								        LocationName.UndergroundConcourseAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.UndergroundConcourseMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.UndergroundConcourseOrichalcum,
							 | 
						||
| 
								 | 
							
								        LocationName.TunnelwayOrichalcum,
							 | 
						||
| 
								 | 
							
								        LocationName.TunnelwayMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.SunsetTerraceOrichalcumPlus,
							 | 
						||
| 
								 | 
							
								        LocationName.SunsetTerraceMythrilShard,
							 | 
						||
| 
								 | 
							
								        LocationName.SunsetTerraceMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.SunsetTerraceAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionNobodies,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionFoyerMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionFoyerMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionFoyerSerenityCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionDiningRoomMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionDiningRoomMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionLibraryOrichalcum,
							 | 
						||
| 
								 | 
							
								        LocationName.BeamSecretAnsemReport10,
							 | 
						||
| 
								 | 
							
								        LocationName.MansionBasementCorridorUltimateRecipe,
							 | 
						||
| 
								 | 
							
								        LocationName.BetwixtandBetween,
							 | 
						||
| 
								 | 
							
								        LocationName.BetwixtandBetweenBondofFlame,
							 | 
						||
| 
								 | 
							
								        LocationName.AxelDataMagicBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.DonaldMansionNobodies,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    tt3_region = create_region(world, player, active_locations, RegionName.TT3_Region,
							 | 
						||
| 
								 | 
							
								                               tt3_region_locations)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    twtnw_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.FragmentCrossingMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.FragmentCrossingMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.FragmentCrossingAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.FragmentCrossingOrichalcum,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    twtnw_region = create_region(world, player, active_locations, RegionName.Twtnw_Region,
							 | 
						||
| 
								 | 
							
								                                 twtnw_region_locations)
							 | 
						||
| 
								 | 
							
								    twtnw_postroxas_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.Roxas,
							 | 
						||
| 
								 | 
							
								        LocationName.RoxasGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.RoxasSecretAnsemReport8,
							 | 
						||
| 
								 | 
							
								        LocationName.TwoBecomeOne,
							 | 
						||
| 
								 | 
							
								        LocationName.MemorysSkyscaperMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.MemorysSkyscaperAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.MemorysSkyscaperMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.TheBrinkofDespairDarkCityMap,
							 | 
						||
| 
								 | 
							
								        LocationName.TheBrinkofDespairOrichalcumPlus,
							 | 
						||
| 
								 | 
							
								        LocationName.NothingsCallMythrilGem,
							 | 
						||
| 
								 | 
							
								        LocationName.NothingsCallOrichalcum,
							 | 
						||
| 
								 | 
							
								        LocationName.TwilightsViewCosmicBelt,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    twtnw_postroxas_region = create_region(world, player, active_locations, RegionName.Twtnw_PostRoxas,
							 | 
						||
| 
								 | 
							
								                                           twtnw_postroxas_region_locations)
							 | 
						||
| 
								 | 
							
								    twtnw_postxigbar_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.XigbarBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.XigbarSecretAnsemReport3,
							 | 
						||
| 
								 | 
							
								        LocationName.NaughtsSkywayMythrilGem,
							 | 
						||
| 
								 | 
							
								        LocationName.NaughtsSkywayOrichalcum,
							 | 
						||
| 
								 | 
							
								        LocationName.NaughtsSkywayMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.Oblivion,
							 | 
						||
| 
								 | 
							
								        LocationName.CastleThatNeverWasMap,
							 | 
						||
| 
								 | 
							
								        LocationName.Luxord,
							 | 
						||
| 
								 | 
							
								        LocationName.LuxordGetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.LuxordSecretAnsemReport9,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    twtnw_postxigbar_region = create_region(world, player, active_locations, RegionName.Twtnw_PostXigbar,
							 | 
						||
| 
								 | 
							
								                                            twtnw_postxigbar_region_locations)
							 | 
						||
| 
								 | 
							
								    twtnw2_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.SaixBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.SaixSecretAnsemReport12,
							 | 
						||
| 
								 | 
							
								        LocationName.PreXemnas1SecretAnsemReport11,
							 | 
						||
| 
								 | 
							
								        LocationName.RuinandCreationsPassageMythrilStone,
							 | 
						||
| 
								 | 
							
								        LocationName.RuinandCreationsPassageAPBoost,
							 | 
						||
| 
								 | 
							
								        LocationName.RuinandCreationsPassageMythrilCrystal,
							 | 
						||
| 
								 | 
							
								        LocationName.RuinandCreationsPassageOrichalcum,
							 | 
						||
| 
								 | 
							
								        LocationName.Xemnas1,
							 | 
						||
| 
								 | 
							
								        LocationName.Xemnas1GetBonus,
							 | 
						||
| 
								 | 
							
								        LocationName.Xemnas1SecretAnsemReport13,
							 | 
						||
| 
								 | 
							
								        LocationName.FinalXemnas,
							 | 
						||
| 
								 | 
							
								        LocationName.XemnasDataPowerBoost,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    twtnw2_region = create_region(world, player, active_locations, RegionName.Twtnw2_Region,
							 | 
						||
| 
								 | 
							
								                                  twtnw2_region_locations)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    valor_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.Valorlvl2,
							 | 
						||
| 
								 | 
							
								        LocationName.Valorlvl3,
							 | 
						||
| 
								 | 
							
								        LocationName.Valorlvl4,
							 | 
						||
| 
								 | 
							
								        LocationName.Valorlvl5,
							 | 
						||
| 
								 | 
							
								        LocationName.Valorlvl6,
							 | 
						||
| 
								 | 
							
								        LocationName.Valorlvl7,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    valor_region = create_region(world, player, active_locations, RegionName.Valor_Region,
							 | 
						||
| 
								 | 
							
								                                 valor_region_locations)
							 | 
						||
| 
								 | 
							
								    wisdom_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.Wisdomlvl2,
							 | 
						||
| 
								 | 
							
								        LocationName.Wisdomlvl3,
							 | 
						||
| 
								 | 
							
								        LocationName.Wisdomlvl4,
							 | 
						||
| 
								 | 
							
								        LocationName.Wisdomlvl5,
							 | 
						||
| 
								 | 
							
								        LocationName.Wisdomlvl6,
							 | 
						||
| 
								 | 
							
								        LocationName.Wisdomlvl7,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    wisdom_region = create_region(world, player, active_locations, RegionName.Wisdom_Region,
							 | 
						||
| 
								 | 
							
								                                  wisdom_region_locations)
							 | 
						||
| 
								 | 
							
								    limit_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.Limitlvl2,
							 | 
						||
| 
								 | 
							
								        LocationName.Limitlvl3,
							 | 
						||
| 
								 | 
							
								        LocationName.Limitlvl4,
							 | 
						||
| 
								 | 
							
								        LocationName.Limitlvl5,
							 | 
						||
| 
								 | 
							
								        LocationName.Limitlvl6,
							 | 
						||
| 
								 | 
							
								        LocationName.Limitlvl7,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    limit_region = create_region(world, player, active_locations, RegionName.Limit_Region,
							 | 
						||
| 
								 | 
							
								                                 limit_region_locations)
							 | 
						||
| 
								 | 
							
								    master_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.Masterlvl2,
							 | 
						||
| 
								 | 
							
								        LocationName.Masterlvl3,
							 | 
						||
| 
								 | 
							
								        LocationName.Masterlvl4,
							 | 
						||
| 
								 | 
							
								        LocationName.Masterlvl5,
							 | 
						||
| 
								 | 
							
								        LocationName.Masterlvl6,
							 | 
						||
| 
								 | 
							
								        LocationName.Masterlvl7,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    master_region = create_region(world, player, active_locations, RegionName.Master_Region,
							 | 
						||
| 
								 | 
							
								                                  master_region_locations)
							 | 
						||
| 
								 | 
							
								    final_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.Finallvl2,
							 | 
						||
| 
								 | 
							
								        LocationName.Finallvl3,
							 | 
						||
| 
								 | 
							
								        LocationName.Finallvl4,
							 | 
						||
| 
								 | 
							
								        LocationName.Finallvl5,
							 | 
						||
| 
								 | 
							
								        LocationName.Finallvl6,
							 | 
						||
| 
								 | 
							
								        LocationName.Finallvl7,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    final_region = create_region(world, player, active_locations, RegionName.Final_Region,
							 | 
						||
| 
								 | 
							
								                                 final_region_locations)
							 | 
						||
| 
								 | 
							
								    keyblade_region_locations = [
							 | 
						||
| 
								 | 
							
								        LocationName.FAKESlot,
							 | 
						||
| 
								 | 
							
								        LocationName.DetectionSaberSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.EdgeofUltimaSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.KingdomKeySlot,
							 | 
						||
| 
								 | 
							
								        LocationName.OathkeeperSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.OblivionSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.StarSeekerSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.HiddenDragonSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.HerosCrestSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.MonochromeSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.FollowtheWindSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.CircleofLifeSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.PhotonDebuggerSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.GullWingSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.RumblingRoseSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.GuardianSoulSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.WishingLampSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.DecisivePumpkinSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.SweetMemoriesSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.MysteriousAbyssSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.SleepingLionSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.BondofFlameSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.TwoBecomeOneSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.FatalCrestSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.FenrirSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.UltimaWeaponSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.WinnersProofSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.PurebloodSlot,
							 | 
						||
| 
								 | 
							
								        LocationName.Centurion2,
							 | 
						||
| 
								 | 
							
								        LocationName.CometStaff,
							 | 
						||
| 
								 | 
							
								        LocationName.HammerStaff,
							 | 
						||
| 
								 | 
							
								        LocationName.LordsBroom,
							 | 
						||
| 
								 | 
							
								        LocationName.MagesStaff,
							 | 
						||
| 
								 | 
							
								        LocationName.MeteorStaff,
							 | 
						||
| 
								 | 
							
								        LocationName.NobodyLance,
							 | 
						||
| 
								 | 
							
								        LocationName.PreciousMushroom,
							 | 
						||
| 
								 | 
							
								        LocationName.PreciousMushroom2,
							 | 
						||
| 
								 | 
							
								        LocationName.PremiumMushroom,
							 | 
						||
| 
								 | 
							
								        LocationName.RisingDragon,
							 | 
						||
| 
								 | 
							
								        LocationName.SaveTheQueen2,
							 | 
						||
| 
								 | 
							
								        LocationName.ShamansRelic,
							 | 
						||
| 
								 | 
							
								        LocationName.VictoryBell,
							 | 
						||
| 
								 | 
							
								        LocationName.WisdomWand,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        LocationName.AdamantShield,
							 | 
						||
| 
								 | 
							
								        LocationName.AkashicRecord,
							 | 
						||
| 
								 | 
							
								        LocationName.ChainGear,
							 | 
						||
| 
								 | 
							
								        LocationName.DreamCloud,
							 | 
						||
| 
								 | 
							
								        LocationName.FallingStar,
							 | 
						||
| 
								 | 
							
								        LocationName.FrozenPride2,
							 | 
						||
| 
								 | 
							
								        LocationName.GenjiShield,
							 | 
						||
| 
								 | 
							
								        LocationName.KnightDefender,
							 | 
						||
| 
								 | 
							
								        LocationName.KnightsShield,
							 | 
						||
| 
								 | 
							
								        LocationName.MajesticMushroom,
							 | 
						||
| 
								 | 
							
								        LocationName.MajesticMushroom2,
							 | 
						||
| 
								 | 
							
								        LocationName.NobodyGuard,
							 | 
						||
| 
								 | 
							
								        LocationName.OgreShield,
							 | 
						||
| 
								 | 
							
								        LocationName.SaveTheKing2,
							 | 
						||
| 
								 | 
							
								        LocationName.UltimateMushroom,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    keyblade_region = create_region(world, player, active_locations, RegionName.Keyblade_Region,
							 | 
						||
| 
								 | 
							
								                                    keyblade_region_locations)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    world.regions += [
							 | 
						||
| 
								 | 
							
								        lod_Region,
							 | 
						||
| 
								 | 
							
								        lod2_Region,
							 | 
						||
| 
								 | 
							
								        ag_region,
							 | 
						||
| 
								 | 
							
								        ag2_region,
							 | 
						||
| 
								 | 
							
								        lexaeus_region,
							 | 
						||
| 
								 | 
							
								        dc_region,
							 | 
						||
| 
								 | 
							
								        tr_region,
							 | 
						||
| 
								 | 
							
								        terra_region,
							 | 
						||
| 
								 | 
							
								        marluxia_region,
							 | 
						||
| 
								 | 
							
								        hundred_acre1_region,
							 | 
						||
| 
								 | 
							
								        hundred_acre2_region,
							 | 
						||
| 
								 | 
							
								        hundred_acre3_region,
							 | 
						||
| 
								 | 
							
								        hundred_acre4_region,
							 | 
						||
| 
								 | 
							
								        hundred_acre5_region,
							 | 
						||
| 
								 | 
							
								        hundred_acre6_region,
							 | 
						||
| 
								 | 
							
								        pr_region,
							 | 
						||
| 
								 | 
							
								        pr2_region,
							 | 
						||
| 
								 | 
							
								        gr2_region,
							 | 
						||
| 
								 | 
							
								        oc_region,
							 | 
						||
| 
								 | 
							
								        oc2_region,
							 | 
						||
| 
								 | 
							
								        oc2_pain_and_panic_cup,
							 | 
						||
| 
								 | 
							
								        oc2_titan_cup,
							 | 
						||
| 
								 | 
							
								        oc2_cerberus_cup,
							 | 
						||
| 
								 | 
							
								        oc2_gof_cup,
							 | 
						||
| 
								 | 
							
								        zexion_region,
							 | 
						||
| 
								 | 
							
								        bc_region,
							 | 
						||
| 
								 | 
							
								        bc2_region,
							 | 
						||
| 
								 | 
							
								        xaldin_region,
							 | 
						||
| 
								 | 
							
								        sp_region,
							 | 
						||
| 
								 | 
							
								        sp2_region,
							 | 
						||
| 
								 | 
							
								        mcp_region,
							 | 
						||
| 
								 | 
							
								        larxene_region,
							 | 
						||
| 
								 | 
							
								        ht_region,
							 | 
						||
| 
								 | 
							
								        ht2_region,
							 | 
						||
| 
								 | 
							
								        vexen_region,
							 | 
						||
| 
								 | 
							
								        hb_region,
							 | 
						||
| 
								 | 
							
								        hb2_region,
							 | 
						||
| 
								 | 
							
								        onek_region,
							 | 
						||
| 
								 | 
							
								        mushroom_region,
							 | 
						||
| 
								 | 
							
								        sephi_region,
							 | 
						||
| 
								 | 
							
								        cor_region,
							 | 
						||
| 
								 | 
							
								        transport_region,
							 | 
						||
| 
								 | 
							
								        pl_region,
							 | 
						||
| 
								 | 
							
								        pl2_region,
							 | 
						||
| 
								 | 
							
								        stt_region,
							 | 
						||
| 
								 | 
							
								        tt_region,
							 | 
						||
| 
								 | 
							
								        tt2_region,
							 | 
						||
| 
								 | 
							
								        tt3_region,
							 | 
						||
| 
								 | 
							
								        twtnw_region,
							 | 
						||
| 
								 | 
							
								        twtnw_postroxas_region,
							 | 
						||
| 
								 | 
							
								        twtnw_postxigbar_region,
							 | 
						||
| 
								 | 
							
								        twtnw2_region,
							 | 
						||
| 
								 | 
							
								        goa_region,
							 | 
						||
| 
								 | 
							
								        menu_region,
							 | 
						||
| 
								 | 
							
								        valor_region,
							 | 
						||
| 
								 | 
							
								        wisdom_region,
							 | 
						||
| 
								 | 
							
								        limit_region,
							 | 
						||
| 
								 | 
							
								        master_region,
							 | 
						||
| 
								 | 
							
								        final_region,
							 | 
						||
| 
								 | 
							
								        keyblade_region,
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								    # Level region depends on level depth.
							 | 
						||
| 
								 | 
							
								    # for every 5 levels there should be +3 visit locking
							 | 
						||
| 
								 | 
							
								    levelVL1 = []
							 | 
						||
| 
								 | 
							
								    levelVL3 = []
							 | 
						||
| 
								 | 
							
								    levelVL6 = []
							 | 
						||
| 
								 | 
							
								    levelVL9 = []
							 | 
						||
| 
								 | 
							
								    levelVL12 = []
							 | 
						||
| 
								 | 
							
								    levelVL15 = []
							 | 
						||
| 
								 | 
							
								    levelVL18 = []
							 | 
						||
| 
								 | 
							
								    levelVL21 = []
							 | 
						||
| 
								 | 
							
								    levelVL24 = []
							 | 
						||
| 
								 | 
							
								    levelVL26 = []
							 | 
						||
| 
								 | 
							
								    # level 50
							 | 
						||
| 
								 | 
							
								    if world.LevelDepth[player] == "level_50":
							 | 
						||
| 
								 | 
							
								        levelVL1 = [LocationName.Lvl2, LocationName.Lvl4, LocationName.Lvl7, LocationName.Lvl9, LocationName.Lvl10]
							 | 
						||
| 
								 | 
							
								        levelVL3 = [LocationName.Lvl12, LocationName.Lvl14, LocationName.Lvl15, LocationName.Lvl17,
							 | 
						||
| 
								 | 
							
								                    LocationName.Lvl20, ]
							 | 
						||
| 
								 | 
							
								        levelVL6 = [LocationName.Lvl23, LocationName.Lvl25, LocationName.Lvl28, LocationName.Lvl30]
							 | 
						||
| 
								 | 
							
								        levelVL9 = [LocationName.Lvl32, LocationName.Lvl34, LocationName.Lvl36, LocationName.Lvl39, LocationName.Lvl41]
							 | 
						||
| 
								 | 
							
								        levelVL12 = [LocationName.Lvl44, LocationName.Lvl46, LocationName.Lvl48]
							 | 
						||
| 
								 | 
							
								        levelVL15 = [LocationName.Lvl50]
							 | 
						||
| 
								 | 
							
								    # level 99
							 | 
						||
| 
								 | 
							
								    elif world.LevelDepth[player] == "level_99":
							 | 
						||
| 
								 | 
							
								        levelVL1 = [LocationName.Lvl7, LocationName.Lvl9, ]
							 | 
						||
| 
								 | 
							
								        levelVL3 = [LocationName.Lvl12, LocationName.Lvl15, LocationName.Lvl17, LocationName.Lvl20]
							 | 
						||
| 
								 | 
							
								        levelVL6 = [LocationName.Lvl23, LocationName.Lvl25, LocationName.Lvl28]
							 | 
						||
| 
								 | 
							
								        levelVL9 = [LocationName.Lvl31, LocationName.Lvl33, LocationName.Lvl36, LocationName.Lvl39]
							 | 
						||
| 
								 | 
							
								        levelVL12 = [LocationName.Lvl41, LocationName.Lvl44, LocationName.Lvl47, LocationName.Lvl49]
							 | 
						||
| 
								 | 
							
								        levelVL15 = [LocationName.Lvl53, LocationName.Lvl59]
							 | 
						||
| 
								 | 
							
								        levelVL18 = [LocationName.Lvl65]
							 | 
						||
| 
								 | 
							
								        levelVL21 = [LocationName.Lvl73]
							 | 
						||
| 
								 | 
							
								        levelVL24 = [LocationName.Lvl85]
							 | 
						||
| 
								 | 
							
								        levelVL26 = [LocationName.Lvl99]
							 | 
						||
| 
								 | 
							
								    # level sanity
							 | 
						||
| 
								 | 
							
								    # has to be [] instead of {} for in
							 | 
						||
| 
								 | 
							
								    elif world.LevelDepth[player] in ["level_50_sanity", "level_99_sanity"]:
							 | 
						||
| 
								 | 
							
								        levelVL1 = [LocationName.Lvl2, LocationName.Lvl3, LocationName.Lvl4, LocationName.Lvl5, LocationName.Lvl6,
							 | 
						||
| 
								 | 
							
								                    LocationName.Lvl7, LocationName.Lvl8, LocationName.Lvl9, LocationName.Lvl10]
							 | 
						||
| 
								 | 
							
								        levelVL3 = [LocationName.Lvl11, LocationName.Lvl12, LocationName.Lvl13, LocationName.Lvl14, LocationName.Lvl15,
							 | 
						||
| 
								 | 
							
								                    LocationName.Lvl16, LocationName.Lvl17, LocationName.Lvl18, LocationName.Lvl19, LocationName.Lvl20]
							 | 
						||
| 
								 | 
							
								        levelVL6 = [LocationName.Lvl21, LocationName.Lvl22, LocationName.Lvl23, LocationName.Lvl24, LocationName.Lvl25,
							 | 
						||
| 
								 | 
							
								                    LocationName.Lvl26, LocationName.Lvl27, LocationName.Lvl28, LocationName.Lvl29, LocationName.Lvl30]
							 | 
						||
| 
								 | 
							
								        levelVL9 = [LocationName.Lvl31, LocationName.Lvl32, LocationName.Lvl33, LocationName.Lvl34, LocationName.Lvl35,
							 | 
						||
| 
								 | 
							
								                    LocationName.Lvl36, LocationName.Lvl37, LocationName.Lvl38, LocationName.Lvl39, LocationName.Lvl40]
							 | 
						||
| 
								 | 
							
								        levelVL12 = [LocationName.Lvl41, LocationName.Lvl42, LocationName.Lvl43, LocationName.Lvl44, LocationName.Lvl45,
							 | 
						||
| 
								 | 
							
								                     LocationName.Lvl46, LocationName.Lvl47, LocationName.Lvl48, LocationName.Lvl49, LocationName.Lvl50]
							 | 
						||
| 
								 | 
							
								        # level 99 sanity
							 | 
						||
| 
								 | 
							
								        if world.LevelDepth[player] == "level_99_sanity":
							 | 
						||
| 
								 | 
							
								            levelVL15 = [LocationName.Lvl51, LocationName.Lvl52, LocationName.Lvl53, LocationName.Lvl54,
							 | 
						||
| 
								 | 
							
								                         LocationName.Lvl55, LocationName.Lvl56, LocationName.Lvl57, LocationName.Lvl58,
							 | 
						||
| 
								 | 
							
								                         LocationName.Lvl59, LocationName.Lvl60]
							 | 
						||
| 
								 | 
							
								            levelVL18 = [LocationName.Lvl61, LocationName.Lvl62, LocationName.Lvl63, LocationName.Lvl64,
							 | 
						||
| 
								 | 
							
								                         LocationName.Lvl65, LocationName.Lvl66, LocationName.Lvl67, LocationName.Lvl68,
							 | 
						||
| 
								 | 
							
								                         LocationName.Lvl69, LocationName.Lvl70]
							 | 
						||
| 
								 | 
							
								            levelVL21 = [LocationName.Lvl71, LocationName.Lvl72, LocationName.Lvl73, LocationName.Lvl74,
							 | 
						||
| 
								 | 
							
								                         LocationName.Lvl75, LocationName.Lvl76, LocationName.Lvl77, LocationName.Lvl78,
							 | 
						||
| 
								 | 
							
								                         LocationName.Lvl79, LocationName.Lvl80]
							 | 
						||
| 
								 | 
							
								            levelVL24 = [LocationName.Lvl81, LocationName.Lvl82, LocationName.Lvl83, LocationName.Lvl84,
							 | 
						||
| 
								 | 
							
								                         LocationName.Lvl85, LocationName.Lvl86, LocationName.Lvl87, LocationName.Lvl88,
							 | 
						||
| 
								 | 
							
								                         LocationName.Lvl89, LocationName.Lvl90]
							 | 
						||
| 
								 | 
							
								            levelVL26 = [LocationName.Lvl91, LocationName.Lvl92, LocationName.Lvl93, LocationName.Lvl94,
							 | 
						||
| 
								 | 
							
								                         LocationName.Lvl95, LocationName.Lvl96, LocationName.Lvl97, LocationName.Lvl98,
							 | 
						||
| 
								 | 
							
								                         LocationName.Lvl99]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    level_regionVL1 = create_region(world, player, active_locations, RegionName.LevelsVS1,
							 | 
						||
| 
								 | 
							
								                                    levelVL1)
							 | 
						||
| 
								 | 
							
								    level_regionVL3 = create_region(world, player, active_locations, RegionName.LevelsVS3,
							 | 
						||
| 
								 | 
							
								                                    levelVL3)
							 | 
						||
| 
								 | 
							
								    level_regionVL6 = create_region(world, player, active_locations, RegionName.LevelsVS6,
							 | 
						||
| 
								 | 
							
								                                    levelVL6)
							 | 
						||
| 
								 | 
							
								    level_regionVL9 = create_region(world, player, active_locations, RegionName.LevelsVS9,
							 | 
						||
| 
								 | 
							
								                                    levelVL9)
							 | 
						||
| 
								 | 
							
								    level_regionVL12 = create_region(world, player, active_locations, RegionName.LevelsVS12,
							 | 
						||
| 
								 | 
							
								                                     levelVL12)
							 | 
						||
| 
								 | 
							
								    level_regionVL15 = create_region(world, player, active_locations, RegionName.LevelsVS15,
							 | 
						||
| 
								 | 
							
								                                     levelVL15)
							 | 
						||
| 
								 | 
							
								    level_regionVL18 = create_region(world, player, active_locations, RegionName.LevelsVS18,
							 | 
						||
| 
								 | 
							
								                                     levelVL18)
							 | 
						||
| 
								 | 
							
								    level_regionVL21 = create_region(world, player, active_locations, RegionName.LevelsVS21,
							 | 
						||
| 
								 | 
							
								                                     levelVL21)
							 | 
						||
| 
								 | 
							
								    level_regionVL24 = create_region(world, player, active_locations, RegionName.LevelsVS24,
							 | 
						||
| 
								 | 
							
								                                     levelVL24)
							 | 
						||
| 
								 | 
							
								    level_regionVL26 = create_region(world, player, active_locations, RegionName.LevelsVS26,
							 | 
						||
| 
								 | 
							
								                                     levelVL26)
							 | 
						||
| 
								 | 
							
								    world.regions += [level_regionVL1, level_regionVL3, level_regionVL6, level_regionVL9, level_regionVL12,
							 | 
						||
| 
								 | 
							
								                      level_regionVL15, level_regionVL18, level_regionVL21, level_regionVL24, level_regionVL26]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def connect_regions(world: MultiWorld, player: int):
							 | 
						||
| 
								 | 
							
								    # connecting every first visit to the GoA
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    names: typing.Dict[str, int] = {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, "Menu", RegionName.Keyblade_Region)
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, "Menu", RegionName.GoA_Region)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.LoD_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_lod_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.LoD_Region, RegionName.LoD2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_lod_unlocked(player, 2))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.Oc_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_oc_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Oc_Region, RegionName.Oc2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_oc_unlocked(player, 2))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Oc2_Region, RegionName.Zexion_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_datazexion(player))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Oc2_Region, RegionName.Oc2_pain_and_panic_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_painandpanic(player))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Oc2_Region, RegionName.Oc2_cerberus_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_cerberuscup(player))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Oc2_Region, RegionName.Oc2_titan_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_titan(player))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Oc2_Region, RegionName.Oc2_gof_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_gof(player))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.Ag_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_ag_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Ag_Region, RegionName.Ag2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_ag_unlocked(player, 2)
							 | 
						||
| 
								 | 
							
								                          and (state.has(ItemName.FireElement, player)
							 | 
						||
| 
								 | 
							
								                               and state.has(ItemName.BlizzardElement, player)
							 | 
						||
| 
								 | 
							
								                               and state.has(ItemName.ThunderElement, player)))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Ag2_Region, RegionName.Lexaeus_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_datalexaeus(player))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.Dc_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_dc_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Dc_Region, RegionName.Tr_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_dc_unlocked(player, 2))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Tr_Region, RegionName.Marluxia_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_datamarluxia(player))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Tr_Region, RegionName.Terra_Region, lambda state: state.kh_terra(player))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.Pr_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_pr_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Pr_Region, RegionName.Pr2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_pr_unlocked(player, 2))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Pr2_Region, RegionName.Gr2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_gr2(player))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.Bc_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_bc_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Bc_Region, RegionName.Bc2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_bc_unlocked(player, 2))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Bc2_Region, RegionName.Xaldin_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_xaldin(player))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.Sp_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_sp_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Sp_Region, RegionName.Sp2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_sp_unlocked(player, 2))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Sp2_Region, RegionName.Mcp_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_mcp(player))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Mcp_Region, RegionName.Larxene_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_datalarxene(player))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.Ht_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_ht_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Ht_Region, RegionName.Ht2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_ht_unlocked(player, 2))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Ht2_Region, RegionName.Vexen_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_datavexen(player))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.Hb_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_hb_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Hb_Region, RegionName.Hb2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_hb_unlocked(player, 2))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Hb2_Region, RegionName.ThousandHeartless_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_onek(player))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.ThousandHeartless_Region, RegionName.Mushroom13_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.has(ItemName.ProofofPeace, player))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.ThousandHeartless_Region, RegionName.Sephi_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_sephi(player))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Hb2_Region, RegionName.CoR_Region, lambda state: state.kh_cor(player))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.CoR_Region, RegionName.Transport_Region, lambda state:
							 | 
						||
| 
								 | 
							
								    state.has(ItemName.HighJump, player, 3)
							 | 
						||
| 
								 | 
							
								    and state.has(ItemName.AerialDodge, player, 3)
							 | 
						||
| 
								 | 
							
								    and state.has(ItemName.Glide, player, 3))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.Pl_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_pl_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Pl_Region, RegionName.Pl2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_pl_unlocked(player, 2) and (
							 | 
						||
| 
								 | 
							
								                    state.has(ItemName.BerserkCharge, player) or state.kh_reflect(player)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.STT_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_stt_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.TT_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_tt_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.TT_Region, RegionName.TT2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_tt_unlocked(player, 2))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.TT2_Region, RegionName.TT3_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_tt_unlocked(player, 3))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.Twtnw_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_twtnw_unlocked(player, 0))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Twtnw_Region, RegionName.Twtnw_PostRoxas,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_roxastools(player))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Twtnw_PostRoxas, RegionName.Twtnw_PostXigbar,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_basetools(player) and (state.kh_donaldlimit(player) or (
							 | 
						||
| 
								 | 
							
								                    state.has(ItemName.FinalForm, player) and state.has(ItemName.FireElement, player))))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.Twtnw_PostRoxas, RegionName.Twtnw2_Region,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_twtnw_unlocked(player, 1))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    hundredacrevisits = {RegionName.HundredAcre1_Region: 0, RegionName.HundredAcre2_Region: 1,
							 | 
						||
| 
								 | 
							
								                         RegionName.HundredAcre3_Region: 2,
							 | 
						||
| 
								 | 
							
								                         RegionName.HundredAcre4_Region: 3, RegionName.HundredAcre5_Region: 4,
							 | 
						||
| 
								 | 
							
								                         RegionName.HundredAcre6_Region: 5}
							 | 
						||
| 
								 | 
							
								    for visit, tornpage in hundredacrevisits.items():
							 | 
						||
| 
								 | 
							
								        connect(world, player, names, RegionName.GoA_Region, visit,
							 | 
						||
| 
								 | 
							
								                lambda state: (state.has(ItemName.TornPages, player, tornpage)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.GoA_Region, RegionName.LevelsVS1,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_visit_locking_amount(player, 1))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.LevelsVS1, RegionName.LevelsVS3,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_visit_locking_amount(player, 3))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.LevelsVS3, RegionName.LevelsVS6,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_visit_locking_amount(player, 6))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.LevelsVS6, RegionName.LevelsVS9,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_visit_locking_amount(player, 9))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.LevelsVS9, RegionName.LevelsVS12,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_visit_locking_amount(player, 12))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.LevelsVS12, RegionName.LevelsVS15,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_visit_locking_amount(player, 15))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.LevelsVS15, RegionName.LevelsVS18,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_visit_locking_amount(player, 18))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.LevelsVS18, RegionName.LevelsVS21,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_visit_locking_amount(player, 21))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.LevelsVS21, RegionName.LevelsVS24,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_visit_locking_amount(player, 24))
							 | 
						||
| 
								 | 
							
								    connect(world, player, names, RegionName.LevelsVS24, RegionName.LevelsVS26,
							 | 
						||
| 
								 | 
							
								            lambda state: state.kh_visit_locking_amount(player, 25))  # 25 because of goa twtnw bugs with visit locking.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    for region in RegionTable["ValorRegion"]:
							 | 
						||
| 
								 | 
							
								        connect(world, player, names, region, RegionName.Valor_Region,
							 | 
						||
| 
								 | 
							
								                lambda state: state.has(ItemName.ValorForm, player))
							 | 
						||
| 
								 | 
							
								    for region in RegionTable["WisdomRegion"]:
							 | 
						||
| 
								 | 
							
								        connect(world, player, names, region, RegionName.Wisdom_Region,
							 | 
						||
| 
								 | 
							
								                lambda state: state.has(ItemName.WisdomForm, player))
							 | 
						||
| 
								 | 
							
								    for region in RegionTable["LimitRegion"]:
							 | 
						||
| 
								 | 
							
								        connect(world, player, names, region, RegionName.Limit_Region,
							 | 
						||
| 
								 | 
							
								                lambda state: state.has(ItemName.LimitForm, player))
							 | 
						||
| 
								 | 
							
								    for region in RegionTable["MasterRegion"]:
							 | 
						||
| 
								 | 
							
								        connect(world, player, names, region, RegionName.Master_Region,
							 | 
						||
| 
								 | 
							
								                lambda state: state.has(ItemName.MasterForm, player) and state.has(ItemName.DriveConverter, player))
							 | 
						||
| 
								 | 
							
								    for region in RegionTable["FinalRegion"]:
							 | 
						||
| 
								 | 
							
								        connect(world, player, names, region, RegionName.Final_Region,
							 | 
						||
| 
								 | 
							
								                lambda state: state.has(ItemName.FinalForm, player))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# shamelessly stolen from the sa2b
							 | 
						||
| 
								 | 
							
								def connect(world: MultiWorld, player: int, used_names: typing.Dict[str, int], source: str, target: str,
							 | 
						||
| 
								 | 
							
								            rule: typing.Optional[typing.Callable] = None):
							 | 
						||
| 
								 | 
							
								    source_region = world.get_region(source, player)
							 | 
						||
| 
								 | 
							
								    target_region = world.get_region(target, player)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if target not in used_names:
							 | 
						||
| 
								 | 
							
								        used_names[target] = 1
							 | 
						||
| 
								 | 
							
								        name = target
							 | 
						||
| 
								 | 
							
								    else:
							 | 
						||
| 
								 | 
							
								        used_names[target] += 1
							 | 
						||
| 
								 | 
							
								        name = target + (' ' * used_names[target])
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    connection = Entrance(player, name, source_region)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if rule:
							 | 
						||
| 
								 | 
							
								        connection.access_rule = rule
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    source_region.exits.append(connection)
							 | 
						||
| 
								 | 
							
								    connection.connect(target_region)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def create_region(world: MultiWorld, player: int, active_locations, name: str, locations=None):
							 | 
						||
| 
								 | 
							
								    ret = Region(name, player, world)
							 | 
						||
| 
								 | 
							
								    if locations:
							 | 
						||
| 
								 | 
							
								        for location in locations:
							 | 
						||
| 
								 | 
							
								            loc_id = active_locations.get(location, 0)
							 | 
						||
| 
								 | 
							
								            if loc_id:
							 | 
						||
| 
								 | 
							
								                location = KH2Location(player, location, loc_id.code, ret)
							 | 
						||
| 
								 | 
							
								                ret.locations.append(location)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return ret
							 |