From c599c5d83a406e9d745e672d17ce7b0529d32503 Mon Sep 17 00:00:00 2001 From: MichaelK-UnderscoreUnderscore <56115236+MichaelK-UnderscoreUnderscore@users.noreply.github.com> Date: Thu, 21 Nov 2019 22:38:45 +0100 Subject: [PATCH 01/19] Swordless Fix - Fire-Source for Ganon (#743) * Smith and Purple Chest Logic update Was Missing Brackets putting them in logic with just mirror or mitts * more brackets * Adding Brackets Added Missing Brackets * Zora's Ledge Brackets wrong * Blacksmith Saw this in Purp Chest last time but overlooked it in Blacksmith * Library Doing the Brackets. Also removing the && from the end and putting it on the next line * Ice Palace Entry More Missing Brackets * Adding Fire Source Requirement to Ganon Ganon Didn't needed a fire Source when using Swordless according to Logic. * how did i even screw that up? oops --- app/Region/Inverted/LightWorld/NorthEast.php | 5 ++++- app/Region/Standard/DarkWorld/NorthEast.php | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/Region/Inverted/LightWorld/NorthEast.php b/app/Region/Inverted/LightWorld/NorthEast.php index 3a8687fd6..ba7eed4fe 100644 --- a/app/Region/Inverted/LightWorld/NorthEast.php +++ b/app/Region/Inverted/LightWorld/NorthEast.php @@ -180,7 +180,10 @@ public function initalize() && (!$this->world->config('region.requireBetterBow', false) || $items->canShootArrows(2)) && ( ($this->world->config('mode.weapons') == 'swordless' - && $items->has('Hammer')) || (!$this->world->config('region.requireBetterSword', false) + && $items->has('Hammer') && ($items->has('Lamp') + || ($items->has('FireRod') && ($items->canExtendMagic(1) + && $items->has('MoonPearl')) || $items->canExtendMagic(4)))) + || (!$this->world->config('region.requireBetterSword', false) && ($items->hasSword(2) && ($items->has('Lamp') || ($items->has('FireRod') diff --git a/app/Region/Standard/DarkWorld/NorthEast.php b/app/Region/Standard/DarkWorld/NorthEast.php index a684d5781..7dae31995 100644 --- a/app/Region/Standard/DarkWorld/NorthEast.php +++ b/app/Region/Standard/DarkWorld/NorthEast.php @@ -218,7 +218,9 @@ public function initalize() && ($items->has('DefeatAgahnim2') || $this->world->config('goal') === 'fast_ganon') && (!$this->world->config('region.requireBetterBow', false) || $items->canShootArrows(2)) && ( - ($this->world->config('mode.weapons') == 'swordless' && $items->has('Hammer')) + ($this->world->config('mode.weapons') == 'swordless' && $items->has('Hammer') + && ($items->has('Lamp') || ( + $items->has('FireRod') && $items->canExtendMagic(1)))) || (!$this->world->config('region.requireBetterSword', false) && ($items->hasSword(2) && ($items->has('Lamp') || ($items->has('FireRod') && $items->canExtendMagic(3))))) || ($items->hasSword(3) && ($items->has('Lamp') || ($items->has('FireRod') && $items->canExtendMagic(2))))); }); From 9201737a159dd58e938cdcca8a10fb3c9b0f99ec Mon Sep 17 00:00:00 2001 From: MichaelK-UnderscoreUnderscore <56115236+MichaelK-UnderscoreUnderscore@users.noreply.github.com> Date: Thu, 21 Nov 2019 22:39:08 +0100 Subject: [PATCH 02/19] Fixing a bunch of small stuff (#744) * Some Reported Small Bugs Fix Type in Standard EDM Remove Sword from Spinspeed Entry to GT (only need Hookshot, while Sword won't make this clip possible on it's own) * Fixing Can Entry for DW WDM Changed Locations, were it makes sense, to use that canEnter instead of West Death Mountain for Clarification * Hylia Island Brackets misstake overwrote the Flippers Requirement with the Linkstate access. --- app/Region/Inverted/LightWorld/South.php | 8 ++++---- app/Region/Standard/DarkWorld/DeathMountain/West.php | 9 ++++----- app/Region/Standard/GanonsTower.php | 4 ++-- app/Region/Standard/LightWorld/DeathMountain/East.php | 2 +- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/app/Region/Inverted/LightWorld/South.php b/app/Region/Inverted/LightWorld/South.php index 4efb429d9..bcc3521f5 100644 --- a/app/Region/Inverted/LightWorld/South.php +++ b/app/Region/Inverted/LightWorld/South.php @@ -213,14 +213,14 @@ public function initalize() }); $this->locations["Lake Hylia Island"]->setRequirements(function ($locations, $items) { - return ($items->has('MoonPearl') + return (($items->has('MoonPearl') || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) - && $items->hasABottle()) && ($items->has('Flippers') + && $items->hasABottle())) && ($items->has('Flippers') || ($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) || ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed()))) || - $this->world->config('canOneFrameClipOW', false); + && $items->canSpinSpeed()))) + || $this->world->config('canOneFrameClipOW', false); }); $this->locations["Sunken Treasure"]->setRequirements(function ($locations, $items) { diff --git a/app/Region/Standard/DarkWorld/DeathMountain/West.php b/app/Region/Standard/DarkWorld/DeathMountain/West.php index e5b84c3e4..71726ef5f 100644 --- a/app/Region/Standard/DarkWorld/DeathMountain/West.php +++ b/app/Region/Standard/DarkWorld/DeathMountain/West.php @@ -46,16 +46,14 @@ public function __construct(World $world) public function initalize() { $this->shops["Dark Death Mountain Fairy"]->setRequirements(function ($locations, $items) { - return $this->world->getRegion('West Death Mountain')->canEnter($locations, $items) - && $items->has('MoonPearl') + return $items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasABottle() && (($items->has('PegasusBoots') && $this->world->config('canBootsClip', false)) || $this->world->config('canOneFrameClipOW', false))); }); $this->locations["Spike Cave"]->setRequirements(function ($locations, $items) { - return $this->world->getRegion('West Death Mountain')->canEnter($locations, $items) - && ($items->has('MoonPearl') + return ($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasABottle() && (($items->has('PegasusBoots') && $this->world->config('canBootsClip', false)) || $this->world->config('canOneFrameClipOW', false)) @@ -68,7 +66,8 @@ public function initalize() }); $this->can_enter = function ($locations, $items) { - return $items->has('RescueZelda'); + return ($items->has('RescueZelda') + && $this->world->getRegion('West Death Mountain')->canEnter($locations, $items)); }; return $this; diff --git a/app/Region/Standard/GanonsTower.php b/app/Region/Standard/GanonsTower.php index 15e82a193..0c4f03eb4 100644 --- a/app/Region/Standard/GanonsTower.php +++ b/app/Region/Standard/GanonsTower.php @@ -407,8 +407,8 @@ public function initalize() && $this->world->getRegion('East Dark World Death Mountain')->canEnter($locations, $items)) || ((($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) || ($this->world->config('canSuperSpeed', false) && $items->has('PegasusBoots') - && $items->has('Hookshot') && $items->hasSword())) - && $this->world->getRegion('West Death Mountain')->canEnter($locations, $items)))) + && $items->has('Hookshot'))) + && $this->world->getRegion('West Dark World Death Mountain')->canEnter($locations, $items)))) || ($this->world->config('canOneFrameClipOW', false) && ($this->world->config('canDungeonRevive', false) || $items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasBottle())))); diff --git a/app/Region/Standard/LightWorld/DeathMountain/East.php b/app/Region/Standard/LightWorld/DeathMountain/East.php index f4a15210f..9b4d12eae 100644 --- a/app/Region/Standard/LightWorld/DeathMountain/East.php +++ b/app/Region/Standard/LightWorld/DeathMountain/East.php @@ -90,7 +90,7 @@ public function initalize() return $items->has('RescueZelda') && ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) - || ($this->world->config('capSuperSpeed', false) && $items->canSpinSpeed()) + || ($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed()) || (((($this->world->config('canMirrorClip', false) || $this->world->config('canMirrorWrap', false)) && $items->has('MagicMirror')) || $items->has('Hookshot')) && $this->world->getRegion('West Death Mountain')->canEnter($locations, $items)) From a6b8957f74f80830e36a8fc9a1d3b894b5aeede2 Mon Sep 17 00:00:00 2001 From: MichaelK-UnderscoreUnderscore <56115236+MichaelK-UnderscoreUnderscore@users.noreply.github.com> Date: Thu, 21 Nov 2019 22:41:26 +0100 Subject: [PATCH 03/19] Progressive Bows with Retro (#737) * Make Progressive Bow work with Retro Progressive Bow broke Retro Logic by overwriting the need for the ShopArrow. Fixed that. * Changing Tabs to Spaces The important stuff * Add $world to canShootArrows Give $world variable with every canShootArrows. $world variable is used to skip shoparrow check in games without rupee bow (aka Retro or customizer with that setting) * Added UnitTest for Retro Bow working Basically checking if you can shoot Arrows in Retro where Bow is Hardrequired. * Cutting out useless stuff Stuff I had copied and wouldn't need... * Added Parameters to the Doc Block Added the new Parameters to the Doc Block Added an old Parameter that wasn't in before --- app/Boss.php | 18 ++-- app/Region/Inverted/DarkWorld/NorthEast.php | 2 +- app/Region/Inverted/EasternPalace.php | 2 +- app/Region/Inverted/GanonsTower.php | 8 +- app/Region/Inverted/HyruleCastleTower.php | 2 +- app/Region/Inverted/LightWorld/NorthEast.php | 2 +- app/Region/Inverted/MiseryMire.php | 2 +- app/Region/Standard/DarkWorld/NorthEast.php | 4 +- app/Region/Standard/EasternPalace.php | 2 +- app/Region/Standard/GanonsTower.php | 8 +- app/Region/Standard/HyruleCastleEscape.php | 18 ++-- app/Region/Standard/HyruleCastleTower.php | 2 +- app/Region/Standard/MiseryMire.php | 2 +- app/Region/Standard/PalaceOfDarkness.php | 28 +++---- app/Support/ItemCollection.php | 22 +++-- tests/RetroBowTest.php | 88 ++++++++++++++++++++ 16 files changed, 153 insertions(+), 57 deletions(-) create mode 100644 tests/RetroBowTest.php diff --git a/app/Boss.php b/app/Boss.php index 4f9e6ddf0..79a60c2ba 100644 --- a/app/Boss.php +++ b/app/Boss.php @@ -66,15 +66,15 @@ public static function all(World $world): BossCollection static::$worlds[$world->id] = $world; static::$items[$world->id] = new BossCollection([ - new static("Armos Knights", "Armos", function ($locations, $items) { - return $items->hasSword() || $items->has('Hammer') || $items->canShootArrows() + new static("Armos Knights", "Armos", function ($locations, $items) use ($world) { + return $items->hasSword() || $items->has('Hammer') || $items->canShootArrows($world) || $items->has('Boomerang') || $items->has('RedBoomerang') || ($items->canExtendMagic(4) && ($items->has('FireRod') || $items->has('IceRod'))) || ($items->canExtendMagic(2) && ($items->has('CaneOfByrna') || $items->has('CaneOfSomaria'))); }), - new static("Lanmolas", "Lanmola", function ($locations, $items) { + new static("Lanmolas", "Lanmola", function ($locations, $items) use ($world) { return $items->hasSword() || $items->has('Hammer') - || $items->canShootArrows() || $items->has('FireRod') || $items->has('IceRod') + || $items->canShootArrows($world) || $items->has('FireRod') || $items->has('IceRod') || $items->has('CaneOfByrna') || $items->has('CaneOfSomaria'); }), new static("Moldorm", "Moldorm", function ($locations, $items) { @@ -83,14 +83,14 @@ public static function all(World $world): BossCollection new static("Agahnim", "Agahnim", function ($locations, $items) { return $items->hasSword() || $items->has('Hammer') || $items->has('BugCatchingNet'); }), - new static("Helmasaur King", "Helmasaur", function ($locations, $items) { + new static("Helmasaur King", "Helmasaur", function ($locations, $items) use ($world) { return ($items->canBombThings() || $items->has('Hammer')) - && ($items->hasSword(2) || $items->canShootArrows()); + && ($items->hasSword(2) || $items->canShootArrows($world)); }), new static("Arrghus", "Arrghus", function ($locations, $items) use ($world) { return ($world->config('itemPlacement') !== 'basic' || $world->config('mode.weapons') === 'swordless' || $items->hasSword(2)) && $items->has('Hookshot') && ($items->has('Hammer') || $items->hasSword() - || (($items->canExtendMagic(2) || $items->canShootArrows()) && ($items->has('FireRod') || $items->has('IceRod')))); + || (($items->canExtendMagic(2) || $items->canShootArrows($world)) && ($items->has('FireRod') || $items->has('IceRod')))); }), new static("Mothula", "Mothula", function ($locations, $items) use ($world) { return ($world->config('itemPlacement') !== 'basic' || $items->hasSword(2) || ($items->canExtendMagic(2) && $items->has('FireRod'))) @@ -112,8 +112,8 @@ public static function all(World $world): BossCollection || ($items->canExtendMagic(2) && $items->has('FireRod') && $items->has('Bombos') && $world->config('mode.weapons') === 'swordless')); }), new static("Vitreous", "Vitreous", function ($locations, $items) use ($world) { - return ($world->config('itemPlacement') !== 'basic' || $items->hasSword(2) || $items->canShootArrows()) - && ($items->has('Hammer') || $items->hasSword() || $items->canShootArrows()); + return ($world->config('itemPlacement') !== 'basic' || $items->hasSword(2) || $items->canShootArrows($world)) + && ($items->has('Hammer') || $items->hasSword() || $items->canShootArrows($world)); }), new static("Trinexx", "Trinexx", function ($locations, $items) use ($world) { return $items->has('FireRod') && $items->has('IceRod') diff --git a/app/Region/Inverted/DarkWorld/NorthEast.php b/app/Region/Inverted/DarkWorld/NorthEast.php index fbb8ea831..88eece589 100644 --- a/app/Region/Inverted/DarkWorld/NorthEast.php +++ b/app/Region/Inverted/DarkWorld/NorthEast.php @@ -63,7 +63,7 @@ public function initalize() }); $this->locations["Pyramid Fairy - Bow"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows() + return $items->canShootArrows($this->world) && $items->has('BigRedBomb') && $items->has('MagicMirror'); }); diff --git a/app/Region/Inverted/EasternPalace.php b/app/Region/Inverted/EasternPalace.php index fb6dfd242..65013560d 100644 --- a/app/Region/Inverted/EasternPalace.php +++ b/app/Region/Inverted/EasternPalace.php @@ -50,7 +50,7 @@ public function initalize() }); $this->locations["Eastern Palace - Boss"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows() + return $items->canShootArrows($this->world) && ($this->world->config('canDungeonRevive', false) || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) diff --git a/app/Region/Inverted/GanonsTower.php b/app/Region/Inverted/GanonsTower.php index e324d0dc1..648baa8aa 100644 --- a/app/Region/Inverted/GanonsTower.php +++ b/app/Region/Inverted/GanonsTower.php @@ -361,7 +361,7 @@ public function initalize() }); $this->locations["Ganon's Tower - Mini Helmasaur Room - Left"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows() + return $items->canShootArrows($this->world) && $items->canLightTorches() && $items->has('BigKeyA2') && $items->has('KeyA2', 3) @@ -379,7 +379,7 @@ public function initalize() }); $this->locations["Ganon's Tower - Mini Helmasaur Room - Right"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows() + return $items->canShootArrows($this->world) && $items->canLightTorches() && $items->has('BigKeyA2') && $items->has('KeyA2', 3) @@ -397,7 +397,7 @@ public function initalize() }); $this->locations["Ganon's Tower - Pre-Moldorm Chest"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows() + return $items->canShootArrows($this->world) && $items->canLightTorches() && $items->has('BigKeyA2') && $items->has('KeyA2', 3) @@ -416,7 +416,7 @@ public function initalize() $this->locations["Ganon's Tower - Moldorm Chest"]->setRequirements(function ($locations, $items) { return $items->has('Hookshot') - && $items->canShootArrows() + && $items->canShootArrows($this->world) && $items->canLightTorches() && $items->has('BigKeyA2') && $items->has('KeyA2', 4) diff --git a/app/Region/Inverted/HyruleCastleTower.php b/app/Region/Inverted/HyruleCastleTower.php index cf6a12fdf..0d76ee5da 100644 --- a/app/Region/Inverted/HyruleCastleTower.php +++ b/app/Region/Inverted/HyruleCastleTower.php @@ -20,7 +20,7 @@ public function initalize() parent::initalize(); $this->can_enter = function ($locations, $items) { - return $items->canKillMostThings(8) + return $items->canKillMostThings($this->world, 8) && $this->world->getRegion('West Dark World Death Mountain')->canEnter($locations, $items); }; diff --git a/app/Region/Inverted/LightWorld/NorthEast.php b/app/Region/Inverted/LightWorld/NorthEast.php index ba7eed4fe..1d2d94b75 100644 --- a/app/Region/Inverted/LightWorld/NorthEast.php +++ b/app/Region/Inverted/LightWorld/NorthEast.php @@ -178,7 +178,7 @@ public function initalize() )) && ($items->has('DefeatAgahnim2') || $this->world->config('goal') === 'fast_ganon') && (!$this->world->config('region.requireBetterBow', false) - || $items->canShootArrows(2)) && ( + || $items->canShootArrows($this->world, 2)) && ( ($this->world->config('mode.weapons') == 'swordless' && $items->has('Hammer') && ($items->has('Lamp') || ($items->has('FireRod') && ($items->canExtendMagic(1) diff --git a/app/Region/Inverted/MiseryMire.php b/app/Region/Inverted/MiseryMire.php index b69398b94..4631fd1d4 100644 --- a/app/Region/Inverted/MiseryMire.php +++ b/app/Region/Inverted/MiseryMire.php @@ -34,7 +34,7 @@ public function initalize() && $items->has('Quake'))) && ($this->world->config('mode.weapons') == 'swordless' || $items->hasSword()) && ($items->has('PegasusBoots') || $items->has('Hookshot')) - && $items->canKillMostThings(8) + && $items->canKillMostThings($this->world, 8) && $this->world->getRegion('Mire')->canEnter($locations, $items); }; diff --git a/app/Region/Standard/DarkWorld/NorthEast.php b/app/Region/Standard/DarkWorld/NorthEast.php index 7dae31995..8670422d8 100644 --- a/app/Region/Standard/DarkWorld/NorthEast.php +++ b/app/Region/Standard/DarkWorld/NorthEast.php @@ -114,7 +114,7 @@ public function initalize() }); $this->locations["Pyramid Fairy - Bow"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows() + return $items->canShootArrows($this->world) && (($items->has('Crystal5') && $items->has('Crystal6') && $this->world->getRegion('South Dark World')->canEnter($locations, $items) && (($items->has('MoonPearl') && $items->has('Hammer')) @@ -216,7 +216,7 @@ public function initalize() return $items->has('MoonPearl') && ($items->has('DefeatAgahnim2') || $this->world->config('goal') === 'fast_ganon') - && (!$this->world->config('region.requireBetterBow', false) || $items->canShootArrows(2)) + && (!$this->world->config('region.requireBetterBow', false) || $items->canShootArrows($this->world, 2)) && ( ($this->world->config('mode.weapons') == 'swordless' && $items->has('Hammer') && ($items->has('Lamp') || ( diff --git a/app/Region/Standard/EasternPalace.php b/app/Region/Standard/EasternPalace.php index abe756de3..7964d1562 100644 --- a/app/Region/Standard/EasternPalace.php +++ b/app/Region/Standard/EasternPalace.php @@ -81,7 +81,7 @@ public function initalize() }; $this->locations["Eastern Palace - Boss"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows() + return $items->canShootArrows($this->world) && ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) || ($this->world->config('itemPlacement') === 'advanced' && $items->has('FireRod'))) && $items->has('BigKeyP1') diff --git a/app/Region/Standard/GanonsTower.php b/app/Region/Standard/GanonsTower.php index 0c4f03eb4..1ad8674b8 100644 --- a/app/Region/Standard/GanonsTower.php +++ b/app/Region/Standard/GanonsTower.php @@ -351,7 +351,7 @@ public function initalize() }); $this->locations["Ganon's Tower - Mini Helmasaur Room - Left"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows() && $items->canLightTorches() + return $items->canShootArrows($this->world) && $items->canLightTorches() && $items->has('BigKeyA2') && $items->has('KeyA2', 3) && $this->boss_middle->canBeat($items, $locations); })->setFillRules(function ($item, $locations, $items) { @@ -359,7 +359,7 @@ public function initalize() }); $this->locations["Ganon's Tower - Mini Helmasaur Room - Right"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows() && $items->canLightTorches() + return $items->canShootArrows($this->world) && $items->canLightTorches() && $items->has('BigKeyA2') && $items->has('KeyA2', 3) && $this->boss_middle->canBeat($items, $locations); })->setFillRules(function ($item, $locations, $items) { @@ -367,7 +367,7 @@ public function initalize() }); $this->locations["Ganon's Tower - Pre-Moldorm Chest"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows() && $items->canLightTorches() + return $items->canShootArrows($this->world) && $items->canLightTorches() && $items->has('BigKeyA2') && $items->has('KeyA2', 3) && $this->boss_middle->canBeat($items, $locations); })->setFillRules(function ($item, $locations, $items) { @@ -376,7 +376,7 @@ public function initalize() $this->locations["Ganon's Tower - Moldorm Chest"]->setRequirements(function ($locations, $items) { return $items->has('Hookshot') - && $items->canShootArrows() && $items->canLightTorches() + && $items->canShootArrows($this->world) && $items->canLightTorches() && $items->has('BigKeyA2') && $items->has('KeyA2', 4) && $this->boss_middle->canBeat($items, $locations) && $this->boss_top->canBeat($items, $locations); diff --git a/app/Region/Standard/HyruleCastleEscape.php b/app/Region/Standard/HyruleCastleEscape.php index 630940b28..6a398387a 100644 --- a/app/Region/Standard/HyruleCastleEscape.php +++ b/app/Region/Standard/HyruleCastleEscape.php @@ -65,39 +65,39 @@ public function __construct(World $world) public function initalize() { $this->locations["Sanctuary"]->setRequirements(function ($locations, $items) { - return $items->canKillEscapeThings() && $items->has('KeyH2'); + return $items->canKillEscapeThings($this->world) && $items->has('KeyH2'); }); $this->locations["Sewers - Secret Room - Left"]->setRequirements(function ($locations, $items) { - return $items->canKillEscapeThings() && $items->has('KeyH2'); + return $items->canKillEscapeThings($this->world) && $items->has('KeyH2'); }); $this->locations["Sewers - Secret Room - Middle"]->setRequirements(function ($locations, $items) { - return $items->canKillEscapeThings() && $items->has('KeyH2'); + return $items->canKillEscapeThings($this->world) && $items->has('KeyH2'); }); $this->locations["Sewers - Secret Room - Right"]->setRequirements(function ($locations, $items) { - return $items->canKillEscapeThings() && $items->has('KeyH2'); + return $items->canKillEscapeThings($this->world) && $items->has('KeyH2'); }); $this->locations["Sewers - Dark Cross"]->setRequirements(function ($locations, $items) { - return $items->canKillEscapeThings(); + return $items->canKillEscapeThings($this->world); }); $this->locations["Hyrule Castle - Boomerang Chest"]->setRequirements(function ($locations, $items) { - return $items->canKillEscapeThings(); + return $items->canKillEscapeThings($this->world); }); $this->locations["Hyrule Castle - Map Chest"]->setRequirements(function ($locations, $items) { - return $items->canKillEscapeThings(); + return $items->canKillEscapeThings($this->world); }); $this->locations["Hyrule Castle - Zelda's Cell"]->setRequirements(function ($locations, $items) { - return $items->canKillEscapeThings(); + return $items->canKillEscapeThings($this->world); }); $this->locations["Secret Passage"]->setRequirements(function ($locations, $items) { - return $items->canKillEscapeThings(); + return $items->canKillEscapeThings($this->world); })->setFillRules(function ($item, $locations, $items) { return !((!$this->world->config('region.wildKeys', false) && $item instanceof Item\Key) || (!$this->world->config('region.wildBigKeys', false) && $item instanceof Item\BigKey) diff --git a/app/Region/Standard/HyruleCastleTower.php b/app/Region/Standard/HyruleCastleTower.php index 4e71e211c..e13ef6713 100644 --- a/app/Region/Standard/HyruleCastleTower.php +++ b/app/Region/Standard/HyruleCastleTower.php @@ -68,7 +68,7 @@ public function initalize() $this->prize_location->setRequirements($this->can_complete); $this->can_enter = function ($locations, $items) { - return $items->canKillMostThings(8) + return $items->canKillMostThings($this->world, 8) && $items->has('RescueZelda') && ($items->has('Cape') || $items->hasSword(2) diff --git a/app/Region/Standard/MiseryMire.php b/app/Region/Standard/MiseryMire.php index 345c91e25..8db283291 100644 --- a/app/Region/Standard/MiseryMire.php +++ b/app/Region/Standard/MiseryMire.php @@ -144,7 +144,7 @@ public function initalize() || $items->hasBottle(2)))))) && (($this->world->config('itemPlacement') !== 'basic' && $items->has('PegasusBoots')) || $items->has('Hookshot')) - && $items->canKillMostThings(8) + && $items->canKillMostThings($this->world, 8) && $this->world->getRegion('Mire')->canEnter($locations, $items); }; diff --git a/app/Region/Standard/PalaceOfDarkness.php b/app/Region/Standard/PalaceOfDarkness.php index 3836c3bdd..5266b4090 100644 --- a/app/Region/Standard/PalaceOfDarkness.php +++ b/app/Region/Standard/PalaceOfDarkness.php @@ -76,7 +76,7 @@ public function __construct(World $world) public function initalize() { $this->locations["Palace of Darkness - The Arena - Ledge"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows(); + return $items->canShootArrows($this->world); }); $this->locations["Palace of Darkness - Big Key Chest"]->setRequirements(function ($locations, $items) { @@ -84,7 +84,7 @@ public function initalize() return $items->has('KeyD1'); } - return ((($items->has('Hammer') && $items->canShootArrows() && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 6) : $items->has('KeyD1', 5)); + return ((($items->has('Hammer') && $items->canShootArrows($this->world) && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 6) : $items->has('KeyD1', 5)); })->setAlwaysAllow(function ($item, $items) { return $this->world->config('accessibility') !== 'locations' && $item == Item::get('KeyD1', $this->world) && $items->has('KeyD1', 5); })->setFillRules(function ($item, $locations, $items) { @@ -93,26 +93,26 @@ public function initalize() $this->locations["Palace of Darkness - The Arena - Bridge"]->setRequirements(function ($locations, $items) { return $items->has('KeyD1') - || ($items->canShootArrows() && $items->has('Hammer')); + || ($items->canShootArrows($this->world) && $items->has('Hammer')); }); $this->locations["Palace of Darkness - Big Chest"]->setRequirements(function ($locations, $items) { return $items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && $items->has('BigKeyD1') - && ((($items->has('Hammer') && $items->canShootArrows()) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 6) : $items->has('KeyD1', 5)); + && ((($items->has('Hammer') && $items->canShootArrows($this->world)) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 6) : $items->has('KeyD1', 5)); })->setFillRules(function ($item, $locations, $items) { return $item != Item::get('KeyD1', $this->world); }); $this->locations["Palace of Darkness - Compass Chest"]->setRequirements(function ($locations, $items) { - return (($items->has('Hammer') && $items->canShootArrows() && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 4) : $items->has('KeyD1', 3); + return (($items->has('Hammer') && $items->canShootArrows($this->world) && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 4) : $items->has('KeyD1', 3); }); $this->locations["Palace of Darkness - Harmless Hellway"]->setRequirements(function ($locations, $items) { if ($locations["Palace of Darkness - Harmless Hellway"]->hasItem(Item::get('KeyD1', $this->world))) { - return (($items->has('Hammer') && $items->canShootArrows() && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 4) : $items->has('KeyD1', 3); + return (($items->has('Hammer') && $items->canShootArrows($this->world) && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 4) : $items->has('KeyD1', 3); } - return ((($items->has('Hammer') && $items->canShootArrows() && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 6) : $items->has('KeyD1', 5)); + return ((($items->has('Hammer') && $items->canShootArrows($this->world) && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 6) : $items->has('KeyD1', 5)); })->setAlwaysAllow(function ($item, $items) { return $this->world->config('accessibility') !== 'locations' && $item == Item::get('KeyD1', $this->world) && $items->has('KeyD1', 5); })->setFillRules(function ($item, $locations, $items) { @@ -121,33 +121,33 @@ public function initalize() $this->locations["Palace of Darkness - Stalfos Basement"]->setRequirements(function ($locations, $items) { return $items->has('KeyD1') - || ($items->canShootArrows() && $items->has('Hammer')); + || ($items->canShootArrows($this->world) && $items->has('Hammer')); }); $this->locations["Palace of Darkness - Dark Basement - Left"]->setRequirements(function ($locations, $items) { return ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) || ($this->world->config('itemPlacement') === 'advanced' && $items->has('FireRod'))) - && ((($items->has('Hammer') && $items->canShootArrows() && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 4) : $items->has('KeyD1', 3)); + && ((($items->has('Hammer') && $items->canShootArrows($this->world) && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 4) : $items->has('KeyD1', 3)); }); $this->locations["Palace of Darkness - Dark Basement - Right"]->setRequirements(function ($locations, $items) { return ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) || ($this->world->config('itemPlacement') === 'advanced' && $items->has('FireRod'))) - && ((($items->has('Hammer') && $items->canShootArrows() && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 4) : $items->has('KeyD1', 3)); + && ((($items->has('Hammer') && $items->canShootArrows($this->world) && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 4) : $items->has('KeyD1', 3)); }); $this->locations["Palace of Darkness - Map Chest"]->setRequirements(function ($locations, $items) { - return $items->canShootArrows(); + return $items->canShootArrows($this->world); }); $this->locations["Palace of Darkness - Dark Maze - Top"]->setRequirements(function ($locations, $items) { - return $items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && ((($items->has('Hammer') && $items->canShootArrows()) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 6) : $items->has('KeyD1', 5)); + return $items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && ((($items->has('Hammer') && $items->canShootArrows($this->world)) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 6) : $items->has('KeyD1', 5)); })->setFillRules(function ($item, $locations, $items) { return $item != Item::get('KeyD1', $this->world); }); $this->locations["Palace of Darkness - Dark Maze - Bottom"]->setRequirements(function ($locations, $items) { - return $items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && ((($items->has('Hammer') && $items->canShootArrows()) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 6) : $items->has('KeyD1', 5)); + return $items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && ((($items->has('Hammer') && $items->canShootArrows($this->world)) || $this->world->config('region.wildKeys', false)) ? $items->has('KeyD1', 6) : $items->has('KeyD1', 5)); })->setFillRules(function ($item, $locations, $items) { return $item != Item::get('KeyD1', $this->world); }); @@ -159,7 +159,7 @@ public function initalize() $this->locations["Palace of Darkness - Boss"]->setRequirements(function ($locations, $items) { return $this->canEnter($locations, $items) && $this->boss->canBeat($items, $locations) - && $items->has('Hammer') && $items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && $items->canShootArrows() + && $items->has('Hammer') && $items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && $items->canShootArrows($this->world) && $items->has('BigKeyD1') && $items->has('KeyD1', 6) && (!$this->world->config('region.wildCompasses', false) || $items->has('CompassD1') || $this->locations["Palace of Darkness - Boss"]->hasItem(Item::get('CompassD1', $this->world))) && (!$this->world->config('region.wildMaps', false) || $items->has('MapD1') || $this->locations["Palace of Darkness - Boss"]->hasItem(Item::get('MapD1', $this->world))); diff --git a/app/Support/ItemCollection.php b/app/Support/ItemCollection.php index bef615905..04775d17c 100644 --- a/app/Support/ItemCollection.php +++ b/app/Support/ItemCollection.php @@ -450,11 +450,12 @@ public function canBunnyRevive(): bool /** * Requirements for lobbing arrows at things * + * @param \ALttP\World $world world to check items against * @param int $min_level minimum level of bow * * @return bool */ - public function canShootArrows(int $min_level = 1) + public function canShootArrows(World $world, int $min_level = 1) { switch ($min_level) { case 2: @@ -464,8 +465,10 @@ public function canShootArrows(int $min_level = 1) && ($this->has('Bow') || $this->has('BowAndArrows'))); case 1: default: - return ($this->has('Bow') && ($this->has('ShopArrow') || $this->has('SilverArrowUpgrade'))) - || $this->has('ProgressiveBow') + return (($this->has('Bow') || $this->has('ProgressiveBow')) + && (!$world->config('rom.rupeeBow', false) + || $this->has('ShopArrow') || $this->has('SilverArrowUpgrade'))) + || $this->has('ProgressiveBow', 2) || $this->has('BowAndArrows') || $this->has('BowAndSilverArrows'); } @@ -525,15 +528,17 @@ public function hasHealth(float $minimum): bool /** * Requirements for killing most things * + * @param \ALttP\World $world world to check items against + * * @return bool */ - public function canKillEscapeThings() + public function canKillEscapeThings(World $world) { return $this->has('UncleSword') || $this->has('CaneOfSomaria') || $this->has('TenBombs') || $this->has('CaneOfByrna') - || $this->canShootArrows() + || $this->canShootArrows($world) || $this->has('Hammer') || $this->has('FireRod'); } @@ -541,15 +546,18 @@ public function canKillEscapeThings() /** * Requirements for killing most things * + * @param \ALttP\World $world world to check items against + * @param mixed $enemies Amount of Damage Enemies need to be beaten + * * @return bool */ - public function canKillMostThings($enemies = 5) + public function canKillMostThings(World $world, $enemies = 5) { return $this->hasSword() || $this->has('CaneOfSomaria') || ($this->has('TenBombs') && $enemies < 6) || ($this->has('CaneOfByrna') && ($enemies < 6 || $this->canExtendMagic())) - || $this->canShootArrows() + || $this->canShootArrows($world) || $this->has('Hammer') || $this->has('FireRod'); } diff --git a/tests/RetroBowTest.php b/tests/RetroBowTest.php new file mode 100644 index 000000000..73b3627dd --- /dev/null +++ b/tests/RetroBowTest.php @@ -0,0 +1,88 @@ +world = World::factory('retro', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda', 'Lamp', 'BigKeyP1', 'MoonPearl', + 'UncleSword', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'FireRod', + 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7', + 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', + 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'BigKeyA2']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Eastern Palace - Boss", false, ['ProgressiveBow']], + ["Eastern Palace - Boss", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Eastern Palace - Boss", true, ['ProgressiveBow', 'ShopArrow']], + + ["Palace of Darkness - Boss", false, ['ProgressiveBow']], + ["Palace of Darkness - Boss", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Palace of Darkness - Boss", true, ['ProgressiveBow', 'ShopArrow']], + + ["Palace of Darkness - The Arena - Ledge", false, ['ProgressiveBow']], + ["Palace of Darkness - The Arena - Ledge", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Palace of Darkness - The Arena - Ledge", true, ['ProgressiveBow', 'ShopArrow']], + + ["Palace of Darkness - Map Chest", false, ['ProgressiveBow']], + ["Palace of Darkness - Map Chest", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Palace of Darkness - Map Chest", true, ['ProgressiveBow', 'ShopArrow']], + + ["Ganon's Tower - Mini Helmasaur Room - Left", false, ['ProgressiveBow']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['ProgressiveBow', 'ShopArrow']], + + ["Ganon's Tower - Mini Helmasaur Room - Right", false, ['ProgressiveBow']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['ProgressiveBow', 'ShopArrow']], + + ["Ganon's Tower - Pre-Moldorm Chest", false, ['ProgressiveBow']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['ProgressiveBow', 'ShopArrow']], + + ["Ganon's Tower - Moldorm Chest", false, ['ProgressiveBow']], + ["Ganon's Tower - Moldorm Chest", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Moldorm Chest", true, ['ProgressiveBow', 'ShopArrow']], + ]; + } +} From 8fd13a2be837f67e024d3408565573062211a2fe Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sun, 24 Nov 2019 21:18:34 -0600 Subject: [PATCH 04/19] Add a chance of a daily games being a mystery (#748) * Add a 5% chance of the daily game being a mystery. Add a message to VTRomInfo.vue informing the player that it is a mystery game. Translated in FR, DE, and ES. This is setup in a way where we could eventually have spoiler dailies, however it is not turned on at this time. Generate is weighted at 0 because it won't work at this time and instead just behave like spoilers were on. * We don't need the $spoilers variable --- app/Http/Controllers/CustomizerController.php | 2 ++ app/Http/Controllers/RandomizerController.php | 2 ++ config/alttp.php | 12 ++++++++ resources/js/components/VTRomInfo.vue | 4 +++ resources/js/vue-i18n-locales.generated.js | 4 +++ resources/lang/de/rom.php | 1 + resources/lang/en/rom.php | 1 + resources/lang/es/rom.php | 1 + resources/lang/fr/rom.php | 1 + routes/console.php | 28 ++++++++++++++++++- 10 files changed, 55 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/CustomizerController.php b/app/Http/Controllers/CustomizerController.php index dfceac9d5..3528853b2 100644 --- a/app/Http/Controllers/CustomizerController.php +++ b/app/Http/Controllers/CustomizerController.php @@ -46,6 +46,8 @@ public function generateSeed(Request $request) case "mystery": $return_payload['spoiler'] = array_only($return_payload['spoiler'], ['meta']); $return_payload['spoiler']['meta'] = array_only($return_payload['spoiler']['meta'], [ + 'name', + 'notes', 'logic', 'build', 'tournament', diff --git a/app/Http/Controllers/RandomizerController.php b/app/Http/Controllers/RandomizerController.php index 4f68d4e8f..c3dc2386e 100644 --- a/app/Http/Controllers/RandomizerController.php +++ b/app/Http/Controllers/RandomizerController.php @@ -42,6 +42,8 @@ public function generateSeed(CreateRandomizedGame $request) case "mystery": $return_payload['spoiler'] = array_only($return_payload['spoiler'], ['meta']); $return_payload['spoiler']['meta'] = array_only($return_payload['spoiler']['meta'], [ + 'name', + 'notes', 'logic', 'build', 'tournament', diff --git a/config/alttp.php b/config/alttp.php index 6aeac298b..13d4a1676 100644 --- a/config/alttp.php +++ b/config/alttp.php @@ -264,6 +264,12 @@ 'hard' => 'Hard', 'expert' => 'Expert', ], + 'spoilers' => [ + 'on' => 'On', + 'off' => 'Off', + 'generate' => 'Generate', + 'mystery' => 'Mystery', + ], ], 'daily_weights' => [ 'glitches_required' => [ @@ -372,6 +378,12 @@ 'hard' => 5, 'expert' => 1, ], + 'spoilers' => [ + 'on' => 0, + 'off' => 95, + 'generate' => 0, + 'mystery' => 5 + ] ], ], ]; diff --git a/resources/js/components/VTRomInfo.vue b/resources/js/components/VTRomInfo.vue index c3f02f8f7..93aae9426 100644 --- a/resources/js/components/VTRomInfo.vue +++ b/resources/js/components/VTRomInfo.vue @@ -4,6 +4,7 @@ v-if="rom.spoiler.meta.spoilers_ongen==true || rom.spoilers=='generate'" class="spoiler-warning" >{{ $t('rom.info.spoilerwarning') }} +
{{ $t('rom.info.mystery') }}
{{ $t('rom.info.logic') }}: {{ rom.logic }}
{{ $t('rom.info.build') }}: {{ rom.build }}
@@ -62,4 +63,7 @@ export default { color: red; font-weight: bold; } +.mystery { + font-weight: bold; +} diff --git a/resources/js/vue-i18n-locales.generated.js b/resources/js/vue-i18n-locales.generated.js index 30624d152..8a542f0d6 100644 --- a/resources/js/vue-i18n-locales.generated.js +++ b/resources/js/vue-i18n-locales.generated.js @@ -634,6 +634,7 @@ export default { }, "info": { "spoilerwarning": "WARNUNG: Der Ersteller dieses Spiel hat den Spoiler Log angesehen.", + "mystery": "Dies ist ein geheimnissvolles Spiel. Die Einstellungen sind unbekannt und müssen beim Spielen herausgefunden werden!", "logic": "Vorausgesetzte Glitches", "accessibility": "Zugänglichkeit", "build": "ROM build", @@ -1339,6 +1340,7 @@ export default { }, "info": { "spoilerwarning": "WARNING: The generator of this game viewed the spoiler log.", + "mystery": "This is a mystery game. The settings must be discovered while you play!", "logic": "Glitches Required", "accessibility": "Accessibility", "build": "ROM build", @@ -2265,6 +2267,7 @@ export default { }, "info": { "spoilerwarning": "ADVERTENCIA: El generador de este juego ha visto el registro de spoiler.", + "mystery": "Este es un juego de misterios. Debes descubrir las configuraciones mientras lo juegas!", "logic": "Glitches Requeridos", "accessibility": "Accesibilidad", "build": "Build de la ROM", @@ -2946,6 +2949,7 @@ export default { }, "info": { "spoilerwarning": "AVERTISSEMENT : La personne qui a généré cette partie a regardé le spoiler log.", + "mystery": "Ceci est une partie mystère. Les paramètres seront à découvrir pendant que vous jouez!", "logic": "Glitchs requis", "accessibility": "Accessibilité", "build": "Création de ROM", diff --git a/resources/lang/de/rom.php b/resources/lang/de/rom.php index b116d1fc2..af7bbdb5b 100644 --- a/resources/lang/de/rom.php +++ b/resources/lang/de/rom.php @@ -12,6 +12,7 @@ ], 'info' => [ 'spoilerwarning' => 'WARNUNG: Der Ersteller dieses Spiel hat den Spoiler Log angesehen.', + 'mystery' => 'Dies ist ein geheimnissvolles Spiel. Die Einstellungen sind unbekannt und müssen beim Spielen herausgefunden werden!', 'logic' => __('randomizer.glitches_required.title'), 'accessibility' => __('randomizer.accessibility.title'), 'build' => 'ROM build', diff --git a/resources/lang/en/rom.php b/resources/lang/en/rom.php index dc95570a8..b1b34a945 100644 --- a/resources/lang/en/rom.php +++ b/resources/lang/en/rom.php @@ -12,6 +12,7 @@ ], 'info' => [ 'spoilerwarning' => 'WARNING: The generator of this game viewed the spoiler log.', + 'mystery' => 'This is a mystery game. The settings must be discovered while you play!', 'logic' => __('randomizer.glitches_required.title'), 'accessibility' => __('randomizer.accessibility.title'), 'build' => 'ROM build', diff --git a/resources/lang/es/rom.php b/resources/lang/es/rom.php index 141634a44..346af086a 100644 --- a/resources/lang/es/rom.php +++ b/resources/lang/es/rom.php @@ -12,6 +12,7 @@ ], 'info' => [ 'spoilerwarning' => 'ADVERTENCIA: El generador de este juego ha visto el registro de spoiler.', + 'mystery' => 'Este es un juego de misterios. Debes descubrir las configuraciones mientras lo juegas!', 'logic' => __('randomizer.glitches_required.title'), 'accessibility' => __('randomizer.accessibility.title'), 'build' => 'Build de la ROM', diff --git a/resources/lang/fr/rom.php b/resources/lang/fr/rom.php index dfffe63be..9e0b78315 100644 --- a/resources/lang/fr/rom.php +++ b/resources/lang/fr/rom.php @@ -12,6 +12,7 @@ ], 'info' => [ 'spoilerwarning' => 'AVERTISSEMENT : La personne qui a généré cette partie a regardé le spoiler log.', + 'mystery' => 'Ceci est une partie mystère. Les paramètres seront à découvrir pendant que vous jouez!', 'logic' => __('randomizer.glitches_required.title'), 'accessibility' => __('randomizer.accessibility.title'), 'build' => 'Création de ROM', diff --git a/routes/console.php b/routes/console.php index f397c518f..ace3d1244 100644 --- a/routes/console.php +++ b/routes/console.php @@ -52,6 +52,7 @@ function getWeighted(string $category): string 'mode.weapons' => getWeighted('weapons'), 'tournament' => true, 'spoil.Hints' => getWeighted('hints'), + 'spoilers' => getWeighted('spoilers'), 'logic' => $logic, 'item.pool' => getWeighted('item_pool'), 'item.functionality' => getWeighted('item_functionality'), @@ -88,9 +89,34 @@ function getWeighted(string $category): string 'entry_crystals_ganon' => $entry_crystals_ganon, 'entry_crystals_tower' => $entry_crystals_tower, 'worlds' => 1, - 'spoilers' => "off", ]); + switch ($spoiler['meta']['spoilers']) { + case "on": + case "generate": + $spoiler = array_except($spoiler, [ + 'spoiler.playthrough', + ]); + break; + case "mystery": + $spoiler = array_only($spoiler, ['meta']); + $spoiler['meta'] = array_only($spoiler['meta'], [ + 'name', + 'notes', + 'logic', + 'build', + 'tournament', + 'spoilers', + 'size' + ]); + break; + case "off": + default: + $spoiler = array_except(array_only($spoiler, [ + 'meta', + ]), ['meta.seed']); + } + if ($world->isEnemized()) { $en = new Enemizer($world, $patch); $en->randomize(); From 4d1d83d7340eec0d76c8eb084be7cb891a66a525 Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Mon, 25 Nov 2019 14:30:56 +1100 Subject: [PATCH 05/19] Fix Vanilla Pedestal Sword (#747) * Don't overflow silvers for swordless seeds. * Fix vanilla pedestal sword. * Add unit tests for Vanilla Swords. --- app/Randomizer.php | 2 +- tests/RandomizerTest.php | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/Randomizer.php b/app/Randomizer.php index 4caf20759..f307017c3 100644 --- a/app/Randomizer.php +++ b/app/Randomizer.php @@ -239,7 +239,7 @@ public function prepareWorld(World $world): void $world->getLocation($location)->setItem(array_pop($nice_items_swords)); } if (!$world->getLocation("Master Sword Pedestal")->hasItem(Item::get('Triforce', $world))) { - $world->getLocation($location)->setItem(array_pop($nice_items_swords)); + $world->getLocation("Master Sword Pedestal")->setItem(array_pop($nice_items_swords)); } else { array_pop($nice_items_swords); array_push($trash_items, Item::get('TwentyRupees', $world)); diff --git a/tests/RandomizerTest.php b/tests/RandomizerTest.php index f3484692d..6d1f1b666 100644 --- a/tests/RandomizerTest.php +++ b/tests/RandomizerTest.php @@ -122,4 +122,44 @@ public function testPendantsNotRandomizedByConfigCrossWorld() $this->world->getLocation("Tower of Hera - Prize")->getItem(), ]); } + + public function testVanillaSwordsSet() + { + $this->world = World::factory('standard', ['difficulty' => 'test_rules', 'accessibility' => 'full', 'mode.weapons' => 'vanilla']); + $this->randomizer = new Randomizer([$this->world]); + + $this->randomizer->prepareWorld($this->world); + + $this->assertEquals([ + Item::get('UncleSword', $this->world), + Item::get('Progressive Sword', $this->world), + Item::get('Progressive Sword', $this->world), + Item::get('Progressive Sword', $this->world), + ], [ + $this->world->getLocation("Link's Uncle")->getItem(), + $this->world->getLocation("Pyramid Fairy - Left")->getItem(), + $this->world->getLocation("Blacksmith")->getItem(), + $this->world->getLocation("Master Sword Pedestal")->getItem(), + ]); + } + + public function testVanillaSwordsSetWithPedestalGoal() + { + $this->world = World::factory('standard', ['difficulty' => 'test_rules', 'accessibility' => 'full', 'mode.weapons' => 'vanilla', 'goal' => 'pedestal']); + $this->randomizer = new Randomizer([$this->world]); + + $this->randomizer->prepareWorld($this->world); + + $this->assertEquals([ + Item::get('UncleSword', $this->world), + Item::get('Progressive Sword', $this->world), + Item::get('Progressive Sword', $this->world), + Item::get('Triforce', $this->world), + ], [ + $this->world->getLocation("Link's Uncle")->getItem(), + $this->world->getLocation("Pyramid Fairy - Left")->getItem(), + $this->world->getLocation("Blacksmith")->getItem(), + $this->world->getLocation("Master Sword Pedestal")->getItem(), + ]); + } } From ccee3e52ed7c939458a7806e1454a0ac89d9ad18 Mon Sep 17 00:00:00 2001 From: floresmatthew Date: Tue, 3 Dec 2019 23:12:47 -0500 Subject: [PATCH 06/19] Text suggestions from the community. (#746) * Capitalization * Uncle, Blind, and Hint additions. * Recommended changes to uncle's text. --- strings/blind.txt | 4 ++++ strings/ganon_1.txt | 2 +- strings/hint.txt | 4 ++++ strings/uncle.txt | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/strings/blind.txt b/strings/blind.txt index 8480f0fa7..11238a593 100644 --- a/strings/blind.txt +++ b/strings/blind.txt @@ -164,3 +164,7 @@ The Blinds Store is curtain death - +Dark Aga Rooms +are not a +bright idea. +- diff --git a/strings/ganon_1.txt b/strings/ganon_1.txt index 83786504c..fc50fc72b 100644 --- a/strings/ganon_1.txt +++ b/strings/ganon_1.txt @@ -233,7 +233,7 @@ Bacon dates to refers to the back of a pig. The average -american eats +American eats 18 pounds of Roman "petaso" every year. diff --git a/strings/hint.txt b/strings/hint.txt index 269c8bbd6..e96dbd902 100644 --- a/strings/hint.txt +++ b/strings/hint.txt @@ -132,3 +132,7 @@ Pugs are the superior dog breed. > - +You are +playing +ALTTPR. > +- diff --git a/strings/uncle.txt b/strings/uncle.txt index 7522d63d1..e8be3004a 100644 --- a/strings/uncle.txt +++ b/strings/uncle.txt @@ -174,3 +174,35 @@ Why did that soda have a skull on it? - +Something +random just +came up. +- +I'm bad at +this. Can you +do it for me? +- +Link! + Wake up! + ... Bye! +- +Text me when +you hit +go mode. +- +Turn off the +stove before +you leave. +- +It's raining. +I'm taking +the umbrella. +- +Count to 30. +Then come +find me. +- +Gonna shuffle +all the items +real quick. +- From df7ac89840f4643e8c0e6afa1e90cd229dd9dae9 Mon Sep 17 00:00:00 2001 From: MichaelK-UnderscoreUnderscore <56115236+MichaelK-UnderscoreUnderscore@users.noreply.github.com> Date: Wed, 4 Dec 2019 05:52:32 +0100 Subject: [PATCH 07/19] Silvers hint in Hard+ (#757) * Make Progressive Bow work with Retro Progressive Bow broke Retro Logic by overwriting the need for the ShopArrow. Fixed that. * Changing Tabs to Spaces The important stuff * Add $world to canShootArrows Give $world variable with every canShootArrows. $world variable is used to skip shoparrow check in games without rupee bow (aka Retro or customizer with that setting) * Added UnitTest for Retro Bow working Basically checking if you can shoot Arrows in Retro where Bow is Hardrequired. * Cutting out useless stuff Stuff I had copied and wouldn't need... * Added Parameters to the Doc Block Added the new Parameters to the Doc Block Added an old Parameter that wasn't in before * Removing Silvers Hint in Hard+ Removes the Silver hint if Progressive Bow gets caped at 1. Also Comments on Chat not giving Silvers in Crowd Control. * Silver Arrow GT Text Adds switch() for Progressive Bows in GT and changes the Text for them to "my Tower." (Readded Function) * set overflow for Bow to 2 before the item pool changes Forgot to add this. Overflow Count isn't already Pre-Set, so if all cases are skipped, it's essentially 0 and <2 always gives out true. --- app/Randomizer.php | 26 ++++++++++++++++++++++++-- app/World.php | 2 ++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/app/Randomizer.php b/app/Randomizer.php index f307017c3..cf7d0e447 100644 --- a/app/Randomizer.php +++ b/app/Randomizer.php @@ -930,13 +930,35 @@ public function setTexts(World $world) $progressive_bow_locations = $world->getLocationsWithItem(Item::get('ProgressiveBow', $world))->randomCollection(2); if ($progressive_bow_locations->count() > 0) { $first_location = $progressive_bow_locations->pop(); - $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows in\n" . $first_location->getRegion()->getName()); + switch ($first_location->getRegion()->getName()) { + case "Ganons Tower": + $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows in\nMy tower?"); + break; + default: + $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows in\n" . $first_location->getRegion()->getName()); + } // Progressive Bow Alternate $first_location->setItem(new Item\Bow('ProgressiveBow', [0x65], $world)); if ($progressive_bow_locations->count() > 0) { $second_location = $progressive_bow_locations->pop(); - $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\n" . $second_location->getRegion()->getName()); + switch ($second_location->getRegion()->getName()) { + case "Ganons Tower": + $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\nMy tower?"); + break; + default: + $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows in\n" . $second_location->getRegion()->getName()); + } + } + // Remove Hint in Hard+ Item Pool + if ($world->config('item.overflow.count.Bow') < 2) { + $world->setText('ganon_phase_3_no_silvers', "Did you find\nthe arrows on\nPlanet Zebes?"); + $world->setText('ganon_phase_3_no_silvers_alt', "Did you find\nthe arrows on\nPlanet Zebes?"); + // Special No Silvers "Hint" for Crowd Control + if ($world->config('item.pool') == 'crowd_control') { + $world->setText('ganon_phase_3_no_silvers', "Chat said no\nto Silvers.\nIt's over Hero"); + $world->setText('ganon_phase_3_no_silvers_alt', "Chat said no\nto Silvers.\nIt's over Hero"); + } } } diff --git a/app/World.php b/app/World.php index 226a730fd..320fae2a0 100644 --- a/app/World.php +++ b/app/World.php @@ -129,6 +129,8 @@ public function __construct(int $id = 0, array $config = []) } $this->config['rom.freeItemText'] = $free_item_text; $this->config['rom.freeItemMenu'] = $free_item_menu; + + $this->config['item.overflow.count.Bow'] = 2; switch ($this->config('item.pool')) { case 'expert': From 483dfb2a899793c702d5d50ff2f9cd29b2fb6518 Mon Sep 17 00:00:00 2001 From: MichaelK-UnderscoreUnderscore <56115236+MichaelK-UnderscoreUnderscore@users.noreply.github.com> Date: Wed, 4 Dec 2019 05:52:50 +0100 Subject: [PATCH 08/19] Generate Button Text rewording (#758) * Make Progressive Bow work with Retro Progressive Bow broke Retro Logic by overwriting the need for the ShopArrow. Fixed that. * Changing Tabs to Spaces The important stuff * Add $world to canShootArrows Give $world variable with every canShootArrows. $world variable is used to skip shoparrow check in games without rupee bow (aka Retro or customizer with that setting) * Added UnitTest for Retro Bow working Basically checking if you can shoot Arrows in Retro where Bow is Hardrequired. * Cutting out useless stuff Stuff I had copied and wouldn't need... * Added Parameters to the Doc Block Added the new Parameters to the Doc Block Added an old Parameter that wasn't in before * Generate Button Rewording Reword "Generate ROM" and "Generate ROM (with spoilers)" to include their usecase. This was a complaint for some time now and should help reduce the amount of People generating Race ROM's on accident. --- resources/lang/en/randomizer.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/lang/en/randomizer.php b/resources/lang/en/randomizer.php index dff36efc0..ca41ff3ce 100644 --- a/resources/lang/en/randomizer.php +++ b/resources/lang/en/randomizer.php @@ -191,9 +191,9 @@ ], ], 'generate' => [ - 'race' => 'Generate ROM', + 'race' => 'Generate Race ROM', 'race_warning' => 'Spoilers will never be available for this option.', - 'spoiler_race' => 'Generate ROM (with spoilers)', + 'spoiler_race' => 'Generate Normal ROM', 'back' => 'Change Settings', 'regenerate' => 'Generate Again', 'regenerate_tooltip' => 'Generate new game with same settings', From 0e03902a7f84d6b85b4506443ae097b5062b8967 Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Tue, 24 Dec 2019 13:09:35 +1100 Subject: [PATCH 09/19] Fix ShopKey check. --- app/Support/ItemCollection.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Support/ItemCollection.php b/app/Support/ItemCollection.php index 04775d17c..7732c319d 100644 --- a/app/Support/ItemCollection.php +++ b/app/Support/ItemCollection.php @@ -267,7 +267,7 @@ public function has($key, $at_least = 1) // @TODO: this check is expensive, as this function is called A LOT, can we reduce it somehow? // assuming if there are ShopKey's available then we are in generic key mode, this is a really bad assumption // but we need to make it until we can rewrite this class - if (($this->item_counts['ShopKey'] ?? false) && strpos($key, 'Key') === 0) { + if (($this->item_counts["ShopKey:$this->checks_for_world"] ?? false) && strpos($key, 'Key') === 0) { return true; } From aba52e3821311d3e8269049dead7072b33d06d80 Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Thu, 26 Dec 2019 08:51:38 +1100 Subject: [PATCH 10/19] Remove 10-15 keys from retro (replace with green 20 rupees). --- app/World/Retro.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/World/Retro.php b/app/World/Retro.php index 36acca1ad..00fc1fece 100644 --- a/app/World/Retro.php +++ b/app/World/Retro.php @@ -21,5 +21,24 @@ public function __construct(int $id = 0, array $config = []) 'region.takeAnys' => true, 'region.wildKeys' => true, ])); + + if ($this->config('difficulty') !== 'custom') { + switch ($this->config('item.pool')) { + case 'hard': + case 'expert': + case 'crowd_control': + $this->config['item.count.KeyD1'] = 0; + $this->config['item.count.KeyA2'] = 0; + $this->config['item.count.KeyD7'] = 0; + $this->config['item.count.KeyD2'] = 0; + + $this->config['item.count.TwentyRupees2'] = 15 + $this->config('item.count.TwentyRupees2', 0); + break; + case 'normal': + $this->config['item.count.KeyD1'] = 0; + $this->config['item.count.KeyA2'] = 0; + $this->config['item.count.TwentyRupees2'] = 10 + $this->config('item.count.TwentyRupees2', 0); + } + } } } From f1e32e36900d49d19f82edd1f72a3907ab7dd5f1 Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Wed, 25 Dec 2019 08:08:15 +1100 Subject: [PATCH 11/19] Fix pre_collected_items being collected multiple times --- app/Filler/RandomAssumed.php | 3 +++ app/Support/WorldCollection.php | 3 +++ app/World.php | 5 ++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/Filler/RandomAssumed.php b/app/Filler/RandomAssumed.php index 1532aa091..85c758f49 100644 --- a/app/Filler/RandomAssumed.php +++ b/app/Filler/RandomAssumed.php @@ -79,6 +79,9 @@ protected function fillItemsInLocations($fill_items, $locations, $base_assumed_i $found_locations = 0; $assumed_items = $starting_items->copy(); + foreach ($this->worlds as $world) { + $assumed_items = $assumed_items->merge($world->getPreCollectedItems()); + } do { $current_locations = 0; foreach ($this->worlds as $world) { diff --git a/app/Support/WorldCollection.php b/app/Support/WorldCollection.php index 13a140d52..cbbcc9c62 100644 --- a/app/Support/WorldCollection.php +++ b/app/Support/WorldCollection.php @@ -37,6 +37,9 @@ public function isWinnable(): bool $found_locations = 0; $assumed_items = new ItemCollection; + foreach ($this->worlds as $world) { + $assumed_items = $assumed_items->merge($world->getPreCollectedItems()); + } do { $current_locations = 0; foreach ($this->worlds as $collect_world) { diff --git a/app/World.php b/app/World.php index 320fae2a0..ff39589f4 100644 --- a/app/World.php +++ b/app/World.php @@ -467,10 +467,9 @@ public function collectItems(?ItemCollection $collected = null): ItemCollection */ public function collectOtherItems(ItemCollection $collected): ItemCollection { - $my_items = $collected ?? new ItemCollection(); - $found = new ItemCollection($this->pre_collected_items); - $my_items = $my_items->merge($this->pre_collected_items); + $my_items = $collected ?? new ItemCollection($this->pre_collected_items); $my_items->setChecksForWorld($this->id); + $found = new ItemCollection(); $available_locations = $this->getCollectableLocations(); do { From fb0ab5f852954330fe92d51274671953dd1c89e3 Mon Sep 17 00:00:00 2001 From: PuzzleSecretary <39073962+PuzzleSecretary@users.noreply.github.com> Date: Wed, 18 Dec 2019 10:51:19 -0800 Subject: [PATCH 12/19] Update hint.txt In addition to adding a new joke hint of my own, removed an unnecessary-seeming space from a community hint. (I have a suspicion that a line with a Link face can't safely be as long as a normal line.) --- strings/hint.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/strings/hint.txt b/strings/hint.txt index e96dbd902..7ec630b4e 100644 --- a/strings/hint.txt +++ b/strings/hint.txt @@ -134,5 +134,9 @@ breed. > - You are playing -ALTTPR. > +ALTTPR. > +- +Other randos +exist too! +Try some! > - From cbf07aa650f88def1375c8a8f4ecc53018996b95 Mon Sep 17 00:00:00 2001 From: Michael Kunze Date: Sat, 14 Dec 2019 09:56:10 -0500 Subject: [PATCH 13/19] add check for Randomizer Enemy Health There was a Daily Recently which forced progression behind high Health Mini Moldorms in Mini Moldorm Cave before Weapons were available. This prevents the issue from reappearing by forcing a weapon that can kill stuff before those locations that require you to kill enemies if Enemy Health is randomized. (not caring if the enemies are set to 1 heart or 8) --- app/Region/Inverted/DesertPalace.php | 2 +- app/Region/Inverted/LightWorld/South.php | 10 +++++----- app/Region/Open/HyruleCastleEscape.php | 13 ++++++++----- app/Region/Standard/DesertPalace.php | 2 +- app/Region/Standard/LightWorld/South.php | 20 ++++++++++++++++++++ app/Support/ItemCollection.php | 12 ++++++++---- 6 files changed, 43 insertions(+), 16 deletions(-) diff --git a/app/Region/Inverted/DesertPalace.php b/app/Region/Inverted/DesertPalace.php index d596ec649..0f609049b 100644 --- a/app/Region/Inverted/DesertPalace.php +++ b/app/Region/Inverted/DesertPalace.php @@ -47,7 +47,7 @@ public function initalize() $this->locations["Desert Palace - Big Key Chest"]->setRequirements(function ($locations, $items) { - return $items->has('KeyP2') + return $items->has('KeyP2') && $items->canKillMostThings($this->world) && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive') || ($this->world->config('canBunnyRevive', false) diff --git a/app/Region/Inverted/LightWorld/South.php b/app/Region/Inverted/LightWorld/South.php index bcc3521f5..59d2850f4 100644 --- a/app/Region/Inverted/LightWorld/South.php +++ b/app/Region/Inverted/LightWorld/South.php @@ -106,7 +106,7 @@ public function initalize() || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && - $items->canBombThings(); + $items->canBombThings() && $items->canKillMostThings($this->world); }); $this->locations["Mini Moldorm Cave - Left"]->setRequirements(function ($locations, $items) { @@ -114,7 +114,7 @@ public function initalize() || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && - $items->canBombThings(); + $items->canBombThings() && $items->canKillMostThings($this->world); }); $this->locations["Mini Moldorm Cave - Right"]->setRequirements(function ($locations, $items) { @@ -122,7 +122,7 @@ public function initalize() || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && - $items->canBombThings(); + $items->canBombThings() && $items->canKillMostThings($this->world); }); $this->locations["Mini Moldorm Cave - Far Right"]->setRequirements(function ($locations, $items) { @@ -130,7 +130,7 @@ public function initalize() || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && - $items->canBombThings(); + $items->canBombThings() && $items->canKillMostThings($this->world); }); $this->locations["Ice Rod Cave"]->setRequirements(function ($locations, $items) { @@ -181,7 +181,7 @@ public function initalize() || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && - $items->canBombThings(); + $items->canBombThings() && $items->canKillMostThings($this->world); }); $this->locations["Library"]->setRequirements(function ($locations, $items) { diff --git a/app/Region/Open/HyruleCastleEscape.php b/app/Region/Open/HyruleCastleEscape.php index 5b6589566..3275eb773 100644 --- a/app/Region/Open/HyruleCastleEscape.php +++ b/app/Region/Open/HyruleCastleEscape.php @@ -22,15 +22,18 @@ class HyruleCastleEscape extends Region\Standard\HyruleCastleEscape public function initalize() { $this->locations["Sewers - Secret Room - Left"]->setRequirements(function ($locations, $items) { - return $items->canLiftRocks() || ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && $items->has('KeyH2')); + return $items->canLiftRocks() || ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) + && $items->has('KeyH2') && $items->canKillMostThings($this->world)); }); $this->locations["Sewers - Secret Room - Middle"]->setRequirements(function ($locations, $items) { - return $items->canLiftRocks() || ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && $items->has('KeyH2')); + return $items->canLiftRocks() || ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) + && $items->has('KeyH2') && $items->canKillMostThings($this->world)); }); $this->locations["Sewers - Secret Room - Right"]->setRequirements(function ($locations, $items) { - return $items->canLiftRocks() || ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && $items->has('KeyH2')); + return $items->canLiftRocks() || ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) + && $items->has('KeyH2') && $items->canKillMostThings($this->world)); }); $this->locations["Sewers - Dark Cross"]->setRequirements(function ($locations, $items) { @@ -39,11 +42,11 @@ public function initalize() }); $this->locations["Hyrule Castle - Boomerang Chest"]->setRequirements(function ($locations, $items) { - return $items->has('KeyH2'); + return $items->has('KeyH2') && $items->canKillMostThings($this->world); }); $this->locations["Hyrule Castle - Zelda's Cell"]->setRequirements(function ($locations, $items) { - return $items->has('KeyH2'); + return $items->has('KeyH2') && $items->canKillMostThings($this->world); }); $this->locations["Secret Passage"]->setFillRules(function ($item, $locations, $items) { diff --git a/app/Region/Standard/DesertPalace.php b/app/Region/Standard/DesertPalace.php index 1f4c537e5..f50582f6e 100644 --- a/app/Region/Standard/DesertPalace.php +++ b/app/Region/Standard/DesertPalace.php @@ -76,7 +76,7 @@ public function initalize() }); $this->locations["Desert Palace - Big Key Chest"]->setRequirements(function ($locations, $items) { - return $items->has('KeyP2'); + return $items->has('KeyP2') && $items->canKillMostThings($this->world); }); $this->locations["Desert Palace - Compass Chest"]->setRequirements(function ($locations, $items) { diff --git a/app/Region/Standard/LightWorld/South.php b/app/Region/Standard/LightWorld/South.php index 9d64bec79..3ae198e99 100644 --- a/app/Region/Standard/LightWorld/South.php +++ b/app/Region/Standard/LightWorld/South.php @@ -107,6 +107,26 @@ public function initalize() $this->locations["Aginah's Cave"]->setRequirements(function ($locations, $items) { return $items->canBombThings(); }); + + $this->locations["Mini Moldorm Cave - Far Left"]->setRequirements(function ($locations, $items) { + return $items->canBombThings() && $items->canKillMostThings($this->world); + }); + + $this->locations["Mini Moldorm Cave - Left"]->setRequirements(function ($locations, $items) { + return $items->canBombThings() && $items->canKillMostThings($this->world); + }); + + $this->locations["Mini Moldorm Cave - Right"]->setRequirements(function ($locations, $items) { + return $items->canBombThings() && $items->canKillMostThings($this->world); + }); + + $this->locations["Mini Moldorm Cave - Far Right"]->setRequirements(function ($locations, $items) { + return $items->canBombThings() && $items->canKillMostThings($this->world); + }); + + $this->locations["Mini Moldorm Cave - NPC"]->setRequirements(function ($locations, $items) { + return $items->canBombThings() && $items->canKillMostThings($this->world); + }); $this->locations["Hobo"]->setRequirements(function ($locations, $items) { return ($this->world->config('canWaterWalk', false) && $items->has('PegasusBoots')) diff --git a/app/Support/ItemCollection.php b/app/Support/ItemCollection.php index 7732c319d..9ab737072 100644 --- a/app/Support/ItemCollection.php +++ b/app/Support/ItemCollection.php @@ -536,8 +536,10 @@ public function canKillEscapeThings(World $world) { return $this->has('UncleSword') || $this->has('CaneOfSomaria') - || $this->has('TenBombs') - || $this->has('CaneOfByrna') + || ($this->has('TenBombs') + && $world->config('enemizer.enemyHealth', 'default') == 'default') + || ($this->has('CaneOfByrna') + && $world->config('enemizer.enemyHealth', 'default') == 'default') || $this->canShootArrows($world) || $this->has('Hammer') || $this->has('FireRod'); @@ -555,8 +557,10 @@ public function canKillMostThings(World $world, $enemies = 5) { return $this->hasSword() || $this->has('CaneOfSomaria') - || ($this->has('TenBombs') && $enemies < 6) - || ($this->has('CaneOfByrna') && ($enemies < 6 || $this->canExtendMagic())) + || ($this->canBombThings() && $enemies < 6 + && $world->config('enemizer.enemyHealth', 'default') == 'default') + || ($this->has('CaneOfByrna') && ($enemies < 6 || $this->canExtendMagic()) + && $world->config('enemizer.enemyHealth', 'default') == 'default') || $this->canShootArrows($world) || $this->has('Hammer') || $this->has('FireRod'); From 27f71b3c701f4eae0144a126c5fbff4cdf5605dd Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Thu, 26 Dec 2019 14:15:06 +1100 Subject: [PATCH 14/19] Add tempered sword to progression items if logically required to beat the seed. This is required for beatable only logic. --- app/Randomizer.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/Randomizer.php b/app/Randomizer.php index cf7d0e447..d7682f5fb 100644 --- a/app/Randomizer.php +++ b/app/Randomizer.php @@ -256,10 +256,15 @@ public function prepareWorld(World $world): void } } - // put 1 more sword back in + // put master sword back in if (count($nice_items_swords)) { array_push($advancement_items, array_pop($nice_items_swords)); } + + // put tempered sword back in if logically required + if ($world->config('region.requireBetterSword', false) && count($nice_items_swords)) { + array_push($advancement_items, array_pop($nice_items_swords)); + } if (count($nice_items_swords)) { if ($world->config('region.takeAnys', false)) { From e447191a8ca3623ea9345f9a13ee10b8cb193789 Mon Sep 17 00:00:00 2001 From: MichaelK-UnderscoreUnderscore <56115236+MichaelK-UnderscoreUnderscore@users.noreply.github.com> Date: Mon, 30 Dec 2019 03:25:47 +0100 Subject: [PATCH 15/19] Various small fixes (#752) * Make Progressive Bow work with Retro Progressive Bow broke Retro Logic by overwriting the need for the ShopArrow. Fixed that. * Changing Tabs to Spaces The important stuff * Add $world to canShootArrows Give $world variable with every canShootArrows. $world variable is used to skip shoparrow check in games without rupee bow (aka Retro or customizer with that setting) * Added UnitTest for Retro Bow working Basically checking if you can shoot Arrows in Retro where Bow is Hardrequired. * Cutting out useless stuff Stuff I had copied and wouldn't need... * Added Parameters to the Doc Block Added the new Parameters to the Doc Block Added an old Parameter that wasn't in before * Some Reported Small Bugs Fix Type in Standard EDM Remove Sword from Spinspeed Entry to GT (only need Hookshot, while Sword won't make this clip possible on it's own) * Fixing Can Entry for DW WDM Changed Locations, were it makes sense, to use that canEnter instead of West Death Mountain for Clarification * Hylia Island Brackets misstake overwrote the Flippers Requirement with the Linkstate access. * (Inverted) Hookshot in Paradox Cave For some Reason I had Paradox Cave Require Pearl + Hookshot. Hookshot obviously can be circumvented by any other Method of Reaching EDM and then using Titan's Mitts. * Paradox Cave / Spiral Cave Fixed Brackets * Update East.php * Update East.php Fixing Tabs to spaces * Sick Kid Fixing a Type * Desert Boss didn't Check for Gloves Would never affect Logic though, as you either need Gloves to Reach LW, or have to use Glitches that put it in logic anyway * Mirror DMD for Inverted Glitched Logic Why did I forget about this? * Ether Tablet Mistake with Brackets * Written something bad * Ganon's Tower GT didn't account for Dungeon Revive for Most Checks. * Ice Palace Access Qirn Jump was possible with OHKO instead of without. * Saha Hut, Tavern Fixing Superbunny Access * Desert Ledge Dungeon Revive, not Bunny Revive * Magic Bat Fixing a type for Glitched Modes * Update SwampPalace.php Standard Swamp uses it's own Variables. Copied those checks over so it uses the Inverted Variables instead. * ToH Entry Glitched Part of the Can Entry had some wrong Brackets. * Update TowerOfHera.php No one saw this :eyes: * Unit Tests Update NMG + OWG Adding Unit Tests that I've finished so far. NMG Standard (Should be untouched) NMG Open (Added Tests for stuff changed from Standard) NMG Inverted (Added Tests) OWG Standard (Reworked Tests to check for the Glitches instead of NMG) OWG Open (Added Tests for things Different Compared to Standard) OWG Inverted (Added) MG Unit Tests not done yet. * Ether Tablet and LW EDM Entry Bracket / Ordering was messed up in a way that 1-Frame Clip Logic was ignored * Revert for Now, some of the change appears to be bad I messed up and need to search for where ... :eyes: * Ether Tablet and LW EDM Entry Bracket / Ordering was messed up in a way that 1-Frame Clip Logic was ignored - This Time in non Broken * Sanctuary Inverted Sanctuary was considered reachable as long you can enter the Castle at all. This is not true. New Logic Checks for Mirror before allowing reachability via Super Bunny. Other Entry Methods are still in there. * Style Stuff Changing only Spacing to be like the rest. * Back of Saha Adding Bottle Link-States to Logic * Zora's Ledge Inverted Waterwalk access wasn't working correct. * Tower of Hera Glitched Entry via Main Entrance Reworked to be actually working. * ToH Major Glitches Logic Changes Inverted: - Big Key Chest -- Changed up ordering. Previously Moon Pearl was always Required, even when reachable from Mire. Inverted + Standard: - Boss -- Boss is now considered reachable if you can open the Big Key Door From mire, as long you are still able to enter from the Main Entrance. * Swamp Adding Access through Hera as a way to skip the Hammer Pegs for the Water Switch. Not Entry as there is a Key-Door in the Way Adding Flippers to Entry through Mire Adding Mire Big Key Placement to consideration for how many Mire SK are needed to reach the Dungeon. (Simmilar to ToH) * canShootArrows I missunderstood how the Retrobow works with Progressive Bows and thought you get the ability to shoot Silvers without purchased Arrow. However with Prog. Bow you need the Shop Arrow either way. With standard Bow + Arrow it's still Working as in previous Versions where Silver Arrows can replace the Shop Arrow. * Update Retro Unit Tests Updating Retro Unit Tests to reflect that 2 Progressive Bows don't give shootable Arrows. Also apparantly mixed tabs and spaces.. :eyes: * Those Should defiently not have been here Files that definetly do not belong here. * canShootArrows(2) adding check for Rupee Bow / Shop Arrow to canShootArrows(2). Retro forces to buy the Shop Arrow or Collect an actual SilverArrowUpgrade to be able to shoot Silvers. * Ice Palace Glitched Entry Mirror Wrap required Pearl when able to 1f-Clip due to the place it was in in the code. Also Removed the Fake Flipper from the Flippers Wrap (as it kinda doesn't do anything) * Finished Tests (#10) MG Unit Tests Inverted MG Unit Tests Swamp Rewrite - Ways of Entering in MG were Programmed in, but didn't acutally work before this. - Swamp Small Key not forced in first Chest in MG modes. General Stuff: - "$items->hasBottle()" changed to "$items->hasABottle()" -- The way UnitTests are handled, the BottleCount() Function within hasBottle() created issues. * Oops * Reported bugs by HalfARebel config calls without a standard argument, Lamp calls without checking how many lamps are required * Oversight in last ToH fix Added 'canOneFrameClipOW' as alternative to the Boots Clip Method. Changed ToH Tests with 'AnyBottle' ... Really wish I could actually fix this issue instead of working around it. * Hyrule Castle Escape Logic for a lot of locations was taken from the Open Variant and didn't check for the Inverted Specific stuff. * forgot 2nd arguments for config calls * More Stuff found by HalfARebel Deser Palace BK Chest was missing the sword for Potential Super Bunny Logic (... for the 1 person that uses SB without Dungeon Revival and wants to stay in Logic) Swamp Palace Inverted Boss: Removed the Keysanity Check to be back in line with Standard. Swamp Palace Standard + Inverted canEntry ToH Entry was applied in a way that it may give access to Swamp without DIRECT access to Hera after S+Q- That Direct access is necessary to not Transition and remove the Swamp emptied Flag. Inverted MG Swamp Tests: Updated to reflect that you CAN'T enter through Hera without Pearl (which was possible due to indirect access beforehand.) * Removing duplicates as pointed out by HalfARebel both swamp canEntries checked twice for clipping. WDM Region can Enter is already in Old Man canAccess Added Mirror to Superbunny into the Dam. * Add 2nd Parameter to config calls. --- app/Region/Inverted/DesertPalace.php | 9 +- app/Region/Inverted/EasternPalace.php | 2 +- app/Region/Inverted/GanonsTower.php | 44 +- app/Region/Inverted/HyruleCastleEscape.php | 59 ++ app/Region/Inverted/IcePalace.php | 2 +- .../LightWorld/DeathMountain/East.php | 124 +-- app/Region/Inverted/LightWorld/NorthEast.php | 46 +- app/Region/Inverted/LightWorld/NorthWest.php | 5 +- app/Region/Inverted/LightWorld/South.php | 3 +- app/Region/Inverted/PalaceOfDarkness.php | 4 +- app/Region/Inverted/SkullWoods.php | 2 +- app/Region/Inverted/SwampPalace.php | 118 ++- app/Region/Inverted/ThievesTown.php | 2 +- app/Region/Inverted/TowerOfHera.php | 45 +- .../Standard/DarkWorld/DeathMountain/East.php | 14 +- app/Region/Standard/DarkWorld/NorthEast.php | 14 +- app/Region/Standard/DarkWorld/NorthWest.php | 2 +- app/Region/Standard/GanonsTower.php | 4 +- app/Region/Standard/IcePalace.php | 11 +- app/Region/Standard/LightWorld/NorthWest.php | 4 +- app/Region/Standard/PalaceOfDarkness.php | 2 +- app/Region/Standard/SkullWoods.php | 4 +- app/Region/Standard/SwampPalace.php | 135 +-- app/Region/Standard/ThievesTown.php | 2 +- app/Region/Standard/TowerOfHera.php | 6 +- app/Region/Standard/TurtleRock.php | 10 +- app/Support/ItemCollection.php | 6 +- .../DarkWorld/DeathMountain/EastTest.php | 95 ++ .../DarkWorld/DeathMountain/WestTest.php | 93 ++ tests/Inverted/DarkWorld/MireTest.php | 66 ++ tests/Inverted/DarkWorld/NorthEastTest.php | 105 ++ tests/Inverted/DarkWorld/NorthWestTest.php | 92 ++ tests/Inverted/DarkWorld/SouthTest.php | 68 ++ tests/Inverted/DeathMountain/EastTest.php | 246 +++++ tests/Inverted/DeathMountain/WestTest.php | 75 ++ tests/Inverted/DesertPalaceTest.php | 300 ++++++ tests/Inverted/EasternPalaceTest.php | 254 +++++ tests/Inverted/GanonsTowerTest.php | 622 ++++++++++++ tests/Inverted/HyruleCastleEscapeTest.php | 167 ++++ tests/Inverted/HyruleCastleTowerTest.php | 105 ++ tests/Inverted/IcePalaceTest.php | 330 +++++++ tests/Inverted/LightWorldTest.php | 544 ++++++++++ tests/Inverted/MiseryMireTest.php | 925 ++++++++++++++++++ tests/Inverted/PalaceOfDarknessTest.php | 300 ++++++ tests/Inverted/SkullWoodsTest.php | 234 +++++ tests/Inverted/SwampPalaceTest.php | 316 ++++++ tests/Inverted/TowerOfHeraTest.php | 176 ++++ tests/Inverted/TurtleRockTest.php | 13 +- .../DarkWorld/DeathMountain/EastTest.php | 73 ++ .../DarkWorld/DeathMountain/WestTest.php | 75 ++ .../DarkWorld/MireTest.php | 56 ++ .../DarkWorld/NorthEastTest.php | 78 ++ .../DarkWorld/NorthWestTest.php | 74 ++ .../DarkWorld/SouthTest.php | 66 ++ .../DeathMountain/EastTest.php | 150 +++ .../DeathMountain/WestTest.php | 58 ++ .../DesertPalaceTest.php | 136 +++ .../EasternPalaceTest.php | 110 +++ .../InvertedMajorGlitches/GanonsTowerTest.php | 452 +++++++++ .../HyruleCastleEscapeTest.php | 203 ++++ .../HyruleCastleTowerTest.php | 88 ++ tests/InvertedMajorGlitches/IcePalaceTest.php | 184 ++++ .../InvertedMajorGlitches/LightWorldTest.php | 540 ++++++++++ .../InvertedMajorGlitches/MiseryMireTest.php | 217 ++++ .../PalaceOfDarknessTest.php | 186 ++++ .../InvertedMajorGlitches/SkullWoodsTest.php | 123 +++ .../InvertedMajorGlitches/SwampPalaceTest.php | 562 +++++++++++ .../InvertedMajorGlitches/ThievesTownTest.php | 129 +++ .../InvertedMajorGlitches/TowerOfHeraTest.php | 462 +++++++++ .../InvertedMajorGlitches/TurtleRockTest.php | 157 +++ .../DarkWorld/DeathMountain/EastTest.php | 78 ++ .../DarkWorld/DeathMountain/WestTest.php | 75 ++ .../DarkWorld/MireTest.php | 58 ++ .../DarkWorld/NorthEastTest.php | 79 ++ .../DarkWorld/NorthWestTest.php | 73 ++ .../DarkWorld/SouthTest.php | 66 ++ .../DeathMountain/EastTest.php | 98 ++ .../DeathMountain/WestTest.php | 59 ++ .../DesertPalaceTest.php | 144 +++ .../EasternPalaceTest.php | 125 +++ .../GanonsTowerTest.php | 523 ++++++++++ .../HyruleCastleEscapeTest.php | 141 +++ .../HyruleCastleTowerTest.php | 88 ++ .../IcePalaceTest.php | 313 ++++++ .../LightWorldTest.php | 333 +++++++ .../MiseryMireTest.php | 168 ++++ .../PalaceOfDarknessTest.php | 186 ++++ .../SkullWoodsTest.php | 123 +++ .../SwampPalaceTest.php | 173 ++++ .../ThievesTownTest.php | 129 +++ .../TowerOfHeraTest.php | 158 +++ .../TurtleRockTest.php | 157 +++ .../DarkWorld/DeathMountain/EastTest.php | 112 +++ .../DarkWorld/DeathMountain/WestTest.php | 95 ++ tests/MajorGlitches/DarkWorld/MireTest.php | 76 ++ .../MajorGlitches/DarkWorld/NorthEastTest.php | 112 ++- .../MajorGlitches/DarkWorld/NorthWestTest.php | 49 +- tests/MajorGlitches/DarkWorld/SouthTest.php | 120 +-- .../MajorGlitches/DeathMountain/WestTest.php | 68 ++ tests/MajorGlitches/DesertPalaceTest.php | 32 +- tests/MajorGlitches/GanonsTowerTest.php | 218 +---- tests/MajorGlitches/IcePalaceTest.php | 417 ++++---- tests/MajorGlitches/LightWorldTest.php | 55 +- tests/MajorGlitches/MiseryMireTest.php | 295 ++++-- tests/MajorGlitches/OpenTest.php | 129 +++ tests/MajorGlitches/PalaceOfDarknessTest.php | 97 +- tests/MajorGlitches/SkullWoodsTest.php | 65 +- tests/MajorGlitches/SwampPalaceTest.php | 522 +++++++++- tests/MajorGlitches/ThievesTownTest.php | 219 +++-- tests/MajorGlitches/TowerOfHeraTest.php | 64 +- tests/MajorGlitches/TurtleRockTest.php | 178 +--- tests/NoGlitches/MiseryMireTest.php | 30 +- tests/NoGlitches/OpenTest.php | 129 +++ .../DarkWorld/DeathMountain/EastTest.php | 47 +- .../DarkWorld/DeathMountain/WestTest.php | 54 +- .../OverworldGlitches/DarkWorld/MireTest.php | 10 +- .../DarkWorld/NorthEastTest.php | 62 +- .../DarkWorld/NorthWestTest.php | 36 +- .../OverworldGlitches/DarkWorld/SouthTest.php | 63 +- .../DeathMountain/EastTest.php | 71 +- .../DeathMountain/WestTest.php | 51 +- tests/OverworldGlitches/DesertPalaceTest.php | 35 +- tests/OverworldGlitches/EasternPalaceTest.php | 1 - tests/OverworldGlitches/GanonsTowerTest.php | 232 +---- tests/OverworldGlitches/IcePalaceTest.php | 554 ++++++----- tests/OverworldGlitches/LightWorldTest.php | 77 +- tests/OverworldGlitches/MiseryMireTest.php | 156 +-- tests/OverworldGlitches/OpenTest.php | 129 +++ .../PalaceOfDarknessTest.php | 136 +-- tests/OverworldGlitches/SkullWoodsTest.php | 116 +-- tests/OverworldGlitches/SwampPalaceTest.php | 54 +- tests/OverworldGlitches/ThievesTownTest.php | 108 +- tests/OverworldGlitches/TowerOfHeraTest.php | 104 +- tests/OverworldGlitches/TurtleRockTest.php | 213 ++-- tests/RetroBowTest.php | 32 +- 135 files changed, 15848 insertions(+), 2906 deletions(-) create mode 100644 tests/Inverted/DarkWorld/DeathMountain/EastTest.php create mode 100644 tests/Inverted/DarkWorld/DeathMountain/WestTest.php create mode 100644 tests/Inverted/DarkWorld/MireTest.php create mode 100644 tests/Inverted/DarkWorld/NorthEastTest.php create mode 100644 tests/Inverted/DarkWorld/NorthWestTest.php create mode 100644 tests/Inverted/DarkWorld/SouthTest.php create mode 100644 tests/Inverted/DeathMountain/EastTest.php create mode 100644 tests/Inverted/DeathMountain/WestTest.php create mode 100644 tests/Inverted/DesertPalaceTest.php create mode 100644 tests/Inverted/EasternPalaceTest.php create mode 100644 tests/Inverted/GanonsTowerTest.php create mode 100644 tests/Inverted/HyruleCastleEscapeTest.php create mode 100644 tests/Inverted/HyruleCastleTowerTest.php create mode 100644 tests/Inverted/IcePalaceTest.php create mode 100644 tests/Inverted/LightWorldTest.php create mode 100644 tests/Inverted/MiseryMireTest.php create mode 100644 tests/Inverted/PalaceOfDarknessTest.php create mode 100644 tests/Inverted/SkullWoodsTest.php create mode 100644 tests/Inverted/SwampPalaceTest.php create mode 100644 tests/Inverted/TowerOfHeraTest.php create mode 100644 tests/InvertedMajorGlitches/DarkWorld/DeathMountain/EastTest.php create mode 100644 tests/InvertedMajorGlitches/DarkWorld/DeathMountain/WestTest.php create mode 100644 tests/InvertedMajorGlitches/DarkWorld/MireTest.php create mode 100644 tests/InvertedMajorGlitches/DarkWorld/NorthEastTest.php create mode 100644 tests/InvertedMajorGlitches/DarkWorld/NorthWestTest.php create mode 100644 tests/InvertedMajorGlitches/DarkWorld/SouthTest.php create mode 100644 tests/InvertedMajorGlitches/DeathMountain/EastTest.php create mode 100644 tests/InvertedMajorGlitches/DeathMountain/WestTest.php create mode 100644 tests/InvertedMajorGlitches/DesertPalaceTest.php create mode 100644 tests/InvertedMajorGlitches/EasternPalaceTest.php create mode 100644 tests/InvertedMajorGlitches/GanonsTowerTest.php create mode 100644 tests/InvertedMajorGlitches/HyruleCastleEscapeTest.php create mode 100644 tests/InvertedMajorGlitches/HyruleCastleTowerTest.php create mode 100644 tests/InvertedMajorGlitches/IcePalaceTest.php create mode 100644 tests/InvertedMajorGlitches/LightWorldTest.php create mode 100644 tests/InvertedMajorGlitches/MiseryMireTest.php create mode 100644 tests/InvertedMajorGlitches/PalaceOfDarknessTest.php create mode 100644 tests/InvertedMajorGlitches/SkullWoodsTest.php create mode 100644 tests/InvertedMajorGlitches/SwampPalaceTest.php create mode 100644 tests/InvertedMajorGlitches/ThievesTownTest.php create mode 100644 tests/InvertedMajorGlitches/TowerOfHeraTest.php create mode 100644 tests/InvertedMajorGlitches/TurtleRockTest.php create mode 100644 tests/InvertedOverworldGlitches/DarkWorld/DeathMountain/EastTest.php create mode 100644 tests/InvertedOverworldGlitches/DarkWorld/DeathMountain/WestTest.php create mode 100644 tests/InvertedOverworldGlitches/DarkWorld/MireTest.php create mode 100644 tests/InvertedOverworldGlitches/DarkWorld/NorthEastTest.php create mode 100644 tests/InvertedOverworldGlitches/DarkWorld/NorthWestTest.php create mode 100644 tests/InvertedOverworldGlitches/DarkWorld/SouthTest.php create mode 100644 tests/InvertedOverworldGlitches/DeathMountain/EastTest.php create mode 100644 tests/InvertedOverworldGlitches/DeathMountain/WestTest.php create mode 100644 tests/InvertedOverworldGlitches/DesertPalaceTest.php create mode 100644 tests/InvertedOverworldGlitches/EasternPalaceTest.php create mode 100644 tests/InvertedOverworldGlitches/GanonsTowerTest.php create mode 100644 tests/InvertedOverworldGlitches/HyruleCastleEscapeTest.php create mode 100644 tests/InvertedOverworldGlitches/HyruleCastleTowerTest.php create mode 100644 tests/InvertedOverworldGlitches/IcePalaceTest.php create mode 100644 tests/InvertedOverworldGlitches/LightWorldTest.php create mode 100644 tests/InvertedOverworldGlitches/MiseryMireTest.php create mode 100644 tests/InvertedOverworldGlitches/PalaceOfDarknessTest.php create mode 100644 tests/InvertedOverworldGlitches/SkullWoodsTest.php create mode 100644 tests/InvertedOverworldGlitches/SwampPalaceTest.php create mode 100644 tests/InvertedOverworldGlitches/ThievesTownTest.php create mode 100644 tests/InvertedOverworldGlitches/TowerOfHeraTest.php create mode 100644 tests/InvertedOverworldGlitches/TurtleRockTest.php create mode 100644 tests/MajorGlitches/DarkWorld/DeathMountain/EastTest.php create mode 100644 tests/MajorGlitches/DarkWorld/DeathMountain/WestTest.php create mode 100644 tests/MajorGlitches/DarkWorld/MireTest.php create mode 100644 tests/MajorGlitches/DeathMountain/WestTest.php create mode 100644 tests/MajorGlitches/OpenTest.php create mode 100644 tests/NoGlitches/OpenTest.php create mode 100644 tests/OverworldGlitches/OpenTest.php diff --git a/app/Region/Inverted/DesertPalace.php b/app/Region/Inverted/DesertPalace.php index 0f609049b..1de25e013 100644 --- a/app/Region/Inverted/DesertPalace.php +++ b/app/Region/Inverted/DesertPalace.php @@ -49,10 +49,10 @@ public function initalize() $this->locations["Desert Palace - Big Key Chest"]->setRequirements(function ($locations, $items) { return $items->has('KeyP2') && $items->canKillMostThings($this->world) && ($items->has('MoonPearl') - || $this->world->config('canDungeonRevive') + || $this->world->config('canDungeonRevive', false) || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) - && $items->hasABottle())); + && $items->hasABottle()) || $items->hasSword()); }); @@ -64,6 +64,8 @@ public function initalize() && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) && $items->hasABottle())) || ($this->world->config('canOneFrameClipOW', false) && $this->world->config('canDungeonRevive', false))) + && ($items->canLiftRocks() || ($this->world->config('canBootsClip', false) + && $items->has('PegasusBoots')) || $this->world->config('canOneFrameClipOW', false)) && $items->canLightTorches() && $items->has('BigKeyP2') && $items->has('KeyP2') @@ -80,8 +82,7 @@ public function initalize() $this->can_enter = function ($locations, $items) use ($main, $side, $thieves) { return ($this->world->config('canDungeonRevive', false) || ($this->world->config('canSuperBunny', false) - && ($items->has('MagicMirror') - && $items->has('BookOfMudora'))) || ($this->world->config('canBunnyRevive', false) + && $items->has('MagicMirror')) || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) && $items->hasABottle()) || $items->has('MoonPearl')) && ($main($locations, $items) diff --git a/app/Region/Inverted/EasternPalace.php b/app/Region/Inverted/EasternPalace.php index 65013560d..417535672 100644 --- a/app/Region/Inverted/EasternPalace.php +++ b/app/Region/Inverted/EasternPalace.php @@ -46,7 +46,7 @@ public function initalize() || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) && $items->hasABottle()) || - $items->has('MoonPearl')) && $items->has('Lamp'); + $items->has('MoonPearl')) && $items->has('Lamp', $this->world->config('item.require.Lamp', 1)); }); $this->locations["Eastern Palace - Boss"]->setRequirements(function ($locations, $items) { diff --git a/app/Region/Inverted/GanonsTower.php b/app/Region/Inverted/GanonsTower.php index 648baa8aa..fe7e9dc70 100644 --- a/app/Region/Inverted/GanonsTower.php +++ b/app/Region/Inverted/GanonsTower.php @@ -23,7 +23,7 @@ public function initalize() $this->locations["Ganon's Tower - DMs Room - Top Left"]->setRequirements(function ($locations, $items) { return $items->has('Hammer') && $items->has('Hookshot') - && ($items->has('MoonPearl') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -36,7 +36,7 @@ public function initalize() $this->locations["Ganon's Tower - DMs Room - Top Right"]->setRequirements(function ($locations, $items) { return $items->has('Hammer') && $items->has('Hookshot') - && ($items->has('MoonPearl') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -49,7 +49,7 @@ public function initalize() $this->locations["Ganon's Tower - DMs Room - Bottom Left"]->setRequirements(function ($locations, $items) { return $items->has('Hammer') && $items->has('Hookshot') - && ($items->has('MoonPearl') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -62,7 +62,7 @@ public function initalize() $this->locations["Ganon's Tower - DMs Room - Bottom Right"]->setRequirements(function ($locations, $items) { return $items->has('Hammer') && $items->has('Hookshot') - && ($items->has('MoonPearl') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -83,6 +83,7 @@ public function initalize() ]) && $items->has('KeyA2', 3)) || $items->has('KeyA2', 4)) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -103,6 +104,7 @@ public function initalize() ]) && $items->has('KeyA2', 3)) || $items->has('KeyA2', 4)) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -123,6 +125,7 @@ public function initalize() ]) && $items->has('KeyA2', 3)) || $items->has('KeyA2', 4)) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -143,6 +146,7 @@ public function initalize() ]) && $items->has('KeyA2', 3)) || $items->has('KeyA2', 4)) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -165,6 +169,7 @@ public function initalize() || $locations["Ganon's Tower - Firesnake Room"]->hasItem(Item::get('KeyA2', $this->world))) && $items->has('KeyA2', 2)) || $items->has('KeyA2', 3)) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -186,6 +191,7 @@ public function initalize() ] ) ? $items->has('KeyA2', 3) : $items->has('KeyA2', 4)) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -209,6 +215,7 @@ public function initalize() ($items->has('Hammer') && $items->has('Hookshot')) || ($items->has('FireRod') && $items->has('CaneOfSomaria'))) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -224,7 +231,7 @@ public function initalize() return (($items->has('Hammer') && $items->has('Hookshot')) || ($items->has('FireRod') && $items->has('CaneOfSomaria'))) && $items->has('KeyA2', 3) - && ($items->has('MoonPearl') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -235,7 +242,15 @@ public function initalize() }); $this->locations["Ganon's Tower - Tile Room"]->setRequirements(function ($locations, $items) { - return $items->has('CaneOfSomaria'); + return $items->has('CaneOfSomaria') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) + || ( + ($this->world->config('canOneFrameClipOW', false) + || ($this->world->config('canBootsClip', false) + && $items->has('PegasusBoots'))) && ( + ($this->world->config('canBunnyRevive', false) + && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) + && $items->hasABottle())))); }); $this->locations["Ganon's Tower - Compass Room - Top Left"]->setRequirements(function ($locations, $items) { @@ -249,6 +264,7 @@ public function initalize() ]) && $items->has('KeyA2', 3)) || $items->has('KeyA2', 4)) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -269,6 +285,7 @@ public function initalize() ]) && $items->has('KeyA2', 3)) || $items->has('KeyA2', 4)) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -287,6 +304,7 @@ public function initalize() "Ganon's Tower - Compass Room - Top Left", "Ganon's Tower - Compass Room - Bottom Right", ]) && $items->has('KeyA2', 3)) || $items->has('KeyA2', 4)) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -306,6 +324,7 @@ public function initalize() "Ganon's Tower - Compass Room - Bottom Left", ]) && $items->has('KeyA2', 3)) || $items->has('KeyA2', 4)) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -321,6 +340,7 @@ public function initalize() && $items->has('CaneOfSomaria'))) && $items->has('KeyA2', 3) && $this->boss_bottom->canBeat($items, $locations) && ($items->has('MoonPearl') + || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -335,7 +355,7 @@ public function initalize() && $items->has('Hookshot')) || ($items->has('FireRod') && $items->has('CaneOfSomaria'))) && $items->has('KeyA2', 3) && $this->boss_bottom->canBeat($items, $locations) - && ($items->has('MoonPearl') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -350,7 +370,7 @@ public function initalize() && $items->has('Hookshot')) || ($items->has('FireRod') && $items->has('CaneOfSomaria'))) && $items->has('KeyA2', 3) && $this->boss_bottom->canBeat($items, $locations) - && ($items->has('MoonPearl') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -366,7 +386,7 @@ public function initalize() && $items->has('BigKeyA2') && $items->has('KeyA2', 3) && $this->boss_middle->canBeat($items, $locations) - && ($items->has('MoonPearl') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -384,7 +404,7 @@ public function initalize() && $items->has('BigKeyA2') && $items->has('KeyA2', 3) && $this->boss_middle->canBeat($items, $locations) - && ($items->has('MoonPearl') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -402,7 +422,7 @@ public function initalize() && $items->has('BigKeyA2') && $items->has('KeyA2', 3) && $this->boss_middle->canBeat($items, $locations) - && ($items->has('MoonPearl') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) @@ -422,7 +442,7 @@ public function initalize() && $items->has('KeyA2', 4) && $this->boss_middle->canBeat($items, $locations) && $this->boss_top->canBeat($items, $locations) - && ($items->has('MoonPearl') + && ($items->has('MoonPearl') || $this->world->config('canDungeonRevive', false) || ( ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) diff --git a/app/Region/Inverted/HyruleCastleEscape.php b/app/Region/Inverted/HyruleCastleEscape.php index 76a2c3b6a..120b5b2f8 100644 --- a/app/Region/Inverted/HyruleCastleEscape.php +++ b/app/Region/Inverted/HyruleCastleEscape.php @@ -19,6 +19,65 @@ class HyruleCastleEscape extends Region\Open\HyruleCastleEscape public function initalize() { parent::initalize(); + + $this->locations["Sewers - Secret Room - Left"]->setRequirements(function ($locations, $items) { + return ($items->canLiftRocks() && ($items->has('MoonPearl') + || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()))) + || ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && $items->has('KeyH2') + && ($this->world->config('canDungeonRevive', false) || $items->hasSword() + || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()) + || $items->has('MoonPearl'))); + }); + + $this->locations["Sewers - Secret Room - Middle"]->setRequirements(function ($locations, $items) { + return ($items->canLiftRocks() && ($items->has('MoonPearl') + || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()))) + || ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && $items->has('KeyH2') + && ($this->world->config('canDungeonRevive', false) || $items->hasSword() + || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()) + || $items->has('MoonPearl'))); + }); + + $this->locations["Sewers - Secret Room - Right"]->setRequirements(function ($locations, $items) { + return ($items->canLiftRocks() && ($items->has('MoonPearl') + || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()))) + || ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && $items->has('KeyH2') + && ($this->world->config('canDungeonRevive', false) || $items->hasSword() + || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()) + || $items->has('MoonPearl'))); + }); + + $this->locations["Hyrule Castle - Boomerang Chest"]->setRequirements(function ($locations, $items) { + return $items->has('KeyH2') && ($this->world->config('canDungeonRevive', false) || $items->hasSword() + || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()) + || $items->has('MoonPearl')); + }); + + $this->locations["Hyrule Castle - Zelda's Cell"]->setRequirements(function ($locations, $items) { + return $items->has('KeyH2') && ($this->world->config('canDungeonRevive', false) || $items->hasSword() + || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()) + || $items->has('MoonPearl')); + }); + + $this->locations["Sanctuary"]->setRequirements(function ($locations, $items) { + return ($items->has('KeyH2') && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))) + || (($items->has('MoonPearl') + || ($this->world->config('canSuperBunny', false) + && $items->has('MagicMirror')) + || ($this->world->config('canOWYBA', false) + && $items->hasABottle()) + || ($this->world->config('canBunnyRevive', false) + && $items->canBunnyRevive())) + && $this->world->getRegion('North West Light World')->canEnter($locations, $items)); + }); $this->locations["Secret Passage"]->setRequirements(function ($locations, $items) { return ( diff --git a/app/Region/Inverted/IcePalace.php b/app/Region/Inverted/IcePalace.php index 8081516dd..b88547db0 100644 --- a/app/Region/Inverted/IcePalace.php +++ b/app/Region/Inverted/IcePalace.php @@ -30,7 +30,7 @@ public function initalize() || $this->world->config('canOneFrameClipUW', false)) && (($items->has('Flippers') || ($this->world->config('canFakeFlipper', false) && ($this->world->config('canBunnyRevive', false) - || ($this->world->config('region.cantTakeDamage', false) + || (!$this->world->config('region.cantTakeDamage', false) && $this->world->getRegion('North West Dark World')->canEnter($locations, $items)) || $items->canFly($this->world) || ($this->world->getRegion('North West Dark World')->canEnter($locations, $items) diff --git a/app/Region/Inverted/LightWorld/DeathMountain/East.php b/app/Region/Inverted/LightWorld/DeathMountain/East.php index 83339cd6f..327cdd0fd 100644 --- a/app/Region/Inverted/LightWorld/DeathMountain/East.php +++ b/app/Region/Inverted/LightWorld/DeathMountain/East.php @@ -49,14 +49,17 @@ public function initalize() $this->locations["Spiral Cave"]->setRequirements(function ($locations, $items) { - return ($items->has('MoonPearl')) || ($this->world->config('canSuperBunny', false) - && $items->has('MagicMirror') - && $items->hasSword()) || ( - ($this->world->config('canOWYBA', false) + return ($items->has('MoonPearl')) || ($this->world->config('canOWYBA', false) + && $items->hasABottle(2) && ($items->has('Hookshot') + || $this->world->config('canSuperSpeed', false) + && $items->canSpinSpeed())) + || ($this->world->config('canSuperBunny', false) && $items->has('MagicMirror') + && $items->hasSword()) + || (($this->world->config('canOWYBA', false) && $items->hasABottle()) && (($this->world->config('canBootsClip', false) - && $items->has('PegasusBoots')) || - $this->world->config('canOneFrameClipOW', false))); + && $items->has('PegasusBoots')) + || $this->world->config('canOneFrameClipOW', false))); }); $this->locations["Mimic Cave"]->setRequirements(function ($locations, $items) { @@ -70,11 +73,11 @@ public function initalize() }); $this->locations["Paradox Cave Lower - Far Left"]->setRequirements(function ($locations, $items) { - return (($items->has('MoonPearl') + return $items->has('MoonPearl') || ($this->world->config('canOWYBA', false) - && $items->hasABottle(2))) && ($items->has('Hookshot') - || ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) + && $items->hasABottle(2) && ($items->has('Hookshot') + || ($this->world->config('canSuperSpeed', false) + && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) && $items->hasABottle() && (($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) @@ -82,11 +85,11 @@ public function initalize() }); $this->locations["Paradox Cave Lower - Left"]->setRequirements(function ($locations, $items) { - return (($items->has('MoonPearl') + return $items->has('MoonPearl') || ($this->world->config('canOWYBA', false) - && $items->hasABottle(2))) && ($items->has('Hookshot') - || ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) + && $items->hasABottle(2) && ($items->has('Hookshot') + || ($this->world->config('canSuperSpeed', false) + && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) && $items->hasABottle() && (($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) @@ -94,83 +97,82 @@ public function initalize() }); $this->locations["Paradox Cave Lower - Right"]->setRequirements(function ($locations, $items) { - return (($items->has('MoonPearl') + return $items->has('MoonPearl') || ($this->world->config('canOWYBA', false) - && $items->hasABottle(2))) && ($items->has('Hookshot') - || ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) + && $items->hasABottle(2) && ($items->has('Hookshot') + || ($this->world->config('canSuperSpeed', false) + && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) && $items->hasABottle() && (($this->world->config('canBootsClip', false) - && $items->has('PegasusBoots')) || - $this->world->config('canOneFrameClipOW', false))); + && $items->has('PegasusBoots')) + || $this->world->config('canOneFrameClipOW', false))); }); $this->locations["Paradox Cave Lower - Far Right"]->setRequirements(function ($locations, $items) { - return (($items->has('MoonPearl') + return $items->has('MoonPearl') || ($this->world->config('canOWYBA', false) - && $items->hasABottle(2))) && ($items->has('Hookshot') - || ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) + && $items->hasABottle(2) && ($items->has('Hookshot') + || ($this->world->config('canSuperSpeed', false) + && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) && $items->hasABottle() && (($this->world->config('canBootsClip', false) - && $items->has('PegasusBoots')) || - $this->world->config('canOneFrameClipOW', false))); + && $items->has('PegasusBoots')) + || $this->world->config('canOneFrameClipOW', false))); }); $this->locations["Paradox Cave Lower - Middle"]->setRequirements(function ($locations, $items) { - return (($items->has('MoonPearl') + return $items->has('MoonPearl') || ($this->world->config('canOWYBA', false) - && $items->hasABottle(2))) && ($items->has('Hookshot') - || ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) + && $items->hasABottle(2) && ($items->has('Hookshot') + || ($this->world->config('canSuperSpeed', false) + && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) && $items->hasABottle() && (($this->world->config('canBootsClip', false) - && $items->has('PegasusBoots')) || - $this->world->config('canOneFrameClipOW', false))); + && $items->has('PegasusBoots')) + || $this->world->config('canOneFrameClipOW', false))); }); $this->locations["Paradox Cave Upper - Left"]->setRequirements(function ($locations, $items) { return $items->canBombThings() - && (($items->has('MoonPearl') + && ($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) - && $items->hasABottle(2))) && ($items->has('Hookshot') - || ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) - && $items->hasABottle() + && $items->hasABottle(2) && ($items->has('Hookshot') + || ($this->world->config('canSuperSpeed', false) + && $items->canSpinSpeed()))) + || ($this->world->config('canOWYBA', false) && $items->hasABottle() && (($this->world->config('canBootsClip', false) - && $items->has('PegasusBoots')) || - $this->world->config('canOneFrameClipOW', false))); + && $items->has('PegasusBoots')) + || $this->world->config('canOneFrameClipOW', false)))); }); $this->locations["Paradox Cave Upper - Right"]->setRequirements(function ($locations, $items) { return $items->canBombThings() - && (($items->has('MoonPearl') + && ($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) - && $items->hasABottle(2))) && ($items->has('Hookshot') - || ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed()))) || ($this->world->config('canOWYBA', false) - && $items->hasABottle() + && $items->hasABottle(2) && ($items->has('Hookshot') + || ($this->world->config('canSuperSpeed', false) + && $items->canSpinSpeed()))) + || ($this->world->config('canOWYBA', false) && $items->hasABottle() && (($this->world->config('canBootsClip', false) - && $items->has('PegasusBoots')) || - $this->world->config('canOneFrameClipOW', false))); + && $items->has('PegasusBoots')) + || $this->world->config('canOneFrameClipOW', false)))); }); $this->locations["Ether Tablet"]->setRequirements(function ($locations, $items) { return $items->has('BookOfMudora') && (($this->world->config('mode.weapons') == 'swordless' - && $items->has('Hammer')) || - $items->hasSword(2)) && ($items->has('MoonPearl') - && $items->has('Hammer') + && $items->has('Hammer')) + || $items->hasSword(2)) && (($items->has('MoonPearl') + && ($items->has('Hammer') || ($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) || ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed()) || - $this->world->config('canOneFrameClipOW', false) - || ( - ($this->world->config('canOWYBA', false) + && $items->canSpinSpeed()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle() - && (($this->world->config('canBootsClip', false) - && $items->has('PegasusBoots')) || - $this->world->config('canOneFrameClipOW', false))))); + && $this->world->config('canBootsClip', false) + && $items->has('PegasusBoots')))) + || $this->world->config('canOneFrameClipOW', false) + ); }); $this->locations["Spectacle Rock"]->setRequirements(function ($locations, $items) { @@ -189,17 +191,17 @@ public function initalize() return ($items->canLiftDarkRocks() && $this->world->getRegion('East Dark World Death Mountain')->canEnter($locations, $items)) || ($this->world->getRegion('West Death Mountain')->canEnter($locations, $items) && ( - ($items->has('MoonPearl') + (($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasABottle(2))) && ($items->has('Hookshot') || ($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) || ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed())) || - $this->world->config('canOneFrameClipOW', false) + && $items->canSpinSpeed()))) || ($this->world->config('canMirrorWrap', false) - && $items->has('MagicMirror')))); + && $items->has('MagicMirror')) || + $this->world->config('canOneFrameClipOW', false))); }; return $this; } -} +} \ No newline at end of file diff --git a/app/Region/Inverted/LightWorld/NorthEast.php b/app/Region/Inverted/LightWorld/NorthEast.php index 1d2d94b75..94ad6871d 100644 --- a/app/Region/Inverted/LightWorld/NorthEast.php +++ b/app/Region/Inverted/LightWorld/NorthEast.php @@ -30,8 +30,10 @@ public function __construct(World $world) public function initalize() { $this->locations["Sahasrahla's Hut - Left"]->setRequirements(function ($locations, $items) { - return $items->has('MoonPearl') - && $items->canBombThings() + return (($items->has('MoonPearl') + || ($this->world->config('canOWYBA', false) + && $items->hasABottle())) + && $items->canBombThings()) || ($this->world->config('canSuperBunny', false) && $items->has('PegasusBoots') && ($items->has('MagicMirror') @@ -39,8 +41,10 @@ public function initalize() }); $this->locations["Sahasrahla's Hut - Middle"]->setRequirements(function ($locations, $items) { - return $items->has('MoonPearl') - && $items->canBombThings() + return (($items->has('MoonPearl') + || ($this->world->config('canOWYBA', false) + && $items->hasABottle())) + && $items->canBombThings()) || ($this->world->config('canSuperBunny', false) && $items->has('PegasusBoots') && ($items->has('MagicMirror') @@ -48,8 +52,10 @@ public function initalize() }); $this->locations["Sahasrahla's Hut - Right"]->setRequirements(function ($locations, $items) { - return $items->has('MoonPearl') - && $items->canBombThings() + return (($items->has('MoonPearl') + || ($this->world->config('canOWYBA', false) + && $items->hasABottle())) + && $items->canBombThings()) || ($this->world->config('canSuperBunny', false) && $items->has('PegasusBoots') && ($items->has('MagicMirror') @@ -89,14 +95,16 @@ public function initalize() || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && ($items->has('Flippers') - || ($this->world->config('canFakeFlipper', false) - && $this->world->config('canWaterWalk', false) - && $items->has('PegasusBoots')) || ($this->world->config('canWaterWalk', false) - && ($items->has('PegasusBoots') - || $items->has('MoonPearl')) && ($this->world->config('canBootsClip', false) - && $items->has('PegasusBoots')) || ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed()) || - $this->world->config('canOneFrameClipOW', false))); + || ($this->world->config('canWaterWalk', false) + && (($this->world->config('canFakeFlipper', false) + && $this->world->config('canWaterWalk', false) + && $items->has('MoonPearl') + && $this->world->config('canOneFrameClipOW', false)) + || (($this->world->config('canBootsClip', false) + || $this->world->config('canOneFrameClipOW', false) + || ($this->world->config('canSuperSpeed', false) + && $items->canSpinSpeed())) + && $items->has('PegasusBoots'))))); }); $this->locations["Waterfall Fairy - Left"]->setRequirements(function ($locations, $items) { @@ -169,7 +177,7 @@ public function initalize() || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()) || ($this->world->config('canOWYBA', false) && $items->hasABottle()) || ( // Invis Ganon fight sounds fun for logic :) - $this->world->config('canSuperBunny') + $this->world->config('canSuperBunny', false) && $this->world->config('canDungeonRevive', false) // Just so it's not in logic for everyone. Don't care, just think it's better like this. && $this->world->getRegion('Ganons Tower')->canEnter($locations, $items) //Bunny Beam Storage from GT && $items->has('CaneOfSomaria') @@ -180,17 +188,17 @@ public function initalize() && (!$this->world->config('region.requireBetterBow', false) || $items->canShootArrows($this->world, 2)) && ( ($this->world->config('mode.weapons') == 'swordless' - && $items->has('Hammer') && ($items->has('Lamp') + && $items->has('Hammer') && ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) || ($items->has('FireRod') && ($items->canExtendMagic(1) && $items->has('MoonPearl')) || $items->canExtendMagic(4)))) || (!$this->world->config('region.requireBetterSword', false) && ($items->hasSword(2) - && ($items->has('Lamp') + && ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) || ($items->has('FireRod') && ($items->canExtendMagic(3) && $items->has('MoonPearl')) || $items->canExtendMagic(4))))) || ($items->hasSword(3) - && ($items->has('Lamp') + && ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) || ($items->has('FireRod') && ($items->canExtendMagic(2) && $items->has('MoonPearl')) || @@ -211,7 +219,7 @@ public function initalize() || ($items->hasABottle() && $items->has('Lamp', $this->world->config('item.require.Lamp', 1))))) || ($this->world->getRegion('West Death Mountain')->canEnter($locations, $items) - && $items->has('MoonPearl') + && ($items->has('MoonPearl') || $items->has('MagicMirror')) && ( ($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed()) || ($this->world->config('canBootsClip', false) diff --git a/app/Region/Inverted/LightWorld/NorthWest.php b/app/Region/Inverted/LightWorld/NorthWest.php index d4f9c6faf..9add4a1de 100644 --- a/app/Region/Inverted/LightWorld/NorthWest.php +++ b/app/Region/Inverted/LightWorld/NorthWest.php @@ -62,7 +62,8 @@ public function initalize() $this->locations["Kakariko Tavern"]->setRequirements(function ($locations, $items) { return $items->has('MoonPearl') || ($this->world->config('canSuperBunny', false) - && $items->has('MagicMirror')) || ($this->world->config('canOWYBA', false) + && ($items->has('MagicMirror') || !$this->world->config('cantTakeDamage', false))) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()) || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()); }); @@ -176,7 +177,7 @@ public function initalize() }); $this->locations["Sick Kid"]->setRequirements(function ($locations, $items) { - return $items->hasBottle(); + return $items->hasABottle(); }); $this->locations["Lumberjack Tree"]->setRequirements(function ($locations, $items) { diff --git a/app/Region/Inverted/LightWorld/South.php b/app/Region/Inverted/LightWorld/South.php index 59d2850f4..4adcd6197 100644 --- a/app/Region/Inverted/LightWorld/South.php +++ b/app/Region/Inverted/LightWorld/South.php @@ -202,8 +202,7 @@ public function initalize() $this->locations["Desert Ledge"]->setRequirements(function ($locations, $items) { return (($items->has('MoonPearl') - || ($this->world->config('canBunnyRevive', false) - && $items->canBunnyRevive()) || ($this->world->config('canSuperBunny', false) + || $this->world->config('canDungeonRevive', false) || ($this->world->config('canSuperBunny', false) && $items->has('MagicMirror')) || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && $this->world->getRegion('Desert Palace')->canEnter($locations, $items)) || diff --git a/app/Region/Inverted/PalaceOfDarkness.php b/app/Region/Inverted/PalaceOfDarkness.php index 20ef151b8..95c8882c9 100644 --- a/app/Region/Inverted/PalaceOfDarkness.php +++ b/app/Region/Inverted/PalaceOfDarkness.php @@ -25,9 +25,9 @@ public function initalize() ($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) - && $items->hasBottle())) + && $items->hasABottle())) && ($this->world->getRegion('North East Dark World')->canEnter($locations, $items) - || ($this->world->config('canOneFrameClipOW') + || ($this->world->config('canOneFrameClipOW', false) && $this->world->getRegion('West Death Mountain'))); }; diff --git a/app/Region/Inverted/SkullWoods.php b/app/Region/Inverted/SkullWoods.php index 00cde89d9..a52baf03d 100644 --- a/app/Region/Inverted/SkullWoods.php +++ b/app/Region/Inverted/SkullWoods.php @@ -45,7 +45,7 @@ public function initalize() ($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) - && $items->hasBottle())) + && $items->hasABottle())) && $this->world->getRegion('North West Dark World')->canEnter($locations, $items); }; diff --git a/app/Region/Inverted/SwampPalace.php b/app/Region/Inverted/SwampPalace.php index c4b3cf3ab..c59e99e85 100644 --- a/app/Region/Inverted/SwampPalace.php +++ b/app/Region/Inverted/SwampPalace.php @@ -22,25 +22,86 @@ public function initalize() $mire = function ($locations, $items) { return $this->world->config('canOneFrameClipUW', false) - && $items->has('KeyD6', 3) + && (($locations->itemInLocations(Item::get('BigKeyD6', $this->world), [ + "Misery Mire - Compass Chest", + "Misery Mire - Big Key Chest", + ]) && + $items->has('KeyD6', 2)) || $items->has('KeyD6', 3)) && $this->world->getRegion('Misery Mire')->canEnter($locations, $items); }; - - $main = function ($locations, $items) { - return ($items->has('MoonPearl') - || $this->world->config('canSuperBunny', false)) - && $items->has('MagicMirror') - && $items->has('Flippers') - && $this->world->getRegion('South Light World')->canEnter($locations, $items); + + $hera = function ($locations, $items) use ($mire) { + return $this->world->config('canOneFrameClipUW', false) + && $this->world->getRegion('Tower of Hera')->canEnter($locations, $items) + && ($items->has('BigKeyP3') + || ($mire($locations, $items) && $items->has('BigKeyD6'))); }; + + $this->locations["Swamp Palace - Entrance"]->setFillRules(function ($item, $locations, $items) use ($mire) { + return $this->world->config('region.wildKeys', false) || $item == Item::get('KeyD2', $this->world) + || $mire($locations, $items); + }); + + $this->locations["Swamp Palace - Big Chest"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)) + && ($items->has('BigKeyD2') + || ($mire($locations, $items) && $items->has('BigKeyD6')) + || ($hera($locations, $items) && $items->has('BigKeyP3'))); + })->setAlwaysAllow(function ($item, $items) { + return $this->world->config('accessibility') !== 'locations' && $item == Item::get('BigKeyD2', $this->world); + }); + + $this->locations["Swamp Palace - Big Key Chest"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); + }); + + $this->locations["Swamp Palace - Map Chest"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return $items->canBombThings() + && ($items->has('KeyD2') || $mire($locations, $items)); + }); - $this->locations["Swamp Palace - Boss"]->setRequirements(function ($locations, $items) use ($main, $mire) { - return $items->has('KeyD2') - && $items->has('Flippers') - && ($main($locations, $items) - && ($items->has('Hammer') - || $mire($locations, $items))) - && $items->has('Hookshot') + $this->locations["Swamp Palace - West Chest"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return ($items->has('KeyD2')|| $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); + }); + + $this->locations["Swamp Palace - Compass Chest"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); + }); + + $this->locations["Swamp Palace - Flooded Room - Left"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return $items->has('Hookshot') + && ($items->has('KeyD2')|| $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); + }); + + $this->locations["Swamp Palace - Flooded Room - Right"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return $items->has('Hookshot') + && ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); + }); + + $this->locations["Swamp Palace - Waterfall Room"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return $items->has('Hookshot') + && ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); + }); + + $this->locations["Swamp Palace - Boss"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return $items->has('Hookshot') + && ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)) && $this->boss->canBeat($items, $locations) && (!$this->world->config('region.wildCompasses', false) || $items->has('CompassD2') @@ -62,14 +123,29 @@ public function initalize() && ($item == Item::get('CompassD2', $this->world) || $item == Item::get('MapD2', $this->world)); }); - $this->can_enter = function ($locations, $items) use ($main, $mire) { - return ($this->world->config('itemPlacement') !== 'basic' - || ( - ($this->world->config('mode.weapons') === 'swordless' + $this->can_enter = function ($locations, $items) use ($mire) { + return $items->has('Flippers') + && ($this->world->config('itemPlacement') !== 'basic' + || (($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) - && $items->hasBottle())) && ($main($locations, $items) - || $mire($locations, $items)); + && $items->hasBottle())) + && (($items->has('MoonPearl') + || ($this->world->config('canOWYBA', false) + && $items->hasABottle()) + || ($this->world->config('canBunnyRevive', false) + && canBunnyRevive())) + || ($this->world->config('canSuperBunny', false) + && $items->has('MagicMirror'))) + && ($items->has('MagicMirror') + || ($this->world->config('canOneFrameClipUW', false) + && $items->has('MoonPearl') + && ($items->has('BigKeyP3') || $items->has('BigKeyD6')) && $mire($locations, $items) + && $locations["Old Man"]->canAccess($items) + && (($items->has('PegasusBoots') && $this->world->config('canBootsClip', false)) + || ($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed()) + || $this->world->config('canOneFrameClipOW', false)))) + && $this->world->getRegion('South Light World')->canEnter($locations, $items); }; return $this; diff --git a/app/Region/Inverted/ThievesTown.php b/app/Region/Inverted/ThievesTown.php index bc0a74bea..f615ab3bf 100644 --- a/app/Region/Inverted/ThievesTown.php +++ b/app/Region/Inverted/ThievesTown.php @@ -25,7 +25,7 @@ public function initalize() ($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) - && $items->hasBottle())) + && $items->hasABottle())) && $this->world->getRegion('North West Dark World')->canEnter($locations, $items); }; diff --git a/app/Region/Inverted/TowerOfHera.php b/app/Region/Inverted/TowerOfHera.php index ed07eb734..2fc660768 100644 --- a/app/Region/Inverted/TowerOfHera.php +++ b/app/Region/Inverted/TowerOfHera.php @@ -24,22 +24,19 @@ public function initalize() return ($this->world->getRegion('East Death Mountain')->canEnter($locations, $items) && $items->has('MoonPearl') && $items->has('Hammer')) || ($this->world->getRegion('West Death Mountain')->canEnter($locations, $items) - && ($this->world->config('canOneFrameClipOW', false) - && $items->hasSword() - && $this->world->config('canSuperBunny', false) - && $items->has('MagicMirror')) || ($items->has('MoonPearl') - || ($this->world->config('canOWYBA', false) - && $items->hasABottle(2)) || ( - ($this->world->config('canOWYBA', false) - && $items->hasABottle()) || ($this->world->config('canBunnyRevive', false) - && $items->canBunnyRevive()) && ($this->world->config('canBootsClip', false) - && $items->has('PegasusBoots')))) && ($this->world->config('canSuperSpeed', false) - && $items->canSpinSpeed()) || ($this->world->config('canBootsClip', false) - && $items->has('PegasusBoots'))); + && ((($items->has('MoonPearl') + || ($this->world->config('canOWYBA', false) && $items->hasBottle(2)) + || ((($this->world->config('canOWYBA', false) && $items->hasABottle()) + || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive())) + && (($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) + || $this->world->config('canOneFrameClipOW', false)))) + && ($this->world->config('canOneFrameClipOW', false) + || ($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed()) + || ($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')))) + || ($this->world->config('canOneFrameClipOW', false) && $items->hasSword() + && $this->world->config('canSuperBunny', false) && $items->has('MagicMirror')))); }; - - $mire = function ($locations, $items) { return $this->world->config('canOneFrameClipUW', false) && ( @@ -54,12 +51,10 @@ public function initalize() $this->locations["Tower of Hera - Big Key Chest"]->setRequirements(function ($locations, $items) use ($mire) { return $items->canLightTorches() - && $items->has('KeyP3') - && ($items->has('MoonPearl') - || ($this->world->config('canOWYBA', false) - && $items->hasABottle()) || ($this->world->config('canBunnyRevive', false) - && $items->canBunnyRevive()) || - $mire($locations, $items)); + && (($items->has('KeyP3') + && ($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) + && $items->hasABottle()) || ($this->world->config('canBunnyRevive', false) + && $items->canBunnyRevive()))) || $mire($locations, $items)); })->setAlwaysAllow(function ($item, $items) { return $this->world->config('accessibility') !== 'locations' && $item == Item::get('KeyP3', $this->world); }); @@ -77,14 +72,10 @@ public function initalize() || $items->has('BigKeyD6'))); }); - $this->locations["Tower of Hera - Boss"]->setRequirements(function ($locations, $items) { - return $this->canEnter($locations, $items) + $this->locations["Tower of Hera - Boss"]->setRequirements(function ($locations, $items) use ($main, $mire){ + return $main($locations, $items) && $this->boss->canBeat($items, $locations) - && ($items->has('MoonPearl') - || ($this->world->config('canOWYBA', false) - && $items->hasABottle()) || ($this->world->config('canBunnyRevive', false) - && $items->canBunnyRevive())) && - $items->has('BigKeyP3') + && ($items->has('BigKeyP3') || ($mire($locations, $items) && $items->has('BigKeyD6'))) && (!$this->world->config('region.wildCompasses', false) || $items->has('CompassP3') || $this->locations["Tower of Hera - Boss"]->hasItem(Item::get('CompassP3', $this->world))) && (!$this->world->config('region.wildMaps', false) diff --git a/app/Region/Standard/DarkWorld/DeathMountain/East.php b/app/Region/Standard/DarkWorld/DeathMountain/East.php index 29fabf665..367f754a1 100644 --- a/app/Region/Standard/DarkWorld/DeathMountain/East.php +++ b/app/Region/Standard/DarkWorld/DeathMountain/East.php @@ -57,42 +57,42 @@ public function initalize() { $this->locations["Superbunny Cave - Top"]->setRequirements(function ($locations, $items) { return $this->world->config('canSuperBunny', false) || $items->has('MoonPearl') - || (($this->world->config('canOWYBA', false) && $items->hasBottle()) + || (($this->world->config('canOWYBA', false) && $items->hasABottle()) && (($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) || $this->world->config('canOneFrameClipOW', false))); }); $this->locations["Superbunny Cave - Bottom"]->setRequirements(function ($locations, $items) { return $this->world->config('canSuperBunny', false) || $items->has('MoonPearl') - || (($this->world->config('canOWYBA', false) && $items->hasBottle()) + || (($this->world->config('canOWYBA', false) && $items->hasABottle()) && (($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) || $this->world->config('canOneFrameClipOW', false))); }); $this->locations["Hookshot Cave - Top Right"]->setRequirements(function ($locations, $items) { return $items->has('Hookshot') - && (($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasBottle())) + && (($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && ($items->canLiftRocks() || $this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')))); }); $this->locations["Hookshot Cave - Top Left"]->setRequirements(function ($locations, $items) { return $items->has('Hookshot') - && (($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasBottle())) + && (($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && ($items->canLiftRocks() || $this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')))); }); $this->locations["Hookshot Cave - Bottom Left"]->setRequirements(function ($locations, $items) { return $items->has('Hookshot') - && (($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasBottle())) + && (($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && ($items->canLiftRocks() || $this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')))); }); $this->locations["Hookshot Cave - Bottom Right"]->setRequirements(function ($locations, $items) { return ($items->has('Hookshot') || ($this->world->config('itemPlacement') !== 'basic' && $items->has('PegasusBoots'))) - && (($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasBottle())) + && (($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && ($items->canLiftRocks() || $this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')))); }); @@ -103,7 +103,7 @@ public function initalize() && $this->world->getRegion('East Death Mountain')->canEnter($locations, $items)) || ($this->world->config('canBootsClip', false) && $items->has('PegasusBoots') && ($items->has('MoonPearl') || $items->has('Hammer') - || ($this->world->config('canOWYBA', false) && $items->hasBottle()))) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()))) || $this->world->config('canOneFrameClipOW', false) || ($this->world->getRegion('West Death Mountain')->canEnter($locations, $items) && ($this->world->config('canMirrorClip', false) || $this->world->config('canMirrorWrap', false)) diff --git a/app/Region/Standard/DarkWorld/NorthEast.php b/app/Region/Standard/DarkWorld/NorthEast.php index 8670422d8..a5b10cf85 100644 --- a/app/Region/Standard/DarkWorld/NorthEast.php +++ b/app/Region/Standard/DarkWorld/NorthEast.php @@ -105,7 +105,7 @@ public function initalize() && (($items->has('Crystal5') && $items->has('Crystal6') && $this->world->getRegion('South Dark World')->canEnter($locations, $items) && (($items->has('MoonPearl') && $items->has('Hammer')) - || ($this->world->config('canOWYBA', false) && $items->hasBottle()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()) || ($items->has('MagicMirror') && $items->has('DefeatAgahnim')))) || ($this->world->config('canMirrorClip', false) && $items->has('MagicMirror') && (($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed()) @@ -118,7 +118,7 @@ public function initalize() && (($items->has('Crystal5') && $items->has('Crystal6') && $this->world->getRegion('South Dark World')->canEnter($locations, $items) && (($items->has('MoonPearl') && $items->has('Hammer')) - || ($this->world->config('canOWYBA', false) && $items->hasBottle()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()) || ($items->has('MagicMirror') && $items->has('DefeatAgahnim')))) || ($this->world->config('canMirrorClip', false) && $items->has('MagicMirror') && (($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed()) @@ -132,7 +132,7 @@ public function initalize() return ($items->has('Crystal5') && $items->has('Crystal6') && $this->world->getRegion('South Dark World')->canEnter($locations, $items) && (($items->has('MoonPearl') && $items->has('Hammer')) - || ($this->world->config('canOWYBA', false) && $items->hasBottle()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()) || ($items->has('MagicMirror') && $items->has('DefeatAgahnim')))) || ($this->world->config('canMirrorClip', false) && $items->has('MagicMirror') && (($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed()) @@ -144,7 +144,7 @@ public function initalize() return ($items->has('Crystal5') && $items->has('Crystal6') && $this->world->getRegion('South Dark World')->canEnter($locations, $items) && (($items->has('MoonPearl') && $items->has('Hammer')) - || ($this->world->config('canOWYBA', false) && $items->hasBottle()) + || ($this->world->config('canOWYBA', false) && $items->hasABottle()) || ($items->has('MagicMirror') && $items->has('DefeatAgahnim')))) || ($this->world->config('canMirrorClip', false) && $items->has('MagicMirror') && (($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed()) @@ -219,10 +219,10 @@ public function initalize() && (!$this->world->config('region.requireBetterBow', false) || $items->canShootArrows($this->world, 2)) && ( ($this->world->config('mode.weapons') == 'swordless' && $items->has('Hammer') - && ($items->has('Lamp') || ( + && ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) || ( $items->has('FireRod') && $items->canExtendMagic(1)))) - || (!$this->world->config('region.requireBetterSword', false) && ($items->hasSword(2) && ($items->has('Lamp') || ($items->has('FireRod') && $items->canExtendMagic(3))))) - || ($items->hasSword(3) && ($items->has('Lamp') || ($items->has('FireRod') && $items->canExtendMagic(2))))); + || (!$this->world->config('region.requireBetterSword', false) && ($items->hasSword(2) && ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) || ($items->has('FireRod') && $items->canExtendMagic(3))))) + || ($items->hasSword(3) && ($items->has('Lamp', $this->world->config('item.require.Lamp', 1)) || ($items->has('FireRod') && $items->canExtendMagic(2))))); }); return $this; diff --git a/app/Region/Standard/DarkWorld/NorthWest.php b/app/Region/Standard/DarkWorld/NorthWest.php index 666cfee7e..1946f275d 100644 --- a/app/Region/Standard/DarkWorld/NorthWest.php +++ b/app/Region/Standard/DarkWorld/NorthWest.php @@ -121,7 +121,7 @@ public function initalize() || ($this->world->config('canOWYBA', false) && $items->hasABottle()) || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive())) && $items->canLiftDarkRocks()) - || (($this->world->config('canOWYBA', false) && $items->hasBottle()) + || (($this->world->config('canOWYBA', false) && $items->hasABottle()) && ($this->world->config('canOneFrameClipOW', false) || ($this->world->config('canBootsClip', false) && $items->has('PegasusBoots') && ($items->has('MoonPearl') || $items->hasBottle(2)))))); diff --git a/app/Region/Standard/GanonsTower.php b/app/Region/Standard/GanonsTower.php index 1ad8674b8..baf367650 100644 --- a/app/Region/Standard/GanonsTower.php +++ b/app/Region/Standard/GanonsTower.php @@ -396,7 +396,7 @@ public function initalize() return $items->has('RescueZelda') && ($this->world->config('itemPlacement') !== 'basic' || (($this->world->config('mode.weapons') === 'swordless' || $items->hasSword(2)) && $items->hasHealth(12) && ($items->hasBottle(2) || $items->hasArmor()))) - && ((($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasBottle())) + && ((($items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasABottle())) && (((($items->has('Crystal1') + $items->has('Crystal2') + $items->has('Crystal3') @@ -411,7 +411,7 @@ public function initalize() && $this->world->getRegion('West Dark World Death Mountain')->canEnter($locations, $items)))) || ($this->world->config('canOneFrameClipOW', false) && ($this->world->config('canDungeonRevive', false) || $items->has('MoonPearl') - || ($this->world->config('canOWYBA', false) && $items->hasBottle())))); + || ($this->world->config('canOWYBA', false) && $items->hasABottle())))); }; return $this; diff --git a/app/Region/Standard/IcePalace.php b/app/Region/Standard/IcePalace.php index f98e4094a..f9f58bae7 100644 --- a/app/Region/Standard/IcePalace.php +++ b/app/Region/Standard/IcePalace.php @@ -134,16 +134,17 @@ public function initalize() && ($items->has('Flippers') || $this->world->config('canFakeFlipper', false)) && $items->canLiftDarkRocks()) || ($this->world->getRegion('South Dark World')->canEnter($locations, $items) - && ($items->has('MoonPearl') + && ((($items->has('MoonPearl') || ($items->hasABottle() && $this->world->config('canOWYBA', false)) || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive())) && (($this->world->config('canMirrorWrap', false) && $items->has('MagicMirror') && (($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) - || ($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed()) - || $this->world->config('canOneFrameClipOW', false))) - || ($items->has('Flippers') && $this->world->config('canFakeFlipper', false) + || ($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed()))) + || ($items->has('Flippers') && (($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) - || $this->world->config('canOneFrameClipOW', false)))))); + || $this->world->config('canOneFrameClipOW', false))))) + || ($this->world->config('canOneFrameClipOW', false) + && $this->world->config('canMirrorWrap', false) && $items->has('MagicMirror'))))); }; $this->prize_location->setRequirements($this->can_complete); diff --git a/app/Region/Standard/LightWorld/NorthWest.php b/app/Region/Standard/LightWorld/NorthWest.php index 754edbd12..3e248b764 100644 --- a/app/Region/Standard/LightWorld/NorthWest.php +++ b/app/Region/Standard/LightWorld/NorthWest.php @@ -110,14 +110,14 @@ public function initalize() && ($items->has('Hammer') || ((($this->world->config('canBootsClip', false) && $items->has('PegasusBoots')) || $this->world->config('canOneFrameClipOW', false)) - && ($items->has('Flippers') || $this->world->config('canFakeFlippers', false))) + && ($items->has('Flippers') || $this->world->config('canFakeFlipper', false))) || ($items->has('MagicMirror') && (($this->world->config('canMirrorWrap', false) && $this->world->getRegion('North West Dark World')->canEnter($locations, $items)) || (($items->has('MoonPearl') || ($items->hasABottle() && $this->world->config('canOWYBA', false)) || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive())) && (($items->canLiftDarkRocks() && $this->world->getRegion('North West Dark World')->canEnter($locations, $items)) || ($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed() - && ($items->has('Flippers') || $this->world->config('canFakeFlippers', false)) + && ($items->has('Flippers') || $this->world->config('canFakeFlipper', false)) && $this->world->getRegion('North East Dark World')->canEnter($locations, $items))))))); }); diff --git a/app/Region/Standard/PalaceOfDarkness.php b/app/Region/Standard/PalaceOfDarkness.php index 5266b4090..7f481f156 100644 --- a/app/Region/Standard/PalaceOfDarkness.php +++ b/app/Region/Standard/PalaceOfDarkness.php @@ -181,7 +181,7 @@ public function initalize() $this->can_enter = function ($locations, $items) { return $items->has('RescueZelda') && ($this->world->config('itemPlacement') !== 'basic' - || (($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) && $items->hasBottle())) + || (($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) && $items->hasABottle())) && ((($items->has('MoonPearl') || (($this->world->config('canOWYBA', false) && $items->hasABottle()) || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()))) diff --git a/app/Region/Standard/SkullWoods.php b/app/Region/Standard/SkullWoods.php index 7e0b8ecf8..143e1904f 100644 --- a/app/Region/Standard/SkullWoods.php +++ b/app/Region/Standard/SkullWoods.php @@ -147,8 +147,8 @@ public function initalize() $this->can_enter = function ($locations, $items) { return $items->has('RescueZelda') && ($this->world->config('itemPlacement') !== 'basic' - || (($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) && $items->hasBottle())) - && ($this->world->config('canDungeonRevive') || $items->has('MoonPearl') + || (($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) && $items->hasABottle())) + && ($this->world->config('canDungeonRevive', false) || $items->has('MoonPearl') || (($items->hasABottle() && $this->world->config('canOWYBA', false)) || ($this->world->config('canBunnyRevive', false) && $items->canBunnyRevive()))) && $this->world->getRegion('North West Dark World')->canEnter($locations, $items); diff --git a/app/Region/Standard/SwampPalace.php b/app/Region/Standard/SwampPalace.php index d1a94a80c..54325b839 100644 --- a/app/Region/Standard/SwampPalace.php +++ b/app/Region/Standard/SwampPalace.php @@ -73,95 +73,90 @@ public function initalize() { $mire = function ($locations, $items) { return $this->world->config('canOneFrameClipUW', false) - && $items->has('KeyD6', 3) + && (($locations->itemInLocations(Item::get('BigKeyD6', $this->world), [ + "Misery Mire - Compass Chest", + "Misery Mire - Big Key Chest", + ]) + && $items->has('KeyD6', 2)) + || $items->has('KeyD6', 3)) && $this->world->getRegion('Misery Mire')->canEnter($locations, $items); }; - $main = function ($locations, $items) { - return $items->has('MoonPearl') && $items->has('Flippers') - && $this->world->getRegion('South Dark World')->canEnter($locations, $items) - && ($items->has('MagicMirror') - || (($this->world->config('canOneFrameClipUW', false) - && $items->has('KeyD6', 3) && $this->world->getRegion('Misery Mire')->canEnter($locations, $items)) - && $locations["Old Man"]->canAccess($items) - && (!$this->world->config('region.wildKeys', false) || $items->has('KeyD2')) - && (($items->has('PegasusBoots') && $this->world->config('canBootsClip', false)) - || ($this->world->config('canSuperSpeed', false) && $items->canSpinSpeed()) - || $this->world->config('canOneFrameClipOW', false)))); + $hera = function ($locations, $items) { + return $this->world->config('canOneFrameClipUW', false) + && $this->world->getRegion('Tower of Hera')->canEnter($locations, $items) + && $items->has('BigKeyP3'); }; - - $this->locations["Swamp Palace - Entrance"]->setFillRules(function ($item, $locations, $items) { - return $this->world->config('region.wildKeys', false) || $item == Item::get('KeyD2', $this->world); + + $this->locations["Swamp Palace - Entrance"]->setFillRules(function ($item, $locations, $items) use ($mire) { + return $this->world->config('region.wildKeys', false) || $item == Item::get('KeyD2', $this->world) + || $mire($locations, $items); }); - $this->locations["Swamp Palace - Big Chest"]->setRequirements(function ($locations, $items) use ($main, $mire) { - return $items->has('KeyD2') && $items->has('Flippers') - && ($mire($locations, $items) && ($items->has('BigKeyD6') || $items->has('BigKeyD2') || $items->has('BigKeyP3')) - || ($main($locations, $items) && $items->has('Hammer') && $items->has('BigKeyD2'))); + $this->locations["Swamp Palace - Big Chest"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)) + && ($items->has('BigKeyD2') + || ($mire($locations, $items) && $items->has('BigKeyD6')) + || ($hera($locations, $items) && $items->has('BigKeyP3'))); })->setAlwaysAllow(function ($item, $items) { return $this->world->config('accessibility') !== 'locations' && $item == Item::get('BigKeyD2', $this->world); }); - $this->locations["Swamp Palace - Big Key Chest"]->setRequirements(function ($locations, $items) use ($main, $mire) { - return $items->has('KeyD2') - && $items->has('Flippers') - && ($mire($locations, $items) - || ($main($locations, $items) && $items->has('Hammer'))); + $this->locations["Swamp Palace - Big Key Chest"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); }); - $this->locations["Swamp Palace - Map Chest"]->setRequirements(function ($locations, $items) use ($main, $mire) { + $this->locations["Swamp Palace - Map Chest"]->setRequirements(function ($locations, $items) use ($mire, $hera) { return $items->canBombThings() - && (($items->has('KeyD2') && $main($locations, $items)) - || $mire($locations, $items)); + && ($items->has('KeyD2') || $mire($locations, $items)); }); - $this->locations["Swamp Palace - West Chest"]->setRequirements(function ($locations, $items) use ($main, $mire) { - return $items->has('KeyD2') - && $items->has('Flippers') - && ($mire($locations, $items) - || ($main($locations, $items) && $items->has('Hammer'))); + $this->locations["Swamp Palace - West Chest"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); }); - $this->locations["Swamp Palace - Compass Chest"]->setRequirements(function ($locations, $items) use ($main, $mire) { - return $items->has('KeyD2') - && $items->has('Flippers') - && ($mire($locations, $items) - || ($main($locations, $items) && $items->has('Hammer'))); + $this->locations["Swamp Palace - Compass Chest"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); }); - $this->locations["Swamp Palace - Flooded Room - Left"]->setRequirements(function ($locations, $items) use ($main, $mire) { - return $items->has('KeyD2') - && $items->has('Hookshot') - && $items->has('Flippers') - && ($mire($locations, $items) - || ($main($locations, $items) && $items->has('Hammer'))); + $this->locations["Swamp Palace - Flooded Room - Left"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return $items->has('Hookshot') + && ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); }); - $this->locations["Swamp Palace - Flooded Room - Right"]->setRequirements(function ($locations, $items) use ($main, $mire) { - return $items->has('KeyD2') - && $items->has('Hookshot') - && $items->has('Flippers') - && ($mire($locations, $items) - || ($main($locations, $items) && $items->has('Hammer'))); + $this->locations["Swamp Palace - Flooded Room - Right"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return $items->has('Hookshot') + && ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); }); - $this->locations["Swamp Palace - Waterfall Room"]->setRequirements(function ($locations, $items) use ($main, $mire) { - return $items->has('KeyD2') - && $items->has('Hookshot') - && $items->has('Flippers') - && ($mire($locations, $items) - || ($main($locations, $items) && $items->has('Hammer'))); + $this->locations["Swamp Palace - Waterfall Room"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return $items->has('Hookshot') + && ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)); }); - + $this->can_complete = function ($locations, $items) { return $this->locations["Swamp Palace - Boss"]->canAccess($items); }; - $this->locations["Swamp Palace - Boss"]->setRequirements(function ($locations, $items) use ($main, $mire) { - return $items->has('KeyD2') - && $items->has('Flippers') - && ($main($locations, $items) && ($items->has('Hammer') || $mire($locations, $items))) - && $items->has('Hookshot') + $this->locations["Swamp Palace - Boss"]->setRequirements(function ($locations, $items) use ($mire, $hera) { + return $items->has('Hookshot') + && ($items->has('KeyD2') || $mire($locations, $items)) + && ($items->has('Hammer') + || $mire($locations, $items) || $hera($locations, $items)) && $this->boss->canBeat($items, $locations) && (!$this->world->config('region.wildCompasses', false) || $items->has('CompassD2') || $this->locations["Swamp Palace - Boss"]->hasItem(Item::get('CompassD2', $this->world))) && (!$this->world->config('region.wildMaps', false) || $items->has('MapD2') || $this->locations["Swamp Palace - Boss"]->hasItem(Item::get('MapD2', $this->world))); @@ -180,12 +175,22 @@ public function initalize() && ($item == Item::get('CompassD2', $this->world) || $item == Item::get('MapD2', $this->world)); }); - $this->can_enter = function ($locations, $items) use ($main, $mire) { + $this->can_enter = function ($locations, $items) use ($mire) { return $items->has('RescueZelda') && ($this->world->config('itemPlacement') !== 'basic' - || (($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) && $items->hasBottle())) - && ($main($locations, $items) - || $mire($locations, $items)); + || (($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) && $items->hasABottle())) + && $items->has('Flippers') + && $this->world->getRegion('South Dark World')->canEnter($locations, $items) + && (($items->has('MoonPearl') + && $items->has('MagicMirror')) + || ($this->world->config('canOneFrameClipUW', false) + && ($items->has('BigKeyP3') || $items->has('BigKeyD6')) && $mire($locations, $items) + && $locations["Old Man"]->canAccess($items) + && (($items->has('PegasusBoots') + && $this->world->config('canBootsClip', false)) + || ($this->world->config('canSuperSpeed', false) + && $items->canSpinSpeed()) + || $this->world->config('canOneFrameClipOW', false)))); }; $this->prize_location->setRequirements($this->can_complete); diff --git a/app/Region/Standard/ThievesTown.php b/app/Region/Standard/ThievesTown.php index 413ed1f68..06ec37720 100644 --- a/app/Region/Standard/ThievesTown.php +++ b/app/Region/Standard/ThievesTown.php @@ -116,7 +116,7 @@ public function initalize() $this->can_enter = function ($locations, $items) { return $items->has('RescueZelda') && ($this->world->config('itemPlacement') !== 'basic' - || (($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) && $items->hasBottle())) + || (($this->world->config('mode.weapons') === 'swordless' || $items->hasSword()) && $items->hasHealth(7) && $items->hasABottle())) && ($items->has('MoonPearl') || ($items->hasABottle() && $this->world->config('canOWYBA', false)) || ($this->world->config('canBunnyRevive', false) && $items->canSpinSpeed())) diff --git a/app/Region/Standard/TowerOfHera.php b/app/Region/Standard/TowerOfHera.php index 3f252e2b8..85fa37144 100644 --- a/app/Region/Standard/TowerOfHera.php +++ b/app/Region/Standard/TowerOfHera.php @@ -137,10 +137,10 @@ public function initalize() return $this->locations["Tower of Hera - Boss"]->canAccess($items); }; - $this->locations["Tower of Hera - Boss"]->setRequirements(function ($locations, $items) { - return $this->canEnter($locations, $items) + $this->locations["Tower of Hera - Boss"]->setRequirements(function ($locations, $items) use ($main, $mire) { + return $main($locations, $items) && $this->boss->canBeat($items, $locations) - && $items->has('BigKeyP3') + && ($items->has('BigKeyP3') || ($mire($locations, $items) && $items->has('BigKeyD6'))) && (!$this->world->config('region.wildCompasses', false) || $items->has('CompassP3') || $this->locations["Tower of Hera - Boss"]->hasItem(Item::get('CompassP3', $this->world))) && (!$this->world->config('region.wildMaps', false) || $items->has('MapP3') || $this->locations["Tower of Hera - Boss"]->hasItem(Item::get('MapP3', $this->world))); })->setFillRules(function ($item, $locations, $items) { diff --git a/app/Region/Standard/TurtleRock.php b/app/Region/Standard/TurtleRock.php index 160f9173b..4dbed73e2 100644 --- a/app/Region/Standard/TurtleRock.php +++ b/app/Region/Standard/TurtleRock.php @@ -109,7 +109,7 @@ public function initalize() || $items->has('MoonPearl') || ($this->world->config('canOWYBA', false) && $items->hasABottle())))) && ($items->has('PegasusBoots') || $items->has('CaneOfSomaria') || $items->has('Hookshot') || !$this->world->config('region.cantTakeDamage', false) - && ($items->has('Cape') || $items->has('CaneOfByrna'))) + || $items->has('Cape') || $items->has('CaneOfByrna')) && $this->world->getRegion('East Dark World Death Mountain')->canEnter($locations, $items); }; @@ -181,11 +181,9 @@ public function initalize() }); $this->locations["Turtle Rock - Crystaroller Room"]->setRequirements(function ($locations, $items) use ($upper, $middle, $lower) { - return $items->has('BigKeyD7') && (($upper($locations, $items) && $items->has('KeyD7', 2)) - || $middle($locations, $items) - || ($lower($locations, $items) && $items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && $items->has('CaneOfSomaria'))); - })->setFillRules(function ($item, $locations, $items) { - return $item != Item::get('BigKeyD7', $this->world); + return ($items->has('BigKeyD7') && (($upper($locations, $items) && $items->has('KeyD7', 2)) + || $middle($locations, $items))) + || ($lower($locations, $items) && $items->has('Lamp', $this->world->config('item.require.Lamp', 1)) && $items->has('CaneOfSomaria')); }); $this->locations["Turtle Rock - Eye Bridge - Bottom Left"]->setRequirements(function ($locations, $items) use ($upper, $middle, $lower) { diff --git a/app/Support/ItemCollection.php b/app/Support/ItemCollection.php index 9ab737072..47e2ef664 100644 --- a/app/Support/ItemCollection.php +++ b/app/Support/ItemCollection.php @@ -460,15 +460,15 @@ public function canShootArrows(World $world, int $min_level = 1) switch ($min_level) { case 2: return $this->has('BowAndSilverArrows') - || $this->has('ProgressiveBow', 2) + || ($this->has('ProgressiveBow', 2) + && (!$world->config('rom.rupeeBow', false) || $this->has('ShopArrow'))) || ($this->has('SilverArrowUpgrade') - && ($this->has('Bow') || $this->has('BowAndArrows'))); + && ($this->has('Bow') || $this->has('BowAndArrows') || $this->has('ProgressiveBow'))); case 1: default: return (($this->has('Bow') || $this->has('ProgressiveBow')) && (!$world->config('rom.rupeeBow', false) || $this->has('ShopArrow') || $this->has('SilverArrowUpgrade'))) - || $this->has('ProgressiveBow', 2) || $this->has('BowAndArrows') || $this->has('BowAndSilverArrows'); } diff --git a/tests/Inverted/DarkWorld/DeathMountain/EastTest.php b/tests/Inverted/DarkWorld/DeathMountain/EastTest.php new file mode 100644 index 000000000..292557468 --- /dev/null +++ b/tests/Inverted/DarkWorld/DeathMountain/EastTest.php @@ -0,0 +1,95 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Superbunny Cave - Top", false, []], + ["Superbunny Cave - Top", false, [], ['Gloves', 'Flute']], + ["Superbunny Cave - Top", true, ['ProgressiveGlove', 'Lamp']], + ["Superbunny Cave - Top", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Flute']], + ["Superbunny Cave - Top", true, ['Hammer', 'ProgressiveGlove', 'MoonPearl', 'Flute']], + + ["Superbunny Cave - Bottom", false, []], + ["Superbunny Cave - Bottom", false, [], ['Gloves', 'Flute']], + ["Superbunny Cave - Bottom", true, ['ProgressiveGlove', 'Lamp']], + ["Superbunny Cave - Bottom", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Flute']], + ["Superbunny Cave - Bottom", true, ['Hammer', 'ProgressiveGlove', 'MoonPearl', 'Flute']], + + ["Hookshot Cave - Bottom Right", false, []], + ["Hookshot Cave - Bottom Right", false, [], ['Gloves', 'Flute']], + ["Hookshot Cave - Bottom Right", false, [], ['PegasusBoots', 'Hookshot']], + ["Hookshot Cave - Bottom Right", true, ['ProgressiveGlove', 'Lamp', 'PegasusBoots']], + ["Hookshot Cave - Bottom Right", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Flute', 'PegasusBoots']], + ["Hookshot Cave - Bottom Right", true, ['ProgressiveGlove', 'Hammer', 'MoonPearl', 'Flute', 'PegasusBoots']], + ["Hookshot Cave - Bottom Right", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], + ["Hookshot Cave - Bottom Right", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Flute', 'Hookshot']], + ["Hookshot Cave - Bottom Right", true, ['ProgressiveGlove', 'Hammer', 'MoonPearl', 'Flute', 'Hookshot']], + + ["Hookshot Cave - Bottom Left", false, []], + ["Hookshot Cave - Bottom Left", false, [], ['Gloves', 'Flute']], + ["Hookshot Cave - Bottom Left", false, [], ['PegasusBoots', 'Hookshot']], + ["Hookshot Cave - Bottom Left", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], + ["Hookshot Cave - Bottom Left", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Flute', 'Hookshot']], + ["Hookshot Cave - Bottom Left", true, ['ProgressiveGlove', 'Hammer', 'MoonPearl', 'Flute', 'Hookshot']], + + ["Hookshot Cave - Top Left", false, []], + ["Hookshot Cave - Top Left", false, [], ['Gloves', 'Flute']], + ["Hookshot Cave - Top Left", false, [], ['PegasusBoots', 'Hookshot']], + ["Hookshot Cave - Top Left", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], + ["Hookshot Cave - Top Left", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Flute', 'Hookshot']], + ["Hookshot Cave - Top Left", true, ['ProgressiveGlove', 'Hammer', 'MoonPearl', 'Flute', 'Hookshot']], + + ["Hookshot Cave - Top Right", false, []], + ["Hookshot Cave - Top Right", false, [], ['Gloves', 'Flute']], + ["Hookshot Cave - Top Right", false, [], ['PegasusBoots', 'Hookshot']], + ["Hookshot Cave - Top Right", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], + ["Hookshot Cave - Top Right", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Flute', 'Hookshot']], + ["Hookshot Cave - Top Right", true, ['ProgressiveGlove', 'Hammer', 'MoonPearl', 'Flute', 'Hookshot']], + ]; + } +} diff --git a/tests/Inverted/DarkWorld/DeathMountain/WestTest.php b/tests/Inverted/DarkWorld/DeathMountain/WestTest.php new file mode 100644 index 000000000..90e786e83 --- /dev/null +++ b/tests/Inverted/DarkWorld/DeathMountain/WestTest.php @@ -0,0 +1,93 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Spike Cave", false, []], + ["Spike Cave", false, [], ['Gloves']], + ["Spike Cave", false, [], ['Hammer']], + ["Spike Cave", false, [], ['Cape', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'ProgressiveGlove', 'Lamp', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'PowerGlove', 'Lamp', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'TitansMitt', 'Lamp', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'ProgressiveGlove', 'Flute', 'MoonPearl', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'PowerGlove', 'Flute', 'MoonPearl', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'TitansMitt', 'Flute', 'MoonPearl', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'ProgressiveGlove', 'Lamp', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'PowerGlove', 'Lamp', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'TitansMitt', 'Lamp', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'ProgressiveGlove', 'Flute', 'MoonPearl', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'PowerGlove', 'Flute', 'MoonPearl', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'TitansMitt', 'Flute', 'MoonPearl', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'ProgressiveGlove', 'Lamp', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'PowerGlove', 'Lamp', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'TitansMitt', 'Lamp', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'ProgressiveGlove', 'Flute', 'MoonPearl', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'PowerGlove', 'Flute', 'MoonPearl', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'TitansMitt', 'Flute', 'MoonPearl', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'ProgressiveGlove', 'Lamp', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'PowerGlove', 'Lamp', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'TitansMitt', 'Lamp', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'ProgressiveGlove', 'Flute', 'MoonPearl', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'PowerGlove', 'Flute', 'MoonPearl', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'TitansMitt', 'Flute', 'MoonPearl', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'ProgressiveGlove', 'Lamp', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'PowerGlove', 'Lamp', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'TitansMitt', 'Lamp', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'ProgressiveGlove', 'Flute', 'MoonPearl', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'PowerGlove', 'Flute', 'MoonPearl', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'TitansMitt', 'Flute', 'MoonPearl', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'ProgressiveGlove', 'Lamp', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'PowerGlove', 'Lamp', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'TitansMitt', 'Lamp', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'ProgressiveGlove', 'Flute', 'MoonPearl', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'PowerGlove', 'Flute', 'MoonPearl', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'TitansMitt', 'Flute', 'MoonPearl', 'CaneOfByrna']], + ]; + } +} diff --git a/tests/Inverted/DarkWorld/MireTest.php b/tests/Inverted/DarkWorld/MireTest.php new file mode 100644 index 000000000..2ead8cc5b --- /dev/null +++ b/tests/Inverted/DarkWorld/MireTest.php @@ -0,0 +1,66 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Mire Shed - Left", false, []], + ["Mire Shed - Left", false, [], ['Flute', 'MagicMirror']], + ["Mire Shed - Left", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Mire Shed - Left", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer']], + ["Mire Shed - Left", true, ['MoonPearl', 'Flute', 'DefeatAgahnim']], + ["Mire Shed - Left", true, ['MagicMirror', 'DefeatAgahnim']], + + ["Mire Shed - Right", false, []], + ["Mire Shed - Right", false, [], ['Flute', 'MagicMirror']], + ["Mire Shed - Right", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Mire Shed - Right", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer']], + ["Mire Shed - Right", true, ['MoonPearl', 'Flute', 'DefeatAgahnim']], + ["Mire Shed - Right", true, ['MagicMirror', 'DefeatAgahnim']], + ]; + } +} diff --git a/tests/Inverted/DarkWorld/NorthEastTest.php b/tests/Inverted/DarkWorld/NorthEastTest.php new file mode 100644 index 000000000..b6221b0e0 --- /dev/null +++ b/tests/Inverted/DarkWorld/NorthEastTest.php @@ -0,0 +1,105 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Catfish", false, []], + ["Catfish", false, [], ['Gloves']], + ["Catfish", true, ['DefeatAgahnim', 'MagicMirror', 'ProgressiveGlove']], + ["Catfish", true, ['DefeatAgahnim', 'MagicMirror', 'PowerGlove']], + ["Catfish", true, ['DefeatAgahnim', 'MagicMirror', 'TitansMitt']], + ["Catfish", true, ['ProgressiveGlove', 'Hammer']], + ["Catfish", true, ['ProgressiveGlove', 'Flippers']], + ["Catfish", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror', 'MoonPearl']], + + ["Pyramid", false, []], + ["Pyramid", true, ['DefeatAgahnim', 'MagicMirror']], + ["Pyramid", true, ['Hammer']], + ["Pyramid", true, ['Flippers', 'ProgressiveGlove']], + ["Pyramid", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror', 'MoonPearl']], + + ["Pyramid Fairy - Sword", false, []], + ["Pyramid Fairy - Sword", false, [], ['MagicMirror']], + ["Pyramid Fairy - Sword", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Sword", false, [], ['AnySword']], + ["Pyramid Fairy - Sword", true, ['BigRedBomb', 'UncleSword', 'MagicMirror', 'Hammer']], + ["Pyramid Fairy - Sword", true, ['BigRedBomb', 'UncleSword', 'MagicMirror', 'ProgressiveGlove', 'Flippers']], + ["Pyramid Fairy - Sword", true, ['BigRedBomb', 'UncleSword', 'MagicMirror', 'PowerGlove', 'Flippers']], + ["Pyramid Fairy - Sword", true, ['BigRedBomb', 'UncleSword', 'MagicMirror', 'TitansMitt', 'Flippers']], + ["Pyramid Fairy - Sword", true, ['BigRedBomb', 'ProgressiveSword', 'MagicMirror', 'Hammer']], + ["Pyramid Fairy - Sword", true, ['BigRedBomb', 'ProgressiveSword', 'MagicMirror', 'ProgressiveGlove', 'Flippers']], + ["Pyramid Fairy - Sword", true, ['BigRedBomb', 'ProgressiveSword', 'MagicMirror', 'PowerGlove', 'Flippers']], + ["Pyramid Fairy - Sword", true, ['BigRedBomb', 'ProgressiveSword', 'MagicMirror', 'TitansMitt', 'Flippers']], + + ["Pyramid Fairy - Bow", false, []], + ["Pyramid Fairy - Bow", false, [], ['MagicMirror']], + ["Pyramid Fairy - Bow", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Bow", false, [], ['AnyBow']], + ["Pyramid Fairy - Bow", true, ['BigRedBomb', 'BowAndArrows', 'MagicMirror', 'Hammer']], + ["Pyramid Fairy - Bow", true, ['BigRedBomb', 'BowAndArrows', 'MagicMirror', 'ProgressiveGlove', 'Flippers']], + ["Pyramid Fairy - Bow", true, ['BigRedBomb', 'BowAndArrows', 'MagicMirror', 'PowerGlove', 'Flippers']], + ["Pyramid Fairy - Bow", true, ['BigRedBomb', 'BowAndArrows', 'MagicMirror', 'TitansMitt', 'Flippers']], + + ["Pyramid Fairy - Left", false, []], + ["Pyramid Fairy - Left", false, [], ['MagicMirror']], + ["Pyramid Fairy - Left", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Left", true, ['BigRedBomb', 'MagicMirror', 'Hammer']], + ["Pyramid Fairy - Left", true, ['BigRedBomb', 'MagicMirror', 'ProgressiveGlove', 'Flippers']], + ["Pyramid Fairy - Left", true, ['BigRedBomb', 'MagicMirror', 'PowerGlove', 'Flippers']], + ["Pyramid Fairy - Left", true, ['BigRedBomb', 'MagicMirror', 'TitansMitt', 'Flippers']], + + ["Pyramid Fairy - Right", false, []], + ["Pyramid Fairy - Right", false, [], ['MagicMirror']], + ["Pyramid Fairy - Right", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Right", true, ['BigRedBomb', 'MagicMirror', 'Hammer']], + ["Pyramid Fairy - Right", true, ['BigRedBomb', 'MagicMirror', 'ProgressiveGlove', 'Flippers']], + ["Pyramid Fairy - Right", true, ['BigRedBomb', 'MagicMirror', 'PowerGlove', 'Flippers']], + ["Pyramid Fairy - Right", true, ['BigRedBomb', 'MagicMirror', 'TitansMitt', 'Flippers']], + ]; + } +} diff --git a/tests/Inverted/DarkWorld/NorthWestTest.php b/tests/Inverted/DarkWorld/NorthWestTest.php new file mode 100644 index 000000000..5938af0f7 --- /dev/null +++ b/tests/Inverted/DarkWorld/NorthWestTest.php @@ -0,0 +1,92 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Brewery", true, []], + + ["C-Shaped House", true, []], + + ["Chest Game", true, []], + + ["Hammer Pegs", false, []], + ["Hammer Pegs", false, [], ['Hammer']], + ["Hammer Pegs", false, [], ['Gloves', 'MagicMirror']], + ["Hammer Pegs", true, ['Hammer', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Hammer Pegs", true, ['Hammer', 'TitansMitt']], + ["Hammer Pegs", true, ['Hammer', 'ProgressiveGlove', 'MagicMirror', 'MoonPearl']], + ["Hammer Pegs", true, ['Hammer', 'DefeatAgahnim', 'MagicMirror']], + + ["Bumper Cave", false, []], + ["Bumper Cave", false, [], ['MoonPearl']], + ["Bumper Cave", false, [], ['Cape']], + ["Bumper Cave", false, [], ['Gloves']], + ["Bumper Cave", false, [], ['MagicMirror']], + ["Bumper Cave", true, ['MoonPearl', 'Cape', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Bumper Cave", true, ['MoonPearl', 'Cape', 'MagicMirror', 'ProgressiveGlove', 'Hammer']], + ["Bumper Cave", true, ['MoonPearl', 'Cape', 'MagicMirror', 'TitansMitt']], + ["Bumper Cave", true, ['MoonPearl', 'Cape', 'MagicMirror', 'PowerGlove', 'Hammer']], + ["Bumper Cave", true, ['MoonPearl', 'Cape', 'MagicMirror', 'DefeatAgahnim', 'ProgressiveGlove']], + ["Bumper Cave", true, ['MoonPearl', 'Cape', 'MagicMirror', 'DefeatAgahnim', 'PowerGlove']], + + ["Blacksmith", false, []], + ["Blacksmith", false, [], ['Gloves', 'MagicMirror']], + ["Blacksmith", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["Blacksmith", true, ['TitansMitt', 'MoonPearl']], + ["Blacksmith", true, ['DefeatAgahnim', 'MagicMirror']], + ["Blacksmith", true, ['ProgressiveGlove', 'Hammer', 'MagicMirror', 'MoonPearl']], + + ["Purple Chest", false, []], + ["Purple Chest", false, [], ['Gloves', 'MagicMirror']], + ["Purple Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["Purple Chest", true, ['TitansMitt', 'MoonPearl']], + ["Purple Chest", true, ['DefeatAgahnim', 'MagicMirror']], + ["Purple Chest", true, ['ProgressiveGlove', 'Hammer', 'MagicMirror', 'MoonPearl']], + ]; + } +} diff --git a/tests/Inverted/DarkWorld/SouthTest.php b/tests/Inverted/DarkWorld/SouthTest.php new file mode 100644 index 000000000..f40c99a11 --- /dev/null +++ b/tests/Inverted/DarkWorld/SouthTest.php @@ -0,0 +1,68 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Hype Cave - Top", true, []], + + ["Hype Cave - Middle Right", true, []], + + ["Hype Cave - Middle Left", true, []], + + ["Hype Cave - Bottom", true, []], + + ["Hype Cave - NPC", true, []], + + ["Stumpy", true, []], + + ["Digging Game", true, []], + + ["Link's House", true, []], + ]; + } +} diff --git a/tests/Inverted/DeathMountain/EastTest.php b/tests/Inverted/DeathMountain/EastTest.php new file mode 100644 index 000000000..90b43e222 --- /dev/null +++ b/tests/Inverted/DeathMountain/EastTest.php @@ -0,0 +1,246 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Spiral Cave", false, []], + ["Spiral Cave", false, [], ['MoonPearl']], + ["Spiral Cave", false, [], ['Gloves', 'Flute']], + ["Spiral Cave", false, [], ['Lamp', 'Flute']], + ["Spiral Cave", false, [], ['Hookshot', 'TitansMitt']], + ["Spiral Cave", false, ['ProgressiveGlove', 'Lamp', 'MoonPearl']], + ["Spiral Cave", false, ['ProgressiveGlove', 'Hookshot', 'MoonPearl']], + ["Spiral Cave", false, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Spiral Cave", false, ['Flute', 'Hookshot', 'MoonPearl']], + ["Spiral Cave", true, ['Flute', 'Hookshot', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Spiral Cave", true, ['ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hookshot']], + ["Spiral Cave", true, ['PowerGlove', 'Lamp', 'MoonPearl', 'Hookshot']], + ["Spiral Cave", true, ['TitansMitt', 'Lamp', 'MoonPearl', 'Hookshot']], + ["Spiral Cave", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl']], + ["Spiral Cave", true, ['TitansMitt', 'Lamp', 'MoonPearl']], + ["Spiral Cave", true, ['Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["Spiral Cave", true, ['Flute', 'TitansMitt', 'MoonPearl']], + + ["Paradox Cave Lower - Far Left", false, []], + ["Paradox Cave Lower - Far Left", false, [], ['MoonPearl']], + ["Paradox Cave Lower - Far Left", false, [], ['Gloves', 'Flute']], + ["Paradox Cave Lower - Far Left", false, [], ['Lamp', 'Flute']], + ["Paradox Cave Lower - Far Left", false, [], ['TitansMitt', 'Hookshot']], + ["Paradox Cave Lower - Far Left", false, ['ProgressiveGlove', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Far Left", false, ['Flute', 'ProgressiveGlove', 'Hammer', 'MoonPearl']], + ["Paradox Cave Lower - Far Left", true, ['Flute', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Far Left", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Far Left", true, ['PowerGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Far Left", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl']], + ["Paradox Cave Lower - Far Left", true, ['TitansMitt', 'Lamp', 'MoonPearl']], + ["Paradox Cave Lower - Far Left", true, ['Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["Paradox Cave Lower - Far Left", true, ['Flute', 'TitansMitt', 'MoonPearl']], + + ["Paradox Cave Lower - Left", false, []], + ["Paradox Cave Lower - Left", false, [], ['MoonPearl']], + ["Paradox Cave Lower - Left", false, [], ['Gloves', 'Flute']], + ["Paradox Cave Lower - Left", false, [], ['Lamp', 'Flute']], + ["Paradox Cave Lower - Left", false, [], ['TitansMitt', 'Hookshot']], + ["Paradox Cave Lower - Left", false, ['ProgressiveGlove', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Left", false, ['Flute', 'ProgressiveGlove', 'Hammer', 'MoonPearl']], + ["Paradox Cave Lower - Left", true, ['Flute', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Left", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Left", true, ['PowerGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Left", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl']], + ["Paradox Cave Lower - Left", true, ['TitansMitt', 'Lamp', 'MoonPearl']], + ["Paradox Cave Lower - Left", true, ['Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["Paradox Cave Lower - Left", true, ['Flute', 'TitansMitt', 'MoonPearl']], + + ["Paradox Cave Lower - Middle", false, []], + ["Paradox Cave Lower - Middle", false, [], ['MoonPearl']], + ["Paradox Cave Lower - Middle", false, [], ['Gloves', 'Flute']], + ["Paradox Cave Lower - Middle", false, [], ['Lamp', 'Flute']], + ["Paradox Cave Lower - Middle", false, [], ['TitansMitt', 'Hookshot']], + ["Paradox Cave Lower - Middle", false, ['ProgressiveGlove', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Middle", false, ['Flute', 'ProgressiveGlove', 'Hammer', 'MoonPearl']], + ["Paradox Cave Lower - Middle", true, ['Flute', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Middle", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Middle", true, ['PowerGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Middle", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl']], + ["Paradox Cave Lower - Middle", true, ['TitansMitt', 'Lamp', 'MoonPearl']], + ["Paradox Cave Lower - Middle", true, ['Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["Paradox Cave Lower - Middle", true, ['Flute', 'TitansMitt', 'MoonPearl']], + + ["Paradox Cave Lower - Right", false, []], + ["Paradox Cave Lower - Right", false, [], ['MoonPearl']], + ["Paradox Cave Lower - Right", false, [], ['Gloves', 'Flute']], + ["Paradox Cave Lower - Right", false, [], ['Lamp', 'Flute']], + ["Paradox Cave Lower - Right", false, [], ['TitansMitt', 'Hookshot']], + ["Paradox Cave Lower - Right", false, ['ProgressiveGlove', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Right", false, ['Flute', 'ProgressiveGlove', 'Hammer', 'MoonPearl']], + ["Paradox Cave Lower - Right", true, ['Flute', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Right", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Right", true, ['PowerGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Right", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl']], + ["Paradox Cave Lower - Right", true, ['TitansMitt', 'Lamp', 'MoonPearl']], + ["Paradox Cave Lower - Right", true, ['Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["Paradox Cave Lower - Right", true, ['Flute', 'TitansMitt', 'MoonPearl']], + + ["Paradox Cave Lower - Far Right", false, []], + ["Paradox Cave Lower - Far Right", false, [], ['MoonPearl']], + ["Paradox Cave Lower - Far Right", false, [], ['Gloves', 'Flute']], + ["Paradox Cave Lower - Far Right", false, [], ['Lamp', 'Flute']], + ["Paradox Cave Lower - Far Right", false, [], ['TitansMitt', 'Hookshot']], + ["Paradox Cave Lower - Far Right", false, ['ProgressiveGlove', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Far Right", false, ['Flute', 'ProgressiveGlove', 'Hammer', 'MoonPearl']], + ["Paradox Cave Lower - Far Right", true, ['Flute', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Far Right", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Far Right", true, ['PowerGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Lower - Far Right", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl']], + ["Paradox Cave Lower - Far Right", true, ['TitansMitt', 'Lamp', 'MoonPearl']], + ["Paradox Cave Lower - Far Right", true, ['Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["Paradox Cave Lower - Far Right", true, ['Flute', 'TitansMitt', 'MoonPearl']], + + ["Paradox Cave Upper - Left", false, []], + ["Paradox Cave Upper - Left", false, [], ['MoonPearl']], + ["Paradox Cave Upper - Left", false, [], ['Gloves', 'Flute']], + ["Paradox Cave Upper - Left", false, [], ['Lamp', 'Flute']], + ["Paradox Cave Upper - Left", false, [], ['TitansMitt', 'Hookshot']], + ["Paradox Cave Upper - Left", false, ['ProgressiveGlove', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Upper - Left", false, ['Flute', 'ProgressiveGlove', 'Hammer', 'MoonPearl']], + ["Paradox Cave Upper - Left", true, ['Flute', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Upper - Left", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Upper - Left", true, ['PowerGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Upper - Left", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl']], + ["Paradox Cave Upper - Left", true, ['TitansMitt', 'Lamp', 'MoonPearl']], + ["Paradox Cave Upper - Left", true, ['Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["Paradox Cave Upper - Left", true, ['Flute', 'TitansMitt', 'MoonPearl']], + + ["Paradox Cave Upper - Right", false, []], + ["Paradox Cave Upper - Right", false, [], ['MoonPearl']], + ["Paradox Cave Upper - Right", false, [], ['Gloves', 'Flute']], + ["Paradox Cave Upper - Right", false, [], ['Lamp', 'Flute']], + ["Paradox Cave Upper - Right", false, [], ['TitansMitt', 'Hookshot']], + ["Paradox Cave Upper - Right", false, ['ProgressiveGlove', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Upper - Right", false, ['Flute', 'ProgressiveGlove', 'Hammer', 'MoonPearl']], + ["Paradox Cave Upper - Right", true, ['Flute', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Upper - Right", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Upper - Right", true, ['PowerGlove', 'Lamp', 'Hookshot', 'MoonPearl']], + ["Paradox Cave Upper - Right", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl']], + ["Paradox Cave Upper - Right", true, ['TitansMitt', 'Lamp', 'MoonPearl']], + ["Paradox Cave Upper - Right", true, ['Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["Paradox Cave Upper - Right", true, ['Flute', 'TitansMitt', 'MoonPearl']], + + ["Mimic Cave", false, []], + ["Mimic Cave", false, [], ['MoonPearl']], + ["Mimic Cave", false, [], ['Hammer']], + ["Mimic Cave", false, [], ['Gloves', 'Flute']], + ["Mimic Cave", false, [], ['Lamp', 'Flute']], + ["Mimic Cave", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot']], + ["Mimic Cave", true, ['Flute', 'MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot']], + ["Mimic Cave", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer']], + ["Mimic Cave", true, ['Flute', 'MoonPearl', 'TitansMitt', 'Hammer']], + ["Mimic Cave", true, ['ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot']], + ["Mimic Cave", true, ['PowerGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot']], + ["Mimic Cave", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer']], + ["Mimic Cave", true, ['TitansMitt', 'Lamp', 'MoonPearl', 'Hammer']], + + ["Ether Tablet", false, []], + ["Ether Tablet", false, [], ['MoonPearl']], + ["Ether Tablet", false, [], ['Gloves', 'Flute']], + ["Ether Tablet", false, [], ['Lamp', 'Flute']], + ["Ether Tablet", false, [], ['TitansMitt', 'Hookshot']], + ["Ether Tablet", false, [], ['Hammer']], + ["Ether Tablet", false, [], ['UpgradedSword']], + ["Ether Tablet", false, [], ['BookOfMudora']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'BookOfMudora', 'L4Sword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot', 'BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot', 'BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot', 'BookOfMudora', 'L4Sword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer', 'BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer', 'BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer', 'BookOfMudora', 'L4Sword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'TitansMitt', 'Hammer', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'TitansMitt', 'Hammer', 'BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'TitansMitt', 'Hammer', 'BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['Flute', 'MoonPearl', 'TitansMitt', 'Hammer', 'BookOfMudora', 'L4Sword']], + ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot', 'BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot', 'BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot', 'BookOfMudora', 'L4Sword']], + ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot', 'BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot', 'BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot', 'BookOfMudora', 'L4Sword']], + ["Ether Tablet", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer', 'BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer', 'BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer', 'BookOfMudora', 'L4Sword']], + ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'MoonPearl', 'Hammer', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'MoonPearl', 'Hammer', 'BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'MoonPearl', 'Hammer', 'BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'MoonPearl', 'Hammer', 'BookOfMudora', 'L4Sword']], + + ["Spectacle Rock", false, []], + ["Spectacle Rock", false, [], ['MoonPearl']], + ["Spectacle Rock", false, [], ['Gloves', 'Flute']], + ["Spectacle Rock", false, [], ['Lamp', 'Flute']], + ["Spectacle Rock", false, [], ['TitansMitt', 'Hookshot']], + ["Spectacle Rock", false, [], ['Hammer']], + ["Spectacle Rock", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot']], + ["Spectacle Rock", true, ['Flute', 'MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot']], + ["Spectacle Rock", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer']], + ["Spectacle Rock", true, ['Flute', 'MoonPearl', 'TitansMitt', 'Hammer']], + ["Spectacle Rock", true, ['ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot']], + ["Spectacle Rock", true, ['PowerGlove', 'Lamp', 'MoonPearl', 'Hammer', 'Hookshot']], + ["Spectacle Rock", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MoonPearl', 'Hammer']], + ["Spectacle Rock", true, ['TitansMitt', 'Lamp', 'MoonPearl', 'Hammer']], + + ]; + } +} diff --git a/tests/Inverted/DeathMountain/WestTest.php b/tests/Inverted/DeathMountain/WestTest.php new file mode 100644 index 000000000..ddb46d8cf --- /dev/null +++ b/tests/Inverted/DeathMountain/WestTest.php @@ -0,0 +1,75 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Old Man", false, []], + ["Old Man", false, [], ['Gloves', 'Flute']], + ["Old Man", false, [], ['Lamp']], + ["Old Man", true, ['ProgressiveGlove', 'Lamp']], + ["Old Man", true, ['PowerGlove', 'Lamp']], + ["Old Man", true, ['TitansMitt', 'Lamp']], + ["Old Man", true, ['OcarinaActive', 'Lamp']], + + ["Spectacle Rock Cave", false, []], + ["Spectacle Rock Cave", false, [], ['Gloves', 'Flute']], + ["Spectacle Rock Cave", false, [], ['Lamp', 'Flute']], + ["Spectacle Rock Cave", false, ['Flute', 'ProgressiveGlove', 'Hammer']], + ["Spectacle Rock Cave", false, ['Flute', 'PowerGlove', 'Hammer']], + ["Spectacle Rock Cave", false, ['Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer']], + ["Spectacle Rock Cave", false, ['Flute', 'TitansMitt']], + ["Spectacle Rock Cave", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Spectacle Rock Cave", true, ['Flute', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Spectacle Rock Cave", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer']], + ["Spectacle Rock Cave", true, ['Flute', 'MoonPearl', 'TitansMitt']], + ["Spectacle Rock Cave", true, ['ProgressiveGlove', 'Lamp']], + ["Spectacle Rock Cave", true, ['PowerGlove', 'Lamp']], + ["Spectacle Rock Cave", true, ['TitansMitt', 'Lamp']], + ]; + } +} diff --git a/tests/Inverted/DesertPalaceTest.php b/tests/Inverted/DesertPalaceTest.php new file mode 100644 index 000000000..67480ebc9 --- /dev/null +++ b/tests/Inverted/DesertPalaceTest.php @@ -0,0 +1,300 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Desert Palace') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [false, []], + [false, [], ['BookOfMudora']], + [false, [], ['MoonPearl']], + [true, ['BookOfMudora', 'MoonPearl', 'DefeatAgahnim']], + [true, ['BookOfMudora', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + [true, ['BookOfMudora', 'MoonPearl', 'PowerGlove', 'Hammer']], + [true, ['BookOfMudora', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + [true, ['BookOfMudora', 'MoonPearl', 'TitansMitt']], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Desert Palace - Big Key Chest", false, 'KeyP2', [], ['KeyP2']], + ["Desert Palace - Compass Chest", false, 'KeyP2', [], ['KeyP2']], + + ["Desert Palace - Big Chest", false, 'BigKeyP2', [], ['BigKeyP2']], + + ["Desert Palace - Boss", false, 'BigKeyP2', [], ['BigKeyP2']], + ["Desert Palace - Boss", false, 'KeyP2', [], ['KeyP2']], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Desert Palace - Map Chest", false, []], + ["Desert Palace - Map Chest", false, [], ['BookOfMudora']], + ["Desert Palace - Map Chest", false, [], ['MoonPearl']], + ["Desert Palace - Map Chest", true, ['BookOfMudora', 'MoonPearl', 'MoonPearl', 'DefeatAgahnim']], + ["Desert Palace - Map Chest", true, ['BookOfMudora', 'MoonPearl', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Desert Palace - Map Chest", true, ['BookOfMudora', 'MoonPearl', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Desert Palace - Map Chest", true, ['BookOfMudora', 'MoonPearl', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Desert Palace - Map Chest", true, ['BookOfMudora', 'MoonPearl', 'MoonPearl', 'TitansMitt']], + + ["Desert Palace - Big Chest", false, []], + ["Desert Palace - Big Chest", false, [], ['BookOfMudora']], + ["Desert Palace - Big Chest", false, [], ['BigKeyP2']], + ["Desert Palace - Big Chest", false, [], ['MoonPearl']], + ["Desert Palace - Big Chest", true, ['BookOfMudora', 'BigKeyP2', 'MoonPearl', 'DefeatAgahnim']], + ["Desert Palace - Big Chest", true, ['BookOfMudora', 'BigKeyP2', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Desert Palace - Big Chest", true, ['BookOfMudora', 'BigKeyP2', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Desert Palace - Big Chest", true, ['BookOfMudora', 'BigKeyP2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Desert Palace - Big Chest", true, ['BookOfMudora', 'BigKeyP2', 'MoonPearl', 'TitansMitt']], + + ["Desert Palace - Torch", false, []], + ["Desert Palace - Torch", false, [], ['BookOfMudora']], + ["Desert Palace - Torch", false, [], ['MoonPearl']], + ["Desert Palace - Torch", false, [], ['PegasusBoots']], + ["Desert Palace - Torch", true, ['BookOfMudora', 'PegasusBoots', 'MoonPearl', 'DefeatAgahnim']], + ["Desert Palace - Torch", true, ['BookOfMudora', 'PegasusBoots', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Desert Palace - Torch", true, ['BookOfMudora', 'PegasusBoots', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Desert Palace - Torch", true, ['BookOfMudora', 'PegasusBoots', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Desert Palace - Torch", true, ['BookOfMudora', 'PegasusBoots', 'MoonPearl', 'TitansMitt']], + + ["Desert Palace - Compass Chest", false, []], + ["Desert Palace - Compass Chest", false, [], ['BookOfMudora']], + ["Desert Palace - Compass Chest", false, [], ['MoonPearl']], + ["Desert Palace - Compass Chest", false, [], ['KeyP2']], + ["Desert Palace - Compass Chest", true, ['BookOfMudora', 'KeyP2', 'MoonPearl', 'DefeatAgahnim']], + ["Desert Palace - Compass Chest", true, ['BookOfMudora', 'KeyP2', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Desert Palace - Compass Chest", true, ['BookOfMudora', 'KeyP2', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Desert Palace - Compass Chest", true, ['BookOfMudora', 'KeyP2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Desert Palace - Compass Chest", true, ['BookOfMudora', 'KeyP2', 'MoonPearl', 'TitansMitt']], + + ["Desert Palace - Big Key Chest", false, []], + ["Desert Palace - Big Key Chest", false, [], ['BookOfMudora']], + ["Desert Palace - Big Key Chest", false, [], ['MoonPearl']], + ["Desert Palace - Big Key Chest", false, [], ['KeyP2']], + ["Desert Palace - Big Key Chest", true, ['BookOfMudora', 'KeyP2', 'MoonPearl', 'DefeatAgahnim']], + ["Desert Palace - Big Key Chest", true, ['BookOfMudora', 'KeyP2', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Desert Palace - Big Key Chest", true, ['BookOfMudora', 'KeyP2', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Desert Palace - Big Key Chest", true, ['BookOfMudora', 'KeyP2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Desert Palace - Big Key Chest", true, ['BookOfMudora', 'KeyP2', 'MoonPearl', 'TitansMitt']], + + ["Desert Palace - Boss", false, []], + ["Desert Palace - Boss", false, [], ['KeyP2']], + ["Desert Palace - Boss", false, [], ['BigKeyP2']], + ["Desert Palace - Boss", false, [], ['BookOfMudora']], + ["Desert Palace - Boss", false, [], ['MoonPearl']], + ["Desert Palace - Boss", false, [], ['Gloves']], + ["Desert Palace - Boss", false, [], ['Lamp', 'FireRod']], + ["Desert Palace - Boss", true, ['UncleSword', 'MoonPearl', 'ProgressiveGlove', 'DefeatAgahnim', 'KeyP2', 'BookOfMudora', 'Lamp', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['UncleSword', 'MoonPearl', 'PowerGlove', 'DefeatAgahnim', 'KeyP2', 'BookOfMudora', 'Lamp', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'KeyP2', 'BookOfMudora', 'Lamp', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'KeyP2', 'BookOfMudora', 'Lamp', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['UncleSword', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'KeyP2', 'BookOfMudora', 'Lamp', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['UncleSword', 'MoonPearl', 'TitansMitt', 'KeyP2', 'BookOfMudora', 'Lamp', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['UncleSword', 'MoonPearl', 'ProgressiveGlove', 'DefeatAgahnim', 'KeyP2', 'BookOfMudora', 'FireRod', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['UncleSword', 'MoonPearl', 'PowerGlove', 'DefeatAgahnim', 'KeyP2', 'BookOfMudora', 'FireRod', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'KeyP2', 'BookOfMudora', 'FireRod', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'KeyP2', 'BookOfMudora', 'FireRod', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['UncleSword', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'KeyP2', 'BookOfMudora', 'FireRod', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['UncleSword', 'MoonPearl', 'TitansMitt', 'KeyP2', 'BookOfMudora', 'FireRod', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['UncleSword', 'MoonPearl', 'TitansMitt', 'KeyP2', 'BookOfMudora', 'FireRod', 'BigKeyP2']], + ]; + } + + /** + * @dataProvider dungeonItemsPool + */ + public function testRegionLockedItems(bool $access, string $item_name, bool $free = null, string $config = null) + { + if ($config) { + config([$config => $free]); + } + + $this->assertEquals($access, $this->world->getRegion('Desert Palace')->canFill(Item::get($item_name, $this->world))); + } + + public function dungeonItemsPool() + { + return [ + [true, 'Key'], + [false, 'KeyH2'], + [false, 'KeyH1'], + [false, 'KeyP1'], + [true, 'KeyP2'], + [false, 'KeyA1'], + [false, 'KeyD2'], + [false, 'KeyD1'], + [false, 'KeyD6'], + [false, 'KeyD3'], + [false, 'KeyD5'], + [false, 'KeyP3'], + [false, 'KeyD4'], + [false, 'KeyD7'], + [false, 'KeyA2'], + + [true, 'BigKey'], + [false, 'BigKeyH2'], + [false, 'BigKeyH1'], + [false, 'BigKeyP1'], + [true, 'BigKeyP2'], + [false, 'BigKeyA1'], + [false, 'BigKeyD2'], + [false, 'BigKeyD1'], + [false, 'BigKeyD6'], + [false, 'BigKeyD3'], + [false, 'BigKeyD5'], + [false, 'BigKeyP3'], + [false, 'BigKeyD4'], + [false, 'BigKeyD7'], + [false, 'BigKeyA2'], + + [true, 'Map', false, 'region.wildMaps'], + [true, 'Map', true, 'region.wildMaps'], + [false, 'MapH2', false, 'region.wildMaps'], + [true, 'MapH2', true, 'region.wildMaps'], + [false, 'MapH1', false, 'region.wildMaps'], + [true, 'MapH1', true, 'region.wildMaps'], + [false, 'MapP1', false, 'region.wildMaps'], + [true, 'MapP1', true, 'region.wildMaps'], + [true, 'MapP2', false, 'region.wildMaps'], + [true, 'MapP2', true, 'region.wildMaps'], + [false, 'MapA1', false, 'region.wildMaps'], + [true, 'MapA1', true, 'region.wildMaps'], + [false, 'MapD2', false, 'region.wildMaps'], + [true, 'MapD2', true, 'region.wildMaps'], + [false, 'MapD1', false, 'region.wildMaps'], + [true, 'MapD1', true, 'region.wildMaps'], + [false, 'MapD6', false, 'region.wildMaps'], + [true, 'MapD6', true, 'region.wildMaps'], + [false, 'MapD3', false, 'region.wildMaps'], + [true, 'MapD3', true, 'region.wildMaps'], + [false, 'MapD5', false, 'region.wildMaps'], + [true, 'MapD5', true, 'region.wildMaps'], + [false, 'MapP3', false, 'region.wildMaps'], + [true, 'MapP3', true, 'region.wildMaps'], + [false, 'MapD4', false, 'region.wildMaps'], + [true, 'MapD4', true, 'region.wildMaps'], + [false, 'MapD7', false, 'region.wildMaps'], + [true, 'MapD7', true, 'region.wildMaps'], + [false, 'MapA2', false, 'region.wildMaps'], + [true, 'MapA2', true, 'region.wildMaps'], + + [true, 'Compass', false, 'region.wildCompasses'], + [true, 'Compass', true, 'region.wildCompasses'], + [false, 'CompassH2', false, 'region.wildCompasses'], + [true, 'CompassH2', true, 'region.wildCompasses'], + [false, 'CompassH1', false, 'region.wildCompasses'], + [true, 'CompassH1', true, 'region.wildCompasses'], + [false, 'CompassP1', false, 'region.wildCompasses'], + [true, 'CompassP1', true, 'region.wildCompasses'], + [true, 'CompassP2', false, 'region.wildCompasses'], + [true, 'CompassP2', true, 'region.wildCompasses'], + [false, 'CompassA1', false, 'region.wildCompasses'], + [true, 'CompassA1', true, 'region.wildCompasses'], + [false, 'CompassD2', false, 'region.wildCompasses'], + [true, 'CompassD2', true, 'region.wildCompasses'], + [false, 'CompassD1', false, 'region.wildCompasses'], + [true, 'CompassD1', true, 'region.wildCompasses'], + [false, 'CompassD6', false, 'region.wildCompasses'], + [true, 'CompassD6', true, 'region.wildCompasses'], + [false, 'CompassD3', false, 'region.wildCompasses'], + [true, 'CompassD3', true, 'region.wildCompasses'], + [false, 'CompassD5', false, 'region.wildCompasses'], + [true, 'CompassD5', true, 'region.wildCompasses'], + [false, 'CompassP3', false, 'region.wildCompasses'], + [true, 'CompassP3', true, 'region.wildCompasses'], + [false, 'CompassD4', false, 'region.wildCompasses'], + [true, 'CompassD4', true, 'region.wildCompasses'], + [false, 'CompassD7', false, 'region.wildCompasses'], + [true, 'CompassD7', true, 'region.wildCompasses'], + [false, 'CompassA2', false, 'region.wildCompasses'], + [true, 'CompassA2', true, 'region.wildCompasses'], + ]; + } +} diff --git a/tests/Inverted/EasternPalaceTest.php b/tests/Inverted/EasternPalaceTest.php new file mode 100644 index 000000000..6a840d998 --- /dev/null +++ b/tests/Inverted/EasternPalaceTest.php @@ -0,0 +1,254 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Eastern Palace - Compass Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Cannonball Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Big Chest", false, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Map Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Big Key Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Boss", false, 'BigKeyP1', [], ['BigKeyP1']], + ]; + } + + public function accessPool() + { + return [ + ["Eastern Palace - Compass Chest", false, []], + ["Eastern Palace - Compass Chest", false, [], ['MoonPearl']], + ["Eastern Palace - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim']], + ["Eastern Palace - Compass Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Eastern Palace - Compass Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Eastern Palace - Compass Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Eastern Palace - Compass Chest", true, ['MoonPearl', 'TitansMitt']], + + ["Eastern Palace - Cannonball Chest", false, []], + ["Eastern Palace - Cannonball Chest", false, [], ['MoonPearl']], + ["Eastern Palace - Cannonball Chest", true, ['MoonPearl', 'DefeatAgahnim', ]], + ["Eastern Palace - Cannonball Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Eastern Palace - Cannonball Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Eastern Palace - Cannonball Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Eastern Palace - Cannonball Chest", true, ['MoonPearl', 'TitansMitt']], + + ["Eastern Palace - Big Chest", false, []], + ["Eastern Palace - Big Chest", false, [], ['MoonPearl']], + ["Eastern Palace - Big Chest", false, [], ['BigKeyP1']], + ["Eastern Palace - Big Chest", true, ['BigKeyP1', 'MoonPearl', 'DefeatAgahnim']], + ["Eastern Palace - Big Chest", true, ['BigKeyP1', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Eastern Palace - Big Chest", true, ['BigKeyP1', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Eastern Palace - Big Chest", true, ['BigKeyP1', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Eastern Palace - Big Chest", true, ['BigKeyP1', 'MoonPearl', 'TitansMitt']], + + ["Eastern Palace - Map Chest", false, []], + ["Eastern Palace - Map Chest", false, [], ['MoonPearl']], + ["Eastern Palace - Map Chest", true, ['MoonPearl', 'DefeatAgahnim']], + ["Eastern Palace - Map Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Eastern Palace - Map Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Eastern Palace - Map Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Eastern Palace - Map Chest", true, ['MoonPearl', 'TitansMitt']], + + ["Eastern Palace - Big Key Chest", false, []], + ["Eastern Palace - Big Key Chest", false, [], ['MoonPearl']], + ["Eastern Palace - Big Key Chest", false, [], ['Lamp']], + ["Eastern Palace - Big Key Chest", true, ['Lamp', 'MoonPearl', 'DefeatAgahnim']], + ["Eastern Palace - Big Key Chest", true, ['Lamp', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Eastern Palace - Big Key Chest", true, ['Lamp', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Eastern Palace - Big Key Chest", true, ['Lamp', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Eastern Palace - Big Key Chest", true, ['Lamp', 'MoonPearl', 'TitansMitt']], + + ["Eastern Palace - Boss", false, []], + ["Eastern Palace - Boss", false, [], ['MoonPearl']], + ["Eastern Palace - Boss", false, [], ['Lamp']], + ["Eastern Palace - Boss", false, [], ['AnyBow']], + ["Eastern Palace - Boss", false, [], ['BigKeyP1']], + ["Eastern Palace - Boss", true, ['Lamp', 'BowAndArrows', 'BigKeyP1', 'MoonPearl', 'DefeatAgahnim']], + ["Eastern Palace - Boss", true, ['Lamp', 'BowAndArrows', 'BigKeyP1', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Eastern Palace - Boss", true, ['Lamp', 'BowAndArrows', 'BigKeyP1', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Eastern Palace - Boss", true, ['Lamp', 'BowAndArrows', 'BigKeyP1', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Eastern Palace - Boss", true, ['Lamp', 'BowAndArrows', 'BigKeyP1', 'MoonPearl', 'TitansMitt']], + ]; + } + + /** + * @dataProvider dungeonItemsPool + */ + public function testRegionLockedItems(bool $access, string $item_name, bool $free = null, string $config = null) + { + if ($config) { + config([$config => $free]); + } + + $this->assertEquals($access, $this->world->getRegion('Eastern Palace')->canFill(Item::get($item_name, $this->world))); + } + + public function dungeonItemsPool() + { + return [ + [true, 'Key'], + [false, 'KeyH2'], + [false, 'KeyH1'], + [true, 'KeyP1'], + [false, 'KeyP2'], + [false, 'KeyA1'], + [false, 'KeyD2'], + [false, 'KeyD1'], + [false, 'KeyD6'], + [false, 'KeyD3'], + [false, 'KeyD5'], + [false, 'KeyP3'], + [false, 'KeyD4'], + [false, 'KeyD7'], + [false, 'KeyA2'], + + [true, 'BigKey'], + [false, 'BigKeyH2'], + [false, 'BigKeyH1'], + [true, 'BigKeyP1'], + [false, 'BigKeyP2'], + [false, 'BigKeyA1'], + [false, 'BigKeyD2'], + [false, 'BigKeyD1'], + [false, 'BigKeyD6'], + [false, 'BigKeyD3'], + [false, 'BigKeyD5'], + [false, 'BigKeyP3'], + [false, 'BigKeyD4'], + [false, 'BigKeyD7'], + [false, 'BigKeyA2'], + + [true, 'Map', false, 'region.wildMaps'], + [true, 'Map', true, 'region.wildMaps'], + [false, 'MapH2', false, 'region.wildMaps'], + [true, 'MapH2', true, 'region.wildMaps'], + [false, 'MapH1', false, 'region.wildMaps'], + [true, 'MapH1', true, 'region.wildMaps'], + [true, 'MapP1', false, 'region.wildMaps'], + [true, 'MapP1', true, 'region.wildMaps'], + [false, 'MapP2', false, 'region.wildMaps'], + [true, 'MapP2', true, 'region.wildMaps'], + [false, 'MapA1', false, 'region.wildMaps'], + [true, 'MapA1', true, 'region.wildMaps'], + [false, 'MapD2', false, 'region.wildMaps'], + [true, 'MapD2', true, 'region.wildMaps'], + [false, 'MapD1', false, 'region.wildMaps'], + [true, 'MapD1', true, 'region.wildMaps'], + [false, 'MapD6', false, 'region.wildMaps'], + [true, 'MapD6', true, 'region.wildMaps'], + [false, 'MapD3', false, 'region.wildMaps'], + [true, 'MapD3', true, 'region.wildMaps'], + [false, 'MapD5', false, 'region.wildMaps'], + [true, 'MapD5', true, 'region.wildMaps'], + [false, 'MapP3', false, 'region.wildMaps'], + [true, 'MapP3', true, 'region.wildMaps'], + [false, 'MapD4', false, 'region.wildMaps'], + [true, 'MapD4', true, 'region.wildMaps'], + [false, 'MapD7', false, 'region.wildMaps'], + [true, 'MapD7', true, 'region.wildMaps'], + [false, 'MapA2', false, 'region.wildMaps'], + [true, 'MapA2', true, 'region.wildMaps'], + + [true, 'Compass', false, 'region.wildCompasses'], + [true, 'Compass', true, 'region.wildCompasses'], + [false, 'CompassH2', false, 'region.wildCompasses'], + [true, 'CompassH2', true, 'region.wildCompasses'], + [false, 'CompassH1', false, 'region.wildCompasses'], + [true, 'CompassH1', true, 'region.wildCompasses'], + [true, 'CompassP1', false, 'region.wildCompasses'], + [true, 'CompassP1', true, 'region.wildCompasses'], + [false, 'CompassP2', false, 'region.wildCompasses'], + [true, 'CompassP2', true, 'region.wildCompasses'], + [false, 'CompassA1', false, 'region.wildCompasses'], + [true, 'CompassA1', true, 'region.wildCompasses'], + [false, 'CompassD2', false, 'region.wildCompasses'], + [true, 'CompassD2', true, 'region.wildCompasses'], + [false, 'CompassD1', false, 'region.wildCompasses'], + [true, 'CompassD1', true, 'region.wildCompasses'], + [false, 'CompassD6', false, 'region.wildCompasses'], + [true, 'CompassD6', true, 'region.wildCompasses'], + [false, 'CompassD3', false, 'region.wildCompasses'], + [true, 'CompassD3', true, 'region.wildCompasses'], + [false, 'CompassD5', false, 'region.wildCompasses'], + [true, 'CompassD5', true, 'region.wildCompasses'], + [false, 'CompassP3', false, 'region.wildCompasses'], + [true, 'CompassP3', true, 'region.wildCompasses'], + [false, 'CompassD4', false, 'region.wildCompasses'], + [true, 'CompassD4', true, 'region.wildCompasses'], + [false, 'CompassD7', false, 'region.wildCompasses'], + [true, 'CompassD7', true, 'region.wildCompasses'], + [false, 'CompassA2', false, 'region.wildCompasses'], + [true, 'CompassA2', true, 'region.wildCompasses'], + ]; + } +} diff --git a/tests/Inverted/GanonsTowerTest.php b/tests/Inverted/GanonsTowerTest.php new file mode 100644 index 000000000..1eda35a5f --- /dev/null +++ b/tests/Inverted/GanonsTowerTest.php @@ -0,0 +1,622 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + + public function fillPool() + { + return [ + ["Ganon's Tower - Bob's Torch", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Top Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Top Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Bottom Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Bottom Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Top Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Top Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Bottom Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Bottom Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Firesnake Room", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Map Chest", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Chest", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Hope Room - Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Hope Room - Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Bob's Chest", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Tile Room", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Top Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Top Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Bottom Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Bottom Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Key Chest", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Key Room - Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Key Room - Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Mini Helmasaur Room - Left", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Mini Helmasaur Room - Right", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Pre-Moldorm Chest", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Moldorm Chest", false, 'BigKeyA2', [], ['BigKeyA2']], + ]; + } + + public function accessPool() + { + return [ + ["Ganon's Tower - Bob's Torch", false, []], + ["Ganon's Tower - Bob's Torch", false, [], ['MoonPearl']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal1']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal2']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal3']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal4']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal5']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal6']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal7']], + ["Ganon's Tower - Bob's Torch", false, [], ['PegasusBoots']], + ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'DefeatAgahnim', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'TitansMitt', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Top Left", false, []], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['MoonPearl']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'PowerGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Top Right", false, []], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['MoonPearl']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'PowerGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Bottom Left", false, []], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['MoonPearl']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'PowerGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Bottom Right", false, []], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['MoonPearl']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'PowerGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Top Left", false, []], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['MoonPearl']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Top Right", false, []], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['MoonPearl']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Bottom Left", false, []], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['MoonPearl']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Bottom Right", false, []], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['MoonPearl']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Firesnake Room", false, []], + ["Ganon's Tower - Firesnake Room", false, [], ['MoonPearl']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal1']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal2']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal3']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal4']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal5']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal6']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal7']], + ["Ganon's Tower - Firesnake Room", false, [], ['Hammer']], + ["Ganon's Tower - Firesnake Room", false, [], ['Hookshot']], + ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Map Chest", false, []], + ["Ganon's Tower - Map Chest", false, [], ['MoonPearl']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Map Chest", false, [], ['Hammer']], + ["Ganon's Tower - Map Chest", false, [], ['Hookshot', 'PegasusBoots']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Chest", false, []], + ["Ganon's Tower - Big Chest", false, [], ['MoonPearl']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Big Chest", false, [], ['BigKeyA2']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Hope Room - Left", false, []], + ["Ganon's Tower - Hope Room - Left", false, [], ['MoonPearl']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal1']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal2']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal3']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal4']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal5']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal6']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal7']], + ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Hope Room - Right", false, []], + ["Ganon's Tower - Hope Room - Right", false, [], ['MoonPearl']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal1']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal2']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal3']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal4']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal5']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal6']], + ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Bob's Chest", false, []], + ["Ganon's Tower - Bob's Chest", false, [], ['MoonPearl']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Tile Room", false, []], + ["Ganon's Tower - Tile Room", false, [], ['MoonPearl']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal1']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal2']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal3']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal4']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal5']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal6']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal7']], + ["Ganon's Tower - Tile Room", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'DefeatAgahnim', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'TitansMitt', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Top Left", false, []], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['MoonPearl']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Top Right", false, []], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['MoonPearl']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Bottom Left", false, []], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['MoonPearl']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Bottom Right", false, []], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['MoonPearl']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Key Chest", false, []], + ["Ganon's Tower - Big Key Chest", false, [], ['MoonPearl']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Key Room - Left", false, []], + ["Ganon's Tower - Big Key Room - Left", false, [], ['MoonPearl']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal1']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal2']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal3']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal4']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal5']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal6']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Key Room - Right", false, []], + ["Ganon's Tower - Big Key Room - Right", false, [], ['MoonPearl']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal1']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal2']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal3']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal4']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal5']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal6']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Mini Helmasaur Room - Left", false, []], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['MoonPearl']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal1']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal2']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal3']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal4']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal5']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal6']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['AnyBow']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['BigKeyA2']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Mini Helmasaur Room - Right", false, []], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['MoonPearl']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal1']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal2']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal3']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal4']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal5']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal6']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['AnyBow']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['BigKeyA2']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Pre-Moldorm Chest", false, []], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['MoonPearl']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['AnyBow']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['BigKeyA2']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Moldorm Chest", false, []], + ["Ganon's Tower - Moldorm Chest", false, [], ['MoonPearl']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Hookshot']], + ["Ganon's Tower - Moldorm Chest", false, [], ['AnyBow']], + ["Ganon's Tower - Moldorm Chest", false, [], ['BigKeyA2']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'DefeatAgahnim', 'Hookshot', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Hookshot', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ]; + } +} diff --git a/tests/Inverted/HyruleCastleEscapeTest.php b/tests/Inverted/HyruleCastleEscapeTest.php new file mode 100644 index 000000000..8f8c17042 --- /dev/null +++ b/tests/Inverted/HyruleCastleEscapeTest.php @@ -0,0 +1,167 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + + ["Sanctuary", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Left", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Middle", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Right", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Dark Cross", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Boomerang Chest", false, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Map Chest", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Zelda's Cell", false, 'KeyH2', [], ['KeyH2']], + ]; + } + + public function accessPool() + { + return [ + ["Sanctuary", False, []], + ["Sanctuary", False, [], ['MoonPearl']], + ["Sanctuary", true, ['MoonPearl', 'DefeatAgahnim']], + ["Sanctuary", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sanctuary", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Sanctuary", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sanctuary", true, ['MoonPearl', 'TitansMitt']], + + ["Sewers - Secret Room - Left", false, []], + ["Sewers - Secret Room - Left", false, [], ['MoonPearl']], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'ProgressiveGlove', 'DefeatAgahnim']], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'PowerGlove', 'DefeatAgahnim']], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'TitansMitt']], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'DefeatAgahnim', 'Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Middle", false, []], + ["Sewers - Secret Room - Middle", false, [], ['MoonPearl']], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'ProgressiveGlove', 'DefeatAgahnim']], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'PowerGlove', 'DefeatAgahnim']], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'DefeatAgahnim', 'Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Right", false, []], + ["Sewers - Secret Room - Right", false, [], ['MoonPearl']], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'ProgressiveGlove', 'DefeatAgahnim']], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'PowerGlove', 'DefeatAgahnim']], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'TitansMitt']], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'DefeatAgahnim', 'Lamp', 'KeyH2']], + + ["Sewers - Dark Cross", False, []], + ["Sewers - Dark Cross", False, [], ['Lamp']], + ["Sewers - Dark Cross", False, [], ['MoonPearl']], + ["Sewers - Dark Cross", true, ['Lamp', 'MoonPearl', 'DefeatAgahnim']], + ["Sewers - Dark Cross", true, ['Lamp', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sewers - Dark Cross", true, ['Lamp', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Sewers - Dark Cross", true, ['Lamp', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sewers - Dark Cross", true, ['Lamp', 'MoonPearl', 'TitansMitt']], + + ["Hyrule Castle - Boomerang Chest", false, []], + ["Hyrule Castle - Boomerang Chest", false, [], ['KeyH2']], + ["Hyrule Castle - Boomerang Chest", false, [], ['MoonPearl']], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2', 'MoonPearl', 'DefeatAgahnim']], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2', 'MoonPearl', 'TitansMitt']], + + ["Hyrule Castle - Map Chest", false, []], + ["Hyrule Castle - Map Chest", false, [], ['MoonPearl']], + ["Hyrule Castle - Map Chest", true, ['MoonPearl', 'DefeatAgahnim']], + ["Hyrule Castle - Map Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Hyrule Castle - Map Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Hyrule Castle - Map Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Hyrule Castle - Map Chest", true, ['MoonPearl', 'TitansMitt']], + + ["Hyrule Castle - Zelda's Cell", false, []], + ["Hyrule Castle - Zelda's Cell", false, [], ['KeyH2']], + ["Hyrule Castle - Zelda's Cell", false, [], ['MoonPearl']], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2', 'MoonPearl', 'DefeatAgahnim']], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2', 'MoonPearl', 'TitansMitt']], + ]; + } +} diff --git a/tests/Inverted/HyruleCastleTowerTest.php b/tests/Inverted/HyruleCastleTowerTest.php new file mode 100644 index 000000000..13f5cd905 --- /dev/null +++ b/tests/Inverted/HyruleCastleTowerTest.php @@ -0,0 +1,105 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Hyrule Castle Tower') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [false, []], + [false, [], ['Flute', 'Gloves']], + [false, [], ['Flute', 'Lamp']], + [true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + [true, ['Flute', 'MoonPearl', 'PowerGlove', 'Hammer']], + [true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'UncleSword']], + [true, ['Flute', 'MoonPearl', 'TitansMitt', 'UncleSword']], + [true, ['ProgressiveGlove', 'Lamp', 'UncleSword']], + [true, ['PowerGlove', 'Lamp', 'UncleSword']], + [true, ['TitansMitt', 'Lamp', 'UncleSword']], + ]; + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider completePool + */ + public function testComplete(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Hyrule Castle Tower') + ->canComplete($this->world->getLocations(), $this->collected)); + } + + public function completePool() + { + return [ + [false, []], + [false, [], ['Lamp']], + [false, [], ['AnySword']], + [true, ['KeyA1', 'KeyA1', 'ProgressiveGlove', 'Lamp', 'UncleSword']], + [true, ['KeyA1', 'KeyA1', 'PowerGlove', 'Lamp', 'UncleSword']], + [true, ['KeyA1', 'KeyA1', 'TitansMitt', 'Lamp', 'UncleSword']], + [true, ['KeyA1', 'KeyA1', 'ProgressiveGlove', 'Lamp', 'ProgressiveSword']], + [true, ['KeyA1', 'KeyA1', 'PowerGlove', 'Lamp', 'ProgressiveSword']], + [true, ['KeyA1', 'KeyA1', 'TitansMitt', 'Lamp', 'ProgressiveSword']], + [true, ['KeyA1', 'KeyA1', 'ProgressiveGlove', 'Lamp', 'MasterSword']], + [true, ['KeyA1', 'KeyA1', 'PowerGlove', 'Lamp', 'MasterSword']], + [true, ['KeyA1', 'KeyA1', 'TitansMitt', 'Lamp', 'MasterSword']], + [true, ['KeyA1', 'KeyA1', 'ProgressiveGlove', 'Lamp', 'L3Sword']], + [true, ['KeyA1', 'KeyA1', 'PowerGlove', 'Lamp', 'L3Sword']], + [true, ['KeyA1', 'KeyA1', 'TitansMitt', 'Lamp', 'L3Sword']], + [true, ['KeyA1', 'KeyA1', 'ProgressiveGlove', 'Lamp', 'L4Sword']], + [true, ['KeyA1', 'KeyA1', 'PowerGlove', 'Lamp', 'L4Sword']], + [true, ['KeyA1', 'KeyA1', 'TitansMitt', 'Lamp', 'L4Sword']], + ]; + } +} diff --git a/tests/Inverted/IcePalaceTest.php b/tests/Inverted/IcePalaceTest.php new file mode 100644 index 000000000..7f750c629 --- /dev/null +++ b/tests/Inverted/IcePalaceTest.php @@ -0,0 +1,330 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Ice Palace - Big Key Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Compass Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Map Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Spike Room", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Freezor Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Iced T Room", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Big Chest", false, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Boss", false, 'BigKeyD5', [], ['BigKeyD5']], + ]; + } + + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Ice Palace - Big Key Chest", false, []], + ["Ice Palace - Big Key Chest", false, [], ['Flippers']], + ["Ice Palace - Big Key Chest", false, [], ['Hammer']], + ["Ice Palace - Big Key Chest", false, [], ['Gloves']], + ["Ice Palace - Big Key Chest", false, [], ['FireRod', 'Bombos']], + ["Ice Palace - Big Key Chest", false, [], ['FireRod', 'AnySword']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Flippers', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Flippers','Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Flippers', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Flippers','Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Flippers', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Flippers','Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + + ["Ice Palace - Compass Chest", false, []], + ["Ice Palace - Compass Chest", false, [], ['Flippers']], + ["Ice Palace - Compass Chest", false, [], ['FireRod', 'Bombos']], + ["Ice Palace - Compass Chest", false, [], ['FireRod', 'AnySword']], + ["Ice Palace - Compass Chest", true, ['Flippers', 'FireRod']], + ["Ice Palace - Compass Chest", true, ['Flippers', 'Bombos', 'UncleSword']], + ["Ice Palace - Compass Chest", true, ['Flippers', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Compass Chest", true, ['Flippers', 'Bombos', 'MasterSword']], + ["Ice Palace - Compass Chest", true, ['Flippers', 'Bombos', 'L3Sword']], + ["Ice Palace - Compass Chest", true, ['Flippers', 'Bombos', 'L4Sword']], + + ["Ice Palace - Map Chest", false, []], + ["Ice Palace - Map Chest", false, [], ['Flippers']], + ["Ice Palace - Map Chest", false, [], ['Hammer']], + ["Ice Palace - Map Chest", false, [], ['Gloves']], + ["Ice Palace - Map Chest", false, [], ['FireRod', 'Bombos']], + ["Ice Palace - Map Chest", false, [], ['FireRod', 'AnySword']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Flippers', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Flippers', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Flippers', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + + ["Ice Palace - Spike Room", false, []], + ["Ice Palace - Spike Room", false, [], ['Flippers']], + ["Ice Palace - Spike Room", false, [], ['FireRod', 'Bombos']], + ["Ice Palace - Spike Room", false, [], ['FireRod', 'AnySword']], + ["Ice Palace - Spike Room", true, ['Flippers', 'FireRod', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Flippers', 'Bombos', 'UncleSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Flippers', 'Bombos', 'ProgressiveSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Flippers', 'Bombos', 'MasterSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Flippers', 'Bombos', 'L3Sword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Flippers', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'Flippers', 'FireRod', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'Flippers', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'Flippers', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'Flippers', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'Flippers', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'Flippers', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'Flippers', 'FireRod', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'Flippers', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'Flippers', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'Flippers', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'Flippers', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'Flippers', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], + + + ["Ice Palace - Freezor Chest", false, []], + ["Ice Palace - Freezor Chest", false, [], ['Flippers']], + ["Ice Palace - Freezor Chest", false, [], ['FireRod', 'Bombos']], + ["Ice Palace - Freezor Chest", false, [], ['FireRod', 'AnySword']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'FireRod']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'Bombos', 'UncleSword']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'Bombos', 'MasterSword']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'Bombos', 'L3Sword']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'Bombos', 'L4Sword']], + + ["Ice Palace - Iced T Room", false, []], + ["Ice Palace - Iced T Room", false, [], ['Flippers']], + ["Ice Palace - Iced T Room", false, [], ['FireRod', 'Bombos']], + ["Ice Palace - Iced T Room", false, [], ['FireRod', 'AnySword']], + ["Ice Palace - Iced T Room", true, ['Flippers', 'FireRod']], + ["Ice Palace - Iced T Room", true, ['Flippers', 'Bombos', 'UncleSword']], + ["Ice Palace - Iced T Room", true, ['Flippers', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Iced T Room", true, ['Flippers', 'Bombos', 'MasterSword']], + ["Ice Palace - Iced T Room", true, ['Flippers', 'Bombos', 'L3Sword']], + ["Ice Palace - Iced T Room", true, ['Flippers', 'Bombos', 'L4Sword']], + + ["Ice Palace - Big Chest", false, []], + ["Ice Palace - Big Chest", false, [], ['Flippers']], + ["Ice Palace - Big Chest", false, [], ['BigKeyD5']], + ["Ice Palace - Big Chest", false, [], ['FireRod', 'Bombos']], + ["Ice Palace - Big Chest", false, [], ['FireRod', 'AnySword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5','Flippers', 'FireRod']], + ["Ice Palace - Big Chest", true, ['BigKeyD5','Flippers', 'Bombos', 'UncleSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5','Flippers', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5','Flippers', 'Bombos', 'MasterSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5','Flippers', 'Bombos', 'L3Sword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5','Flippers', 'Bombos', 'L4Sword']], + + ["Ice Palace - Boss", false, []], + ["Ice Palace - Boss", false, [], ['Flippers']], + ["Ice Palace - Boss", false, [], ['Hammer']], + ["Ice Palace - Boss", false, [], ['Gloves']], + ["Ice Palace - Boss", false, [], ['BigKeyD5']], + ["Ice Palace - Boss", false, [], ['FireRod', 'Bombos']], + ["Ice Palace - Boss", false, [], ['FireRod', 'AnySword']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ]; + } +} diff --git a/tests/Inverted/LightWorldTest.php b/tests/Inverted/LightWorldTest.php new file mode 100644 index 000000000..35a51a137 --- /dev/null +++ b/tests/Inverted/LightWorldTest.php @@ -0,0 +1,544 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Master Sword Pedestal", false, []], + ["Master Sword Pedestal", false, [], ['PendantOfCourage']], + ["Master Sword Pedestal", false, [], ['PendantOfWisdom']], + ["Master Sword Pedestal", false, [], ['PendantOfPower']], + ["Master Sword Pedestal", true, ['PendantOfCourage', 'PendantOfWisdom', 'PendantOfPower', 'DefeatAgahnim']], + ["Master Sword Pedestal", true, ['PendantOfCourage', 'PendantOfWisdom', 'PendantOfPower', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Master Sword Pedestal", true, ['PendantOfCourage', 'PendantOfWisdom', 'PendantOfPower', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Master Sword Pedestal", true, ['PendantOfCourage', 'PendantOfWisdom', 'PendantOfPower', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Master Sword Pedestal", true, ['PendantOfCourage', 'PendantOfWisdom', 'PendantOfPower', 'MoonPearl', 'TitansMitt']], + + ["Link's Uncle", false, []], + ["Link's Uncle", false, [], ['MoonPearl']], + ["Link's Uncle", true, ['MoonPearl', 'DefeatAgahnim']], + ["Link's Uncle", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Link's Uncle", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Link's Uncle", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Link's Uncle", true, ['MoonPearl', 'TitansMitt']], + + ["Secret Passage", false, []], + ["Secret Passage", false, [], ['MoonPearl']], + ["Secret Passage", true, ['MoonPearl', 'DefeatAgahnim']], + ["Secret Passage", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Secret Passage", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Secret Passage", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Secret Passage", true, ['MoonPearl', 'TitansMitt']], + + ["King's Tomb", false, []], + ["King's Tomb", false, [], ['PegasusBoots']], + ["King's Tomb", false, [], ['TitansMitt']], + ["King's Tomb", false, [], ['MoonPearl']], + ["King's Tomb", true, ['PegasusBoots', 'ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["King's Tomb", true, ['PegasusBoots', 'TitansMitt', 'MoonPearl']], + + ["Floodgate Chest", false, []], + ["Floodgate Chest", false, [], ['MoonPearl']], + ["Floodgate Chest", true, ['MoonPearl', 'DefeatAgahnim']], + ["Floodgate Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Floodgate Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Floodgate Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Floodgate Chest", true, ['MoonPearl', 'TitansMitt']], + + ["Kakariko Tavern", false, []], + ["Kakariko Tavern", false, [], ['MoonPearl']], + ["Kakariko Tavern", true, ['MoonPearl', 'DefeatAgahnim']], + ["Kakariko Tavern", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Kakariko Tavern", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Kakariko Tavern", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Kakariko Tavern", true, ['MoonPearl', 'TitansMitt']], + + ["Chicken House", false, []], + ["Chicken House", false, [], ['MoonPearl']], + ["Chicken House", true, ['MoonPearl', 'DefeatAgahnim']], + ["Chicken House", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Chicken House", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Chicken House", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Chicken House", true, ['MoonPearl', 'TitansMitt']], + + ["Aginah's Cave", false, []], + ["Aginah's Cave", false, [], ['MoonPearl']], + ["Aginah's Cave", true, ['MoonPearl', 'DefeatAgahnim']], + ["Aginah's Cave", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Aginah's Cave", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Aginah's Cave", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Aginah's Cave", true, ['MoonPearl', 'TitansMitt']], + + ["Sahasrahla's Hut - Left", false, []], + ["Sahasrahla's Hut - Left", false, [], ['MoonPearl']], + ["Sahasrahla's Hut - Left", true, ['MoonPearl', 'DefeatAgahnim']], + ["Sahasrahla's Hut - Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sahasrahla's Hut - Left", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Sahasrahla's Hut - Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sahasrahla's Hut - Left", true, ['MoonPearl', 'TitansMitt']], + + ["Sahasrahla's Hut - Middle", false, []], + ["Sahasrahla's Hut - Middle", false, [], ['MoonPearl']], + ["Sahasrahla's Hut - Middle", true, ['MoonPearl', 'DefeatAgahnim']], + ["Sahasrahla's Hut - Middle", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sahasrahla's Hut - Middle", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Sahasrahla's Hut - Middle", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sahasrahla's Hut - Middle", true, ['MoonPearl', 'TitansMitt']], + + ["Sahasrahla's Hut - Right", false, []], + ["Sahasrahla's Hut - Right", false, [], ['MoonPearl']], + ["Sahasrahla's Hut - Right", true, ['MoonPearl', 'DefeatAgahnim']], + ["Sahasrahla's Hut - Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sahasrahla's Hut - Right", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Sahasrahla's Hut - Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sahasrahla's Hut - Right", true, ['MoonPearl', 'TitansMitt']], + + ["Kakariko Well - Top", false, []], + ["Kakariko Well - Top", false, [], ['MoonPearl']], + ["Kakariko Well - Top", true, ['MoonPearl', 'DefeatAgahnim']], + ["Kakariko Well - Top", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Kakariko Well - Top", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Kakariko Well - Top", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Kakariko Well - Top", true, ['MoonPearl', 'TitansMitt']], + + ["Kakariko Well - Left", false, []], + ["Kakariko Well - Left", false, [], ['MoonPearl']], + ["Kakariko Well - Left", true, ['MoonPearl', 'DefeatAgahnim']], + ["Kakariko Well - Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Kakariko Well - Left", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Kakariko Well - Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Kakariko Well - Left", true, ['MoonPearl', 'TitansMitt']], + + ["Kakariko Well - Middle", false, []], + ["Kakariko Well - Middle", false, [], ['MoonPearl']], + ["Kakariko Well - Middle", true, ['MoonPearl', 'DefeatAgahnim']], + ["Kakariko Well - Middle", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Kakariko Well - Middle", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Kakariko Well - Middle", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Kakariko Well - Middle", true, ['MoonPearl', 'TitansMitt']], + + ["Kakariko Well - Right", false, []], + ["Kakariko Well - Right", false, [], ['MoonPearl']], + ["Kakariko Well - Right", true, ['MoonPearl', 'DefeatAgahnim']], + ["Kakariko Well - Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Kakariko Well - Right", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Kakariko Well - Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Kakariko Well - Right", true, ['MoonPearl', 'TitansMitt']], + + ["Kakariko Well - Bottom", false, []], + ["Kakariko Well - Bottom", false, [], ['MoonPearl']], + ["Kakariko Well - Bottom", true, ['MoonPearl', 'DefeatAgahnim']], + ["Kakariko Well - Bottom", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Kakariko Well - Bottom", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Kakariko Well - Bottom", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Kakariko Well - Bottom", true, ['MoonPearl', 'TitansMitt']], + + ["Blind's Hideout - Top", false, []], + ["Blind's Hideout - Top", false, [], ['MoonPearl']], + ["Blind's Hideout - Top", true, ['MoonPearl', 'DefeatAgahnim']], + ["Blind's Hideout - Top", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Blind's Hideout - Top", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Blind's Hideout - Top", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Blind's Hideout - Top", true, ['MoonPearl', 'TitansMitt']], + + ["Blind's Hideout - Left", false, []], + ["Blind's Hideout - Left", false, [], ['MoonPearl']], + ["Blind's Hideout - Left", true, ['MoonPearl', 'DefeatAgahnim']], + ["Blind's Hideout - Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Blind's Hideout - Left", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Blind's Hideout - Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Blind's Hideout - Left", true, ['MoonPearl', 'TitansMitt']], + + ["Blind's Hideout - Right", false, []], + ["Blind's Hideout - Right", false, [], ['MoonPearl']], + ["Blind's Hideout - Right", true, ['MoonPearl', 'DefeatAgahnim']], + ["Blind's Hideout - Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Blind's Hideout - Right", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Blind's Hideout - Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Blind's Hideout - Right", true, ['MoonPearl', 'TitansMitt']], + + ["Blind's Hideout - Far Left", false, []], + ["Blind's Hideout - Far Left", false, [], ['MoonPearl']], + ["Blind's Hideout - Far Left", true, ['MoonPearl', 'DefeatAgahnim']], + ["Blind's Hideout - Far Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Blind's Hideout - Far Left", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Blind's Hideout - Far Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Blind's Hideout - Far Left", true, ['MoonPearl', 'TitansMitt']], + + ["Blind's Hideout - Far Right", false, []], + ["Blind's Hideout - Far Right", false, [], ['MoonPearl']], + ["Blind's Hideout - Far Right", true, ['MoonPearl', 'DefeatAgahnim']], + ["Blind's Hideout - Far Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Blind's Hideout - Far Right", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Blind's Hideout - Far Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Blind's Hideout - Far Right", true, ['MoonPearl', 'TitansMitt']], + + ["Pegasus Rocks", false, []], + ["Pegasus Rocks", false, [], ['PegasusBoots']], + ["Pegasus Rocks", false, [], ['MoonPearl']], + ["Pegasus Rocks", true, ['PegasusBoots', 'MoonPearl', 'DefeatAgahnim']], + ["Pegasus Rocks", true, ['PegasusBoots', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Pegasus Rocks", true, ['PegasusBoots', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Pegasus Rocks", true, ['PegasusBoots', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Pegasus Rocks", true, ['PegasusBoots', 'MoonPearl', 'TitansMitt']], + + ["Mini Moldorm Cave - Far Left", false, []], + ["Mini Moldorm Cave - Far Left", false, [], ['MoonPearl']], + ["Mini Moldorm Cave - Far Left", true, ['MoonPearl', 'DefeatAgahnim']], + ["Mini Moldorm Cave - Far Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Mini Moldorm Cave - Far Left", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Mini Moldorm Cave - Far Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Mini Moldorm Cave - Far Left", true, ['MoonPearl', 'TitansMitt']], + + ["Mini Moldorm Cave - Left", false, []], + ["Mini Moldorm Cave - Left", false, [], ['MoonPearl']], + ["Mini Moldorm Cave - Left", true, ['MoonPearl', 'DefeatAgahnim']], + ["Mini Moldorm Cave - Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Mini Moldorm Cave - Left", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Mini Moldorm Cave - Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Mini Moldorm Cave - Left", true, ['MoonPearl', 'TitansMitt']], + + ["Mini Moldorm Cave - Right", false, []], + ["Mini Moldorm Cave - Right", false, [], ['MoonPearl']], + ["Mini Moldorm Cave - Right", true, ['MoonPearl', 'DefeatAgahnim']], + ["Mini Moldorm Cave - Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Mini Moldorm Cave - Right", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Mini Moldorm Cave - Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Mini Moldorm Cave - Right", true, ['MoonPearl', 'TitansMitt']], + + ["Mini Moldorm Cave - Far Right", false, []], + ["Mini Moldorm Cave - Far Right", false, [], ['MoonPearl']], + ["Mini Moldorm Cave - Far Right", true, ['MoonPearl', 'DefeatAgahnim']], + ["Mini Moldorm Cave - Far Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Mini Moldorm Cave - Far Right", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Mini Moldorm Cave - Far Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Mini Moldorm Cave - Far Right", true, ['MoonPearl', 'TitansMitt']], + + ["Ice Rod Cave", false, []], + ["Ice Rod Cave", false, [], ['MoonPearl']], + ["Ice Rod Cave", true, ['MoonPearl', 'DefeatAgahnim']], + ["Ice Rod Cave", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Ice Rod Cave", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Ice Rod Cave", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Ice Rod Cave", true, ['MoonPearl', 'TitansMitt']], + + ["Bottle Merchant", false, []], + ["Bottle Merchant", true, ['DefeatAgahnim']], + ["Bottle Merchant", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Bottle Merchant", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Bottle Merchant", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Bottle Merchant", true, ['MoonPearl', 'TitansMitt']], + + ["Sahasrahla", false, []], + ["Sahasrahla", false, [], ['PendantOfCourage']], + ["Sahasrahla", true, ['PendantOfCourage', 'DefeatAgahnim']], + ["Sahasrahla", true, ['PendantOfCourage', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sahasrahla", true, ['PendantOfCourage', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Sahasrahla", true, ['PendantOfCourage', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sahasrahla", true, ['PendantOfCourage', 'MoonPearl', 'TitansMitt']], + + ["Magic Bat", false, []], + ["Magic Bat", false, [], ['Powder']], + ["Magic Bat", false, [], ['Hammer']], + ["Magic Bat", false, [], ['MoonPearl']], + ["Magic Bat", false, ['Powder', 'Hammer', 'MoonPearl']], + ["Magic Bat", true, ['Powder', 'Hammer', 'MoonPearl', 'DefeatAgahnim']], + ["Magic Bat", true, ['Powder', 'Hammer', 'MoonPearl', 'ProgressiveGlove']], + ["Magic Bat", true, ['Powder', 'Hammer', 'MoonPearl', 'PowerGlove']], + ["Magic Bat", true, ['Powder', 'Hammer', 'MoonPearl', 'TitansMitt']], + + ["Sick Kid", false, []], + ["Sick Kid", false, [], ['AnyBottle']], + ["Sick Kid", false, ['BottleWithBee']], + ["Sick Kid", false, ['BottleWithFairy']], + ["Sick Kid", false, ['BottleWithRedPotion']], + ["Sick Kid", false, ['BottleWithGreenPotion']], + ["Sick Kid", false, ['BottleWithBluePotion']], + ["Sick Kid", false, ['Bottle']], + ["Sick Kid", false, ['BottleWithGoldBee']], + ["Sick Kid", true, ['BottleWithBee', 'DefeatAgahnim']], + ["Sick Kid", true, ['BottleWithBee', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithBee', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithBee', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sick Kid", true, ['BottleWithBee', 'MoonPearl', 'TitansMitt']], + ["Sick Kid", true, ['BottleWithFairy', 'DefeatAgahnim']], + ["Sick Kid", true, ['BottleWithFairy', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithFairy', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithFairy', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sick Kid", true, ['BottleWithFairy', 'MoonPearl', 'TitansMitt']], + ["Sick Kid", true, ['BottleWithRedPotion', 'DefeatAgahnim']], + ["Sick Kid", true, ['BottleWithRedPotion', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithRedPotion', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithRedPotion', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sick Kid", true, ['BottleWithRedPotion', 'MoonPearl', 'TitansMitt']], + ["Sick Kid", true, ['BottleWithGreenPotion', 'DefeatAgahnim']], + ["Sick Kid", true, ['BottleWithGreenPotion', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithGreenPotion', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithGreenPotion', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sick Kid", true, ['BottleWithGreenPotion', 'MoonPearl', 'TitansMitt']], + ["Sick Kid", true, ['BottleWithBluePotion', 'DefeatAgahnim']], + ["Sick Kid", true, ['BottleWithBluePotion', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithBluePotion', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithBluePotion', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sick Kid", true, ['BottleWithBluePotion', 'MoonPearl', 'TitansMitt']], + ["Sick Kid", true, ['Bottle', 'DefeatAgahnim']], + ["Sick Kid", true, ['Bottle', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sick Kid", true, ['Bottle', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Sick Kid", true, ['Bottle', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sick Kid", true, ['Bottle', 'MoonPearl', 'TitansMitt']], + ["Sick Kid", true, ['BottleWithGoldBee', 'DefeatAgahnim']], + ["Sick Kid", true, ['BottleWithGoldBee', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithGoldBee', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Sick Kid", true, ['BottleWithGoldBee', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sick Kid", true, ['BottleWithGoldBee', 'MoonPearl', 'TitansMitt']], + + ["Hobo", false, []], + ["Hobo", false, [], ['Flippers']], + ["Hobo", false, [], ['Flippers', 'MoonPearl']], + ["Hobo", true, ['Flippers', 'MoonPearl', 'DefeatAgahnim']], + ["Hobo", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Hobo", true, ['Flippers', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Hobo", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Hobo", true, ['Flippers', 'MoonPearl', 'TitansMitt']], + + ["Bombos Tablet", false, []], + ["Bombos Tablet", false, [], ['UpgradedSword']], + ["Bombos Tablet", false, [], ['BookOfMudora']], + ["Bombos Tablet", false, [], ['MoonPearl', 'DefeatAgahnim']], + ["Bombos Tablet", true, ['DefeatAgahnim', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Bombos Tablet", true, ['DefeatAgahnim','BookOfMudora', 'L2Sword']], + ["Bombos Tablet", true, ['DefeatAgahnim', 'BookOfMudora', 'L3Sword']], + ["Bombos Tablet", true, ['DefeatAgahnim', 'BookOfMudora', 'L4Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'ProgressiveGlove', 'ProgressiveGlove', 'ProgressiveSword', 'ProgressiveSword']], + ["Bombos Tablet", true, ['MoonPearl','BookOfMudora', 'ProgressiveGlove', 'ProgressiveGlove', 'L2Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'ProgressiveGlove', 'ProgressiveGlove', 'L3Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'ProgressiveGlove', 'ProgressiveGlove', 'L4Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'TitansMitt', 'ProgressiveSword', 'ProgressiveSword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'TitansMitt', 'L2Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'TitansMitt', 'L3Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'TitansMitt', 'L4Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'ProgressiveGlove', 'Hammer', 'ProgressiveSword', 'ProgressiveSword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'ProgressiveGlove', 'Hammer', 'L2Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'ProgressiveGlove', 'Hammer', 'L3Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'ProgressiveGlove', 'Hammer', 'L4Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'PowerGlove', 'Hammer', 'ProgressiveSword', 'ProgressiveSword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'PowerGlove', 'Hammer', 'L2Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'PowerGlove', 'Hammer', 'L3Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'PowerGlove', 'Hammer', 'L4Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'DefeatAgahnim', 'ProgressiveSword', 'ProgressiveSword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'DefeatAgahnim', 'L2Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'DefeatAgahnim', 'L3Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'DefeatAgahnim', 'L4Sword']], + + ["King Zora", false, []], + ["King Zora", false, [], ['Gloves', 'Flippers']], + ["King Zora", false, [], ['MoonPearl']], + ["King Zora", true, ['Flippers', 'MoonPearl', 'DefeatAgahnim']], + ["King Zora", true, ['ProgressiveGlove', 'MoonPearl', 'Hammer']], + ["King Zora", true, ['PowerGlove', 'MoonPearl', 'Hammer']], + ["King Zora", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["King Zora", true, ['TitansMitt', 'MoonPearl']], + + ["Lost Woods Hideout", false, []], + ["Lost Woods Hideout", false, [], ['MoonPearl']], + ["Lost Woods Hideout", true, ['MoonPearl', 'DefeatAgahnim']], + ["Lost Woods Hideout", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Lost Woods Hideout", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Lost Woods Hideout", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Lost Woods Hideout", true, ['MoonPearl', 'TitansMitt']], + + ["Lumberjack Tree", false, []], + ["Lumberjack Tree", false, [], ['PegasusBoots']], + ["Lumberjack Tree", false, [], ['DefeatAgahnim']], + ["Lumberjack Tree", false, [], ['MoonPearl']], + ["Lumberjack Tree", true, ['PegasusBoots', 'DefeatAgahnim', 'MoonPearl']], + + ["Cave 45", false, []], + ["Cave 45", false, [], ['MoonPearl']], + ["Cave 45", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Cave 45", true, ['MoonPearl', 'TitansMitt']], + ["Cave 45", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Cave 45", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Cave 45", true, ['MoonPearl', 'DefeatAgahnim']], + + ["Graveyard Ledge", false, []], + ["Graveyard Ledge", false, [], ['MoonPearl']], + ["Graveyard Ledge", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Graveyard Ledge", true, ['MoonPearl', 'TitansMitt']], + ["Graveyard Ledge", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Graveyard Ledge", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Graveyard Ledge", true, ['MoonPearl', 'DefeatAgahnim']], + + ["Checkerboard Cave", false, []], + ["Checkerboard Cave", false, [], ['Gloves']], + ["Checkerboard Cave", false, [], ['MoonPearl']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'DefeatAgahnim', 'MoonPearl']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'Hammer', 'MoonPearl']], + ["Checkerboard Cave", true, ['PowerGlove', 'Hammer', 'MoonPearl']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl']], + ["Checkerboard Cave", true, ['TitansMitt', 'MoonPearl']], + + ["Mini Moldorm Cave - NPC", false, []], + ["Mini Moldorm Cave - NPC", false, [], ['MoonPearl']], + ["Mini Moldorm Cave - NPC", true, ['MoonPearl', 'DefeatAgahnim']], + ["Mini Moldorm Cave - NPC", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Mini Moldorm Cave - NPC", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Mini Moldorm Cave - NPC", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Mini Moldorm Cave - NPC", true, ['MoonPearl', 'TitansMitt']], + + ["Library", false, []], + ["Library", false, [], ['PegasusBoots']], + ["Library", false, [], ['MoonPearl']], + ["Library", true, ['PegasusBoots', 'MoonPearl', 'DefeatAgahnim']], + ["Library", true, ['PegasusBoots', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Library", true, ['PegasusBoots', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Library", true, ['PegasusBoots', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Library", true, ['PegasusBoots', 'MoonPearl', 'TitansMitt']], + + ["Mushroom", false, []], + ["Mushroom", false, [], ['MoonPearl']], + ["Mushroom", true, ['MoonPearl', 'DefeatAgahnim']], + ["Mushroom", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Mushroom", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Mushroom", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Mushroom", true, ['MoonPearl', 'TitansMitt']], + + ["Potion Shop", false, []], + ["Potion Shop", false, [], ['Mushroom']], + ["Potion Shop", false, [], ['MoonPearl']], + ["Potion Shop", true, ['Mushroom', 'MoonPearl', 'DefeatAgahnim']], + ["Potion Shop", true, ['Mushroom', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Potion Shop", true, ['Mushroom', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Potion Shop", true, ['Mushroom', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Potion Shop", true, ['Mushroom', 'MoonPearl', 'TitansMitt']], + + ["Maze Race", false, []], + ["Maze Race", false, [], ['MoonPearl']], + ["Maze Race", true, ['MoonPearl', 'DefeatAgahnim']], + ["Maze Race", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Maze Race", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Maze Race", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Maze Race", true, ['MoonPearl', 'TitansMitt']], + + ["Desert Ledge", false, []], + ["Desert Ledge", false, [], ['BookOfMudora']], + ["Desert Ledge", false, [], ['MoonPearl']], + ["Desert Ledge", true, ['BookOfMudora', 'MoonPearl', 'DefeatAgahnim']], + ["Desert Ledge", true, ['BookOfMudora', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Desert Ledge", true, ['BookOfMudora', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Desert Ledge", true, ['BookOfMudora', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Desert Ledge", true, ['BookOfMudora', 'MoonPearl', 'TitansMitt']], + + ["Lake Hylia Island", false, []], + ["Lake Hylia Island", false, [], ['MoonPearl']], + ["Lake Hylia Island", false, [], ['Flippers']], + ["Lake Hylia Island", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Lake Hylia Island", true, ['Flippers', 'MoonPearl', 'TitansMitt']], + ["Lake Hylia Island", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Lake Hylia Island", true, ['Flippers', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Lake Hylia Island", true, ['Flippers', 'MoonPearl', 'DefeatAgahnim']], + + ["Sunken Treasure", false, []], + ["Sunken Treasure", false, [], ['MoonPearl']], + ["Sunken Treasure", true, ['MoonPearl', 'DefeatAgahnim']], + ["Sunken Treasure", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Sunken Treasure", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Sunken Treasure", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Sunken Treasure", true, ['MoonPearl', 'TitansMitt']], + + ["Zora's Ledge", false, []], + ["Zora's Ledge", false, [], ['Flippers']], + ["Zora's Ledge", false, [], ['MoonPearl']], + ["Zora's Ledge", true, ['Flippers', 'MoonPearl', 'DefeatAgahnim']], + ["Zora's Ledge", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Zora's Ledge", true, ['Flippers', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Zora's Ledge", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Zora's Ledge", true, ['Flippers', 'MoonPearl', 'TitansMitt']], + + ["Flute Spot", false, []], + ["Flute Spot", false, [], ['Shovel']], + ["Flute Spot", false, [], ['MoonPearl']], + ["Flute Spot", true, ['Shovel', 'MoonPearl', 'DefeatAgahnim']], + ["Flute Spot", true, ['Shovel', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Flute Spot", true, ['Shovel', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Flute Spot", true, ['Shovel', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Flute Spot", true, ['Shovel', 'MoonPearl', 'TitansMitt']], + + ["Waterfall Fairy - Left", false, []], + ["Waterfall Fairy - Left", false, [], ['Flippers']], + ["Waterfall Fairy - Left", false, [], ['MoonPearl']], + ["Waterfall Fairy - Left", true, ['Flippers', 'MoonPearl', 'DefeatAgahnim']], + ["Waterfall Fairy - Left", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Waterfall Fairy - Left", true, ['Flippers', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Waterfall Fairy - Left", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Waterfall Fairy - Left", true, ['Flippers', 'MoonPearl', 'TitansMitt']], + + ["Waterfall Fairy - Right", false, []], + ["Waterfall Fairy - Right", false, [], ['Flippers']], + ["Waterfall Fairy - Right", false, [], ['MoonPearl']], + ["Waterfall Fairy - Right", true, ['Flippers', 'MoonPearl', 'DefeatAgahnim']], + ["Waterfall Fairy - Right", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Waterfall Fairy - Right", true, ['Flippers', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Waterfall Fairy - Right", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Waterfall Fairy - Right", true, ['Flippers', 'MoonPearl', 'TitansMitt']], + + ["Bomb Merchant", false, []], + ["Bomb Merchant", false, [], ['Crystal5']], + ["Bomb Merchant", false, [], ['Crystal6']], + ["Bomb Merchant", false, [], ['MoonPearl']], + ["Bomb Merchant", true, ['Crystal5', 'Crystal6', 'MoonPearl', 'DefeatAgahnim']], + ["Bomb Merchant", true, ['Crystal5', 'Crystal6', 'MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Bomb Merchant", true, ['Crystal5', 'Crystal6', 'MoonPearl', 'PowerGlove', 'Hammer']], + ["Bomb Merchant", true, ['Crystal5', 'Crystal6', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Bomb Merchant", true, ['Crystal5', 'Crystal6', 'MoonPearl', 'TitansMitt']], + + ["Ganon", false, []], + ["Ganon", false, [], ['MoonPearl']], + ["Ganon", false, [], ['DefeatAgahnim2']], + ]; + } +} diff --git a/tests/Inverted/MiseryMireTest.php b/tests/Inverted/MiseryMireTest.php new file mode 100644 index 000000000..9f8d4bf08 --- /dev/null +++ b/tests/Inverted/MiseryMireTest.php @@ -0,0 +1,925 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->world->getLocation("Misery Mire Medallion")->setItem(Item::get('Ether', $this->world)); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Misery Mire - Big Chest", false, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Main Lobby", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Big Key Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Compass Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Bridge Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Map Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Spike Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Boss", false, 'BigKeyD6', [], ['BigKeyD6']], + ]; + } + + public function accessPool() + { + return [ + ["Misery Mire - Big Chest", false, []], + ["Misery Mire - Big Chest", false, [], ['Flute', 'MagicMirror']], + ["Misery Mire - Big Chest", false, [], ['BigKeyD6']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + + ["Misery Mire - Main Lobby", false, []], + ["Misery Mire - Main Lobby", false, [], ['Flute', 'MagicMirror']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + + ["Misery Mire - Big Key Chest", false, []], + ["Misery Mire - Big Key Chest", false, [], ['Flute', 'MagicMirror']], + ["Misery Mire - Big Key Chest", false, [], ['FireRod', 'Lamp']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + + ["Misery Mire - Compass Chest", false, []], + ["Misery Mire - Compass Chest", false, [], ['Flute', 'MagicMirror']], + ["Misery Mire - Compass Chest", false, [], ['FireRod', 'Lamp']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + + ["Misery Mire - Bridge Chest", false, []], + ["Misery Mire - Bridge Chest", false, [], ['Flute', 'MagicMirror']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + + ["Misery Mire - Map Chest", false, []], + ["Misery Mire - Map Chest", false, [], ['Flute', 'MagicMirror']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + + ["Misery Mire - Spike Chest", false, []], + ["Misery Mire - Spike Chest", false, [], ['Flute', 'MagicMirror']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + + ["Misery Mire - Boss", false, []], + ["Misery Mire - Boss", false, [], ['Flute', 'MagicMirror']], + ["Misery Mire - Boss", false, [], ['Lamp']], + ["Misery Mire - Boss", false, [], ['CaneOfSomaria']], + ["Misery Mire - Boss", false, [], ['BigKeyD6']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MagicMirror', 'DefeatAgahnim', 'Ether', 'L4Sword', 'Hookshot']], + ]; + } +} diff --git a/tests/Inverted/PalaceOfDarknessTest.php b/tests/Inverted/PalaceOfDarknessTest.php new file mode 100644 index 000000000..5d507db69 --- /dev/null +++ b/tests/Inverted/PalaceOfDarknessTest.php @@ -0,0 +1,300 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Palace of Darkness') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [false, []], + [true, ['Hammer']], + [true, ['Flippers']], + [true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + [true, ['Flute', 'MoonPearl', 'TitansMitt']], + [true, ['MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + [true, ['MagicMirror', 'DefeatAgahnim']], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Palace of Darkness - Big Key Chest", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - The Arena - Ledge", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - The Arena - Bridge", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Big Chest", false, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Compass Chest", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Harmless Hellway", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Stalfos Basement", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Basement - Left", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Basement - Right", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Map Chest", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Maze - Top", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Maze - Bottom", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Shooter Room", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Boss", false, 'BigKeyD1', [], ['BigKeyD1']], + ]; + } + + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Palace of Darkness - Big Key Chest", false, []], + ["Palace of Darkness - Big Key Chest", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flippers']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Hammer']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MagicMirror', 'DefeatAgahnim']], + + ["Palace of Darkness - The Arena - Ledge", false, []], + ["Palace of Darkness - The Arena - Ledge", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - The Arena - Ledge", false, [], ['AnyBow']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'Flippers']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'Hammer']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MagicMirror', 'DefeatAgahnim']], + + ["Palace of Darkness - The Arena - Bridge", false, []], + ["Palace of Darkness - The Arena - Bridge", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'Flippers']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'Hammer']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MagicMirror', 'DefeatAgahnim']], + ["Palace of Darkness - The Arena - Bridge", true, ['BowAndArrows', 'Hammer']], + + ["Palace of Darkness - Big Chest", false, []], + ["Palace of Darkness - Big Chest", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Big Chest", false, [], ['Lamp']], + ["Palace of Darkness - Big Chest", false, [], ['BigKeyD1']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'Flippers']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'Hammer']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'MagicMirror', 'DefeatAgahnim']], + + ["Palace of Darkness - Compass Chest", false, []], + ["Palace of Darkness - Compass Chest", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flippers']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Hammer']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MagicMirror', 'DefeatAgahnim']], + + ["Palace of Darkness - Harmless Hellway", false, []], + ["Palace of Darkness - Harmless Hellway", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flippers']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Hammer']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MagicMirror', 'DefeatAgahnim']], + + ["Palace of Darkness - Stalfos Basement", false, []], + ["Palace of Darkness - Stalfos Basement", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'Flippers']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'Hammer']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MagicMirror', 'DefeatAgahnim']], + ["Palace of Darkness - Stalfos Basement", true, ['BowAndArrows', 'Hammer']], + + ["Palace of Darkness - Dark Basement - Left", false, []], + ["Palace of Darkness - Dark Basement - Left", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Dark Basement - Left", false, [], ['Lamp']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flippers']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Hammer']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'DefeatAgahnim']], + + ["Palace of Darkness - Dark Basement - Right", false, []], + ["Palace of Darkness - Dark Basement - Right", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Dark Basement - Right", false, [], ['Lamp']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flippers']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Hammer']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'DefeatAgahnim']], + + ["Palace of Darkness - Map Chest", false, []], + ["Palace of Darkness - Map Chest", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Map Chest", false, [], ['AnyBow']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'Flippers']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'Hammer']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MagicMirror', 'DefeatAgahnim']], + + ["Palace of Darkness - Dark Maze - Top", false, []], + ["Palace of Darkness - Dark Maze - Top", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Dark Maze - Top", false, [], ['Lamp']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flippers']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Hammer']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'DefeatAgahnim']], + + ["Palace of Darkness - Dark Maze - Bottom", false, []], + ["Palace of Darkness - Dark Maze - Bottom", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Dark Maze - Bottom", false, [], ['Lamp']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flippers']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Hammer']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MagicMirror', 'DefeatAgahnim']], + + ["Palace of Darkness - Shooter Room", false, []], + ["Palace of Darkness - Shooter Room", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Shooter Room", true, ['Flippers']], + ["Palace of Darkness - Shooter Room", true, ['Hammer']], + ["Palace of Darkness - Shooter Room", true, ['Flute', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Shooter Room", true, ['Flute', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Shooter Room", true, ['Flute', 'MoonPearl', 'DefeatAgahnim']], + ["Palace of Darkness - Shooter Room", true, ['MagicMirror', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Shooter Room", true, ['MagicMirror', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Shooter Room", true, ['MagicMirror', 'DefeatAgahnim']], + + ["Palace of Darkness - Boss", false, []], + ["Palace of Darkness - Boss", false, [], ['Hammer', 'Flippers', 'Flute', 'MagicMirror']], + ["Palace of Darkness - Boss", false, [], ['Lamp']], + ["Palace of Darkness - Boss", false, [], ['Hammer']], + ["Palace of Darkness - Boss", false, [], ['AnyBow']], + ["Palace of Darkness - Boss", false, [], ['BigKeyD1']], + ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'Hammer', 'BowAndArrows']], + ]; + } +} diff --git a/tests/Inverted/SkullWoodsTest.php b/tests/Inverted/SkullWoodsTest.php new file mode 100644 index 000000000..804bd62f8 --- /dev/null +++ b/tests/Inverted/SkullWoodsTest.php @@ -0,0 +1,234 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * @param array $keys + * @param string $big_key + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Skull Woods - Big Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Big Key Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Compass Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Map Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Bridge Room", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Pot Prison", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Pinball Room", true, 'KeyD3', [], ['KeyD3']], + + ["Skull Woods - Boss", true, 'BigKeyD3', [], ['BigKeyD3']], + ["Skull Woods - Boss", false, 'KeyD3', [], ['KeyD3']], + ]; + } + + public function accessPool() + { + return [ + ["Skull Woods - Big Chest", false, []], + ["Skull Woods - Big Chest", false, [], ['BigKeyD3']], + ["Skull Woods - Big Chest", true, ['BigKeyD3']], + + ["Skull Woods - Big Key Chest", true, []], + + ["Skull Woods - Compass Chest", true, []], + + ["Skull Woods - Map Chest", true, []], + + ["Skull Woods - Bridge Room", false, []], + ["Skull Woods - Bridge Room", false, [], ['FireRod']], + ["Skull Woods - Bridge Room", true, ['FireRod']], + + ["Skull Woods - Pot Prison", true, []], + + ["Skull Woods - Pinball Room", true, []], + + ["Skull Woods - Boss", false, []], + ["Skull Woods - Boss", false, [], ['FireRod']], + ["Skull Woods - Boss", false, [], ['AnySword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'UncleSword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'MasterSword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'L3Sword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'L4Sword']], + ]; + } + + /** + * @dataProvider dungeonItemsPool + */ + public function testRegionLockedItems(bool $access, string $item_name, bool $free = null, string $config = null) + { + if ($config) { + config([$config => $free]); + } + + $this->assertEquals($access, $this->world->getRegion('Skull Woods')->canFill(Item::get($item_name, $this->world))); + } + + public function dungeonItemsPool() + { + return [ + [true, 'Key'], + [false, 'KeyH2'], + [false, 'KeyH1'], + [false, 'KeyP1'], + [false, 'KeyP2'], + [false, 'KeyA1'], + [false, 'KeyD2'], + [false, 'KeyD1'], + [false, 'KeyD6'], + [true, 'KeyD3'], + [false, 'KeyD5'], + [false, 'KeyP3'], + [false, 'KeyD4'], + [false, 'KeyD7'], + [false, 'KeyA2'], + + [true, 'BigKey'], + [false, 'BigKeyH2'], + [false, 'BigKeyH1'], + [false, 'BigKeyP1'], + [false, 'BigKeyP2'], + [false, 'BigKeyA1'], + [false, 'BigKeyD2'], + [false, 'BigKeyD1'], + [false, 'BigKeyD6'], + [true, 'BigKeyD3'], + [false, 'BigKeyD5'], + [false, 'BigKeyP3'], + [false, 'BigKeyD4'], + [false, 'BigKeyD7'], + [false, 'BigKeyA2'], + + [true, 'Map', false, 'region.wildMaps'], + [true, 'Map', true, 'region.wildMaps'], + [false, 'MapH2', false, 'region.wildMaps'], + [true, 'MapH2', true, 'region.wildMaps'], + [false, 'MapH1', false, 'region.wildMaps'], + [true, 'MapH1', true, 'region.wildMaps'], + [false, 'MapP1', false, 'region.wildMaps'], + [true, 'MapP1', true, 'region.wildMaps'], + [false, 'MapP2', false, 'region.wildMaps'], + [true, 'MapP2', true, 'region.wildMaps'], + [false, 'MapA1', false, 'region.wildMaps'], + [true, 'MapA1', true, 'region.wildMaps'], + [false, 'MapD2', false, 'region.wildMaps'], + [true, 'MapD2', true, 'region.wildMaps'], + [false, 'MapD1', false, 'region.wildMaps'], + [true, 'MapD1', true, 'region.wildMaps'], + [false, 'MapD6', false, 'region.wildMaps'], + [true, 'MapD6', true, 'region.wildMaps'], + [true, 'MapD3', false, 'region.wildMaps'], + [true, 'MapD3', true, 'region.wildMaps'], + [false, 'MapD5', false, 'region.wildMaps'], + [true, 'MapD5', true, 'region.wildMaps'], + [false, 'MapP3', false, 'region.wildMaps'], + [true, 'MapP3', true, 'region.wildMaps'], + [false, 'MapD4', false, 'region.wildMaps'], + [true, 'MapD4', true, 'region.wildMaps'], + [false, 'MapD7', false, 'region.wildMaps'], + [true, 'MapD7', true, 'region.wildMaps'], + [false, 'MapA2', false, 'region.wildMaps'], + [true, 'MapA2', true, 'region.wildMaps'], + + [true, 'Compass', false, 'region.wildCompasses'], + [true, 'Compass', true, 'region.wildCompasses'], + [false, 'CompassH2', false, 'region.wildCompasses'], + [true, 'CompassH2', true, 'region.wildCompasses'], + [false, 'CompassH1', false, 'region.wildCompasses'], + [true, 'CompassH1', true, 'region.wildCompasses'], + [false, 'CompassP1', false, 'region.wildCompasses'], + [true, 'CompassP1', true, 'region.wildCompasses'], + [false, 'CompassP2', false, 'region.wildCompasses'], + [true, 'CompassP2', true, 'region.wildCompasses'], + [false, 'CompassA1', false, 'region.wildCompasses'], + [true, 'CompassA1', true, 'region.wildCompasses'], + [false, 'CompassD2', false, 'region.wildCompasses'], + [true, 'CompassD2', true, 'region.wildCompasses'], + [false, 'CompassD1', false, 'region.wildCompasses'], + [true, 'CompassD1', true, 'region.wildCompasses'], + [false, 'CompassD6', false, 'region.wildCompasses'], + [true, 'CompassD6', true, 'region.wildCompasses'], + [true, 'CompassD3', false, 'region.wildCompasses'], + [true, 'CompassD3', true, 'region.wildCompasses'], + [false, 'CompassD5', false, 'region.wildCompasses'], + [true, 'CompassD5', true, 'region.wildCompasses'], + [false, 'CompassP3', false, 'region.wildCompasses'], + [true, 'CompassP3', true, 'region.wildCompasses'], + [false, 'CompassD4', false, 'region.wildCompasses'], + [true, 'CompassD4', true, 'region.wildCompasses'], + [false, 'CompassD7', false, 'region.wildCompasses'], + [true, 'CompassD7', true, 'region.wildCompasses'], + [false, 'CompassA2', false, 'region.wildCompasses'], + [true, 'CompassA2', true, 'region.wildCompasses'], + ]; + } +} diff --git a/tests/Inverted/SwampPalaceTest.php b/tests/Inverted/SwampPalaceTest.php new file mode 100644 index 000000000..54427f0e7 --- /dev/null +++ b/tests/Inverted/SwampPalaceTest.php @@ -0,0 +1,316 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Swamp Palace - Entrance", false, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Entrance", true, 'KeyD2', [], ['KeyD2']], + + ["Swamp Palace - Big Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Big Key Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Map Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - West Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Compass Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Flooded Room - Left", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Flooded Room - Right", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Waterfall Room", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Boss", true, 'BigKeyD2', [], ['BigKeyD2']], + ]; + } + + public function accessPool() + { + return [ + ["Swamp Palace - Entrance", false, []], + ["Swamp Palace - Entrance", false, [], ['MagicMirror']], + ["Swamp Palace - Entrance", false, [], ['MoonPearl']], + ["Swamp Palace - Entrance", false, [], ['Flippers']], + ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt']], + ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], + ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], + ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim']], + + ["Swamp Palace - Big Chest", false, []], + ["Swamp Palace - Big Chest", false, [], ['MagicMirror']], + ["Swamp Palace - Big Chest", false, [], ['MoonPearl']], + ["Swamp Palace - Big Chest", false, [], ['Flippers']], + ["Swamp Palace - Big Chest", false, [], ['Hammer']], + ["Swamp Palace - Big Chest", false, [], ['BigKeyD2']], + ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], + ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], + ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], + ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + + ["Swamp Palace - Big Key Chest", false, []], + ["Swamp Palace - Big Key Chest", false, [], ['MagicMirror']], + ["Swamp Palace - Big Key Chest", false, [], ['MoonPearl']], + ["Swamp Palace - Big Key Chest", false, [], ['Flippers']], + ["Swamp Palace - Big Key Chest", false, [], ['Hammer']], + ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], + ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], + ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], + ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + + ["Swamp Palace - Map Chest", false, []], + ["Swamp Palace - Map Chest", false, [], ['MagicMirror']], + ["Swamp Palace - Map Chest", false, [], ['MoonPearl']], + ["Swamp Palace - Map Chest", false, [], ['Flippers']], + ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt']], + ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], + ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], + ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hookshot']], + + ["Swamp Palace - West Chest", false, []], + ["Swamp Palace - West Chest", false, [], ['MagicMirror']], + ["Swamp Palace - West Chest", false, [], ['MoonPearl']], + ["Swamp Palace - West Chest", false, [], ['Flippers']], + ["Swamp Palace - West Chest", false, [], ['Hammer']], + ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], + ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], + ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], + ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + + ["Swamp Palace - Compass Chest", false, []], + ["Swamp Palace - Compass Chest", false, [], ['MagicMirror']], + ["Swamp Palace - Compass Chest", false, [], ['MoonPearl']], + ["Swamp Palace - Compass Chest", false, [], ['Flippers']], + ["Swamp Palace - Compass Chest", false, [], ['Hammer']], + ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], + ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], + ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], + ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + + ["Swamp Palace - Flooded Room - Left", false, []], + ["Swamp Palace - Flooded Room - Left", false, [], ['MagicMirror']], + ["Swamp Palace - Flooded Room - Left", false, [], ['MoonPearl']], + ["Swamp Palace - Flooded Room - Left", false, [], ['Flippers']], + ["Swamp Palace - Flooded Room - Left", false, [], ['Hammer']], + ["Swamp Palace - Flooded Room - Left", false, [], ['Hookshot']], + ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + + ["Swamp Palace - Flooded Room - Right", false, []], + ["Swamp Palace - Flooded Room - Right", false, [], ['MagicMirror']], + ["Swamp Palace - Flooded Room - Right", false, [], ['MoonPearl']], + ["Swamp Palace - Flooded Room - Right", false, [], ['Flippers']], + ["Swamp Palace - Flooded Room - Right", false, [], ['Hammer']], + ["Swamp Palace - Flooded Room - Right", false, [], ['Hookshot']], + ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + + ["Swamp Palace - Waterfall Room", false, []], + ["Swamp Palace - Waterfall Room", false, [], ['MagicMirror']], + ["Swamp Palace - Waterfall Room", false, [], ['MoonPearl']], + ["Swamp Palace - Waterfall Room", false, [], ['Flippers']], + ["Swamp Palace - Waterfall Room", false, [], ['Hammer']], + ["Swamp Palace - Waterfall Room", false, [], ['Hookshot']], + ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], + ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], + ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], + ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + + ["Swamp Palace - Boss", false, []], + ["Swamp Palace - Boss", false, [], ['MagicMirror']], + ["Swamp Palace - Boss", false, [], ['MoonPearl']], + ["Swamp Palace - Boss", false, [], ['Flippers']], + ["Swamp Palace - Boss", false, [], ['Hammer']], + ["Swamp Palace - Boss", false, [], ['Hookshot']], + ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], + ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], + ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], + ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + ]; + } + + /** + * @dataProvider dungeonItemsPool + */ + public function testRegionLockedItems(bool $access, string $item_name, bool $free = null, string $config = null) + { + if ($config) { + config([$config => $free]); + } + + $this->assertEquals($access, $this->world->getRegion('Swamp Palace')->canFill(Item::get($item_name, $this->world))); + } + + public function dungeonItemsPool() + { + return [ + [true, 'Key'], + [false, 'KeyH2'], + [false, 'KeyH1'], + [false, 'KeyP1'], + [false, 'KeyP2'], + [false, 'KeyA1'], + [true, 'KeyD2'], + [false, 'KeyD1'], + [false, 'KeyD6'], + [false, 'KeyD3'], + [false, 'KeyD5'], + [false, 'KeyP3'], + [false, 'KeyD4'], + [false, 'KeyD7'], + [false, 'KeyA2'], + + [true, 'BigKey'], + [false, 'BigKeyH2'], + [false, 'BigKeyH1'], + [false, 'BigKeyP1'], + [false, 'BigKeyP2'], + [false, 'BigKeyA1'], + [true, 'BigKeyD2'], + [false, 'BigKeyD1'], + [false, 'BigKeyD6'], + [false, 'BigKeyD3'], + [false, 'BigKeyD5'], + [false, 'BigKeyP3'], + [false, 'BigKeyD4'], + [false, 'BigKeyD7'], + [false, 'BigKeyA2'], + + [true, 'Map', false, 'region.wildMaps'], + [true, 'Map', true, 'region.wildMaps'], + [false, 'MapH2', false, 'region.wildMaps'], + [true, 'MapH2', true, 'region.wildMaps'], + [false, 'MapH1', false, 'region.wildMaps'], + [true, 'MapH1', true, 'region.wildMaps'], + [false, 'MapP1', false, 'region.wildMaps'], + [true, 'MapP1', true, 'region.wildMaps'], + [false, 'MapP2', false, 'region.wildMaps'], + [true, 'MapP2', true, 'region.wildMaps'], + [false, 'MapA1', false, 'region.wildMaps'], + [true, 'MapA1', true, 'region.wildMaps'], + [true, 'MapD2', false, 'region.wildMaps'], + [true, 'MapD2', true, 'region.wildMaps'], + [false, 'MapD1', false, 'region.wildMaps'], + [true, 'MapD1', true, 'region.wildMaps'], + [false, 'MapD6', false, 'region.wildMaps'], + [true, 'MapD6', true, 'region.wildMaps'], + [false, 'MapD3', false, 'region.wildMaps'], + [true, 'MapD3', true, 'region.wildMaps'], + [false, 'MapD5', false, 'region.wildMaps'], + [true, 'MapD5', true, 'region.wildMaps'], + [false, 'MapP3', false, 'region.wildMaps'], + [true, 'MapP3', true, 'region.wildMaps'], + [false, 'MapD4', false, 'region.wildMaps'], + [true, 'MapD4', true, 'region.wildMaps'], + [false, 'MapD7', false, 'region.wildMaps'], + [true, 'MapD7', true, 'region.wildMaps'], + [false, 'MapA2', false, 'region.wildMaps'], + [true, 'MapA2', true, 'region.wildMaps'], + + [true, 'Compass', false, 'region.wildCompasses'], + [true, 'Compass', true, 'region.wildCompasses'], + [false, 'CompassH2', false, 'region.wildCompasses'], + [true, 'CompassH2', true, 'region.wildCompasses'], + [false, 'CompassH1', false, 'region.wildCompasses'], + [true, 'CompassH1', true, 'region.wildCompasses'], + [false, 'CompassP1', false, 'region.wildCompasses'], + [true, 'CompassP1', true, 'region.wildCompasses'], + [false, 'CompassP2', false, 'region.wildCompasses'], + [true, 'CompassP2', true, 'region.wildCompasses'], + [false, 'CompassA1', false, 'region.wildCompasses'], + [true, 'CompassA1', true, 'region.wildCompasses'], + [true, 'CompassD2', false, 'region.wildCompasses'], + [true, 'CompassD2', true, 'region.wildCompasses'], + [false, 'CompassD1', false, 'region.wildCompasses'], + [true, 'CompassD1', true, 'region.wildCompasses'], + [false, 'CompassD6', false, 'region.wildCompasses'], + [true, 'CompassD6', true, 'region.wildCompasses'], + [false, 'CompassD3', false, 'region.wildCompasses'], + [true, 'CompassD3', true, 'region.wildCompasses'], + [false, 'CompassD5', false, 'region.wildCompasses'], + [true, 'CompassD5', true, 'region.wildCompasses'], + [false, 'CompassP3', false, 'region.wildCompasses'], + [true, 'CompassP3', true, 'region.wildCompasses'], + [false, 'CompassD4', false, 'region.wildCompasses'], + [true, 'CompassD4', true, 'region.wildCompasses'], + [false, 'CompassD7', false, 'region.wildCompasses'], + [true, 'CompassD7', true, 'region.wildCompasses'], + [false, 'CompassA2', false, 'region.wildCompasses'], + [true, 'CompassA2', true, 'region.wildCompasses'], + ]; + } +} diff --git a/tests/Inverted/TowerOfHeraTest.php b/tests/Inverted/TowerOfHeraTest.php new file mode 100644 index 000000000..f66ef1920 --- /dev/null +++ b/tests/Inverted/TowerOfHeraTest.php @@ -0,0 +1,176 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + // Entry + public function testCanEnterWithEverything() + { + $this->assertTrue($this->world->getRegion('Tower of Hera')->canEnter($this->world->getLocations(), $this->allItems())); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * @param array $keys + * @param string $big_key + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + + public function fillPool() + { + return [ + ["Tower of Hera - Big Key Chest", true, 'BigKeyP3', [], ['BigKeyP3']], + ["Tower of Hera - Big Key Chest", true, 'KeyP3', [], ['KeyP3']], + + ["Tower of Hera - Basement Cage", true, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Map Chest", true, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Compass Chest", false, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Big Chest", false, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Boss", false, 'BigKeyP3', [], ['BigKeyP3']], + ]; + } + + public function accessPool() + { + return [ + ["Tower of Hera - Big Key Chest", false, []], + ["Tower of Hera - Big Key Chest", false, [], ['Lamp', 'Flute']], + ["Tower of Hera - Big Key Chest", false, [], ['Lamp', 'FireRod']], + ["Tower of Hera - Big Key Chest", false, [], ['MoonPearl']], + ["Tower of Hera - Big Key Chest", false, [], ['Hammer']], + ["Tower of Hera - Big Key Chest", false, [], ['KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Hammer', 'MoonPearl', 'OcarinaActive', 'Hookshot', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Hammer', 'MoonPearl', 'ProgressiveGlove', 'Hookshot', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Hammer', 'MoonPearl', 'PowerGlove', 'Hookshot', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Hammer', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Hammer', 'MoonPearl', 'TitansMitt', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Hammer', 'MoonPearl', 'Flute', 'DefeatAgahnim', 'Hookshot', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Hammer', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'Hookshot', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Hammer', 'MoonPearl', 'Flute', 'PowerGlove', 'Hookshot', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Hammer', 'MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Hammer', 'MoonPearl', 'Flute', 'TitansMitt', 'KeyP3']], + + ["Tower of Hera - Basement Cage", false, []], + ["Tower of Hera - Basement Cage", false, [], ['Lamp', 'Flute']], + ["Tower of Hera - Basement Cage", false, [], ['MoonPearl']], + ["Tower of Hera - Basement Cage", true, ['ProgressiveGlove', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer']], + ["Tower of Hera - Basement Cage", true, ['PowerGlove', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer']], + ["Tower of Hera - Basement Cage", true, ['TitansMitt', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer']], + ["Tower of Hera - Basement Cage", true, ['ProgressiveGlove', 'MoonPearl', 'Lamp', 'Hookshot', 'Hammer']], + ["Tower of Hera - Basement Cage", true, ['PowerGlove', 'MoonPearl', 'Lamp', 'Hookshot', 'Hammer']], + ["Tower of Hera - Basement Cage", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Lamp', 'Hammer']], + ["Tower of Hera - Basement Cage", true, ['TitansMitt', 'MoonPearl', 'Lamp', 'Hammer']], + + ["Tower of Hera - Map Chest", false, []], + ["Tower of Hera - Map Chest", false, [], ['Lamp', 'Flute']], + ["Tower of Hera - Map Chest", false, [], ['MoonPearl']], + ["Tower of Hera - Map Chest", true, ['ProgressiveGlove', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer']], + ["Tower of Hera - Map Chest", true, ['PowerGlove', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer']], + ["Tower of Hera - Map Chest", true, ['TitansMitt', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer']], + ["Tower of Hera - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'Lamp', 'Hookshot', 'Hammer']], + ["Tower of Hera - Map Chest", true, ['PowerGlove', 'MoonPearl', 'Lamp', 'Hookshot', 'Hammer']], + ["Tower of Hera - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Lamp', 'Hammer']], + ["Tower of Hera - Map Chest", true, ['TitansMitt', 'MoonPearl', 'Lamp', 'Hammer']], + + ["Tower of Hera - Compass Chest", false, []], + ["Tower of Hera - Compass Chest", false, [], ['Lamp', 'Flute']], + ["Tower of Hera - Compass Chest", false, [], ['MoonPearl']], + ["Tower of Hera - Compass Chest", false, [], ['BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['ProgressiveGlove', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['PowerGlove', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['TitansMitt', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['ProgressiveGlove', 'MoonPearl', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['PowerGlove', 'MoonPearl', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Lamp', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['TitansMitt', 'MoonPearl', 'Lamp', 'Hammer', 'BigKeyP3']], + + ["Tower of Hera - Big Chest", false, []], + ["Tower of Hera - Big Chest", false, [], ['Lamp', 'Flute']], + ["Tower of Hera - Big Chest", false, [], ['MoonPearl']], + ["Tower of Hera - Big Chest", false, [], ['BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['ProgressiveGlove', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['PowerGlove', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['TitansMitt', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['ProgressiveGlove', 'MoonPearl', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['PowerGlove', 'MoonPearl', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Lamp', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['TitansMitt', 'MoonPearl', 'Lamp', 'Hammer', 'BigKeyP3']], + + ["Tower of Hera - Boss", false, []], + ["Tower of Hera - Boss", false, [], ['Lamp', 'Flute']], + ["Tower of Hera - Boss", false, [], ['MoonPearl']], + ["Tower of Hera - Boss", false, [], ['BigKeyP3']], + ["Tower of Hera - Boss", false, [], ['Hammer']], + ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['PowerGlove', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['TitansMitt', 'Flute', 'Hookshot', 'MoonPearl', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'MoonPearl', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['PowerGlove', 'MoonPearl', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'Lamp', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['TitansMitt', 'MoonPearl', 'Lamp', 'Hammer', 'BigKeyP3']], + ]; + } +} diff --git a/tests/Inverted/TurtleRockTest.php b/tests/Inverted/TurtleRockTest.php index 5fde302bc..ddc7bbb7c 100644 --- a/tests/Inverted/TurtleRockTest.php +++ b/tests/Inverted/TurtleRockTest.php @@ -14,7 +14,6 @@ public function setUp(): void { parent::setUp(); $this->world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); - $this->world->getRegion('Turtle Rock')->setBoss(new Boss("Dummy Boss")); $this->world->getLocation("Turtle Rock Medallion")->setItem(Item::get('Quake', $this->world)); $this->collected->setChecksForWorld($this->world->id); } @@ -249,9 +248,17 @@ public function accessPool() ["Turtle Rock - Boss", false, []], ["Turtle Rock - Boss", false, [], ['CaneOfSomaria']], + ["Turtle Rock - Boss", false, [], ['IceRod']], + ["Turtle Rock - Boss", false, [], ['FireRod']], + ["Turtle Rock - Boss", false, [], ['AnySword', 'Hammer']], ["Turtle Rock - Boss", false, [], ['BigKeyD7']], - ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'Quake', 'UncleSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'Quake', 'ProgressiveSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'Quake', 'MasterSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'Quake', 'ProgressiveSword', 'ProgressiveSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'Quake', 'L3Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'Quake', 'L4Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'Quake', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'Hookshot', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'Hookshot', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], ]; diff --git a/tests/InvertedMajorGlitches/DarkWorld/DeathMountain/EastTest.php b/tests/InvertedMajorGlitches/DarkWorld/DeathMountain/EastTest.php new file mode 100644 index 000000000..89e592716 --- /dev/null +++ b/tests/InvertedMajorGlitches/DarkWorld/DeathMountain/EastTest.php @@ -0,0 +1,73 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Superbunny Cave - Top", true, []], + + ["Superbunny Cave - Bottom", true, []], + + ["Hookshot Cave - Bottom Right", false, []], + ["Hookshot Cave - Bottom Right", false, [], ['Hookshot', 'PegasusBoots']], + ["Hookshot Cave - Bottom Right", true, ['PegasusBoots']], + ["Hookshot Cave - Bottom Right", true, ['Hookshot']], + + ["Hookshot Cave - Bottom Left", false, []], + ["Hookshot Cave - Bottom Left", false, [], ['Hookshot']], + ["Hookshot Cave - Bottom Left", true, ['Hookshot']], + + ["Hookshot Cave - Top Left", false, []], + ["Hookshot Cave - Top Left", false, [], ['Hookshot']], + ["Hookshot Cave - Top Left", true, ['Hookshot']], + + ["Hookshot Cave - Top Right", false, []], + ["Hookshot Cave - Top Right", false, [], ['Hookshot']], + ["Hookshot Cave - Top Right", true, ['Hookshot']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/DarkWorld/DeathMountain/WestTest.php b/tests/InvertedMajorGlitches/DarkWorld/DeathMountain/WestTest.php new file mode 100644 index 000000000..d6256af6c --- /dev/null +++ b/tests/InvertedMajorGlitches/DarkWorld/DeathMountain/WestTest.php @@ -0,0 +1,75 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Spike Cave", false, []], + ["Spike Cave", false, [], ['Gloves']], + ["Spike Cave", false, [], ['Hammer']], + ["Spike Cave", false, [], ['Cape', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'ProgressiveGlove', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'PowerGlove', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'TitansMitt', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'ProgressiveGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'PowerGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'TitansMitt', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'ProgressiveGlove', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'PowerGlove', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'TitansMitt', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'ProgressiveGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'PowerGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'TitansMitt', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'ProgressiveGlove', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'PowerGlove', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'TitansMitt', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'ProgressiveGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'PowerGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'TitansMitt', 'CaneOfByrna']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/DarkWorld/MireTest.php b/tests/InvertedMajorGlitches/DarkWorld/MireTest.php new file mode 100644 index 000000000..af1042636 --- /dev/null +++ b/tests/InvertedMajorGlitches/DarkWorld/MireTest.php @@ -0,0 +1,56 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Mire Shed - Left", true, []], + + ["Mire Shed - Right", true, []], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/DarkWorld/NorthEastTest.php b/tests/InvertedMajorGlitches/DarkWorld/NorthEastTest.php new file mode 100644 index 000000000..a2acfcb9f --- /dev/null +++ b/tests/InvertedMajorGlitches/DarkWorld/NorthEastTest.php @@ -0,0 +1,78 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Catfish", true, []], + + ["Pyramid", true, []], + + ["Pyramid Fairy - Sword", false, []], + ["Pyramid Fairy - Sword", false, [], ['MagicMirror']], + ["Pyramid Fairy - Sword", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Sword", false, [], ['AnySword']], + ["Pyramid Fairy - Sword", true, ['BigRedBomb', 'UncleSword', 'MagicMirror']], + + ["Pyramid Fairy - Bow", false, []], + ["Pyramid Fairy - Bow", false, [], ['MagicMirror']], + ["Pyramid Fairy - Bow", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Bow", false, [], ['AnyBow']], + ["Pyramid Fairy - Bow", true, ['BigRedBomb', 'BowAndArrows', 'MagicMirror']], + + ["Pyramid Fairy - Left", false, []], + ["Pyramid Fairy - Left", false, [], ['MagicMirror']], + ["Pyramid Fairy - Left", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Left", true, ['BigRedBomb', 'MagicMirror']], + + ["Pyramid Fairy - Right", false, []], + ["Pyramid Fairy - Right", false, [], ['MagicMirror']], + ["Pyramid Fairy - Right", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Right", true, ['BigRedBomb', 'MagicMirror']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/DarkWorld/NorthWestTest.php b/tests/InvertedMajorGlitches/DarkWorld/NorthWestTest.php new file mode 100644 index 000000000..145d4b595 --- /dev/null +++ b/tests/InvertedMajorGlitches/DarkWorld/NorthWestTest.php @@ -0,0 +1,74 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Brewery", true, []], + + ["C-Shaped House", true, []], + + ["Chest Game", true, []], + + ["Hammer Pegs", false, []], + ["Hammer Pegs", false, [], ['Hammer']], + ["Hammer Pegs", true, ['Hammer']], + + ["Bumper Cave", true, []], + + ["Blacksmith", false, []], + ["Blacksmith", true, ['MagicMirror']], + ["Blacksmith", true, ['Bottle']], + ["Blacksmith", true, ['ProgressiveGlove', 'ProgressiveGlove']], + + ["Purple Chest", false, []], + ["Purple Chest", true, ['MagicMirror']], + ["Purple Chest", true, ['Bottle']], + ["Purple Chest", true, ['ProgressiveGlove', 'ProgressiveGlove']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/DarkWorld/SouthTest.php b/tests/InvertedMajorGlitches/DarkWorld/SouthTest.php new file mode 100644 index 000000000..6a63e2191 --- /dev/null +++ b/tests/InvertedMajorGlitches/DarkWorld/SouthTest.php @@ -0,0 +1,66 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Hype Cave - Top", true, []], + + ["Hype Cave - Middle Right", true, []], + + ["Hype Cave - Middle Left", true, []], + + ["Hype Cave - Bottom", true, []], + + ["Hype Cave - NPC", true, []], + + ["Stumpy", true, []], + + ["Digging Game", true, []], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/DeathMountain/EastTest.php b/tests/InvertedMajorGlitches/DeathMountain/EastTest.php new file mode 100644 index 000000000..545df29e1 --- /dev/null +++ b/tests/InvertedMajorGlitches/DeathMountain/EastTest.php @@ -0,0 +1,150 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Spiral Cave", false, []], + ["Spiral Cave", true, ['MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'UncleSword']], + ["Spiral Cave", true, ['MagicMirror', 'TitansMitt', 'Lamp', 'UncleSword']], + ["Spiral Cave", true, ['MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'PegasusBoots', 'UncleSword']], + ["Spiral Cave", true, ['MagicMirror', 'TitansMitt', 'PegasusBoots', 'UncleSword']], + ["Spiral Cave", true, ['MoonPearl', 'PegasusBoots']], + + ["Paradox Cave Lower - Far Left", false, []], + ["Paradox Cave Lower - Far Left", true, ['MoonPearl']], + ["Paradox Cave Lower - Far Left", true, ['BottleWithFairy']], + ["Paradox Cave Lower - Far Left", true, ['BottleWithRedPotion']], + ["Paradox Cave Lower - Far Left", true, ['BottleWithGreenPotion']], + ["Paradox Cave Lower - Far Left", true, ['BottleWithBluePotion']], + ["Paradox Cave Lower - Far Left", true, ['Bottle']], + ["Paradox Cave Lower - Far Left", true, ['BottleWithGoldBee']], + + ["Paradox Cave Lower - Left", false, []], + ["Paradox Cave Lower - Left", true, ['MoonPearl']], + ["Paradox Cave Lower - Left", true, ['BottleWithBee']], + ["Paradox Cave Lower - Left", true, ['BottleWithFairy']], + ["Paradox Cave Lower - Left", true, ['BottleWithRedPotion']], + ["Paradox Cave Lower - Left", true, ['BottleWithGreenPotion']], + ["Paradox Cave Lower - Left", true, ['BottleWithBluePotion']], + ["Paradox Cave Lower - Left", true, ['Bottle']], + ["Paradox Cave Lower - Left", true, ['BottleWithGoldBee']], + + ["Paradox Cave Lower - Middle", false, []], + ["Paradox Cave Lower - Middle", true, ['MoonPearl']], + ["Paradox Cave Lower - Middle", true, ['BottleWithBee']], + ["Paradox Cave Lower - Middle", true, ['BottleWithFairy']], + ["Paradox Cave Lower - Middle", true, ['BottleWithRedPotion']], + ["Paradox Cave Lower - Middle", true, ['BottleWithGreenPotion']], + ["Paradox Cave Lower - Middle", true, ['BottleWithBluePotion']], + ["Paradox Cave Lower - Middle", true, ['Bottle']], + ["Paradox Cave Lower - Middle", true, ['BottleWithGoldBee']], + + ["Paradox Cave Lower - Right", false, []], + ["Paradox Cave Lower - Right", true, ['MoonPearl']], + ["Paradox Cave Lower - Right", true, ['BottleWithBee']], + ["Paradox Cave Lower - Right", true, ['BottleWithFairy']], + ["Paradox Cave Lower - Right", true, ['BottleWithRedPotion']], + ["Paradox Cave Lower - Right", true, ['BottleWithGreenPotion']], + ["Paradox Cave Lower - Right", true, ['BottleWithBluePotion']], + ["Paradox Cave Lower - Right", true, ['Bottle']], + ["Paradox Cave Lower - Right", true, ['BottleWithGoldBee']], + + ["Paradox Cave Lower - Far Right", false, []], + ["Paradox Cave Lower - Far Right", true, ['MoonPearl']], + ["Paradox Cave Lower - Far Right", true, ['BottleWithBee']], + ["Paradox Cave Lower - Far Right", true, ['BottleWithFairy']], + ["Paradox Cave Lower - Far Right", true, ['BottleWithRedPotion']], + ["Paradox Cave Lower - Far Right", true, ['BottleWithGreenPotion']], + ["Paradox Cave Lower - Far Right", true, ['BottleWithBluePotion']], + ["Paradox Cave Lower - Far Right", true, ['Bottle']], + ["Paradox Cave Lower - Far Right", true, ['BottleWithGoldBee']], + + ["Paradox Cave Upper - Left", false, []], + ["Paradox Cave Upper - Left", true, ['MoonPearl']], + ["Paradox Cave Upper - Left", true, ['BottleWithBee']], + ["Paradox Cave Upper - Left", true, ['BottleWithFairy']], + ["Paradox Cave Upper - Left", true, ['BottleWithRedPotion']], + ["Paradox Cave Upper - Left", true, ['BottleWithGreenPotion']], + ["Paradox Cave Upper - Left", true, ['BottleWithBluePotion']], + ["Paradox Cave Upper - Left", true, ['Bottle']], + ["Paradox Cave Upper - Left", true, ['BottleWithGoldBee']], + + ["Paradox Cave Upper - Right", false, []], + ["Paradox Cave Upper - Right", true, ['MoonPearl']], + ["Paradox Cave Upper - Right", true, ['BottleWithBee']], + ["Paradox Cave Upper - Right", true, ['BottleWithFairy']], + ["Paradox Cave Upper - Right", true, ['BottleWithRedPotion']], + ["Paradox Cave Upper - Right", true, ['BottleWithGreenPotion']], + ["Paradox Cave Upper - Right", true, ['BottleWithBluePotion']], + ["Paradox Cave Upper - Right", true, ['Bottle']], + ["Paradox Cave Upper - Right", true, ['BottleWithGoldBee']], + + ["Mimic Cave", false, []], + ["Mimic Cave", false, [], ['MoonPearl', 'AnyBottle']], + ["Mimic Cave", false, [], ['Hammer']], + ["Mimic Cave", true, ['MoonPearl', 'Hammer']], + ["Mimic Cave", true, ['BottleWithBee', 'Hammer']], + ["Mimic Cave", true, ['BottleWithFairy', 'Hammer']], + ["Mimic Cave", true, ['BottleWithRedPotion', 'Hammer']], + ["Mimic Cave", true, ['BottleWithGreenPotion', 'Hammer']], + ["Mimic Cave", true, ['BottleWithBluePotion', 'Hammer']], + ["Mimic Cave", true, ['Bottle', 'Hammer']], + ["Mimic Cave", true, ['BottleWithGoldBee', 'Hammer']], + + ["Ether Tablet", false, []], + ["Ether Tablet", false, [], ['UpgradedSword']], + ["Ether Tablet", false, [], ['BookOfMudora']], + ["Ether Tablet", true, ['BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['BookOfMudora', 'L4Sword']], + + ["Spectacle Rock", true, []], + ]; + } +} \ No newline at end of file diff --git a/tests/InvertedMajorGlitches/DeathMountain/WestTest.php b/tests/InvertedMajorGlitches/DeathMountain/WestTest.php new file mode 100644 index 000000000..18cff9430 --- /dev/null +++ b/tests/InvertedMajorGlitches/DeathMountain/WestTest.php @@ -0,0 +1,58 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Old Man", false, []], + ["Old Man", false, [], ['Lamp']], + ["Old Man", true, ['Lamp']], + + ["Spectacle Rock Cave", true, []], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/DesertPalaceTest.php b/tests/InvertedMajorGlitches/DesertPalaceTest.php new file mode 100644 index 000000000..39845a202 --- /dev/null +++ b/tests/InvertedMajorGlitches/DesertPalaceTest.php @@ -0,0 +1,136 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Desert Palace') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [true, []], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Desert Palace - Big Key Chest", false, 'KeyP2', [], ['KeyP2']], + ["Desert Palace - Compass Chest", false, 'KeyP2', [], ['KeyP2']], + + ["Desert Palace - Big Chest", false, 'BigKeyP2', [], ['BigKeyP2']], + + ["Desert Palace - Boss", false, 'BigKeyP2', [], ['BigKeyP2']], + ["Desert Palace - Boss", false, 'KeyP2', [], ['KeyP2']], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Desert Palace - Map Chest", true, []], + + ["Desert Palace - Big Chest", false, []], + ["Desert Palace - Big Chest", true, [ 'BigKeyP2']], + + ["Desert Palace - Torch", false, []], + ["Desert Palace - Torch", false, [], ['PegasusBoots']], + ["Desert Palace - Torch", true, ['PegasusBoots']], + + ["Desert Palace - Compass Chest", false, []], + ["Desert Palace - Compass Chest", false, [], ['KeyP2']], + ["Desert Palace - Compass Chest", true, ['KeyP2']], + + ["Desert Palace - Big Key Chest", false, []], + ["Desert Palace - Big Key Chest", false, [], ['KeyP2']], + ["Desert Palace - Big Key Chest", true, ['KeyP2']], + + ["Desert Palace - Boss", false, []], + ["Desert Palace - Boss", false, [], ['KeyP2']], + ["Desert Palace - Boss", false, [], ['BigKeyP2']], + ["Desert Palace - Boss", false, [], ['Lamp', 'FireRod']], + ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BigKeyP2', 'Lamp']], + ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BigKeyP2', 'FireRod']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/EasternPalaceTest.php b/tests/InvertedMajorGlitches/EasternPalaceTest.php new file mode 100644 index 000000000..75f5b3c98 --- /dev/null +++ b/tests/InvertedMajorGlitches/EasternPalaceTest.php @@ -0,0 +1,110 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Eastern Palace - Compass Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Cannonball Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Big Chest", false, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Map Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Big Key Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Boss", false, 'BigKeyP1', [], ['BigKeyP1']], + ]; + } + + public function accessPool() + { + return [ + ["Eastern Palace - Compass Chest", true, []], + + ["Eastern Palace - Cannonball Chest", true, []], + + ["Eastern Palace - Big Chest", false, []], + ["Eastern Palace - Big Chest", false, [], ['BigKeyP1']], + ["Eastern Palace - Big Chest", true, ['BigKeyP1']], + + ["Eastern Palace - Map Chest", true, []], + + ["Eastern Palace - Big Key Chest", false, []], + ["Eastern Palace - Big Key Chest", false, [], ['Lamp']], + ["Eastern Palace - Big Key Chest", true, ['Lamp']], + + ["Eastern Palace - Boss", false, []], + ["Eastern Palace - Boss", false, [], ['Lamp']], + ["Eastern Palace - Boss", false, [], ['AnyBow']], + ["Eastern Palace - Boss", false, [], ['BigKeyP1']], + ["Eastern Palace - Boss", true, ['Lamp', 'BowAndArrows', 'BigKeyP1']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/GanonsTowerTest.php b/tests/InvertedMajorGlitches/GanonsTowerTest.php new file mode 100644 index 000000000..5dc934377 --- /dev/null +++ b/tests/InvertedMajorGlitches/GanonsTowerTest.php @@ -0,0 +1,452 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + + public function fillPool() + { + return [ + ["Ganon's Tower - Bob's Torch", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Top Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Top Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Bottom Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Bottom Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Top Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Top Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Bottom Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Bottom Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Firesnake Room", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Map Chest", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Chest", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Hope Room - Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Hope Room - Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Bob's Chest", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Tile Room", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Top Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Top Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Bottom Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Bottom Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Key Chest", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Key Room - Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Key Room - Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Mini Helmasaur Room - Left", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Mini Helmasaur Room - Right", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Pre-Moldorm Chest", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Moldorm Chest", false, 'BigKeyA2', [], ['BigKeyA2']], + ]; + } + + public function accessPool() + { + return [ + ["Ganon's Tower - Bob's Torch", false, []], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal1']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal2']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal3']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal4']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal5']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal6']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal7']], + ["Ganon's Tower - Bob's Torch", false, [], ['PegasusBoots']], + ["Ganon's Tower - Bob's Torch", true, ['PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Top Left", false, []], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Top Left", true, ['Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Top Right", false, []], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Top Right", true, ['Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Bottom Left", false, []], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Bottom Left", true, ['Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Bottom Right", false, []], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Bottom Right", true, ['Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Top Left", false, []], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Top Right", false, []], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Bottom Left", false, []], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Bottom Right", false, []], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Firesnake Room", false, []], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal1']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal2']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal3']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal4']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal5']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal6']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal7']], + ["Ganon's Tower - Firesnake Room", false, [], ['Hammer']], + ["Ganon's Tower - Firesnake Room", false, [], ['Hookshot']], + ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Map Chest", false, []], + ["Ganon's Tower - Map Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Map Chest", false, [], ['Hammer']], + ["Ganon's Tower - Map Chest", false, [], ['Hookshot', 'PegasusBoots']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Chest", false, []], + ["Ganon's Tower - Big Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Big Chest", false, [], ['BigKeyA2']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Hope Room - Left", false, []], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal1']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal2']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal3']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal4']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal5']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal6']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal7']], + ["Ganon's Tower - Hope Room - Left", true, ['Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Hope Room - Right", false, []], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal1']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal2']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal3']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal4']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal5']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal6']], + ["Ganon's Tower - Hope Room - Right", true, ['Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Bob's Chest", false, []], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Tile Room", false, []], + ["Ganon's Tower - Tile Room", false, [], ['Crystal1']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal2']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal3']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal4']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal5']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal6']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal7']], + ["Ganon's Tower - Tile Room", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Tile Room", true, ['CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Top Left", false, []], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Top Right", false, []], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Bottom Left", false, []], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Bottom Right", false, []], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Key Chest", false, []], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Key Room - Left", false, []], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal1']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal2']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal3']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal4']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal5']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal6']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Key Room - Right", false, []], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal1']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal2']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal3']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal4']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal5']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal6']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Mini Helmasaur Room - Left", false, []], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal1']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal2']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal3']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal4']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal5']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal6']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['AnyBow']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['BigKeyA2']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Mini Helmasaur Room - Right", false, []], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal1']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal2']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal3']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal4']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal5']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal6']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['AnyBow']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['BigKeyA2']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Pre-Moldorm Chest", false, []], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['AnyBow']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['BigKeyA2']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Moldorm Chest", false, []], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Hookshot']], + ["Ganon's Tower - Moldorm Chest", false, [], ['AnyBow']], + ["Ganon's Tower - Moldorm Chest", false, [], ['BigKeyA2']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/HyruleCastleEscapeTest.php b/tests/InvertedMajorGlitches/HyruleCastleEscapeTest.php new file mode 100644 index 000000000..76456f54c --- /dev/null +++ b/tests/InvertedMajorGlitches/HyruleCastleEscapeTest.php @@ -0,0 +1,203 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + + ["Sanctuary", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Left", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Middle", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Right", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Dark Cross", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Boomerang Chest", false, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Map Chest", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Zelda's Cell", false, 'KeyH2', [], ['KeyH2']], + ]; + } + + public function accessPool() + { + return [ + ["Sanctuary", False, []], + ["Sanctuary", False, [], ['MoonPearl', 'MagicMirror', 'AnyBottle', 'Lamp']], + ["Sanctuary", true, ['Lamp', 'KeyH2']], + ["Sanctuary", true, ['MoonPearl']], + ["Sanctuary", true, ['MagicMirror']], + ["Sanctuary", true, ['BottleWithBee']], + ["Sanctuary", true, ['BottleWithFairy']], + ["Sanctuary", true, ['BottleWithRedPotion']], + ["Sanctuary", true, ['BottleWithGreenPotion']], + ["Sanctuary", true, ['BottleWithBluePotion']], + ["Sanctuary", true, ['Bottle']], + ["Sanctuary", true, ['BottleWithGoldBee']], + + ["Sewers - Secret Room - Left", false, []], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'PowerGlove']], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'TitansMitt']], + ["Sewers - Secret Room - Left", true, ['BottleWithBee', 'ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithBee', 'PowerGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithBee', 'TitansMitt']], + ["Sewers - Secret Room - Left", true, ['BottleWithFairy', 'ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithFairy', 'PowerGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithFairy', 'TitansMitt']], + ["Sewers - Secret Room - Left", true, ['BottleWithRedPotion', 'ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithRedPotion', 'PowerGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithRedPotion', 'TitansMitt']], + ["Sewers - Secret Room - Left", true, ['BottleWithGreenPotion', 'ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithGreenPotion', 'PowerGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithGreenPotion', 'TitansMitt']], + ["Sewers - Secret Room - Left", true, ['BottleWithBluePotion', 'ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithBluePotion', 'PowerGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithBluePotion', 'TitansMitt']], + ["Sewers - Secret Room - Left", true, ['Bottle', 'ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['Bottle', 'PowerGlove']], + ["Sewers - Secret Room - Left", true, ['Bottle', 'TitansMitt']], + ["Sewers - Secret Room - Left", true, ['BottleWithGoldBee', 'ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithGoldBee', 'PowerGlove']], + ["Sewers - Secret Room - Left", true, ['BottleWithGoldBee', 'TitansMitt']], + ["Sewers - Secret Room - Left", true, ['Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Middle", false, []], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'PowerGlove']], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['BottleWithBee', 'ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithBee', 'PowerGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithBee', 'TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['BottleWithFairy', 'ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithFairy', 'PowerGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithFairy', 'TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['BottleWithRedPotion', 'ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithRedPotion', 'PowerGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithRedPotion', 'TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['BottleWithGreenPotion', 'ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithGreenPotion', 'PowerGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithGreenPotion', 'TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['BottleWithBluePotion', 'ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithBluePotion', 'PowerGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithBluePotion', 'TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['Bottle', 'ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['Bottle', 'PowerGlove']], + ["Sewers - Secret Room - Middle", true, ['Bottle', 'TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['BottleWithGoldBee', 'ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithGoldBee', 'PowerGlove']], + ["Sewers - Secret Room - Middle", true, ['BottleWithGoldBee', 'TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Right", false, []], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'PowerGlove']], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'TitansMitt']], + ["Sewers - Secret Room - Right", true, ['BottleWithBee', 'ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithBee', 'PowerGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithBee', 'TitansMitt']], + ["Sewers - Secret Room - Right", true, ['BottleWithFairy', 'ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithFairy', 'PowerGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithFairy', 'TitansMitt']], + ["Sewers - Secret Room - Right", true, ['BottleWithRedPotion', 'ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithRedPotion', 'PowerGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithRedPotion', 'TitansMitt']], + ["Sewers - Secret Room - Right", true, ['BottleWithGreenPotion', 'ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithGreenPotion', 'PowerGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithGreenPotion', 'TitansMitt']], + ["Sewers - Secret Room - Right", true, ['BottleWithBluePotion', 'ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithBluePotion', 'PowerGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithBluePotion', 'TitansMitt']], + ["Sewers - Secret Room - Right", true, ['Bottle', 'ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['Bottle', 'PowerGlove']], + ["Sewers - Secret Room - Right", true, ['Bottle', 'TitansMitt']], + ["Sewers - Secret Room - Right", true, ['BottleWithGoldBee', 'ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithGoldBee', 'PowerGlove']], + ["Sewers - Secret Room - Right", true, ['BottleWithGoldBee', 'TitansMitt']], + ["Sewers - Secret Room - Right", true, ['Lamp', 'KeyH2']], + + ["Sewers - Dark Cross", False, []], + ["Sewers - Dark Cross", False, [], ['Lamp']], + ["Sewers - Dark Cross", true, ['Lamp']], + + ["Hyrule Castle - Boomerang Chest", false, []], + ["Hyrule Castle - Boomerang Chest", false, [], ['KeyH2']], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2']], + + ["Hyrule Castle - Map Chest", true, []], + ["Hyrule Castle - Map Chest", true, ['DefeatAgahnim']], + + ["Hyrule Castle - Zelda's Cell", false, []], + ["Hyrule Castle - Zelda's Cell", false, [], ['KeyH2']], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/HyruleCastleTowerTest.php b/tests/InvertedMajorGlitches/HyruleCastleTowerTest.php new file mode 100644 index 000000000..2d2f26dac --- /dev/null +++ b/tests/InvertedMajorGlitches/HyruleCastleTowerTest.php @@ -0,0 +1,88 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Hyrule Castle Tower') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [false, []], + [true, ['UncleSword']], + [true, ['Hammer']], + ]; + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider completePool + */ + public function testComplete(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Hyrule Castle Tower') + ->canComplete($this->world->getLocations(), $this->collected)); + } + + public function completePool() + { + return [ + [false, []], + [false, [], ['Lamp']], + [false, [], ['AnySword']], + [true, ['KeyA1', 'KeyA1', 'Lamp', 'UncleSword']], + [true, ['KeyA1', 'KeyA1', 'Lamp', 'ProgressiveSword']], + [true, ['KeyA1', 'KeyA1', 'Lamp', 'MasterSword']], + [true, ['KeyA1', 'KeyA1', 'Lamp', 'L3Sword']], + [true, ['KeyA1', 'KeyA1', 'Lamp', 'L4Sword']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/IcePalaceTest.php b/tests/InvertedMajorGlitches/IcePalaceTest.php new file mode 100644 index 000000000..2a58f08c7 --- /dev/null +++ b/tests/InvertedMajorGlitches/IcePalaceTest.php @@ -0,0 +1,184 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Ice Palace - Big Key Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Compass Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Map Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Spike Room", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Freezor Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Iced T Room", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Big Chest", false, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Boss", false, 'BigKeyD5', [], ['BigKeyD5']], + ]; + } + + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Ice Palace - Big Key Chest", false, []], + ["Ice Palace - Big Key Chest", false, [], ['Gloves']], + ["Ice Palace - Big Key Chest", false, [], ['Hammer']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Hammer', 'KeyD5', 'KeyD5']], + + ["Ice Palace - Compass Chest", true, []], + + ["Ice Palace - Map Chest", false, []], + ["Ice Palace - Map Chest", false, [], ['Gloves']], + ["Ice Palace - Map Chest", false, [], ['Hammer']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Hammer', 'KeyD5', 'KeyD5']], + + ["Ice Palace - Spike Room", false, []], + ["Ice Palace - Spike Room", true, ['Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['KeyD5', 'KeyD5']], + + ["Ice Palace - Freezor Chest", false, []], + ["Ice Palace - Freezor Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], + ["Ice Palace - Freezor Chest", true, ['FireRod']], + ["Ice Palace - Freezor Chest", true, ['Bombos', 'UncleSword']], + ["Ice Palace - Freezor Chest", true, ['Bombos', 'ProgressiveSword']], + ["Ice Palace - Freezor Chest", true, ['Bombos', 'MasterSword']], + ["Ice Palace - Freezor Chest", true, ['Bombos', 'L3Sword']], + ["Ice Palace - Freezor Chest", true, ['Bombos', 'L4Sword']], + + ["Ice Palace - Iced T Room", true, []], + + ["Ice Palace - Big Chest", false, []], + ["Ice Palace - Big Chest", false, [], ['BigKeyD5']], + ["Ice Palace - Big Chest", true, ['BigKeyD5']], + + ["Ice Palace - Boss", false, []], + ["Ice Palace - Boss", false, [], ['Gloves']], + ["Ice Palace - Boss", false, [], ['Hammer']], + ["Ice Palace - Boss", false, [], ['BigKeyD5']], + ["Ice Palace - Boss", false, [], ['FireRod', 'Bombos', 'AnySword']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/LightWorldTest.php b/tests/InvertedMajorGlitches/LightWorldTest.php new file mode 100644 index 000000000..83077d17f --- /dev/null +++ b/tests/InvertedMajorGlitches/LightWorldTest.php @@ -0,0 +1,540 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Master Sword Pedestal", false, []], + ["Master Sword Pedestal", false, [], ['PendantOfCourage']], + ["Master Sword Pedestal", false, [], ['PendantOfWisdom']], + ["Master Sword Pedestal", false, [], ['PendantOfPower']], + ["Master Sword Pedestal", true, ['PendantOfCourage', 'PendantOfWisdom', 'PendantOfPower']], + + ["Link's Uncle", false, []], + ["Link's Uncle", false, [], ['MoonPearl', 'MagicMirror', 'AnyBottle']], + ["Link's Uncle", true, ['MoonPearl']], + ["Link's Uncle", true, ['BottleWithBee']], + ["Link's Uncle", true, ['BottleWithFairy']], + ["Link's Uncle", true, ['BottleWithRedPotion']], + ["Link's Uncle", true, ['BottleWithGreenPotion']], + ["Link's Uncle", true, ['BottleWithBluePotion']], + ["Link's Uncle", true, ['Bottle']], + ["Link's Uncle", true, ['BottleWithGoldBee']], + + ["Secret Passage", false, []], + ["Secret Passage", false, [], ['MoonPearl', 'MagicMirror', 'AnyBottle']], + ["Secret Passage", true, ['MoonPearl']], + ["Secret Passage", true, ['BottleWithBee']], + ["Secret Passage", true, ['BottleWithFairy']], + ["Secret Passage", true, ['BottleWithRedPotion']], + ["Secret Passage", true, ['BottleWithGreenPotion']], + ["Secret Passage", true, ['BottleWithBluePotion']], + ["Secret Passage", true, ['Bottle']], + ["Secret Passage", true, ['BottleWithGoldBee']], + + ["King's Tomb", false, []], + ["King's Tomb", false, [], ['PegasusBoots']], + ["King's Tomb", false, [], ['MoonPearl', 'AnyBottle']], + ["King's Tomb", true, ['PegasusBoots', 'MoonPearl']], + ["King's Tomb", true, ['PegasusBoots', 'BottleWithBee']], + ["King's Tomb", true, ['PegasusBoots', 'BottleWithFairy']], + ["King's Tomb", true, ['PegasusBoots', 'BottleWithRedPotion']], + ["King's Tomb", true, ['PegasusBoots', 'BottleWithGreenPotion']], + ["King's Tomb", true, ['PegasusBoots', 'BottleWithBluePotion']], + ["King's Tomb", true, ['PegasusBoots', 'Bottle']], + ["King's Tomb", true, ['PegasusBoots', 'BottleWithGoldBee']], + + ["Floodgate Chest", false, []], + ["Floodgate Chest", true, ['MoonPearl']], + ["Floodgate Chest", true, ['MagicMirror']], + ["Floodgate Chest", true, ['BottleWithBee']], + ["Floodgate Chest", true, ['BottleWithFairy']], + ["Floodgate Chest", true, ['BottleWithRedPotion']], + ["Floodgate Chest", true, ['BottleWithGreenPotion']], + ["Floodgate Chest", true, ['BottleWithBluePotion']], + ["Floodgate Chest", true, ['Bottle']], + ["Floodgate Chest", true, ['BottleWithGoldBee']], + + ["Kakariko Tavern", true, []], + + ["Chicken House", false, []], + ["Chicken House", false, [], ['MoonPearl', 'AnyBottle']], + ["Chicken House", true, ['MoonPearl']], + ["Chicken House", true, ['BottleWithBee']], + ["Chicken House", true, ['BottleWithFairy']], + ["Chicken House", true, ['BottleWithRedPotion']], + ["Chicken House", true, ['BottleWithGreenPotion']], + ["Chicken House", true, ['BottleWithBluePotion']], + ["Chicken House", true, ['Bottle']], + ["Chicken House", true, ['BottleWithGoldBee']], + + ["Aginah's Cave", false, []], + ["Aginah's Cave", false, [], ['MoonPearl', 'AnyBottle']], + ["Aginah's Cave", true, ['MoonPearl']], + ["Aginah's Cave", true, ['BottleWithBee']], + ["Aginah's Cave", true, ['BottleWithFairy']], + ["Aginah's Cave", true, ['BottleWithRedPotion']], + ["Aginah's Cave", true, ['BottleWithGreenPotion']], + ["Aginah's Cave", true, ['BottleWithBluePotion']], + ["Aginah's Cave", true, ['Bottle']], + ["Aginah's Cave", true, ['BottleWithGoldBee']], + + ["Sahasrahla's Hut - Left", false, []], + ["Sahasrahla's Hut - Left", false, [], ['MoonPearl', 'PegasusBoots', 'AnyBottle']], + ["Sahasrahla's Hut - Left", true, ['PegasusBoots']], + ["Sahasrahla's Hut - Left", true, ['MoonPearl']], + ["Sahasrahla's Hut - Left", true, ['BottleWithBee']], + ["Sahasrahla's Hut - Left", true, ['BottleWithFairy']], + ["Sahasrahla's Hut - Left", true, ['BottleWithRedPotion']], + ["Sahasrahla's Hut - Left", true, ['BottleWithGreenPotion']], + ["Sahasrahla's Hut - Left", true, ['BottleWithBluePotion']], + ["Sahasrahla's Hut - Left", true, ['Bottle']], + ["Sahasrahla's Hut - Left", true, ['BottleWithGoldBee']], + + ["Sahasrahla's Hut - Middle", false, []], + ["Sahasrahla's Hut - Middle", false, [], ['MoonPearl', 'PegasusBoots', 'AnyBottle']], + ["Sahasrahla's Hut - Middle", true, ['PegasusBoots']], + ["Sahasrahla's Hut - Middle", true, ['MoonPearl']], + ["Sahasrahla's Hut - Middle", true, ['BottleWithBee']], + ["Sahasrahla's Hut - Middle", true, ['BottleWithFairy']], + ["Sahasrahla's Hut - Middle", true, ['BottleWithRedPotion']], + ["Sahasrahla's Hut - Middle", true, ['BottleWithGreenPotion']], + ["Sahasrahla's Hut - Middle", true, ['BottleWithBluePotion']], + ["Sahasrahla's Hut - Middle", true, ['Bottle']], + ["Sahasrahla's Hut - Middle", true, ['BottleWithGoldBee']], + + ["Sahasrahla's Hut - Right", false, []], + ["Sahasrahla's Hut - Right", false, [], ['MoonPearl', 'PegasusBoots', 'AnyBottle']], + ["Sahasrahla's Hut - Right", true, ['PegasusBoots']], + ["Sahasrahla's Hut - Right", true, ['MoonPearl']], + ["Sahasrahla's Hut - Right", true, ['BottleWithBee']], + ["Sahasrahla's Hut - Right", true, ['BottleWithFairy']], + ["Sahasrahla's Hut - Right", true, ['BottleWithRedPotion']], + ["Sahasrahla's Hut - Right", true, ['BottleWithGreenPotion']], + ["Sahasrahla's Hut - Right", true, ['BottleWithBluePotion']], + ["Sahasrahla's Hut - Right", true, ['Bottle']], + ["Sahasrahla's Hut - Right", true, ['BottleWithGoldBee']], + + ["Kakariko Well - Top", false, []], + ["Kakariko Well - Top", false, [], ['MoonPearl', 'AnyBottle']], + ["Kakariko Well - Top", true, ['MoonPearl']], + ["Kakariko Well - Top", true, ['BottleWithBee']], + ["Kakariko Well - Top", true, ['BottleWithFairy']], + ["Kakariko Well - Top", true, ['BottleWithRedPotion']], + ["Kakariko Well - Top", true, ['BottleWithGreenPotion']], + ["Kakariko Well - Top", true, ['BottleWithBluePotion']], + ["Kakariko Well - Top", true, ['Bottle']], + ["Kakariko Well - Top", true, ['BottleWithGoldBee']], + + ["Kakariko Well - Left", true, []], + + ["Kakariko Well - Middle", true, []], + + ["Kakariko Well - Right", true, []], + + ["Kakariko Well - Bottom", true, []], + + ["Blind's Hideout - Top", false, []], + ["Blind's Hideout - Top", false, [], ['MoonPearl', 'AnyBottle']], + ["Blind's Hideout - Top", true, ['MoonPearl']], + ["Blind's Hideout - Top", true, ['BottleWithBee']], + ["Blind's Hideout - Top", true, ['BottleWithFairy']], + ["Blind's Hideout - Top", true, ['BottleWithRedPotion']], + ["Blind's Hideout - Top", true, ['BottleWithGreenPotion']], + ["Blind's Hideout - Top", true, ['BottleWithBluePotion']], + ["Blind's Hideout - Top", true, ['Bottle']], + ["Blind's Hideout - Top", true, ['BottleWithGoldBee']], + + ["Blind's Hideout - Left", false, []], + ["Blind's Hideout - Left", false, [], ['MoonPearl', 'AnyBottle', 'MagicMirror']], + ["Blind's Hideout - Left", true, ['MagicMirror']], + ["Blind's Hideout - Left", true, ['MoonPearl']], + ["Blind's Hideout - Left", true, ['BottleWithBee']], + ["Blind's Hideout - Left", true, ['BottleWithFairy']], + ["Blind's Hideout - Left", true, ['BottleWithRedPotion']], + ["Blind's Hideout - Left", true, ['BottleWithGreenPotion']], + ["Blind's Hideout - Left", true, ['BottleWithBluePotion']], + ["Blind's Hideout - Left", true, ['Bottle']], + ["Blind's Hideout - Left", true, ['BottleWithGoldBee']], + + ["Blind's Hideout - Right", false, []], + ["Blind's Hideout - Right", false, [], ['MoonPearl', 'AnyBottle', 'MagicMirror']], + ["Blind's Hideout - Right", true, ['MagicMirror']], + ["Blind's Hideout - Right", true, ['MoonPearl']], + ["Blind's Hideout - Right", true, ['BottleWithBee']], + ["Blind's Hideout - Right", true, ['BottleWithFairy']], + ["Blind's Hideout - Right", true, ['BottleWithRedPotion']], + ["Blind's Hideout - Right", true, ['BottleWithGreenPotion']], + ["Blind's Hideout - Right", true, ['BottleWithBluePotion']], + ["Blind's Hideout - Right", true, ['Bottle']], + ["Blind's Hideout - Right", true, ['BottleWithGoldBee']], + + ["Blind's Hideout - Far Left", false, []], + ["Blind's Hideout - Far Left", false, [], ['MoonPearl', 'AnyBottle', 'MagicMirror']], + ["Blind's Hideout - Far Left", true, ['MagicMirror']], + ["Blind's Hideout - Far Left", true, ['MoonPearl']], + ["Blind's Hideout - Far Left", true, ['BottleWithBee']], + ["Blind's Hideout - Far Left", true, ['BottleWithFairy']], + ["Blind's Hideout - Far Left", true, ['BottleWithRedPotion']], + ["Blind's Hideout - Far Left", true, ['BottleWithGreenPotion']], + ["Blind's Hideout - Far Left", true, ['BottleWithBluePotion']], + ["Blind's Hideout - Far Left", true, ['Bottle']], + ["Blind's Hideout - Far Left", true, ['BottleWithGoldBee']], + + ["Blind's Hideout - Far Right", false, []], + ["Blind's Hideout - Far Right", false, [], ['MoonPearl', 'AnyBottle', 'MagicMirror']], + ["Blind's Hideout - Far Right", true, ['MoonPearl']], + ["Blind's Hideout - Far Right", true, ['MagicMirror']], + ["Blind's Hideout - Far Right", true, ['BottleWithBee']], + ["Blind's Hideout - Far Right", true, ['BottleWithFairy']], + ["Blind's Hideout - Far Right", true, ['BottleWithRedPotion']], + ["Blind's Hideout - Far Right", true, ['BottleWithGreenPotion']], + ["Blind's Hideout - Far Right", true, ['BottleWithBluePotion']], + ["Blind's Hideout - Far Right", true, ['Bottle']], + ["Blind's Hideout - Far Right", true, ['BottleWithGoldBee']], + + ["Pegasus Rocks", false, []], + ["Pegasus Rocks", false, [], ['PegasusBoots']], + ["Pegasus Rocks", false, [], ['MoonPearl', 'AnyBottle']], + ["Pegasus Rocks", true, ['MoonPearl', 'PegasusBoots']], + ["Pegasus Rocks", true, ['BottleWithBee', 'PegasusBoots']], + ["Pegasus Rocks", true, ['BottleWithFairy', 'PegasusBoots']], + ["Pegasus Rocks", true, ['BottleWithRedPotion', 'PegasusBoots']], + ["Pegasus Rocks", true, ['BottleWithGreenPotion', 'PegasusBoots']], + ["Pegasus Rocks", true, ['BottleWithBluePotion', 'PegasusBoots']], + ["Pegasus Rocks", true, ['Bottle', 'PegasusBoots']], + ["Pegasus Rocks", true, ['BottleWithGoldBee', 'PegasusBoots']], + + ["Mini Moldorm Cave - Far Left", false, []], + ["Mini Moldorm Cave - Far Left", false, [], ['MoonPearl', 'AnyBottle']], + ["Mini Moldorm Cave - Far Left", true, ['MoonPearl']], + ["Mini Moldorm Cave - Far Left", true, ['BottleWithBee']], + ["Mini Moldorm Cave - Far Left", true, ['BottleWithFairy']], + ["Mini Moldorm Cave - Far Left", true, ['BottleWithRedPotion']], + ["Mini Moldorm Cave - Far Left", true, ['BottleWithGreenPotion']], + ["Mini Moldorm Cave - Far Left", true, ['BottleWithBluePotion']], + ["Mini Moldorm Cave - Far Left", true, ['Bottle']], + ["Mini Moldorm Cave - Far Left", true, ['BottleWithGoldBee']], + + ["Mini Moldorm Cave - Left", false, []], + ["Mini Moldorm Cave - Left", false, [], ['MoonPearl', 'AnyBottle']], + ["Mini Moldorm Cave - Left", true, ['MoonPearl']], + ["Mini Moldorm Cave - Left", true, ['BottleWithBee']], + ["Mini Moldorm Cave - Left", true, ['BottleWithFairy']], + ["Mini Moldorm Cave - Left", true, ['BottleWithRedPotion']], + ["Mini Moldorm Cave - Left", true, ['BottleWithGreenPotion']], + ["Mini Moldorm Cave - Left", true, ['BottleWithBluePotion']], + ["Mini Moldorm Cave - Left", true, ['Bottle']], + ["Mini Moldorm Cave - Left", true, ['BottleWithGoldBee']], + + ["Mini Moldorm Cave - Right", false, []], + ["Mini Moldorm Cave - Right", false, [], ['MoonPearl', 'AnyBottle']], + ["Mini Moldorm Cave - Right", true, ['MoonPearl']], + ["Mini Moldorm Cave - Right", true, ['BottleWithBee']], + ["Mini Moldorm Cave - Right", true, ['BottleWithFairy']], + ["Mini Moldorm Cave - Right", true, ['BottleWithRedPotion']], + ["Mini Moldorm Cave - Right", true, ['BottleWithGreenPotion']], + ["Mini Moldorm Cave - Right", true, ['BottleWithBluePotion']], + ["Mini Moldorm Cave - Right", true, ['Bottle']], + ["Mini Moldorm Cave - Right", true, ['BottleWithGoldBee']], + + ["Mini Moldorm Cave - Far Right", false, []], + ["Mini Moldorm Cave - Far Right", false, [], ['MoonPearl', 'AnyBottle']], + ["Mini Moldorm Cave - Far Right", true, ['MoonPearl']], + ["Mini Moldorm Cave - Far Right", true, ['BottleWithBee']], + ["Mini Moldorm Cave - Far Right", true, ['BottleWithFairy']], + ["Mini Moldorm Cave - Far Right", true, ['BottleWithRedPotion']], + ["Mini Moldorm Cave - Far Right", true, ['BottleWithGreenPotion']], + ["Mini Moldorm Cave - Far Right", true, ['BottleWithBluePotion']], + ["Mini Moldorm Cave - Far Right", true, ['Bottle']], + ["Mini Moldorm Cave - Far Right", true, ['BottleWithGoldBee']], + + ["Ice Rod Cave", false, []], + ["Ice Rod Cave", false, [], ['MoonPearl', 'BigRedBomb', 'AnyBottle']], + ["Ice Rod Cave", true, ['MoonPearl']], + ["Ice Rod Cave", true, ['BigRedBomb', 'MagicMirror']], + ["Ice Rod Cave", true, ['BottleWithBee']], + ["Ice Rod Cave", true, ['BottleWithFairy']], + ["Ice Rod Cave", true, ['BottleWithRedPotion']], + ["Ice Rod Cave", true, ['BottleWithGreenPotion']], + ["Ice Rod Cave", true, ['BottleWithBluePotion']], + ["Ice Rod Cave", true, ['Bottle']], + ["Ice Rod Cave", true, ['BottleWithGoldBee']], + + ["Bottle Merchant", true, []], + + ["Sahasrahla", false, []], + ["Sahasrahla", false, [], ['PendantOfCourage']], + ["Sahasrahla", true, ['PendantOfCourage']], + + ["Magic Bat", false, []], + ["Magic Bat", false, [], ['Powder']], + ["Magic Bat", false, [], ['MoonPearl', 'AnyBottle']], + ["Magic Bat", true, ['Powder', 'MoonPearl']], + ["Magic Bat", true, ['Powder', 'BottleWithBee']], + ["Magic Bat", true, ['Powder', 'BottleWithFairy']], + ["Magic Bat", true, ['Powder', 'BottleWithRedPotion']], + ["Magic Bat", true, ['Powder', 'BottleWithGreenPotion']], + ["Magic Bat", true, ['Powder', 'BottleWithBluePotion']], + ["Magic Bat", true, ['Powder', 'Bottle']], + ["Magic Bat", true, ['Powder', 'BottleWithGoldBee']], + + ["Sick Kid", false, []], + ["Sick Kid", false, [], ['AnyBottle']], + ["Sick Kid", true, ['BottleWithBee']], + ["Sick Kid", true, ['BottleWithFairy']], + ["Sick Kid", true, ['BottleWithRedPotion']], + ["Sick Kid", true, ['BottleWithGreenPotion']], + ["Sick Kid", true, ['BottleWithBluePotion']], + ["Sick Kid", true, ['Bottle']], + ["Sick Kid", true, ['BottleWithGoldBee']], + + ["Hobo", false, []], + ["Hobo", false, [], ['MoonPearl', 'AnyBottle']], + ["Hobo", true, ['MoonPearl']], + ["Hobo", true, ['BottleWithBee']], + ["Hobo", true, ['BottleWithFairy']], + ["Hobo", true, ['BottleWithRedPotion']], + ["Hobo", true, ['BottleWithGreenPotion']], + ["Hobo", true, ['BottleWithBluePotion']], + ["Hobo", true, ['Bottle']], + ["Hobo", true, ['BottleWithGoldBee']], + + ["Bombos Tablet", false, []], + ["Bombos Tablet", false, [], ['UpgradedSword']], + ["Bombos Tablet", false, [], ['BookOfMudora']], + ["Bombos Tablet", true, ['BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Bombos Tablet", true, ['BookOfMudora', 'L2Sword']], + ["Bombos Tablet", true, ['BookOfMudora', 'L3Sword']], + ["Bombos Tablet", true, ['BookOfMudora', 'L4Sword']], + + ["King Zora", true, []], + + ["Lost Woods Hideout", false, []], + ["Lost Woods Hideout", false, [], ['MoonPearl', 'AnyBottle']], + ["Lost Woods Hideout", true, ['MoonPearl']], + ["Lost Woods Hideout", true, ['BottleWithBee']], + ["Lost Woods Hideout", true, ['BottleWithFairy']], + ["Lost Woods Hideout", true, ['BottleWithRedPotion']], + ["Lost Woods Hideout", true, ['BottleWithGreenPotion']], + ["Lost Woods Hideout", true, ['BottleWithBluePotion']], + ["Lost Woods Hideout", true, ['Bottle']], + ["Lost Woods Hideout", true, ['BottleWithGoldBee']], + + ["Lumberjack Tree", false, []], + ["Lumberjack Tree", false, [], ['DefeatAgahnim']], + ["Lumberjack Tree", true, ['DefeatAgahnim']], + + ["Cave 45", false, []], + + ["Graveyard Ledge", false, []], + ["Graveyard Ledge", false, [], ['MoonPearl', 'AnyBottle']], + ["Graveyard Ledge", true, ['MoonPearl']], + ["Graveyard Ledge", true, ['BottleWithBee']], + ["Graveyard Ledge", true, ['BottleWithFairy']], + ["Graveyard Ledge", true, ['BottleWithRedPotion']], + ["Graveyard Ledge", true, ['BottleWithGreenPotion']], + ["Graveyard Ledge", true, ['BottleWithBluePotion']], + ["Graveyard Ledge", true, ['Bottle']], + ["Graveyard Ledge", true, ['BottleWithGoldBee']], + + ["Checkerboard Cave", false, []], + ["Checkerboard Cave", false, [], ['Gloves']], + ["Checkerboard Cave", false, [], ['MoonPearl', 'AnyBottle']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'MoonPearl']], + ["Checkerboard Cave", true, ['PowerGlove', 'MoonPearl']], + ["Checkerboard Cave", true, ['TitansMitt', 'MoonPearl']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'BottleWithBee']], + ["Checkerboard Cave", true, ['PowerGlove', 'BottleWithBee']], + ["Checkerboard Cave", true, ['TitansMitt', 'BottleWithBee']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'BottleWithFairy']], + ["Checkerboard Cave", true, ['PowerGlove', 'BottleWithFairy']], + ["Checkerboard Cave", true, ['TitansMitt', 'BottleWithFairy']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'BottleWithRedPotion']], + ["Checkerboard Cave", true, ['PowerGlove', 'BottleWithRedPotion']], + ["Checkerboard Cave", true, ['TitansMitt', 'BottleWithRedPotion']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'BottleWithGreenPotion']], + ["Checkerboard Cave", true, ['PowerGlove', 'BottleWithGreenPotion']], + ["Checkerboard Cave", true, ['TitansMitt', 'BottleWithGreenPotion']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'BottleWithBluePotion']], + ["Checkerboard Cave", true, ['PowerGlove', 'BottleWithBluePotion']], + ["Checkerboard Cave", true, ['TitansMitt', 'BottleWithBluePotion']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'Bottle']], + ["Checkerboard Cave", true, ['PowerGlove', 'Bottle']], + ["Checkerboard Cave", true, ['TitansMitt', 'Bottle']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'BottleWithGoldBee']], + ["Checkerboard Cave", true, ['PowerGlove', 'BottleWithGoldBee']], + ["Checkerboard Cave", true, ['TitansMitt', 'BottleWithGoldBee']], + + ["Mini Moldorm Cave - NPC", false, []], + ["Mini Moldorm Cave - NPC", false, [], ['MoonPearl', 'AnyBottle']], + ["Mini Moldorm Cave - NPC", true, ['MoonPearl']], + ["Mini Moldorm Cave - NPC", true, ['BottleWithBee']], + ["Mini Moldorm Cave - NPC", true, ['BottleWithFairy']], + ["Mini Moldorm Cave - NPC", true, ['BottleWithRedPotion']], + ["Mini Moldorm Cave - NPC", true, ['BottleWithGreenPotion']], + ["Mini Moldorm Cave - NPC", true, ['BottleWithBluePotion']], + ["Mini Moldorm Cave - NPC", true, ['Bottle']], + ["Mini Moldorm Cave - NPC", true, ['BottleWithGoldBee']], + + ["Library", false, []], + ["Library", false, [], ['PegasusBoots']], + ["Library", true, ['PegasusBoots', 'MoonPearl']], + ["Library", true, ['PegasusBoots', 'MagicMirror']], + ["Library", true, ['PegasusBoots', 'BottleWithBee']], + ["Library", true, ['PegasusBoots', 'BottleWithFairy']], + ["Library", true, ['PegasusBoots', 'BottleWithRedPotion']], + ["Library", true, ['PegasusBoots', 'BottleWithGreenPotion']], + ["Library", true, ['PegasusBoots', 'BottleWithBluePotion']], + ["Library", true, ['PegasusBoots', 'Bottle']], + ["Library", true, ['PegasusBoots', 'BottleWithGoldBee']], + + ["Mushroom", false, []], + ["Mushroom", false, [], ['MoonPearl', 'AnyBottle']], + ["Mushroom", true, ['BottleWithBee']], + ["Mushroom", true, ['BottleWithFairy']], + ["Mushroom", true, ['BottleWithRedPotion']], + ["Mushroom", true, ['BottleWithGreenPotion']], + ["Mushroom", true, ['BottleWithBluePotion']], + ["Mushroom", true, ['Bottle']], + ["Mushroom", true, ['BottleWithGoldBee']], + + ["Potion Shop", false, []], + ["Potion Shop", false, [], ['Mushroom']], + ["Potion Shop", true, ['Mushroom']], + + ["Maze Race", true, []], + + ["Desert Ledge", true, []], + + ["Lake Hylia Island", true, []], + + ["Sunken Treasure", false, []], + ["Sunken Treasure", false, [], ['MoonPearl', 'MagicMirror', 'AnyBottle']], + ["Sunken Treasure", true, ['MoonPearl']], + ["Sunken Treasure", true, ['MagicMirror']], + ["Sunken Treasure", true, ['BottleWithBee']], + ["Sunken Treasure", true, ['BottleWithFairy']], + ["Sunken Treasure", true, ['BottleWithRedPotion']], + ["Sunken Treasure", true, ['BottleWithGreenPotion']], + ["Sunken Treasure", true, ['BottleWithBluePotion']], + ["Sunken Treasure", true, ['Bottle']], + ["Sunken Treasure", true, ['BottleWithGoldBee']], + + ["Zora's Ledge", false, []], + ["Zora's Ledge", false, [], ['MoonPearl', 'PegasusBoots', 'Flippers']], + ["Zora's Ledge", false, [], ['MoonPearl', 'AnyBottle']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + ["Zora's Ledge", true, ['MoonPearl', 'Flippers']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + + ["Flute Spot", false, []], + ["Flute Spot", false, [], ['Shovel']], + ["Flute Spot", false, [], ['MoonPearl', 'AnyBottle']], + ["Flute Spot", true, ['Shovel', 'MoonPearl']], + ["Flute Spot", true, ['Shovel', 'BottleWithBee']], + ["Flute Spot", true, ['Shovel', 'BottleWithFairy']], + ["Flute Spot", true, ['Shovel', 'BottleWithRedPotion']], + ["Flute Spot", true, ['Shovel', 'BottleWithGreenPotion']], + ["Flute Spot", true, ['Shovel', 'BottleWithBluePotion']], + ["Flute Spot", true, ['Shovel', 'Bottle']], + ["Flute Spot", true, ['Shovel', 'BottleWithGoldBee']], + + ["Waterfall Fairy - Left", false, []], + ["Waterfall Fairy - Left", false, [], ['MoonPearl', 'AnyBottle']], + ["Waterfall Fairy - Left", true, ['MoonPearl']], + ["Waterfall Fairy - Left", true, ['BottleWithBee', 'PegasusBoots']], + ["Waterfall Fairy - Left", true, ['BottleWithFairy', 'PegasusBoots']], + ["Waterfall Fairy - Left", true, ['BottleWithRedPotion', 'PegasusBoots']], + ["Waterfall Fairy - Left", true, ['BottleWithGreenPotion', 'PegasusBoots']], + ["Waterfall Fairy - Left", true, ['BottleWithBluePotion', 'PegasusBoots']], + ["Waterfall Fairy - Left", true, ['Bottle', 'PegasusBoots']], + ["Waterfall Fairy - Left", true, ['BottleWithGoldBee', 'PegasusBoots']], + ["Waterfall Fairy - Left", true, ['BottleWithBee', 'Flippers']], + ["Waterfall Fairy - Left", true, ['BottleWithFairy', 'Flippers']], + ["Waterfall Fairy - Left", true, ['BottleWithRedPotion', 'Flippers']], + ["Waterfall Fairy - Left", true, ['BottleWithGreenPotion', 'Flippers']], + ["Waterfall Fairy - Left", true, ['BottleWithBluePotion', 'Flippers']], + ["Waterfall Fairy - Left", true, ['Bottle', 'Flippers']], + ["Waterfall Fairy - Left", true, ['BottleWithGoldBee', 'Flippers']], + + ["Waterfall Fairy - Right", false, []], + ["Waterfall Fairy - Right", false, [], ['MoonPearl', 'AnyBottle']], + ["Waterfall Fairy - Right", true, ['MoonPearl']], + ["Waterfall Fairy - Right", true, ['BottleWithBee', 'PegasusBoots']], + ["Waterfall Fairy - Right", true, ['BottleWithFairy', 'PegasusBoots']], + ["Waterfall Fairy - Right", true, ['BottleWithRedPotion', 'PegasusBoots']], + ["Waterfall Fairy - Right", true, ['BottleWithGreenPotion', 'PegasusBoots']], + ["Waterfall Fairy - Right", true, ['BottleWithBluePotion', 'PegasusBoots']], + ["Waterfall Fairy - Right", true, ['Bottle', 'PegasusBoots']], + ["Waterfall Fairy - Right", true, ['BottleWithGoldBee', 'PegasusBoots']], + ["Waterfall Fairy - Right", true, ['BottleWithBee', 'Flippers']], + ["Waterfall Fairy - Right", true, ['BottleWithFairy', 'Flippers']], + ["Waterfall Fairy - Right", true, ['BottleWithRedPotion', 'Flippers']], + ["Waterfall Fairy - Right", true, ['BottleWithGreenPotion', 'Flippers']], + ["Waterfall Fairy - Right", true, ['BottleWithBluePotion', 'Flippers']], + ["Waterfall Fairy - Right", true, ['Bottle', 'Flippers']], + ["Waterfall Fairy - Right", true, ['BottleWithGoldBee', 'Flippers']], + + ["Bomb Merchant", false, []], + ["Bomb Merchant", false, [], ['Crystal5']], + ["Bomb Merchant", false, [], ['Crystal6']], + ["Bomb Merchant", true, ['Crystal5', 'Crystal6']], + + ["Ganon", false, []], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/MiseryMireTest.php b/tests/InvertedMajorGlitches/MiseryMireTest.php new file mode 100644 index 000000000..ebf0343a4 --- /dev/null +++ b/tests/InvertedMajorGlitches/MiseryMireTest.php @@ -0,0 +1,217 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->world->getLocation("Misery Mire Medallion")->setItem(Item::get('Ether', $this->world)); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Misery Mire - Big Chest", false, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Main Lobby", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Big Key Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Compass Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Bridge Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Map Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Spike Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Boss", false, 'BigKeyD6', [], ['BigKeyD6']], + ]; + } + + public function accessPool() + { + return [ + ["Misery Mire - Big Chest", false, []], + ["Misery Mire - Big Chest", false, [], ['BigKeyD6']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Hookshot', 'Ether', 'UncleSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Hookshot', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Hookshot', 'Ether', 'MasterSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Hookshot', 'Ether', 'L3Sword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Hookshot', 'Ether', 'L4Sword']], + + ["Misery Mire - Main Lobby", false, []], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Hookshot', 'Ether', 'UncleSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Hookshot', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Hookshot', 'Ether', 'MasterSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Hookshot', 'Ether', 'L3Sword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Hookshot', 'Ether', 'L4Sword']], + + ["Misery Mire - Big Key Chest", false, []], + ["Misery Mire - Big Key Chest", false, [], ['FireRod', 'Lamp']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Hookshot', 'Ether', 'UncleSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Hookshot', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Hookshot', 'Ether', 'MasterSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Hookshot', 'Ether', 'L3Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Hookshot', 'Ether', 'L4Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Hookshot', 'Ether', 'UncleSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Hookshot', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Hookshot', 'Ether', 'MasterSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Hookshot', 'Ether', 'L3Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Hookshot', 'Ether', 'L4Sword']], + + ["Misery Mire - Compass Chest", false, []], + ["Misery Mire - Compass Chest", false, [], ['FireRod', 'Lamp']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Hookshot', 'Ether', 'UncleSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Hookshot', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Hookshot', 'Ether', 'MasterSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Hookshot', 'Ether', 'L3Sword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Hookshot', 'Ether', 'L4Sword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Hookshot', 'Ether', 'UncleSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Hookshot', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Hookshot', 'Ether', 'MasterSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Hookshot', 'Ether', 'L3Sword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Hookshot', 'Ether', 'L4Sword']], + + ["Misery Mire - Bridge Chest", false, []], + ["Misery Mire - Bridge Chest", true, ['PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Bridge Chest", true, ['PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Bridge Chest", true, ['PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Bridge Chest", true, ['PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Bridge Chest", true, ['PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Bridge Chest", true, ['Hookshot', 'Ether', 'UncleSword']], + ["Misery Mire - Bridge Chest", true, ['Hookshot', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Bridge Chest", true, ['Hookshot', 'Ether', 'MasterSword']], + ["Misery Mire - Bridge Chest", true, ['Hookshot', 'Ether', 'L3Sword']], + ["Misery Mire - Bridge Chest", true, ['Hookshot', 'Ether', 'L4Sword']], + + ["Misery Mire - Map Chest", false, []], + ["Misery Mire - Map Chest", true, ['KeyD6', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Hookshot', 'Ether', 'UncleSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Hookshot', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Hookshot', 'Ether', 'MasterSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Hookshot', 'Ether', 'L3Sword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Hookshot', 'Ether', 'L4Sword']], + + ["Misery Mire - Spike Chest", false, []], + ["Misery Mire - Spike Chest", true, ['PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Spike Chest", true, ['PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Spike Chest", true, ['PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Spike Chest", true, ['PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Spike Chest", true, ['PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Spike Chest", true, ['Hookshot', 'Ether', 'UncleSword']], + ["Misery Mire - Spike Chest", true, ['Hookshot', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Spike Chest", true, ['Hookshot', 'Ether', 'MasterSword']], + ["Misery Mire - Spike Chest", true, ['Hookshot', 'Ether', 'L3Sword']], + ["Misery Mire - Spike Chest", true, ['Hookshot', 'Ether', 'L4Sword']], + + ["Misery Mire - Boss", false, []], + ["Misery Mire - Boss", false, [], ['Lamp']], + ["Misery Mire - Boss", false, [], ['CaneOfSomaria']], + ["Misery Mire - Boss", false, [], ['BigKeyD6']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'Hookshot', 'Ether', 'UncleSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'Hookshot', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'Hookshot', 'Ether', 'MasterSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'Hookshot', 'Ether', 'L3Sword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'Hookshot', 'Ether', 'L4Sword']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/PalaceOfDarknessTest.php b/tests/InvertedMajorGlitches/PalaceOfDarknessTest.php new file mode 100644 index 000000000..3f72f13a0 --- /dev/null +++ b/tests/InvertedMajorGlitches/PalaceOfDarknessTest.php @@ -0,0 +1,186 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Palace of Darkness') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [true, []], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Palace of Darkness - Big Key Chest", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - The Arena - Ledge", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - The Arena - Bridge", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Big Chest", false, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Compass Chest", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Harmless Hellway", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Stalfos Basement", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Basement - Left", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Basement - Right", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Map Chest", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Maze - Top", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Maze - Bottom", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Shooter Room", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Boss", false, 'BigKeyD1', [], ['BigKeyD1']], + ]; + } + + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Palace of Darkness - Big Key Chest", false, []], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1']], + + ["Palace of Darkness - The Arena - Ledge", false, []], + ["Palace of Darkness - The Arena - Ledge", false, [], ['AnyBow']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows']], + + ["Palace of Darkness - The Arena - Bridge", false, []], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1']], + + ["Palace of Darkness - Big Chest", false, []], + ["Palace of Darkness - Big Chest", false, [], ['Lamp']], + ["Palace of Darkness - Big Chest", false, [], ['BigKeyD1']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp']], + + ["Palace of Darkness - Compass Chest", false, []], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1']], + + ["Palace of Darkness - Harmless Hellway", false, []], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1']], + + ["Palace of Darkness - Stalfos Basement", false, []], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1']], + + ["Palace of Darkness - Dark Basement - Left", false, []], + ["Palace of Darkness - Dark Basement - Left", false, [], ['Lamp']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp']], + + ["Palace of Darkness - Dark Basement - Right", false, []], + ["Palace of Darkness - Dark Basement - Right", false, [], ['Lamp']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp']], + + ["Palace of Darkness - Map Chest", false, []], + ["Palace of Darkness - Map Chest", false, [], ['AnyBow']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows']], + + ["Palace of Darkness - Dark Maze - Top", false, []], + ["Palace of Darkness - Dark Maze - Top", false, [], ['Lamp']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp']], + + ["Palace of Darkness - Dark Maze - Bottom", false, []], + ["Palace of Darkness - Dark Maze - Bottom", false, [], ['Lamp']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp']], + + ["Palace of Darkness - Shooter Room", true, []], + + ["Palace of Darkness - Boss", false, []], + ["Palace of Darkness - Boss", false, [], ['Lamp']], + ["Palace of Darkness - Boss", false, [], ['Hammer']], + ["Palace of Darkness - Boss", false, [], ['AnyBow']], + ["Palace of Darkness - Boss", false, [], ['BigKeyD1']], + ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'Hammer', 'BowAndArrows']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/SkullWoodsTest.php b/tests/InvertedMajorGlitches/SkullWoodsTest.php new file mode 100644 index 000000000..2a65b920a --- /dev/null +++ b/tests/InvertedMajorGlitches/SkullWoodsTest.php @@ -0,0 +1,123 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * @param array $keys + * @param string $big_key + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Skull Woods - Big Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Big Key Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Compass Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Map Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Bridge Room", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Pot Prison", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Pinball Room", true, 'KeyD3', [], ['KeyD3']], + + ["Skull Woods - Boss", true, 'BigKeyD3', [], ['BigKeyD3']], + ["Skull Woods - Boss", false, 'KeyD3', [], ['KeyD3']], + ]; + } + + public function accessPool() + { + return [ + ["Skull Woods - Big Chest", false, []], + ["Skull Woods - Big Chest", false, [], ['BigKeyD3']], + ["Skull Woods - Big Chest", true, ['BigKeyD3']], + + ["Skull Woods - Big Key Chest", true, []], + + ["Skull Woods - Compass Chest", true, []], + + ["Skull Woods - Map Chest", true, []], + + ["Skull Woods - Bridge Room", false, []], + ["Skull Woods - Bridge Room", false, [], ['FireRod']], + ["Skull Woods - Bridge Room", true, ['FireRod']], + + ["Skull Woods - Pot Prison", true, []], + + ["Skull Woods - Pinball Room", true, []], + + ["Skull Woods - Boss", false, []], + ["Skull Woods - Boss", false, [], ['FireRod']], + ["Skull Woods - Boss", false, [], ['AnySword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'UncleSword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'MasterSword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'L3Sword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'L4Sword']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/SwampPalaceTest.php b/tests/InvertedMajorGlitches/SwampPalaceTest.php new file mode 100644 index 000000000..5d56b4888 --- /dev/null +++ b/tests/InvertedMajorGlitches/SwampPalaceTest.php @@ -0,0 +1,562 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->world->getLocation("Misery Mire Medallion")->setItem(Item::get('Ether', $this->world)); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Swamp Palace') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [false, []], + [false, [], ['Flippers']], + [false, [], ['MagicMirror', 'Ether']], + [false, [], ['MagicMirror', 'MoonPearl']], + [true, ['Flippers', 'MagicMirror']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Swamp Palace - Entrance", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Entrance", true, 'KeyD2', [], ['KeyD2']], + + ["Swamp Palace - Big Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Big Chest", true, 'KeyD2', [], ['KeyD2']], + + ["Swamp Palace - Big Key Chest", true, 'KeyD2', [], ['KeyD2']], + ["Swamp Palace - Big Key Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Map Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Map Chest", true, 'KeyD2', [], ['KeyD2']], + + ["Swamp Palace - West Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - West Chest", true, 'KeyD2', [], ['KeyD2']], + + ["Swamp Palace - Compass Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Compass Chest", true, 'KeyD2', [], ['KeyD2']], + + ["Swamp Palace - Flooded Room - Left", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Flooded Room - Left", true, 'KeyD2', [], ['KeyD2']], + + ["Swamp Palace - Flooded Room - Right", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Flooded Room - Right", true, 'KeyD2', [], ['KeyD2']], + + ["Swamp Palace - Waterfall Room", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Waterfall Room", true, 'KeyD2', [], ['KeyD2']], + + ["Swamp Palace - Boss", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Boss", true, 'KeyD2', [], ['KeyD2']], + ]; + } + + public function accessPool() + { + return [ + ["Swamp Palace - Entrance", false, []], + ["Swamp Palace - Entrance", false, [], ['Flippers']], + ["Swamp Palace - Entrance", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Entrance", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Entrance", true, ['Flippers', 'MagicMirror']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + + ["Swamp Palace - Big Chest", false, []], + ["Swamp Palace - Big Chest", false, [], ['Flippers']], + ["Swamp Palace - Big Chest", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Big Chest", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Big Chest", false, [], ['Hammer', 'Ether', 'BigKeyP3']], + ["Swamp Palace - Big Chest", false, [], ['KeyD2', 'Ether']], + ["Swamp Palace - Big Chest", false, [], ['BigKeyD2', 'BigKeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'Hammer', 'KeyD2', 'BigKeyD2']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBee', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithFairy', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithRedPotion', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBluePotion', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'Bottle', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGoldBee', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'UncleSword', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'ProgressiveSword', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'MasterSword', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'L3Sword', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'L4Sword', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + + ["Swamp Palace - Big Key Chest", false, []], + ["Swamp Palace - Big Key Chest", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Big Key Chest", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Big Key Chest", false, [], ['Flippers']], + ["Swamp Palace - Big Key Chest", false, [], ['Hammer', 'Ether', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", false, [], ['KeyD2', 'Ether']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'Hammer', 'KeyD2', 'BigKeyD2']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBee', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithFairy', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithRedPotion', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBluePotion', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'Bottle', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGoldBee', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'UncleSword', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'ProgressiveSword', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'MasterSword', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'L3Sword', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'L4Sword', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + + ["Swamp Palace - Map Chest", false, []], + ["Swamp Palace - Map Chest", false, [], ['Flippers']], + ["Swamp Palace - Map Chest", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Map Chest", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Map Chest", false, [], ['KeyD2', 'Ether']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'MagicMirror', 'KeyD2']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + + ["Swamp Palace - West Chest", false, []], + ["Swamp Palace - West Chest", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - West Chest", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - West Chest", false, [], ['Flippers']], + ["Swamp Palace - West Chest", false, [], ['Hammer', 'Ether', 'BigKeyP3']], + ["Swamp Palace - West Chest", false, [], ['KeyD2', 'Ether']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'Hammer', 'KeyD2', 'BigKeyD2']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBee', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithFairy', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithRedPotion', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBluePotion', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'Bottle', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGoldBee', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'UncleSword', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'ProgressiveSword', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'MasterSword', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'L3Sword', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'L4Sword', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + + ["Swamp Palace - Compass Chest", false, []], + ["Swamp Palace - Compass Chest", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Compass Chest", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Compass Chest", false, [], ['Flippers']], + ["Swamp Palace - Compass Chest", false, [], ['Hammer', 'Ether', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", false, [], ['KeyD2', 'Ether']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'Hammer', 'KeyD2', 'BigKeyD2']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBee', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithFairy', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithRedPotion', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBluePotion', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'Bottle', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGoldBee', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'UncleSword', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'ProgressiveSword', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'MasterSword', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'L3Sword', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'MagicMirror', 'KeyD2', 'L4Sword', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + + ["Swamp Palace - Flooded Room - Left", false, []], + ["Swamp Palace - Flooded Room - Left", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Flooded Room - Left", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Flooded Room - Left", false, [], ['Hookshot']], + ["Swamp Palace - Flooded Room - Left", false, [], ['Flippers']], + ["Swamp Palace - Flooded Room - Left", false, [], ['Hammer', 'Ether', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", false, [], ['KeyD2', 'Ether']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'Hammer', 'KeyD2', 'BigKeyD2']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBee', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithFairy', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithRedPotion', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBluePotion', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'Bottle', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGoldBee', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'UncleSword', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'ProgressiveSword', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'MasterSword', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'L3Sword', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'L4Sword', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + + ["Swamp Palace - Flooded Room - Right", false, []], + ["Swamp Palace - Flooded Room - Right", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Flooded Room - Right", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Flooded Room - Right", false, [], ['Hookshot']], + ["Swamp Palace - Flooded Room - Right", false, [], ['Flippers']], + ["Swamp Palace - Flooded Room - Right", false, [], ['Hammer', 'Ether', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", false, [], ['KeyD2', 'Ether']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'Hammer', 'KeyD2', 'BigKeyD2']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBee', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithFairy', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithRedPotion', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBluePotion', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'Bottle', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGoldBee', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'UncleSword', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'ProgressiveSword', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'MasterSword', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'L3Sword', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'L4Sword', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + + ["Swamp Palace - Waterfall Room", false, []], + ["Swamp Palace - Waterfall Room", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Waterfall Room", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Waterfall Room", false, [], ['Hookshot']], + ["Swamp Palace - Waterfall Room", false, [], ['Flippers']], + ["Swamp Palace - Waterfall Room", false, [], ['Hammer', 'Ether', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", false, [], ['KeyD2', 'Ether']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'Hammer', 'KeyD2', 'BigKeyD2']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBee', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithFairy', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithRedPotion', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithBluePotion', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'Bottle', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BottleWithGoldBee', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'UncleSword', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'ProgressiveSword', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'MasterSword', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'L3Sword', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'L4Sword', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + + ["Swamp Palace - Boss", false, []], + ["Swamp Palace - Boss", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Boss", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Boss", false, [], ['Hookshot']], + ["Swamp Palace - Boss", false, [], ['Flippers']], + ["Swamp Palace - Boss", false, [], ['Hammer', 'Ether', 'BigKeyP3']], + ["Swamp Palace - Boss", false, [], ['KeyD2', 'Ether']], + ["Swamp Palace - Boss", false, [], ['Hammer', 'AnySword', 'IceRod', 'FireRod']], + //["Swamp Palace - Boss", false, [], ['Hammer', 'AnySword', 'AnyBottle', 'HalfMagic', 'QuarterMagic', 'AnyBow']], + // AnyBottle Seems to not work with the code for canExtendMagic() right now. + // Testing Instead via the Test below with both allowed Magical Weapons. + ["Swamp Palace - Boss", false, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'FireRod', 'IceRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'Hammer', 'KeyD2']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BowAndArrows', 'FireRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'HalfMagic', 'FireRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'QuarterMagic', 'FireRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'FireRod', 'BottleWithBee', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'FireRod', 'BottleWithFairy', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'FireRod', 'BottleWithRedPotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'FireRod', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'FireRod', 'BottleWithBluePotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'FireRod', 'Bottle', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'FireRod', 'BottleWithGoldBee', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'BowAndArrows', 'IceRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'HalfMagic', 'IceRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'QuarterMagic', 'IceRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'IceRod', 'BottleWithBee', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'IceRod', 'BottleWithFairy', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'IceRod', 'BottleWithRedPotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'IceRod', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'IceRod', 'BottleWithBluePotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'IceRod', 'Bottle', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'IceRod', 'BottleWithGoldBee', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'UncleSword', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'ProgressiveSword', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'MasterSword', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'L3Sword', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'Flippers', 'MagicMirror', 'KeyD2', 'L4Sword', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Hookshot', 'MoonPearl', 'Flippers', 'Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/ThievesTownTest.php b/tests/InvertedMajorGlitches/ThievesTownTest.php new file mode 100644 index 000000000..e4f635fbb --- /dev/null +++ b/tests/InvertedMajorGlitches/ThievesTownTest.php @@ -0,0 +1,129 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->world->getRegion('Thieves Town')->setBoss(new Boss("Dummy Boss")); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * @param array $keys + * @param string $big_key + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + + + public function fillPool() + { + return [ + ["Thieves' Town - Attic", false, 'BigKeyD4', [], ['BigKeyD4']], + ["Thieves' Town - Attic", false, 'KeyD4', [], ['KeyD4']], + + ["Thieves' Town - Big Key Chest", true, 'BigKeyD4', [], ['BigKeyD4']], + + ["Thieves' Town - Map Chest", true, 'BigKeyD4', [], ['BigKeyD4']], + + ["Thieves' Town - Compass Chest", true, 'BigKeyD4', [], ['BigKeyD4']], + + ["Thieves' Town - Ambush Chest", true, 'BigKeyD4', [], ['BigKeyD4']], + + ["Thieves' Town - Big Chest", false, 'BigKeyD4', [], ['BigKeyD4']], + ["Thieves' Town - Big Chest", true, 'KeyD4', [], ['KeyD4']], + + ["Thieves' Town - Blind's Cell", false, 'BigKeyD4', [], ['BigKeyD4']], + + ["Thieves' Town - Boss", false, 'BigKeyD4', [], ['BigKeyD4']], + ["Thieves' Town - Boss", false, 'KeyD4', [], ['KeyD4']], + ]; + } + + public function accessPool() + { + return [ + ["Thieves' Town - Attic", false, []], + ["Thieves' Town - Attic", false, [], ['BigKeyD4']], + ["Thieves' Town - Attic", false, [], ['KeyD4']], + ["Thieves' Town - Attic", true, ['BigKeyD4', 'KeyD4']], + + ["Thieves' Town - Big Key Chest", true, []], + + ["Thieves' Town - Map Chest", true, []], + + ["Thieves' Town - Compass Chest", true, []], + + ["Thieves' Town - Ambush Chest", true, []], + + ["Thieves' Town - Big Chest", false, []], + ["Thieves' Town - Big Chest", false, [], ['BigKeyD4']], + ["Thieves' Town - Big Chest", false, [], ['Hammer']], + ["Thieves' Town - Big Chest", true, ['Hammer', 'KeyD4', 'BigKeyD4']], + + ["Thieves' Town - Blind's Cell", false, []], + ["Thieves' Town - Blind's Cell", false, [], ['BigKeyD4']], + ["Thieves' Town - Blind's Cell", true, ['BigKeyD4']], + + ["Thieves' Town - Boss", false, []], + ["Thieves' Town - Boss", false, [], ['BigKeyD4']], + ["Thieves' Town - Boss", false, [], ['KeyD4']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BigKeyD4']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/TowerOfHeraTest.php b/tests/InvertedMajorGlitches/TowerOfHeraTest.php new file mode 100644 index 000000000..ef7b03742 --- /dev/null +++ b/tests/InvertedMajorGlitches/TowerOfHeraTest.php @@ -0,0 +1,462 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->world->getLocation("Misery Mire Medallion")->setItem(Item::get('Ether', $this->world)); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Tower of Hera') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [false, []], + // [false, [], ['MoonPearl', 'MagicMirror', 'Ether', 'AnyBottle']], // 'AnyBottle' creates issues again... + // [false, [], ['MoonPearl', 'AnySword', 'Ether', 'AnyBottle']], // 'AnyBottle' creates issues again... + [false, ['KeyD6', 'KeyD6', 'KeyD6', 'PegasusBoots', 'Hookshot', 'MagicMirror']], + [false, ['KeyD6', 'KeyD6', 'KeyD6', 'PegasusBoots', 'Hookshot', 'UncleSword']], + [false, ['KeyD6', 'KeyD6', 'KeyD6', 'PegasusBoots', 'Hookshot', 'ProgressiveSword']], + [false, ['KeyD6', 'KeyD6', 'KeyD6', 'PegasusBoots', 'Hookshot', 'MasterSword']], + [false, ['KeyD6', 'KeyD6', 'KeyD6', 'PegasusBoots', 'Hookshot', 'L3Sword']], + [false, ['KeyD6', 'KeyD6', 'KeyD6', 'PegasusBoots', 'Hookshot', 'L4Sword']], + [true, ['MoonPearl']], + [true, ['BottleWithBee']], + [true, ['BottleWithFairy']], + [true, ['BottleWithRedPotion']], + [true, ['BottleWithGreenPotion']], + [true, ['BottleWithBluePotion']], + [true, ['Bottle']], + [true, ['BottleWithGoldBee']], + [true, ['MagicMirror', 'UncleSword']], + [true, ['MagicMirror', 'ProgressiveSword']], + [true, ['MagicMirror', 'MasterSword']], + [true, ['MagicMirror', 'L3Sword']], + [true, ['MagicMirror', 'L4Sword']], + [true, ['Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6']], + [true, ['Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6']], + [true, ['Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6']], + [true, ['Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + [true, ['Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + [true, ['Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6']], + [true, ['Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6']], + [true, ['Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6']], + [true, ['Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + [true, ['Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * @param array $keys + * @param string $big_key + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + + public function fillPool() + { + return [ + ["Tower of Hera - Big Key Chest", true, 'BigKeyP3', [], ['BigKeyP3']], + ["Tower of Hera - Big Key Chest", true, 'KeyP3', [], ['KeyP3']], + + ["Tower of Hera - Basement Cage", true, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Map Chest", true, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Compass Chest", true, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Big Chest", true, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Boss", true, 'BigKeyP3', [], ['BigKeyP3']], + ]; + } + + public function accessPool() + { + return [ + ["Tower of Hera - Big Key Chest", false, []], + ["Tower of Hera - Big Key Chest", false, [], ['Lamp', 'FireRod']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'MoonPearl', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'MoonPearl', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'BottleWithBee', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'BottleWithBee', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'BottleWithFairy', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'BottleWithFairy', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'BottleWithRedPotion', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'BottleWithRedPotion', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'BottleWithGreenPotion', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'BottleWithGreenPotion', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'BottleWithBluePotion', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'BottleWithBluePotion', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Bottle', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Bottle', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'BottleWithGoldBee', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'BottleWithGoldBee', 'KeyP3']], + ["Tower of Hera - Basement Cage", true, ['Lamp', 'MagicMirror', 'UncleSword']], + ["Tower of Hera - Basement Cage", true, ['FireRod', 'MagicMirror', 'UncleSword']], + ["Tower of Hera - Basement Cage", true, ['Lamp', 'MagicMirror', 'ProgressiveSword']], + ["Tower of Hera - Basement Cage", true, ['FireRod', 'MagicMirror', 'ProgressiveSword']], + ["Tower of Hera - Basement Cage", true, ['Lamp', 'MagicMirror', 'MasterSword']], + ["Tower of Hera - Basement Cage", true, ['FireRod', 'MagicMirror', 'MasterSword']], + ["Tower of Hera - Basement Cage", true, ['Lamp', 'MagicMirror', 'L3Sword']], + ["Tower of Hera - Basement Cage", true, ['FireRod', 'MagicMirror', 'L3Sword']], + ["Tower of Hera - Basement Cage", true, ['Lamp', 'MagicMirror', 'L4Sword']], + ["Tower of Hera - Basement Cage", true, ['FireRod', 'MagicMirror', 'L4Sword']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'KeyD6']], + + ["Tower of Hera - Basement Cage", false, []], + ["Tower of Hera - Basement Cage", true, ['MoonPearl']], + ["Tower of Hera - Basement Cage", true, ['BottleWithBee']], + ["Tower of Hera - Basement Cage", true, ['BottleWithFairy']], + ["Tower of Hera - Basement Cage", true, ['BottleWithRedPotion']], + ["Tower of Hera - Basement Cage", true, ['BottleWithGreenPotion']], + ["Tower of Hera - Basement Cage", true, ['BottleWithBluePotion']], + ["Tower of Hera - Basement Cage", true, ['Bottle']], + ["Tower of Hera - Basement Cage", true, ['BottleWithGoldBee']], + ["Tower of Hera - Basement Cage", true, ['MagicMirror', 'UncleSword']], + ["Tower of Hera - Basement Cage", true, ['MagicMirror', 'ProgressiveSword']], + ["Tower of Hera - Basement Cage", true, ['MagicMirror', 'MasterSword']], + ["Tower of Hera - Basement Cage", true, ['MagicMirror', 'L3Sword']], + ["Tower of Hera - Basement Cage", true, ['MagicMirror', 'L4Sword']], + ["Tower of Hera - Basement Cage", true, ['Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Basement Cage", true, ['Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Basement Cage", true, ['Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Basement Cage", true, ['Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Basement Cage", true, ['Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Basement Cage", true, ['Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Basement Cage", true, ['Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Basement Cage", true, ['Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Basement Cage", true, ['Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Basement Cage", true, ['Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + + ["Tower of Hera - Map Chest", false, []], + ["Tower of Hera - Map Chest", true, ['MoonPearl']], + ["Tower of Hera - Map Chest", true, ['BottleWithBee']], + ["Tower of Hera - Map Chest", true, ['BottleWithFairy']], + ["Tower of Hera - Map Chest", true, ['BottleWithRedPotion']], + ["Tower of Hera - Map Chest", true, ['BottleWithGreenPotion']], + ["Tower of Hera - Map Chest", true, ['BottleWithBluePotion']], + ["Tower of Hera - Map Chest", true, ['Bottle']], + ["Tower of Hera - Map Chest", true, ['BottleWithGoldBee']], + ["Tower of Hera - Map Chest", true, ['MagicMirror', 'UncleSword']], + ["Tower of Hera - Map Chest", true, ['MagicMirror', 'ProgressiveSword']], + ["Tower of Hera - Map Chest", true, ['MagicMirror', 'MasterSword']], + ["Tower of Hera - Map Chest", true, ['MagicMirror', 'L3Sword']], + ["Tower of Hera - Map Chest", true, ['MagicMirror', 'L4Sword']], + ["Tower of Hera - Map Chest", true, ['Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Map Chest", true, ['Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Map Chest", true, ['Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Map Chest", true, ['Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Map Chest", true, ['Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Map Chest", true, ['Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Map Chest", true, ['Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Map Chest", true, ['Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Map Chest", true, ['Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Map Chest", true, ['Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + + ["Tower of Hera - Compass Chest", false, []], + ["Tower of Hera - Compass Chest", false, [], ['BigKeyP3', 'Ether']], + ["Tower of Hera - Compass Chest", true, ['MoonPearl', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['BottleWithBee', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['BottleWithFairy', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['BottleWithRedPotion', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['BottleWithGreenPotion', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['BottleWithBluePotion', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['Bottle', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['BottleWithGoldBee', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['MagicMirror', 'UncleSword', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['MagicMirror', 'ProgressiveSword', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['MagicMirror', 'MasterSword', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['MagicMirror', 'L3Sword', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['MagicMirror', 'L4Sword', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Compass Chest", true, ['Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Compass Chest", true, ['Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Compass Chest", true, ['Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Compass Chest", true, ['Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Compass Chest", true, ['Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Compass Chest", true, ['Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Compass Chest", true, ['Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Compass Chest", true, ['Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + ["Tower of Hera - Compass Chest", true, ['Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6']], + + ["Tower of Hera - Big Chest", false, []], + ["Tower of Hera - Big Chest", false, [], ['BigKeyP3', 'BigKeyD6']], + ["Tower of Hera - Big Chest", false, [], ['BigKeyP3', 'Ether']], + ["Tower of Hera - Big Chest", true, ['MoonPearl', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['BottleWithBee', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['BottleWithFairy', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['BottleWithRedPotion', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['BottleWithGreenPotion', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['BottleWithBluePotion', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['Bottle', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['BottleWithGoldBee', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['MagicMirror', 'UncleSword', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['MagicMirror', 'ProgressiveSword', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['MagicMirror', 'MasterSword', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['MagicMirror', 'L3Sword', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['MagicMirror', 'L4Sword', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Big Chest", true, ['Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Big Chest", true, ['Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Big Chest", true, ['Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Big Chest", true, ['Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Big Chest", true, ['Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Big Chest", true, ['Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Big Chest", true, ['Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Big Chest", true, ['Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Big Chest", true, ['Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + + ["Tower of Hera - Boss", false, []], + ["Tower of Hera - Boss", false, [], ['AnySword', 'Hammer']], + ["Tower of Hera - Boss", false, [], ['BigKeyP3', 'BigKeyD6']], + ["Tower of Hera - Boss", false, [], ['BigKeyP3', 'Ether']], + ["Tower of Hera - Boss", true, ['Hammer', 'MoonPearl', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['Hammer', 'BottleWithBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['Hammer', 'BottleWithFairy', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['Hammer', 'BottleWithRedPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['Hammer', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['Hammer', 'BottleWithBluePotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['Hammer', 'Bottle', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['Hammer', 'BottleWithGoldBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['UncleSword', 'MoonPearl', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['UncleSword', 'BottleWithBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['UncleSword', 'BottleWithFairy', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['UncleSword', 'BottleWithRedPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['UncleSword', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['UncleSword', 'BottleWithBluePotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['UncleSword', 'Bottle', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['UncleSword', 'BottleWithGoldBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['ProgressiveSword', 'MoonPearl', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['ProgressiveSword', 'BottleWithBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['ProgressiveSword', 'BottleWithFairy', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['ProgressiveSword', 'BottleWithRedPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['ProgressiveSword', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['ProgressiveSword', 'BottleWithBluePotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['ProgressiveSword', 'Bottle', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['ProgressiveSword', 'BottleWithGoldBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MasterSword', 'MoonPearl', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MasterSword', 'BottleWithBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MasterSword', 'BottleWithFairy', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MasterSword', 'BottleWithRedPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MasterSword', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MasterSword', 'BottleWithBluePotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MasterSword', 'Bottle', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MasterSword', 'BottleWithGoldBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L3Sword', 'MoonPearl', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L3Sword', 'BottleWithBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L3Sword', 'BottleWithFairy', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L3Sword', 'BottleWithRedPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L3Sword', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L3Sword', 'BottleWithBluePotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L3Sword', 'Bottle', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L3Sword', 'BottleWithGoldBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L4Sword', 'MoonPearl', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L4Sword', 'BottleWithBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L4Sword', 'BottleWithFairy', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L4Sword', 'BottleWithRedPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L4Sword', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L4Sword', 'BottleWithBluePotion', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L4Sword', 'Bottle', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['L4Sword', 'BottleWithGoldBee', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'UncleSword', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'ProgressiveSword', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'MasterSword', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'L3Sword', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'L4Sword', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBee', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBee', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBee', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBee', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBee', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBee', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBee', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBee', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBee', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBee', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithFairy', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithFairy', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithFairy', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithFairy', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithFairy', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithFairy', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithFairy', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithFairy', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithFairy', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithFairy', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithRedPotion', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithRedPotion', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithRedPotion', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithRedPotion', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithRedPotion', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithRedPotion', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithRedPotion', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithRedPotion', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithRedPotion', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithRedPotion', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGreenPotion', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBluePotion', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBluePotion', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBluePotion', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBluePotion', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBluePotion', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBluePotion', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBluePotion', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBluePotion', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBluePotion', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithBluePotion', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGoldBee', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGoldBee', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGoldBee', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGoldBee', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGoldBee', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGoldBee', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGoldBee', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGoldBee', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGoldBee', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['BottleWithGoldBee', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Tower of Hera - Boss", true, ['MagicMirror', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ]; + } +} diff --git a/tests/InvertedMajorGlitches/TurtleRockTest.php b/tests/InvertedMajorGlitches/TurtleRockTest.php new file mode 100644 index 000000000..2d500f2f8 --- /dev/null +++ b/tests/InvertedMajorGlitches/TurtleRockTest.php @@ -0,0 +1,157 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->world->getLocation("Turtle Rock Medallion")->setItem(Item::get('Quake', $this->world)); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Turtle Rock - Chain Chomps", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Compass Chest", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Roller Room - Left", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Roller Room - Right", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Big Chest", false, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Big Key Chest", true, 'BigKeyD7', ['KeyD7', 'KeyD7'], ['BigKeyD7']], + + ["Turtle Rock - Crystaroller Room", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Eye Bridge - Bottom Left", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Eye Bridge - Bottom Right", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Eye Bridge - Top Left", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Eye Bridge - Top Right", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Boss", false, 'BigKeyD7', [], ['BigKeyD7']], + ["Turtle Rock - Boss", false, 'KeyD7', [], ['KeyD7']], + ]; + } + + public function accessPool() + { + return [ + ["Turtle Rock - Chain Chomps", false, []], + ["Turtle Rock - Chain Chomps", true, ['MagicMirror', 'MoonPearl']], + + ["Turtle Rock - Compass Chest", false, []], + ["Turtle Rock - Compass Chest", false, [], ['CaneOfSomaria']], + ["Turtle Rock - Compass Chest", true, ['MagicMirror', 'MoonPearl', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + + ["Turtle Rock - Roller Room - Left", false, []], + ["Turtle Rock - Roller Room - Left", false, [], ['CaneOfSomaria']], + ["Turtle Rock - Roller Room - Left", false, [], ['FireRod']], + ["Turtle Rock - Roller Room - Left", true, ['MagicMirror', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + + ["Turtle Rock - Roller Room - Right", false, []], + ["Turtle Rock - Roller Room - Right", false, [], ['CaneOfSomaria']], + ["Turtle Rock - Roller Room - Right", false, [], ['FireRod']], + ["Turtle Rock - Roller Room - Right", true, ['MagicMirror', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + + ["Turtle Rock - Big Chest", false, []], + ["Turtle Rock - Big Chest", false, [], ['BigKeyD7']], + ["Turtle Rock - Big Chest", true, ['MagicMirror', 'MoonPearl', 'Hookshot', 'BigKeyD7']], + ["Turtle Rock - Big Chest", true, ['MagicMirror', 'MoonPearl', 'CaneOfSomaria', 'BigKeyD7']], + + ["Turtle Rock - Big Key Chest", false, []], + ["Turtle Rock - Big Key Chest", true, ['MagicMirror', 'MoonPearl', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + + ["Turtle Rock - Crystaroller Room", false, []], + ["Turtle Rock - Crystaroller Room", true, ['MagicMirror', 'MoonPearl', 'BigKeyD7']], + ["Turtle Rock - Crystaroller Room", true, ['MagicMirror', 'MoonPearl', 'Lamp', 'CaneOfSomaria']], + + ["Turtle Rock - Eye Bridge - Bottom Left", false, []], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['MagicMirror', 'MoonPearl']], + + ["Turtle Rock - Eye Bridge - Bottom Right", false, []], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['MagicMirror', 'MoonPearl']], + + ["Turtle Rock - Eye Bridge - Top Left", false, []], + ["Turtle Rock - Eye Bridge - Top Left", true, ['MagicMirror', 'MoonPearl']], + + ["Turtle Rock - Eye Bridge - Top Right", false, []], + ["Turtle Rock - Eye Bridge - Top Right", true, ['MagicMirror', 'MoonPearl']], + + ["Turtle Rock - Boss", false, []], + ["Turtle Rock - Boss", false, [], ['CaneOfSomaria']], + ["Turtle Rock - Boss", false, [], ['IceRod']], + ["Turtle Rock - Boss", false, [], ['FireRod']], + ["Turtle Rock - Boss", false, [], ['AnySword', 'Hammer']], + ["Turtle Rock - Boss", false, [], ['BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'MoonPearl', 'UncleSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'MoonPearl', 'ProgressiveSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'MoonPearl', 'MasterSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'MoonPearl', 'ProgressiveSword', 'ProgressiveSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'MoonPearl', 'L3Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'MoonPearl', 'L4Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'MoonPearl', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/DarkWorld/DeathMountain/EastTest.php b/tests/InvertedOverworldGlitches/DarkWorld/DeathMountain/EastTest.php new file mode 100644 index 000000000..89d26f3f1 --- /dev/null +++ b/tests/InvertedOverworldGlitches/DarkWorld/DeathMountain/EastTest.php @@ -0,0 +1,78 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Superbunny Cave - Top", false, []], + ["Superbunny Cave - Top", true, ['PegasusBoots']], + + ["Superbunny Cave - Bottom", false, []], + ["Superbunny Cave - Bottom", true, ['PegasusBoots']], + + ["Hookshot Cave - Bottom Right", false, []], + ["Hookshot Cave - Bottom Right", false, [], ['Hookshot', 'PegasusBoots']], + ["Hookshot Cave - Bottom Right", false, [], ['Gloves', 'PegasusBoots', 'MagicMirror']], + ["Hookshot Cave - Bottom Right", true, ['PegasusBoots']], + + ["Hookshot Cave - Bottom Left", false, []], + ["Hookshot Cave - Bottom Left", false, [], ['Hookshot']], + ["Hookshot Cave - Bottom Left", false, [], ['Gloves', 'PegasusBoots', 'MagicMirror']], + ["Hookshot Cave - Bottom Left", true, ['PegasusBoots', 'Hookshot']], + + ["Hookshot Cave - Top Left", false, []], + ["Hookshot Cave - Top Left", false, [], ['Hookshot']], + ["Hookshot Cave - Top Left", false, [], ['Gloves', 'PegasusBoots', 'MagicMirror']], + ["Hookshot Cave - Top Left", true, ['PegasusBoots', 'Hookshot']], + + ["Hookshot Cave - Top Right", false, []], + ["Hookshot Cave - Top Right", false, [], ['Hookshot']], + ["Hookshot Cave - Top Right", false, [], ['Gloves', 'PegasusBoots', 'MagicMirror']], + ["Hookshot Cave - Top Right", true, ['PegasusBoots', 'Hookshot']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/DarkWorld/DeathMountain/WestTest.php b/tests/InvertedOverworldGlitches/DarkWorld/DeathMountain/WestTest.php new file mode 100644 index 000000000..17be4ebe5 --- /dev/null +++ b/tests/InvertedOverworldGlitches/DarkWorld/DeathMountain/WestTest.php @@ -0,0 +1,75 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Spike Cave", false, []], + ["Spike Cave", false, [], ['Gloves']], + ["Spike Cave", false, [], ['Hammer']], + ["Spike Cave", false, [], ['Cape', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'PowerGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'TitansMitt', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'PowerGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Hammer', 'TitansMitt', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'PowerGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'TitansMitt', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'PowerGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Hammer', 'TitansMitt', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'PowerGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'TitansMitt', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'PowerGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Hammer', 'TitansMitt', 'PegasusBoots', 'CaneOfByrna']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/DarkWorld/MireTest.php b/tests/InvertedOverworldGlitches/DarkWorld/MireTest.php new file mode 100644 index 000000000..dfdee2193 --- /dev/null +++ b/tests/InvertedOverworldGlitches/DarkWorld/MireTest.php @@ -0,0 +1,58 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Mire Shed - Left", false, []], + ["Mire Shed - Left", true, ['PegasusBoots']], + + ["Mire Shed - Right", false, []], + ["Mire Shed - Right", true, ['PegasusBoots']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/DarkWorld/NorthEastTest.php b/tests/InvertedOverworldGlitches/DarkWorld/NorthEastTest.php new file mode 100644 index 000000000..a980298a2 --- /dev/null +++ b/tests/InvertedOverworldGlitches/DarkWorld/NorthEastTest.php @@ -0,0 +1,79 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Catfish", false, []], + ["Catfish", true, ['PegasusBoots']], + + ["Pyramid", true, []], + + ["Pyramid Fairy - Sword", false, []], + ["Pyramid Fairy - Sword", false, [], ['MagicMirror']], + ["Pyramid Fairy - Sword", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Sword", false, [], ['AnySword']], + ["Pyramid Fairy - Sword", true, ['BigRedBomb', 'UncleSword', 'MagicMirror', 'PegasusBoots']], + + ["Pyramid Fairy - Bow", false, []], + ["Pyramid Fairy - Bow", false, [], ['MagicMirror']], + ["Pyramid Fairy - Bow", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Bow", false, [], ['AnyBow']], + ["Pyramid Fairy - Bow", true, ['BigRedBomb', 'BowAndArrows', 'MagicMirror', 'PegasusBoots']], + + ["Pyramid Fairy - Left", false, []], + ["Pyramid Fairy - Left", false, [], ['MagicMirror']], + ["Pyramid Fairy - Left", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Left", true, ['BigRedBomb', 'MagicMirror', 'PegasusBoots']], + + ["Pyramid Fairy - Right", false, []], + ["Pyramid Fairy - Right", false, [], ['MagicMirror']], + ["Pyramid Fairy - Right", false, [], ['BigRedBomb']], + ["Pyramid Fairy - Right", true, ['BigRedBomb', 'MagicMirror', 'PegasusBoots']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/DarkWorld/NorthWestTest.php b/tests/InvertedOverworldGlitches/DarkWorld/NorthWestTest.php new file mode 100644 index 000000000..22ce0d077 --- /dev/null +++ b/tests/InvertedOverworldGlitches/DarkWorld/NorthWestTest.php @@ -0,0 +1,73 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Brewery", true, []], + + ["C-Shaped House", true, []], + + ["Chest Game", true, []], + + ["Hammer Pegs", false, []], + ["Hammer Pegs", false, [], ['Hammer']], + ["Hammer Pegs", true, ['Hammer', 'PegasusBoots']], + + ["Bumper Cave", false, []], + ["Bumper Cave", true, ['PegasusBoots']], + + ["Blacksmith", false, []], + ["Blacksmith", true, ['MagicMirror', 'PegasusBoots']], + ["Blacksmith", true, ['ProgressiveGlove', 'ProgressiveGlove', 'PegasusBoots', 'MoonPearl']], + + ["Purple Chest", false, []], + ["Purple Chest", true, ['MagicMirror', 'PegasusBoots']], + ["Purple Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'PegasusBoots', 'MoonPearl']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/DarkWorld/SouthTest.php b/tests/InvertedOverworldGlitches/DarkWorld/SouthTest.php new file mode 100644 index 000000000..20757e79e --- /dev/null +++ b/tests/InvertedOverworldGlitches/DarkWorld/SouthTest.php @@ -0,0 +1,66 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Hype Cave - Top", true, []], + + ["Hype Cave - Middle Right", true, []], + + ["Hype Cave - Middle Left", true, []], + + ["Hype Cave - Bottom", true, []], + + ["Hype Cave - NPC", true, []], + + ["Stumpy", true, []], + + ["Digging Game", true, []], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/DeathMountain/EastTest.php b/tests/InvertedOverworldGlitches/DeathMountain/EastTest.php new file mode 100644 index 000000000..44fb8c1ea --- /dev/null +++ b/tests/InvertedOverworldGlitches/DeathMountain/EastTest.php @@ -0,0 +1,98 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Spiral Cave", false, []], + ["Spiral Cave", true, ['MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'UncleSword']], + ["Spiral Cave", true, ['MagicMirror', 'TitansMitt', 'Lamp', 'UncleSword']], + ["Spiral Cave", true, ['MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'PegasusBoots', 'UncleSword']], + ["Spiral Cave", true, ['MagicMirror', 'TitansMitt', 'PegasusBoots', 'UncleSword']], + ["Spiral Cave", true, ['MoonPearl', 'PegasusBoots']], + + ["Paradox Cave Lower - Far Left", false, []], + ["Paradox Cave Lower - Far Left", true, ['MoonPearl', 'PegasusBoots']], + + ["Paradox Cave Lower - Left", false, []], + ["Paradox Cave Lower - Left", true, ['MoonPearl', 'PegasusBoots']], + + ["Paradox Cave Lower - Middle", false, []], + ["Paradox Cave Lower - Middle", true, ['MoonPearl', 'PegasusBoots']], + + ["Paradox Cave Lower - Right", false, []], + ["Paradox Cave Lower - Right", true, ['MoonPearl', 'PegasusBoots']], + + ["Paradox Cave Lower - Far Right", false, []], + ["Paradox Cave Lower - Far Right", true, ['MoonPearl', 'PegasusBoots']], + + ["Paradox Cave Upper - Left", false, []], + ["Paradox Cave Upper - Left", true, ['MoonPearl', 'PegasusBoots']], + + ["Paradox Cave Upper - Right", false, []], + ["Paradox Cave Upper - Right", true, ['MoonPearl', 'PegasusBoots']], + + ["Mimic Cave", false, []], + ["Mimic Cave", false, [], ['MoonPearl']], + ["Mimic Cave", false, [], ['Hammer']], + ["Mimic Cave", true, ['MoonPearl', 'Hammer', 'PegasusBoots']], + + ["Ether Tablet", false, []], + ["Ether Tablet", false, [], ['UpgradedSword']], + ["Ether Tablet", false, [], ['BookOfMudora']], + ["Ether Tablet", false, [], ['MoonPearl']], + ["Ether Tablet", true, ['PegasusBoots', 'MoonPearl', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['PegasusBoots', 'MoonPearl', 'BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['PegasusBoots', 'MoonPearl', 'BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['PegasusBoots', 'MoonPearl', 'BookOfMudora', 'L4Sword']], + + ["Spectacle Rock", false, []], + ["Spectacle Rock", false, [], ['MoonPearl']], + ["Spectacle Rock", true, ['MoonPearl', 'PegasusBoots']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/DeathMountain/WestTest.php b/tests/InvertedOverworldGlitches/DeathMountain/WestTest.php new file mode 100644 index 000000000..b64bc17e2 --- /dev/null +++ b/tests/InvertedOverworldGlitches/DeathMountain/WestTest.php @@ -0,0 +1,59 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Old Man", false, []], + ["Old Man", false, [], ['Lamp']], + ["Old Man", true, ['PegasusBoots', 'Lamp']], + + ["Spectacle Rock Cave", false, []], + ["Spectacle Rock Cave", true, ['PegasusBoots']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/DesertPalaceTest.php b/tests/InvertedOverworldGlitches/DesertPalaceTest.php new file mode 100644 index 000000000..291b97e38 --- /dev/null +++ b/tests/InvertedOverworldGlitches/DesertPalaceTest.php @@ -0,0 +1,144 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Desert Palace') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [false, []], + [true, ['MoonPearl', 'PegasusBoots']], + [true, ['BookOfMudora', 'MagicMirror', 'PegasusBoots']], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Desert Palace - Big Key Chest", false, 'KeyP2', [], ['KeyP2']], + ["Desert Palace - Compass Chest", false, 'KeyP2', [], ['KeyP2']], + + ["Desert Palace - Big Chest", false, 'BigKeyP2', [], ['BigKeyP2']], + + ["Desert Palace - Boss", false, 'BigKeyP2', [], ['BigKeyP2']], + ["Desert Palace - Boss", false, 'KeyP2', [], ['KeyP2']], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Desert Palace - Map Chest", false, []], + ["Desert Palace - Map Chest", true, ['MoonPearl', 'PegasusBoots']], + ["Desert Palace - Map Chest", true, ['BookOfMudora', 'MagicMirror', 'PegasusBoots']], + + ["Desert Palace - Big Chest", false, []], + ["Desert Palace - Big Chest", true, ['MoonPearl', 'PegasusBoots', 'BigKeyP2']], + ["Desert Palace - Big Chest", true, ['BookOfMudora', 'MagicMirror', 'PegasusBoots', 'BigKeyP2']], + + ["Desert Palace - Torch", false, []], + ["Desert Palace - Torch", false, [], ['PegasusBoots']], + ["Desert Palace - Torch", true, ['MoonPearl', 'PegasusBoots']], + ["Desert Palace - Torch", true, ['BookOfMudora', 'MagicMirror', 'PegasusBoots']], + + ["Desert Palace - Compass Chest", false, []], + ["Desert Palace - Compass Chest", false, [], ['KeyP2']], + ["Desert Palace - Compass Chest", true, ['MoonPearl', 'PegasusBoots', 'KeyP2']], + ["Desert Palace - Compass Chest", true, ['BookOfMudora', 'MagicMirror', 'PegasusBoots', 'KeyP2']], + + ["Desert Palace - Big Key Chest", false, []], + ["Desert Palace - Big Key Chest", false, [], ['KeyP2']], + ["Desert Palace - Big Key Chest", true, ['MoonPearl', 'PegasusBoots', 'KeyP2']], + ["Desert Palace - Big Key Chest", true, ['BookOfMudora', 'MagicMirror', 'PegasusBoots', 'KeyP2']], + + ["Desert Palace - Boss", false, []], + ["Desert Palace - Boss", false, [], ['KeyP2']], + ["Desert Palace - Boss", false, [], ['BigKeyP2']], + ["Desert Palace - Boss", false, [], ['Lamp', 'FireRod']], + ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BigKeyP2', 'MoonPearl', 'PegasusBoots', 'Lamp']], + ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BigKeyP2', 'MoonPearl', 'PegasusBoots', 'FireRod']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/EasternPalaceTest.php b/tests/InvertedOverworldGlitches/EasternPalaceTest.php new file mode 100644 index 000000000..7b731998c --- /dev/null +++ b/tests/InvertedOverworldGlitches/EasternPalaceTest.php @@ -0,0 +1,125 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Eastern Palace - Compass Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Cannonball Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Big Chest", false, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Map Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Big Key Chest", true, 'BigKeyP1', [], ['BigKeyP1']], + + ["Eastern Palace - Boss", false, 'BigKeyP1', [], ['BigKeyP1']], + ]; + } + + public function accessPool() + { + return [ + ["Eastern Palace - Compass Chest", false, []], + ["Eastern Palace - Compass Chest", true, ['MoonPearl', 'PegasusBoots']], + ["Eastern Palace - Compass Chest", true, ['MagicMirror', 'PegasusBoots']], + ["Eastern Palace - Compass Chest", true, ['DefeatAgahnim']], + + ["Eastern Palace - Cannonball Chest", false, []], + ["Eastern Palace - Compass Chest", true, ['MoonPearl', 'PegasusBoots']], + ["Eastern Palace - Compass Chest", true, ['MagicMirror', 'PegasusBoots']], + ["Eastern Palace - Compass Chest", true, ['DefeatAgahnim']], + + ["Eastern Palace - Big Chest", false, []], + ["Eastern Palace - Big Chest", false, [], ['BigKeyP1']], + ["Eastern Palace - Big Chest", true, ['BigKeyP1', 'MoonPearl', 'PegasusBoots']], + ["Eastern Palace - Big Chest", true, ['BigKeyP1', 'MagicMirror', 'PegasusBoots']], + ["Eastern Palace - Big Chest", true, ['BigKeyP1', 'DefeatAgahnim']], + + ["Eastern Palace - Map Chest", false, []], + ["Eastern Palace - Compass Chest", true, ['MoonPearl', 'PegasusBoots']], + ["Eastern Palace - Compass Chest", true, ['MagicMirror', 'PegasusBoots']], + ["Eastern Palace - Compass Chest", true, ['DefeatAgahnim']], + + ["Eastern Palace - Big Key Chest", false, []], + ["Eastern Palace - Big Key Chest", false, [], ['Lamp']], + ["Eastern Palace - Big Key Chest", true, ['Lamp', 'MoonPearl', 'PegasusBoots']], + ["Eastern Palace - Big Key Chest", true, ['Lamp', 'MagicMirror', 'PegasusBoots']], + ["Eastern Palace - Big Key Chest", true, ['Lamp', 'DefeatAgahnim']], + + ["Eastern Palace - Boss", false, []], + ["Eastern Palace - Boss", false, [], ['Lamp']], + ["Eastern Palace - Boss", false, [], ['AnyBow']], + ["Eastern Palace - Boss", false, [], ['BigKeyP1']], + ["Eastern Palace - Boss", true, ['Lamp', 'BowAndArrows', 'BigKeyP1', 'MoonPearl', 'PegasusBoots']], + ["Eastern Palace - Boss", true, ['Lamp', 'BowAndArrows', 'BigKeyP1', 'MagicMirror', 'PegasusBoots']], + ["Eastern Palace - Boss", true, ['Lamp', 'BowAndArrows', 'BigKeyP1', 'DefeatAgahnim']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/GanonsTowerTest.php b/tests/InvertedOverworldGlitches/GanonsTowerTest.php new file mode 100644 index 000000000..8dfd536ef --- /dev/null +++ b/tests/InvertedOverworldGlitches/GanonsTowerTest.php @@ -0,0 +1,523 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + + public function fillPool() + { + return [ + ["Ganon's Tower - Bob's Torch", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Top Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Top Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Bottom Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - DMs Room - Bottom Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Top Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Top Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Bottom Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Randomizer Room - Bottom Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Firesnake Room", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Map Chest", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Chest", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Hope Room - Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Hope Room - Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Bob's Chest", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Tile Room", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Top Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Top Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Bottom Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Compass Room - Bottom Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Key Chest", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Key Room - Left", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Big Key Room - Right", true, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Mini Helmasaur Room - Left", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Mini Helmasaur Room - Right", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Pre-Moldorm Chest", false, 'BigKeyA2', [], ['BigKeyA2']], + + ["Ganon's Tower - Moldorm Chest", false, 'BigKeyA2', [], ['BigKeyA2']], + ]; + } + + public function accessPool() + { + return [ + ["Ganon's Tower - Bob's Torch", false, []], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal1']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal2']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal3']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal4']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal5']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal6']], + ["Ganon's Tower - Bob's Torch", false, [], ['Crystal7']], + ["Ganon's Tower - Bob's Torch", false, [], ['PegasusBoots']], + ["Ganon's Tower - Bob's Torch", true, ['DefeatAgahnim', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Torch", true, ['PegasusBoots', 'MagicMirror', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Torch", true, ['PegasusBoots', 'MoonPearl', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Top Left", false, []], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Top Left", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Top Left", true, ['DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Left", true, ['PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Left", true, ['PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Top Right", false, []], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Top Right", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Top Right", true, ['DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Right", true, ['PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Right", true, ['PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Bottom Left", false, []], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Bottom Left", true, ['DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Left", true, ['PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Left", true, ['PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - DMs Room - Bottom Right", false, []], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal1']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal2']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal3']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal4']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal5']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal6']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Hammer']], + ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Hookshot']], + ["Ganon's Tower - DMs Room - Bottom Right", true, ['DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Right", true, ['PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Right", true, ['PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Top Left", false, []], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Top Right", false, []], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Bottom Left", false, []], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Randomizer Room - Bottom Right", false, []], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal1']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal2']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal3']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal4']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal5']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal6']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Hammer']], + ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Hookshot']], + ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Firesnake Room", false, []], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal1']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal2']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal3']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal4']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal5']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal6']], + ["Ganon's Tower - Firesnake Room", false, [], ['Crystal7']], + ["Ganon's Tower - Firesnake Room", false, [], ['Hammer']], + ["Ganon's Tower - Firesnake Room", false, [], ['Hookshot']], + ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Map Chest", false, []], + ["Ganon's Tower - Map Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Map Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Map Chest", false, [], ['Hammer']], + ["Ganon's Tower - Map Chest", false, [], ['Hookshot', 'PegasusBoots']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Chest", false, []], + ["Ganon's Tower - Big Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Big Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Big Chest", false, [], ['BigKeyA2']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Hope Room - Left", false, []], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal1']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal2']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal3']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal4']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal5']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal6']], + ["Ganon's Tower - Hope Room - Left", false, [], ['Crystal7']], + ["Ganon's Tower - Hope Room - Left", true, ['DefeatAgahnim', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Left", true, ['PegasusBoots', 'MagicMirror', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Left", true, ['PegasusBoots', 'MoonPearl', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Hope Room - Right", false, []], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal1']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal2']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal3']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal4']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal5']], + ["Ganon's Tower - Hope Room - Right", false, [], ['Crystal6']], + ["Ganon's Tower - Hope Room - Right", true, ['DefeatAgahnim', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Right", true, ['PegasusBoots', 'MagicMirror', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Hope Room - Right", true, ['PegasusBoots', 'MoonPearl', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Bob's Chest", false, []], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Bob's Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Tile Room", false, []], + ["Ganon's Tower - Tile Room", false, [], ['Crystal1']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal2']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal3']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal4']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal5']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal6']], + ["Ganon's Tower - Tile Room", false, [], ['Crystal7']], + ["Ganon's Tower - Tile Room", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Tile Room", true, ['DefeatAgahnim', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Tile Room", true, ['PegasusBoots', 'MagicMirror', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Tile Room", true, ['PegasusBoots', 'MoonPearl', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Top Left", false, []], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Top Left", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Top Right", false, []], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Top Right", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Bottom Left", false, []], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Compass Room - Bottom Right", false, []], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal1']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal2']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal3']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal4']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal5']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal6']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['CaneOfSomaria']], + ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['FireRod']], + ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'FireRod', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Key Chest", false, []], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Big Key Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Key Room - Left", false, []], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal1']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal2']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal3']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal4']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal5']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal6']], + ["Ganon's Tower - Big Key Room - Left", false, [], ['Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Big Key Room - Right", false, []], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal1']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal2']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal3']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal4']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal5']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal6']], + ["Ganon's Tower - Big Key Room - Right", false, [], ['Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Mini Helmasaur Room - Left", false, []], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal1']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal2']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal3']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal4']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal5']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal6']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['AnyBow']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['BigKeyA2']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Mini Helmasaur Room - Right", false, []], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal1']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal2']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal3']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal4']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal5']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal6']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['AnyBow']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['BigKeyA2']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Pre-Moldorm Chest", false, []], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['AnyBow']], + ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['BigKeyA2']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + + ["Ganon's Tower - Moldorm Chest", false, []], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal1']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal2']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal3']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal4']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal5']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal6']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Crystal7']], + ["Ganon's Tower - Moldorm Chest", false, [], ['Hookshot']], + ["Ganon's Tower - Moldorm Chest", false, [], ['AnyBow']], + ["Ganon's Tower - Moldorm Chest", false, [], ['BigKeyA2']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'Lamp', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'DefeatAgahnim', 'Hookshot', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MagicMirror', 'Hookshot', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'MoonPearl', 'Hookshot', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/HyruleCastleEscapeTest.php b/tests/InvertedOverworldGlitches/HyruleCastleEscapeTest.php new file mode 100644 index 000000000..e6f5b351a --- /dev/null +++ b/tests/InvertedOverworldGlitches/HyruleCastleEscapeTest.php @@ -0,0 +1,141 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + + ["Sanctuary", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Left", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Middle", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Right", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Dark Cross", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Boomerang Chest", false, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Map Chest", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Zelda's Cell", false, 'KeyH2', [], ['KeyH2']], + ]; + } + + public function accessPool() + { + return [ + ["Sanctuary", False, []], + ["Sanctuary", true, ['MagicMirror', 'DefeatAgahnim']], + ["Sanctuary", true, ['Lamp', 'DefeatAgahnim', 'KeyH2']], + ["Sanctuary", true, ['MoonPearl', 'PegasusBoots']], + ["Sanctuary", true, ['MagicMirror', 'PegasusBoots']], + + ["Sewers - Secret Room - Left", false, []], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'ProgressiveGlove', 'PegasusBoots']], + ["Sewers - Secret Room - Left", true, ['MoonPearl', 'PegasusBoots', 'Lamp', 'KeyH2']], + ["Sewers - Secret Room - Left", true, ['MagicMirror', 'PegasusBoots', 'Lamp', 'KeyH2']], + ["Sewers - Secret Room - Left", true, ['DefeatAgahnim', 'Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Middle", false, []], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'ProgressiveGlove', 'PegasusBoots']], + ["Sewers - Secret Room - Middle", true, ['MoonPearl', 'PegasusBoots', 'Lamp', 'KeyH2']], + ["Sewers - Secret Room - Middle", true, ['MagicMirror', 'PegasusBoots', 'Lamp', 'KeyH2']], + ["Sewers - Secret Room - Middle", true, ['DefeatAgahnim', 'Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Right", false, []], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'ProgressiveGlove', 'PegasusBoots']], + ["Sewers - Secret Room - Right", true, ['MoonPearl', 'PegasusBoots', 'Lamp', 'KeyH2']], + ["Sewers - Secret Room - Right", true, ['MagicMirror', 'PegasusBoots', 'Lamp', 'KeyH2']], + ["Sewers - Secret Room - Right", true, ['DefeatAgahnim', 'Lamp', 'KeyH2']], + + ["Sewers - Dark Cross", False, []], + ["Sewers - Dark Cross", False, [], ['Lamp']], + ["Sewers - Dark Cross", true, ['Lamp', 'DefeatAgahnim']], + ["Sewers - Dark Cross", true, ['Lamp', 'MoonPearl', 'PegasusBoots']], + ["Sewers - Dark Cross", true, ['Lamp', 'MagicMirror', 'PegasusBoots']], + + ["Hyrule Castle - Boomerang Chest", false, []], + ["Hyrule Castle - Boomerang Chest", false, [], ['KeyH2']], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2', 'DefeatAgahnim']], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2', 'MoonPearl', 'PegasusBoots']], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2', 'MagicMirror', 'PegasusBoots']], + + ["Hyrule Castle - Map Chest", false, []], + ["Hyrule Castle - Map Chest", true, ['DefeatAgahnim']], + ["Hyrule Castle - Map Chest", true, ['MoonPearl', 'PegasusBoots']], + ["Hyrule Castle - Map Chest", true, ['MagicMirror', 'PegasusBoots']], + + ["Hyrule Castle - Zelda's Cell", false, []], + ["Hyrule Castle - Zelda's Cell", false, [], ['KeyH2']], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2', 'DefeatAgahnim']], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2', 'MoonPearl', 'PegasusBoots']], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2', 'MagicMirror', 'PegasusBoots']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/HyruleCastleTowerTest.php b/tests/InvertedOverworldGlitches/HyruleCastleTowerTest.php new file mode 100644 index 000000000..200852c74 --- /dev/null +++ b/tests/InvertedOverworldGlitches/HyruleCastleTowerTest.php @@ -0,0 +1,88 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Hyrule Castle Tower') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [false, []], + [true, ['PegasusBoots', 'UncleSword']], + [true, ['PegasusBoots', 'Hammer']], + ]; + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider completePool + */ + public function testComplete(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Hyrule Castle Tower') + ->canComplete($this->world->getLocations(), $this->collected)); + } + + public function completePool() + { + return [ + [false, []], + [false, [], ['Lamp']], + [false, [], ['AnySword']], + [true, ['KeyA1', 'KeyA1', 'PegasusBoots', 'Lamp', 'UncleSword']], + [true, ['KeyA1', 'KeyA1', 'PegasusBoots', 'Lamp', 'ProgressiveSword']], + [true, ['KeyA1', 'KeyA1', 'PegasusBoots', 'Lamp', 'MasterSword']], + [true, ['KeyA1', 'KeyA1', 'PegasusBoots', 'Lamp', 'L3Sword']], + [true, ['KeyA1', 'KeyA1', 'PegasusBoots', 'Lamp', 'L4Sword']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/IcePalaceTest.php b/tests/InvertedOverworldGlitches/IcePalaceTest.php new file mode 100644 index 000000000..576c95604 --- /dev/null +++ b/tests/InvertedOverworldGlitches/IcePalaceTest.php @@ -0,0 +1,313 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Ice Palace - Big Key Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Compass Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Map Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Spike Room", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Freezor Chest", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Iced T Room", true, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Big Chest", false, 'BigKeyD5', [], ['BigKeyD5']], + + ["Ice Palace - Boss", false, 'BigKeyD5', [], ['BigKeyD5']], + ]; + } + + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Ice Palace - Big Key Chest", false, []], + ["Ice Palace - Big Key Chest", false, [], ['Gloves']], + ["Ice Palace - Big Key Chest", false, [], ['Hammer']], + ["Ice Palace - Big Key Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'Cape', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'CaneOfByrna', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'Cape', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'CaneOfByrna', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Cape', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + + ["Ice Palace - Compass Chest", false, []], + ["Ice Palace - Compass Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], + ["Ice Palace - Compass Chest", true, ['FireRod']], + ["Ice Palace - Compass Chest", true, ['Bombos', 'UncleSword']], + ["Ice Palace - Compass Chest", true, ['Bombos', 'ProgressiveSword']], + ["Ice Palace - Compass Chest", true, ['Bombos', 'MasterSword']], + ["Ice Palace - Compass Chest", true, ['Bombos', 'L3Sword']], + ["Ice Palace - Compass Chest", true, ['Bombos', 'L4Sword']], + + ["Ice Palace - Map Chest", false, []], + ["Ice Palace - Map Chest", false, [], ['Gloves']], + ["Ice Palace - Map Chest", false, [], ['Hammer']], + ["Ice Palace - Map Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'CaneOfByrna', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'Cape', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'CaneOfByrna', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'Cape', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'CaneOfByrna', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Cape', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + + ["Ice Palace - Spike Room", false, []], + ["Ice Palace - Spike Room", false, [], ['FireRod', 'Bombos', 'AnySword']], + ["Ice Palace - Spike Room", true, ['FireRod', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Bombos', 'UncleSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Bombos', 'ProgressiveSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Bombos', 'MasterSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Bombos', 'L3Sword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Bombos', 'L4Sword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'FireRod', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Cape', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'FireRod', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], + + ["Ice Palace - Freezor Chest", false, []], + ["Ice Palace - Freezor Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], + ["Ice Palace - Freezor Chest", true, ['FireRod']], + ["Ice Palace - Freezor Chest", true, ['Bombos', 'UncleSword']], + ["Ice Palace - Freezor Chest", true, ['Bombos', 'ProgressiveSword']], + ["Ice Palace - Freezor Chest", true, ['Bombos', 'MasterSword']], + ["Ice Palace - Freezor Chest", true, ['Bombos', 'L3Sword']], + ["Ice Palace - Freezor Chest", true, ['Bombos', 'L4Sword']], + + ["Ice Palace - Iced T Room", false, []], + ["Ice Palace - Iced T Room", false, [], ['FireRod', 'Bombos', 'AnySword']], + ["Ice Palace - Iced T Room", true, ['FireRod']], + ["Ice Palace - Iced T Room", true, ['Bombos', 'UncleSword']], + ["Ice Palace - Iced T Room", true, ['Bombos', 'ProgressiveSword']], + ["Ice Palace - Iced T Room", true, ['Bombos', 'MasterSword']], + ["Ice Palace - Iced T Room", true, ['Bombos', 'L3Sword']], + ["Ice Palace - Iced T Room", true, ['Bombos', 'L4Sword']], + + ["Ice Palace - Big Chest", false, []], + ["Ice Palace - Big Chest", false, [], ['BigKeyD5']], + ["Ice Palace - Big Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'FireRod']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'Bombos', 'UncleSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'Bombos', 'MasterSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'Bombos', 'L3Sword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'Bombos', 'L4Sword']], + + ["Ice Palace - Boss", false, []], + ["Ice Palace - Boss", false, [], ['Gloves']], + ["Ice Palace - Boss", false, [], ['Hammer']], + ["Ice Palace - Boss", false, [], ['BigKeyD5']], + ["Ice Palace - Boss", false, [], ['FireRod', 'Bombos', 'AnySword']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['ProgressiveGlove', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['PowerGlove', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['TitansMitt', 'BigKeyD5', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/LightWorldTest.php b/tests/InvertedOverworldGlitches/LightWorldTest.php new file mode 100644 index 000000000..22d2e0c15 --- /dev/null +++ b/tests/InvertedOverworldGlitches/LightWorldTest.php @@ -0,0 +1,333 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Master Sword Pedestal", false, []], + ["Master Sword Pedestal", false, [], ['PendantOfCourage']], + ["Master Sword Pedestal", false, [], ['PendantOfWisdom']], + ["Master Sword Pedestal", false, [], ['PendantOfPower']], + ["Master Sword Pedestal", true, ['PendantOfCourage', 'PendantOfWisdom', 'PendantOfPower', 'MoonPearl', 'PegasusBoots']], + ["Master Sword Pedestal", true, ['PendantOfCourage', 'PendantOfWisdom', 'PendantOfPower', 'MagicMirror', 'PegasusBoots']], + + ["Link's Uncle", false, []], + ["Link's Uncle", false, [], ['MoonPearl', 'MagicMirror']], + ["Link's Uncle", true, ['MoonPearl', 'PegasusBoots']], + + ["Secret Passage", false, []], + ["Secret Passage", false, [], ['MoonPearl', 'MagicMirror']], + ["Secret Passage", true, ['MoonPearl', 'PegasusBoots']], + + ["King's Tomb", false, []], + ["King's Tomb", false, [], ['PegasusBoots']], + ["King's Tomb", false, [], ['MoonPearl']], + ["King's Tomb", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl']], + + ["Floodgate Chest", false, []], + ["Floodgate Chest", true, ['MoonPearl', 'PegasusBoots']], + ["Floodgate Chest", true, ['MagicMirror', 'PegasusBoots']], + + ["Kakariko Tavern", false, []], + ["Kakariko Tavern", true, ['MoonPearl', 'PegasusBoots']], + ["Kakariko Tavern", true, ['MagicMirror', 'PegasusBoots']], + ["Kakariko Tavern", true, ['DefeatAgahnim']], + + ["Chicken House", false, []], + ["Chicken House", false, [], ['MoonPearl']], + ["Chicken House", true, ['MoonPearl', 'PegasusBoots']], + + ["Aginah's Cave", false, []], + ["Aginah's Cave", false, [], ['MoonPearl']], + ["Aginah's Cave", true, ['MoonPearl', 'PegasusBoots']], + + ["Sahasrahla's Hut - Left", false, []], + ["Sahasrahla's Hut - Left", true, ['MoonPearl', 'PegasusBoots']], + ["Sahasrahla's Hut - Left", true, ['MagicMirror', 'PegasusBoots']], + ["Sahasrahla's Hut - Left", true, ['DefeatAgahnim', 'PegasusBoots']], + + ["Sahasrahla's Hut - Middle", false, []], + ["Sahasrahla's Hut - Middle", true, ['MoonPearl', 'PegasusBoots']], + ["Sahasrahla's Hut - Middle", true, ['MagicMirror', 'PegasusBoots']], + ["Sahasrahla's Hut - Middle", true, ['DefeatAgahnim', 'PegasusBoots']], + + ["Sahasrahla's Hut - Right", false, []], + ["Sahasrahla's Hut - Right", true, ['MoonPearl', 'PegasusBoots']], + ["Sahasrahla's Hut - Right", true, ['MagicMirror', 'PegasusBoots']], + ["Sahasrahla's Hut - Right", true, ['DefeatAgahnim', 'PegasusBoots']], + + ["Kakariko Well - Top", false, []], + ["Kakariko Well - Top", false, [], ['MoonPearl']], + ["Kakariko Well - Top", true, ['MoonPearl', 'PegasusBoots']], + + ["Kakariko Well - Left", false, []], + ["Kakariko Well - Left", true, ['MoonPearl', 'PegasusBoots']], + ["Kakariko Well - Left", true, ['MagicMirror', 'PegasusBoots']], + ["Kakariko Well - Left", true, ['DefeatAgahnim']], + + ["Kakariko Well - Middle", false, []], + ["Kakariko Well - Middle", true, ['MoonPearl', 'PegasusBoots']], + ["Kakariko Well - Middle", true, ['MagicMirror', 'PegasusBoots']], + ["Kakariko Well - Middle", true, ['DefeatAgahnim']], + + ["Kakariko Well - Right", false, []], + ["Kakariko Well - Right", true, ['MoonPearl', 'PegasusBoots']], + ["Kakariko Well - Right", true, ['MagicMirror', 'PegasusBoots']], + ["Kakariko Well - Right", true, ['DefeatAgahnim']], + + ["Kakariko Well - Bottom", false, []], + ["Kakariko Well - Bottom", true, ['MoonPearl', 'PegasusBoots']], + ["Kakariko Well - Bottom", true, ['MagicMirror', 'PegasusBoots']], + ["Kakariko Well - Bottom", true, ['DefeatAgahnim']], + + ["Blind's Hideout - Top", false, []], + ["Blind's Hideout - Top", false, [], ['MoonPearl']], + ["Blind's Hideout - Top", true, ['MoonPearl', 'PegasusBoots']], + + ["Blind's Hideout - Left", false, []], + ["Blind's Hideout - Left", true, ['MoonPearl', 'PegasusBoots']], + ["Blind's Hideout - Left", true, ['MagicMirror', 'PegasusBoots']], + ["Blind's Hideout - Left", true, ['MagicMirror', 'DefeatAgahnim']], + + ["Blind's Hideout - Right", false, []], + ["Blind's Hideout - Right", true, ['MoonPearl', 'PegasusBoots']], + ["Blind's Hideout - Right", true, ['MagicMirror', 'PegasusBoots']], + ["Blind's Hideout - Right", true, ['MagicMirror', 'DefeatAgahnim']], + + ["Blind's Hideout - Far Left", false, []], + ["Blind's Hideout - Far Left", true, ['MoonPearl', 'PegasusBoots']], + ["Blind's Hideout - Far Left", true, ['MagicMirror', 'PegasusBoots']], + ["Blind's Hideout - Far Left", true, ['MagicMirror', 'DefeatAgahnim']], + + ["Blind's Hideout - Far Right", false, []], + ["Blind's Hideout - Far Right", true, ['MoonPearl', 'PegasusBoots']], + ["Blind's Hideout - Far Right", true, ['MagicMirror', 'PegasusBoots']], + ["Blind's Hideout - Far Right", true, ['MagicMirror', 'DefeatAgahnim']], + + ["Pegasus Rocks", false, []], + ["Pegasus Rocks", false, [], ['PegasusBoots']], + ["Pegasus Rocks", false, [], ['MoonPearl']], + ["Pegasus Rocks", true, ['MoonPearl', 'PegasusBoots']], + + ["Mini Moldorm Cave - Far Left", false, []], + ["Mini Moldorm Cave - Far Left", false, [], ['MoonPearl']], + ["Mini Moldorm Cave - Far Left", true, ['MoonPearl', 'PegasusBoots']], + + ["Mini Moldorm Cave - Left", false, []], + ["Mini Moldorm Cave - Left", false, [], ['MoonPearl']], + + ["Mini Moldorm Cave - Right", false, []], + ["Mini Moldorm Cave - Right", false, [], ['MoonPearl']], + ["Mini Moldorm Cave - Right", true, ['MoonPearl', 'PegasusBoots']], + + ["Mini Moldorm Cave - Far Right", false, []], + ["Mini Moldorm Cave - Far Right", false, [], ['MoonPearl']], + + ["Ice Rod Cave", false, []], + ["Ice Rod Cave", false, [], ['MoonPearl', 'BigRedBomb']], + ["Ice Rod Cave", true, ['MoonPearl', 'PegasusBoots']], + ["Ice Rod Cave", true, ['MagicMirror', 'PegasusBoots', 'BigRedBomb']], + ["Ice Rod Cave", true, ['MagicMirror', 'DefeatAgahnim', 'BigRedBomb']], + + ["Bottle Merchant", false, []], + ["Bottle Merchant", true, ['PegasusBoots', 'MagicMirror']], + ["Bottle Merchant", true, ['MoonPearl', 'PegasusBoots']], + + ["Sahasrahla", false, []], + ["Sahasrahla", false, [], ['PendantOfCourage']], + ["Sahasrahla", true, ['PendantOfCourage', 'MagicMirror', 'PegasusBoots']], + ["Sahasrahla", true, ['PendantOfCourage', 'MoonPearl', 'PegasusBoots']], + + ["Magic Bat", false, []], + ["Magic Bat", false, [], ['Powder']], + ["Magic Bat", false, [], ['MoonPearl']], + ["Magic Bat", true, ['Powder', 'PegasusBoots', 'MoonPearl']], + + ["Sick Kid", false, []], + ["Sick Kid", false, [], ['AnyBottle']], + ["Sick Kid", false, ['BottleWithBee']], + ["Sick Kid", false, ['BottleWithFairy']], + ["Sick Kid", false, ['BottleWithRedPotion']], + ["Sick Kid", false, ['BottleWithGreenPotion']], + ["Sick Kid", false, ['BottleWithBluePotion']], + ["Sick Kid", false, ['Bottle']], + ["Sick Kid", false, ['BottleWithGoldBee']], + ["Sick Kid", true, ['BottleWithBee', 'MagicMirror','PegasusBoots']], + ["Sick Kid", true, ['BottleWithBee', 'MoonPearl', 'PegasusBoots']], + ["Sick Kid", true, ['BottleWithFairy', 'MagicMirror','PegasusBoots']], + ["Sick Kid", true, ['BottleWithFairy', 'MoonPearl','PegasusBoots']], + ["Sick Kid", true, ['BottleWithRedPotion', 'MagicMirror','PegasusBoots']], + ["Sick Kid", true, ['BottleWithRedPotion', 'MoonPearl','PegasusBoots']], + ["Sick Kid", true, ['BottleWithGreenPotion', 'MagicMirror','PegasusBoots']], + ["Sick Kid", true, ['BottleWithGreenPotion', 'MoonPearl','PegasusBoots']], + ["Sick Kid", true, ['BottleWithBluePotion', 'MagicMirror','PegasusBoots']], + ["Sick Kid", true, ['BottleWithBluePotion', 'MoonPearl','PegasusBoots']], + ["Sick Kid", true, ['Bottle', 'MagicMirror','PegasusBoots']], + ["Sick Kid", true, ['Bottle', 'MoonPearl','PegasusBoots']], + ["Sick Kid", true, ['BottleWithGoldBee', 'MagicMirror','PegasusBoots']], + ["Sick Kid", true, ['BottleWithGoldBee', 'MoonPearl','PegasusBoots']], + + ["Hobo", false, []], + ["Hobo", false, [], ['MoonPearl']], + ["Hobo", true, ['MoonPearl', 'PegasusBoots']], + ["Hobo", true, ['MoonPearl', 'DefeatAgahnim']], + + ["Bombos Tablet", false, []], + ["Bombos Tablet", false, [], ['UpgradedSword']], + ["Bombos Tablet", false, [], ['BookOfMudora']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'PegasusBoots', 'ProgressiveSword', 'ProgressiveSword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'PegasusBoots', 'L2Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'PegasusBoots', 'L3Sword']], + ["Bombos Tablet", true, ['MoonPearl', 'BookOfMudora', 'PegasusBoots', 'L4Sword']], + ["Bombos Tablet", true, ['MagicMirror', 'BookOfMudora', 'PegasusBoots', 'ProgressiveSword', 'ProgressiveSword']], + ["Bombos Tablet", true, ['MagicMirror', 'BookOfMudora', 'PegasusBoots', 'L2Sword']], + ["Bombos Tablet", true, ['MagicMirror', 'BookOfMudora', 'PegasusBoots', 'L3Sword']], + ["Bombos Tablet", true, ['MagicMirror', 'BookOfMudora', 'PegasusBoots', 'L4Sword']], + + ["King Zora", false, []], + ["King Zora", false, [], ['MoonPearl']], + ["King Zora", true, ['MoonPearl', 'PegasusBoots']], + + ["Lost Woods Hideout", false, []], + ["Lost Woods Hideout", false, [], ['MoonPearl']], + ["Lost Woods Hideout", true, ['MoonPearl', 'PegasusBoots']], + + ["Lumberjack Tree", false, []], + ["Lumberjack Tree", false, [], ['DefeatAgahnim']], + ["Lumberjack Tree", false, [], ['PegasusBoots']], + ["Lumberjack Tree", false, [], ['MoonPearl']], + ["Lumberjack Tree", true, ['PegasusBoots', 'MoonPearl', 'DefeatAgahnim']], + + ["Cave 45", false, []], + ["Cave 45", true, ['MoonPearl', 'PegasusBoots']], + ["Cave 45", true, ['MagicMirror', 'PegasusBoots']], + ["Cave 45", true, ['MagicMirror', 'DefeatAgahnim']], + + ["Graveyard Ledge", false, []], + ["Graveyard Ledge", false, [], ['MoonPearl']], + ["Graveyard Ledge", true, ['MoonPearl', 'PegasusBoots']], + + ["Checkerboard Cave", false, []], + ["Checkerboard Cave", false, [], ['Gloves']], + ["Checkerboard Cave", false, [], ['MoonPearl']], + ["Checkerboard Cave", true, ['ProgressiveGlove', 'PegasusBoots', 'MoonPearl']], + ["Checkerboard Cave", true, ['PowerGlove', 'PegasusBoots', 'MoonPearl']], + + ["Mini Moldorm Cave - NPC", false, []], + ["Mini Moldorm Cave - NPC", false, [], ['MoonPearl']], + ["Mini Moldorm Cave - NPC", true, ['MoonPearl', 'PegasusBoots']], + + ["Library", false, []], + ["Library", false, [], ['PegasusBoots']], + ["Library", true, ['PegasusBoots', 'MoonPearl']], + ["Library", true, ['PegasusBoots', 'MagicMirror']], + + ["Mushroom", false, []], + ["Mushroom", false, [], ['MoonPearl']], + ["Mushroom", true, ['MoonPearl', 'PegasusBoots']], + + ["Potion Shop", false, []], + ["Potion Shop", false, [], ['Mushroom']], + ["Potion Shop", false, [], ['MoonPearl']], + ["Potion Shop", true, ['Mushroom', 'MoonPearl', 'PegasusBoots']], + + ["Maze Race", false, []], + ["Maze Race", false, [], ['MoonPearl']], + ["Maze Race", true, ['MoonPearl', 'PegasusBoots']], + + ["Desert Ledge", false, []], + ["Desert Ledge", true, ['BookOfMudora', 'MagicMirror', 'PegasusBoots']], + ["Desert Ledge", true, ['BookOfMudora', 'DefeatAgahnim']], + ["Desert Ledge", true, ['MoonPearl', 'PegasusBoots']], + + ["Lake Hylia Island", false, []], + ["Lake Hylia Island", false, [], ['MoonPearl']], + ["Lake Hylia Island", true, ['MoonPearl', 'PegasusBoots']], + + ["Sunken Treasure", false, []], + ["Sunken Treasure", true, ['MoonPearl', 'PegasusBoots']], + ["Sunken Treasure", true, ['MagicMirror', 'PegasusBoots']], + ["Sunken Treasure", true, ['MagicMirror', 'DefeatAgahnim']], + + ["Zora's Ledge", false, []], + ["Zora's Ledge", false, [], ['MoonPearl']], + ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + + ["Flute Spot", false, []], + ["Flute Spot", false, [], ['Shovel']], + ["Flute Spot", false, [], ['MoonPearl']], + ["Flute Spot", true, ['Shovel', 'MoonPearl', 'PegasusBoots']], + + ["Waterfall Fairy - Left", false, []], + ["Waterfall Fairy - Left", false, [], ['MoonPearl']], + ["Waterfall Fairy - Left", true, ['MoonPearl', 'PegasusBoots']], + ["Waterfall Fairy - Left", true, ['MoonPearl', 'DefeatAgahnim']], + ["Waterfall Fairy - Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Waterfall Fairy - Left", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Waterfall Fairy - Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Waterfall Fairy - Left", true, ['MoonPearl', 'TitansMitt']], + + ["Waterfall Fairy - Right", false, []], + ["Waterfall Fairy - Right", false, [], ['MoonPearl']], + ["Waterfall Fairy - Right", true, ['MoonPearl', 'PegasusBoots']], + ["Waterfall Fairy - Right", true, ['MoonPearl', 'DefeatAgahnim']], + ["Waterfall Fairy - Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], + ["Waterfall Fairy - Right", true, ['MoonPearl', 'PowerGlove', 'Hammer']], + ["Waterfall Fairy - Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Waterfall Fairy - Right", true, ['MoonPearl', 'TitansMitt']], + + ["Bomb Merchant", false, []], + ["Bomb Merchant", false, [], ['Crystal5']], + ["Bomb Merchant", false, [], ['Crystal6']], + ["Bomb Merchant", true, ['Crystal5', 'Crystal6', 'MoonPearl', 'PegasusBoots']], + ["Bomb Merchant", true, ['Crystal5', 'Crystal6', 'MagicMirror', 'PegasusBoots']], + ["Bomb Merchant", true, ['Crystal5', 'Crystal6', 'DefeatAgahnim']], + + ["Ganon", false, []], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/MiseryMireTest.php b/tests/InvertedOverworldGlitches/MiseryMireTest.php new file mode 100644 index 000000000..f4cc08791 --- /dev/null +++ b/tests/InvertedOverworldGlitches/MiseryMireTest.php @@ -0,0 +1,168 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + + $this->world->getLocation("Misery Mire Medallion")->setItem(Item::get('Ether', $this->world)); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Misery Mire - Big Chest", false, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Main Lobby", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Big Key Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Compass Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Bridge Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Map Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Spike Chest", true, 'BigKeyD6', [], ['BigKeyD6']], + + ["Misery Mire - Boss", false, 'BigKeyD6', [], ['BigKeyD6']], + ]; + } + + public function accessPool() + { + return [ + ["Misery Mire - Big Chest", false, []], + ["Misery Mire - Big Chest", false, [], ['BigKeyD6']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'PegasusBoots', 'Ether', 'L4Sword']], + + ["Misery Mire - Main Lobby", false, []], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'PegasusBoots', 'Ether', 'L4Sword']], + + ["Misery Mire - Big Key Chest", false, []], + ["Misery Mire - Big Key Chest", false, [], ['FireRod', 'Lamp']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'L4Sword']], + + ["Misery Mire - Compass Chest", false, []], + ["Misery Mire - Compass Chest", false, [], ['FireRod', 'Lamp']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'PegasusBoots', 'Ether', 'L4Sword']], + + ["Misery Mire - Bridge Chest", false, []], + ["Misery Mire - Bridge Chest", true, ['PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Bridge Chest", true, ['PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Bridge Chest", true, ['PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Bridge Chest", true, ['PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Bridge Chest", true, ['PegasusBoots', 'Ether', 'L4Sword']], + + ["Misery Mire - Map Chest", false, []], + ["Misery Mire - Map Chest", true, ['KeyD6', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'PegasusBoots', 'Ether', 'L4Sword']], + + ["Misery Mire - Spike Chest", false, []], + ["Misery Mire - Spike Chest", true, ['PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Spike Chest", true, ['PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Spike Chest", true, ['PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Spike Chest", true, ['PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Spike Chest", true, ['PegasusBoots', 'Ether', 'L4Sword']], + + ["Misery Mire - Boss", false, []], + ["Misery Mire - Boss", false, [], ['Lamp']], + ["Misery Mire - Boss", false, [], ['CaneOfSomaria']], + ["Misery Mire - Boss", false, [], ['BigKeyD6']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'PegasusBoots', 'Ether', 'L4Sword']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/PalaceOfDarknessTest.php b/tests/InvertedOverworldGlitches/PalaceOfDarknessTest.php new file mode 100644 index 000000000..61806990f --- /dev/null +++ b/tests/InvertedOverworldGlitches/PalaceOfDarknessTest.php @@ -0,0 +1,186 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Palace of Darkness') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [true, []], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Palace of Darkness - Big Key Chest", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - The Arena - Ledge", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - The Arena - Bridge", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Big Chest", false, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Compass Chest", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Harmless Hellway", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Stalfos Basement", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Basement - Left", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Basement - Right", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Map Chest", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Maze - Top", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Dark Maze - Bottom", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Shooter Room", true, 'BigKeyD1', [], ['BigKeyD1']], + + ["Palace of Darkness - Boss", false, 'BigKeyD1', [], ['BigKeyD1']], + ]; + } + + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Palace of Darkness - Big Key Chest", false, []], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1']], + + ["Palace of Darkness - The Arena - Ledge", false, []], + ["Palace of Darkness - The Arena - Ledge", false, [], ['AnyBow']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows']], + + ["Palace of Darkness - The Arena - Bridge", false, []], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1']], + + ["Palace of Darkness - Big Chest", false, []], + ["Palace of Darkness - Big Chest", false, [], ['Lamp']], + ["Palace of Darkness - Big Chest", false, [], ['BigKeyD1']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp']], + + ["Palace of Darkness - Compass Chest", false, []], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1']], + + ["Palace of Darkness - Harmless Hellway", false, []], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1']], + + ["Palace of Darkness - Stalfos Basement", false, []], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1']], + + ["Palace of Darkness - Dark Basement - Left", false, []], + ["Palace of Darkness - Dark Basement - Left", false, [], ['Lamp']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp']], + + ["Palace of Darkness - Dark Basement - Right", false, []], + ["Palace of Darkness - Dark Basement - Right", false, [], ['Lamp']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp']], + + ["Palace of Darkness - Map Chest", false, []], + ["Palace of Darkness - Map Chest", false, [], ['AnyBow']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows']], + + ["Palace of Darkness - Dark Maze - Top", false, []], + ["Palace of Darkness - Dark Maze - Top", false, [], ['Lamp']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp']], + + ["Palace of Darkness - Dark Maze - Bottom", false, []], + ["Palace of Darkness - Dark Maze - Bottom", false, [], ['Lamp']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp']], + + ["Palace of Darkness - Shooter Room", true, []], + + ["Palace of Darkness - Boss", false, []], + ["Palace of Darkness - Boss", false, [], ['Lamp']], + ["Palace of Darkness - Boss", false, [], ['Hammer']], + ["Palace of Darkness - Boss", false, [], ['AnyBow']], + ["Palace of Darkness - Boss", false, [], ['BigKeyD1']], + ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'Hammer', 'BowAndArrows']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/SkullWoodsTest.php b/tests/InvertedOverworldGlitches/SkullWoodsTest.php new file mode 100644 index 000000000..4f2c703d7 --- /dev/null +++ b/tests/InvertedOverworldGlitches/SkullWoodsTest.php @@ -0,0 +1,123 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * @param array $keys + * @param string $big_key + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Skull Woods - Big Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Big Key Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Compass Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Map Chest", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Bridge Room", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Pot Prison", true, 'BigKeyD3', [], ['BigKeyD3']], + + ["Skull Woods - Pinball Room", true, 'KeyD3', [], ['KeyD3']], + + ["Skull Woods - Boss", true, 'BigKeyD3', [], ['BigKeyD3']], + ["Skull Woods - Boss", false, 'KeyD3', [], ['KeyD3']], + ]; + } + + public function accessPool() + { + return [ + ["Skull Woods - Big Chest", false, []], + ["Skull Woods - Big Chest", false, [], ['BigKeyD3']], + ["Skull Woods - Big Chest", true, ['BigKeyD3']], + + ["Skull Woods - Big Key Chest", true, []], + + ["Skull Woods - Compass Chest", true, []], + + ["Skull Woods - Map Chest", true, []], + + ["Skull Woods - Bridge Room", false, []], + ["Skull Woods - Bridge Room", false, [], ['FireRod']], + ["Skull Woods - Bridge Room", true, ['FireRod']], + + ["Skull Woods - Pot Prison", true, []], + + ["Skull Woods - Pinball Room", true, []], + + ["Skull Woods - Boss", false, []], + ["Skull Woods - Boss", false, [], ['FireRod']], + ["Skull Woods - Boss", false, [], ['AnySword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'UncleSword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'MasterSword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'L3Sword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'L4Sword']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/SwampPalaceTest.php b/tests/InvertedOverworldGlitches/SwampPalaceTest.php new file mode 100644 index 000000000..6bf18186c --- /dev/null +++ b/tests/InvertedOverworldGlitches/SwampPalaceTest.php @@ -0,0 +1,173 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Swamp Palace - Entrance", false, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Entrance", true, 'KeyD2', [], ['KeyD2']], + + ["Swamp Palace - Big Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Big Key Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Map Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - West Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Compass Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Flooded Room - Left", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Flooded Room - Right", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Waterfall Room", true, 'BigKeyD2', [], ['BigKeyD2']], + + ["Swamp Palace - Boss", true, 'BigKeyD2', [], ['BigKeyD2']], + ]; + } + + public function accessPool() + { + return [ + ["Swamp Palace - Entrance", false, []], + ["Swamp Palace - Entrance", false, [], ['MagicMirror']], + ["Swamp Palace - Entrance", false, [], ['Flippers']], + ["Swamp Palace - Entrance", true, ['MagicMirror', 'Flippers', 'PegasusBoots']], + ["Swamp Palace - Entrance", true, ['MagicMirror', 'Flippers', 'DefeatAgahnim']], + + ["Swamp Palace - Big Chest", false, []], + ["Swamp Palace - Big Chest", false, [], ['MagicMirror']], + ["Swamp Palace - Big Chest", false, [], ['Flippers']], + ["Swamp Palace - Big Chest", false, [], ['Hammer']], + ["Swamp Palace - Big Chest", false, [], ['BigKeyD2']], + ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'Flippers', 'PegasusBoots', 'Hammer']], + ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'Flippers', 'DefeatAgahnim', 'Hammer']], + + ["Swamp Palace - Big Key Chest", false, []], + ["Swamp Palace - Big Key Chest", false, [], ['MagicMirror']], + ["Swamp Palace - Big Key Chest", false, [], ['Flippers']], + ["Swamp Palace - Big Key Chest", false, [], ['Hammer']], + ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'Flippers', 'PegasusBoots', 'Hammer']], + ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'Flippers', 'DefeatAgahnim', 'Hammer']], + + ["Swamp Palace - Map Chest", false, []], + ["Swamp Palace - Map Chest", false, [], ['MagicMirror']], + ["Swamp Palace - Map Chest", false, [], ['Flippers']], + ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'Flippers', 'PegasusBoots']], + ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'Flippers', 'DefeatAgahnim', 'ProgressiveGlove']], + ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'Flippers', 'DefeatAgahnim', 'Hammer']], + + ["Swamp Palace - West Chest", false, []], + ["Swamp Palace - West Chest", false, [], ['MagicMirror']], + ["Swamp Palace - West Chest", false, [], ['Flippers']], + ["Swamp Palace - West Chest", false, [], ['Hammer']], + ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'Flippers', 'PegasusBoots', 'Hammer']], + ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'Flippers', 'DefeatAgahnim', 'Hammer']], + + ["Swamp Palace - Compass Chest", false, []], + ["Swamp Palace - Compass Chest", false, [], ['MagicMirror']], + ["Swamp Palace - Compass Chest", false, [], ['Flippers']], + ["Swamp Palace - Compass Chest", false, [], ['Hammer']], + ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'Flippers', 'PegasusBoots', 'Hammer']], + ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'Flippers', 'DefeatAgahnim', 'Hammer']], + + ["Swamp Palace - Flooded Room - Left", false, []], + ["Swamp Palace - Flooded Room - Left", false, [], ['MagicMirror']], + ["Swamp Palace - Flooded Room - Left", false, [], ['Flippers']], + ["Swamp Palace - Flooded Room - Left", false, [], ['Hammer']], + ["Swamp Palace - Flooded Room - Left", false, [], ['Hookshot']], + ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'Flippers', 'PegasusBoots', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + + ["Swamp Palace - Flooded Room - Right", false, []], + ["Swamp Palace - Flooded Room - Right", false, [], ['MagicMirror']], + ["Swamp Palace - Flooded Room - Right", false, [], ['Flippers']], + ["Swamp Palace - Flooded Room - Right", false, [], ['Hammer']], + ["Swamp Palace - Flooded Room - Right", false, [], ['Hookshot']], + ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'Flippers', 'PegasusBoots', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + + ["Swamp Palace - Waterfall Room", false, []], + ["Swamp Palace - Waterfall Room", false, [], ['MagicMirror']], + ["Swamp Palace - Waterfall Room", false, [], ['Flippers']], + ["Swamp Palace - Waterfall Room", false, [], ['Hammer']], + ["Swamp Palace - Waterfall Room", false, [], ['Hookshot']], + ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'Flippers', 'PegasusBoots', 'Hammer', 'Hookshot']], + ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + + ["Swamp Palace - Boss", false, []], + ["Swamp Palace - Boss", false, [], ['MagicMirror']], + ["Swamp Palace - Boss", false, [], ['Flippers']], + ["Swamp Palace - Boss", false, [], ['Hammer']], + ["Swamp Palace - Boss", false, [], ['Hookshot']], + ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'Flippers', 'PegasusBoots', 'Hammer', 'Hookshot']], + ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/ThievesTownTest.php b/tests/InvertedOverworldGlitches/ThievesTownTest.php new file mode 100644 index 000000000..5d6e89a84 --- /dev/null +++ b/tests/InvertedOverworldGlitches/ThievesTownTest.php @@ -0,0 +1,129 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->world->getRegion('Thieves Town')->setBoss(new Boss("Dummy Boss")); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * @param array $keys + * @param string $big_key + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + + + public function fillPool() + { + return [ + ["Thieves' Town - Attic", false, 'BigKeyD4', [], ['BigKeyD4']], + ["Thieves' Town - Attic", false, 'KeyD4', [], ['KeyD4']], + + ["Thieves' Town - Big Key Chest", true, 'BigKeyD4', [], ['BigKeyD4']], + + ["Thieves' Town - Map Chest", true, 'BigKeyD4', [], ['BigKeyD4']], + + ["Thieves' Town - Compass Chest", true, 'BigKeyD4', [], ['BigKeyD4']], + + ["Thieves' Town - Ambush Chest", true, 'BigKeyD4', [], ['BigKeyD4']], + + ["Thieves' Town - Big Chest", false, 'BigKeyD4', [], ['BigKeyD4']], + ["Thieves' Town - Big Chest", true, 'KeyD4', [], ['KeyD4']], + + ["Thieves' Town - Blind's Cell", false, 'BigKeyD4', [], ['BigKeyD4']], + + ["Thieves' Town - Boss", false, 'BigKeyD4', [], ['BigKeyD4']], + ["Thieves' Town - Boss", false, 'KeyD4', [], ['KeyD4']], + ]; + } + + public function accessPool() + { + return [ + ["Thieves' Town - Attic", false, []], + ["Thieves' Town - Attic", false, [], ['BigKeyD4']], + ["Thieves' Town - Attic", false, [], ['KeyD4']], + ["Thieves' Town - Attic", true, ['BigKeyD4', 'KeyD4']], + + ["Thieves' Town - Big Key Chest", true, []], + + ["Thieves' Town - Map Chest", true, []], + + ["Thieves' Town - Compass Chest", true, []], + + ["Thieves' Town - Ambush Chest", true, []], + + ["Thieves' Town - Big Chest", false, []], + ["Thieves' Town - Big Chest", false, [], ['BigKeyD4']], + ["Thieves' Town - Big Chest", false, [], ['Hammer']], + ["Thieves' Town - Big Chest", true, ['Hammer', 'KeyD4', 'BigKeyD4']], + + ["Thieves' Town - Blind's Cell", false, []], + ["Thieves' Town - Blind's Cell", false, [], ['BigKeyD4']], + ["Thieves' Town - Blind's Cell", true, ['BigKeyD4']], + + ["Thieves' Town - Boss", false, []], + ["Thieves' Town - Boss", false, [], ['BigKeyD4']], + ["Thieves' Town - Boss", false, [], ['KeyD4']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BigKeyD4']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/TowerOfHeraTest.php b/tests/InvertedOverworldGlitches/TowerOfHeraTest.php new file mode 100644 index 000000000..00d44a52f --- /dev/null +++ b/tests/InvertedOverworldGlitches/TowerOfHeraTest.php @@ -0,0 +1,158 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Tower of Hera') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [false, []], + [false, [], ['MoonPearl']], + [true, ['PegasusBoots', 'MoonPearl']], + ]; + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * @param array $keys + * @param string $big_key + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + + public function fillPool() + { + return [ + ["Tower of Hera - Big Key Chest", true, 'BigKeyP3', [], ['BigKeyP3']], + ["Tower of Hera - Big Key Chest", true, 'KeyP3', [], ['KeyP3']], + + ["Tower of Hera - Basement Cage", true, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Map Chest", true, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Compass Chest", false, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Big Chest", false, 'BigKeyP3', [], ['BigKeyP3']], + + ["Tower of Hera - Boss", false, 'BigKeyP3', [], ['BigKeyP3']], + ]; + } + + public function accessPool() + { + return [ + ["Tower of Hera - Big Key Chest", false, []], + ["Tower of Hera - Big Key Chest", false, [], ['Lamp', 'FireRod']], + ["Tower of Hera - Big Key Chest", false, [], ['MoonPearl']], + ["Tower of Hera - Big Key Chest", false, [], ['KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'PegasusBoots', 'MoonPearl', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'PegasusBoots', 'MoonPearl', 'KeyP3']], + + ["Tower of Hera - Basement Cage", false, []], + ["Tower of Hera - Basement Cage", false, [], ['MoonPearl']], + ["Tower of Hera - Basement Cage", true, ['PegasusBoots', 'MoonPearl']], + + ["Tower of Hera - Map Chest", false, []], + ["Tower of Hera - Map Chest", false, [], ['MoonPearl']], + ["Tower of Hera - Map Chest", true, ['PegasusBoots', 'MoonPearl']], + + ["Tower of Hera - Compass Chest", false, []], + ["Tower of Hera - Compass Chest", false, [], ['MoonPearl']], + ["Tower of Hera - Compass Chest", false, [], ['BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['PegasusBoots', 'MoonPearl', 'BigKeyP3']], + + ["Tower of Hera - Big Chest", false, []], + ["Tower of Hera - Big Chest", false, [], ['MoonPearl']], + ["Tower of Hera - Big Chest", false, [], ['BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['PegasusBoots', 'MoonPearl', 'BigKeyP3']], + + ["Tower of Hera - Boss", false, []], + ["Tower of Hera - Boss", false, [], ['MoonPearl']], + ["Tower of Hera - Boss", false, [], ['AnySword', 'Hammer']], + ["Tower of Hera - Boss", false, [], ['BigKeyP3']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'MoonPearl', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'MoonPearl', 'UncleSword', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'MoonPearl', 'ProgressiveSword', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'MoonPearl', 'MasterSword', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'MoonPearl', 'L3Sword', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'MoonPearl', 'L4Sword', 'BigKeyP3']], + ]; + } +} diff --git a/tests/InvertedOverworldGlitches/TurtleRockTest.php b/tests/InvertedOverworldGlitches/TurtleRockTest.php new file mode 100644 index 000000000..215e471c9 --- /dev/null +++ b/tests/InvertedOverworldGlitches/TurtleRockTest.php @@ -0,0 +1,157 @@ +world = World::factory('inverted', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->world->getLocation("Turtle Rock Medallion")->setItem(Item::get('Quake', $this->world)); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + ["Turtle Rock - Chain Chomps", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Compass Chest", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Roller Room - Left", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Roller Room - Right", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Big Chest", false, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Big Key Chest", true, 'BigKeyD7', ['KeyD7', 'KeyD7'], ['BigKeyD7']], + + ["Turtle Rock - Crystaroller Room", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Eye Bridge - Bottom Left", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Eye Bridge - Bottom Right", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Eye Bridge - Top Left", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Eye Bridge - Top Right", true, 'BigKeyD7', [], ['BigKeyD7']], + + ["Turtle Rock - Boss", false, 'BigKeyD7', [], ['BigKeyD7']], + ["Turtle Rock - Boss", false, 'KeyD7', [], ['KeyD7']], + ]; + } + + public function accessPool() + { + return [ + ["Turtle Rock - Chain Chomps", false, []], + ["Turtle Rock - Chain Chomps", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl']], + + ["Turtle Rock - Compass Chest", false, []], + ["Turtle Rock - Compass Chest", false, [], ['CaneOfSomaria']], + ["Turtle Rock - Compass Chest", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + + ["Turtle Rock - Roller Room - Left", false, []], + ["Turtle Rock - Roller Room - Left", false, [], ['CaneOfSomaria']], + ["Turtle Rock - Roller Room - Left", false, [], ['FireRod']], + ["Turtle Rock - Roller Room - Left", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + + ["Turtle Rock - Roller Room - Right", false, []], + ["Turtle Rock - Roller Room - Right", false, [], ['CaneOfSomaria']], + ["Turtle Rock - Roller Room - Right", false, [], ['FireRod']], + ["Turtle Rock - Roller Room - Right", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + + ["Turtle Rock - Big Chest", false, []], + ["Turtle Rock - Big Chest", false, [], ['BigKeyD7']], + ["Turtle Rock - Big Chest", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl', 'Hookshot', 'BigKeyD7']], + ["Turtle Rock - Big Chest", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl', 'CaneOfSomaria', 'BigKeyD7']], + + ["Turtle Rock - Big Key Chest", false, []], + ["Turtle Rock - Big Key Chest", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + + ["Turtle Rock - Crystaroller Room", false, []], + ["Turtle Rock - Crystaroller Room", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl', 'BigKeyD7']], + ["Turtle Rock - Crystaroller Room", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl', 'Lamp', 'CaneOfSomaria']], + + ["Turtle Rock - Eye Bridge - Bottom Left", false, []], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl']], + + ["Turtle Rock - Eye Bridge - Bottom Right", false, []], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl']], + + ["Turtle Rock - Eye Bridge - Top Left", false, []], + ["Turtle Rock - Eye Bridge - Top Left", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl']], + + ["Turtle Rock - Eye Bridge - Top Right", false, []], + ["Turtle Rock - Eye Bridge - Top Right", true, ['PegasusBoots', 'MagicMirror', 'MoonPearl']], + + ["Turtle Rock - Boss", false, []], + ["Turtle Rock - Boss", false, [], ['CaneOfSomaria']], + ["Turtle Rock - Boss", false, [], ['IceRod']], + ["Turtle Rock - Boss", false, [], ['FireRod']], + ["Turtle Rock - Boss", false, [], ['AnySword', 'Hammer']], + ["Turtle Rock - Boss", false, [], ['BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'PegasusBoots', 'MagicMirror', 'MoonPearl', 'UncleSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'PegasusBoots', 'MagicMirror', 'MoonPearl', 'ProgressiveSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'PegasusBoots', 'MagicMirror', 'MoonPearl', 'MasterSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'PegasusBoots', 'MagicMirror', 'MoonPearl', 'ProgressiveSword', 'ProgressiveSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'PegasusBoots', 'MagicMirror', 'MoonPearl', 'L3Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'PegasusBoots', 'MagicMirror', 'MoonPearl', 'L4Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'PegasusBoots', 'MagicMirror', 'MoonPearl', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ]; + } +} diff --git a/tests/MajorGlitches/DarkWorld/DeathMountain/EastTest.php b/tests/MajorGlitches/DarkWorld/DeathMountain/EastTest.php new file mode 100644 index 000000000..33f10f4d2 --- /dev/null +++ b/tests/MajorGlitches/DarkWorld/DeathMountain/EastTest.php @@ -0,0 +1,112 @@ +world = World::factory('standard', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Superbunny Cave - Top", true, []], + + ["Superbunny Cave - Bottom", true, []], + + ["Hookshot Cave - Bottom Right", false, []], + ["Hookshot Cave - Bottom Right", false, [], ['Hookshot', 'PegasusBoots']], + ["Hookshot Cave - Bottom Right", false, [], ['AnyBottle', 'MoonPearl']], + ["Hookshot Cave - Bottom Right", true, ['PegasusBoots', 'MoonPearl']], + ["Hookshot Cave - Bottom Right", true, ['Hookshot', 'MoonPearl']], + ["Hookshot Cave - Bottom Right", true, ['PegasusBoots', 'BottleWithBee']], + ["Hookshot Cave - Bottom Right", true, ['Hookshot', 'BottleWithBee']], + ["Hookshot Cave - Bottom Right", true, ['PegasusBoots', 'BottleWithFairy']], + ["Hookshot Cave - Bottom Right", true, ['Hookshot', 'BottleWithFairy']], + ["Hookshot Cave - Bottom Right", true, ['PegasusBoots', 'BottleWithRedPotion']], + ["Hookshot Cave - Bottom Right", true, ['Hookshot', 'BottleWithRedPotion']], + ["Hookshot Cave - Bottom Right", true, ['PegasusBoots', 'BottleWithGreenPotion']], + ["Hookshot Cave - Bottom Right", true, ['Hookshot', 'BottleWithGreenPotion']], + ["Hookshot Cave - Bottom Right", true, ['PegasusBoots', 'BottleWithBluePotion']], + ["Hookshot Cave - Bottom Right", true, ['Hookshot', 'BottleWithBluePotion']], + ["Hookshot Cave - Bottom Right", true, ['PegasusBoots', 'Bottle']], + ["Hookshot Cave - Bottom Right", true, ['Hookshot', 'Bottle']], + ["Hookshot Cave - Bottom Right", true, ['PegasusBoots', 'BottleWithGoldBee']], + ["Hookshot Cave - Bottom Right", true, ['Hookshot', 'BottleWithGoldBee']], + + ["Hookshot Cave - Bottom Left", false, []], + ["Hookshot Cave - Bottom Left", false, [], ['Hookshot']], + ["Hookshot Cave - Bottom Left", false, [], ['AnyBottle', 'MoonPearl']], + ["Hookshot Cave - Bottom Left", true, ['Hookshot', 'MoonPearl']], + ["Hookshot Cave - Bottom Left", true, ['Hookshot', 'BottleWithBee']], + ["Hookshot Cave - Bottom Left", true, ['Hookshot', 'BottleWithFairy']], + ["Hookshot Cave - Bottom Left", true, ['Hookshot', 'BottleWithRedPotion']], + ["Hookshot Cave - Bottom Left", true, ['Hookshot', 'BottleWithGreenPotion']], + ["Hookshot Cave - Bottom Left", true, ['Hookshot', 'BottleWithBluePotion']], + ["Hookshot Cave - Bottom Left", true, ['Hookshot', 'Bottle']], + ["Hookshot Cave - Bottom Left", true, ['Hookshot', 'BottleWithGoldBee']], + + ["Hookshot Cave - Top Left", false, []], + ["Hookshot Cave - Top Left", false, [], ['Hookshot']], + ["Hookshot Cave - Top Left", false, [], ['AnyBottle', 'MoonPearl']], + ["Hookshot Cave - Top Left", true, ['Hookshot', 'MoonPearl']], + ["Hookshot Cave - Top Left", true, ['Hookshot', 'BottleWithBee']], + ["Hookshot Cave - Top Left", true, ['Hookshot', 'BottleWithFairy']], + ["Hookshot Cave - Top Left", true, ['Hookshot', 'BottleWithRedPotion']], + ["Hookshot Cave - Top Left", true, ['Hookshot', 'BottleWithGreenPotion']], + ["Hookshot Cave - Top Left", true, ['Hookshot', 'BottleWithBluePotion']], + ["Hookshot Cave - Top Left", true, ['Hookshot', 'Bottle']], + ["Hookshot Cave - Top Left", true, ['Hookshot', 'BottleWithGoldBee']], + + ["Hookshot Cave - Top Right", false, []], + ["Hookshot Cave - Top Right", false, [], ['Hookshot']], + ["Hookshot Cave - Top Right", false, [], ['AnyBottle', 'MoonPearl']], + ["Hookshot Cave - Top Right", true, ['Hookshot', 'MoonPearl']], + ["Hookshot Cave - Top Right", true, ['Hookshot', 'BottleWithBee']], + ["Hookshot Cave - Top Right", true, ['Hookshot', 'BottleWithFairy']], + ["Hookshot Cave - Top Right", true, ['Hookshot', 'BottleWithRedPotion']], + ["Hookshot Cave - Top Right", true, ['Hookshot', 'BottleWithGreenPotion']], + ["Hookshot Cave - Top Right", true, ['Hookshot', 'BottleWithBluePotion']], + ["Hookshot Cave - Top Right", true, ['Hookshot', 'Bottle']], + ["Hookshot Cave - Top Right", true, ['Hookshot', 'BottleWithGoldBee']], + ]; + } +} diff --git a/tests/MajorGlitches/DarkWorld/DeathMountain/WestTest.php b/tests/MajorGlitches/DarkWorld/DeathMountain/WestTest.php new file mode 100644 index 000000000..f5908f3ed --- /dev/null +++ b/tests/MajorGlitches/DarkWorld/DeathMountain/WestTest.php @@ -0,0 +1,95 @@ +world = World::factory('standard', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Spike Cave", false, []], + ["Spike Cave", false, [], ['Gloves']], + ["Spike Cave", false, [], ['Hammer']], + ["Spike Cave", false, [], ['Cape', 'CaneOfByrna']], + ["Spike Cave", false, [], ['AnyBottle', 'MoonPearl']], + ["Spike Cave", false, ['Bottle', 'Hammer', 'ProgressiveGlove', 'Cape']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Cape']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'PowerGlove', 'Cape']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'TitansMitt', 'Cape']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'PowerGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'TitansMitt', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Bottle', 'Hammer', 'ProgressiveGlove', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Bottle', 'Hammer', 'PowerGlove', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Bottle', 'Hammer', 'TitansMitt', 'Cape']], + ["Spike Cave", true, ['Bottle', 'Bottle', 'Hammer', 'ProgressiveGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Bottle', 'Hammer', 'PowerGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'Bottle', 'Hammer', 'TitansMitt', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Bottle', 'Hammer', 'ProgressiveGlove', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Bottle', 'Hammer', 'PowerGlove', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Bottle', 'Hammer', 'TitansMitt', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'Bottle', 'Hammer', 'ProgressiveGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Bottle', 'Hammer', 'PowerGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'Bottle', 'Hammer', 'TitansMitt', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Bottle', 'Hammer', 'ProgressiveGlove', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Bottle', 'Hammer', 'PowerGlove', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Bottle', 'Hammer', 'TitansMitt', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'Bottle', 'Hammer', 'ProgressiveGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Bottle', 'Hammer', 'PowerGlove', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'Bottle', 'Hammer', 'TitansMitt', 'CaneOfByrna']], + ]; + } +} diff --git a/tests/MajorGlitches/DarkWorld/MireTest.php b/tests/MajorGlitches/DarkWorld/MireTest.php new file mode 100644 index 000000000..d73025fd7 --- /dev/null +++ b/tests/MajorGlitches/DarkWorld/MireTest.php @@ -0,0 +1,76 @@ +world = World::factory('standard', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Mire Shed - Left", false, []], + ["Mire Shed - Left", false, [], ['MoonPearl', 'AnyBottle', 'MagicMirror']], + ["Mire Shed - Left", true, ['MoonPearl']], + ["Mire Shed - Left", true, ['BottleWithBee']], + ["Mire Shed - Left", true, ['BottleWithFairy']], + ["Mire Shed - Left", true, ['BottleWithRedPotion']], + ["Mire Shed - Left", true, ['BottleWithGreenPotion']], + ["Mire Shed - Left", true, ['BottleWithBluePotion']], + ["Mire Shed - Left", true, ['Bottle']], + ["Mire Shed - Left", true, ['BottleWithGoldBee']], + ["Mire Shed - Left", true, ['MagicMirror']], + + ["Mire Shed - Right", false, []], + ["Mire Shed - Right", false, [], ['MoonPearl', 'AnyBottle', 'MagicMirror']], + ["Mire Shed - Right", true, ['MoonPearl']], + ["Mire Shed - Right", true, ['BottleWithBee']], + ["Mire Shed - Right", true, ['BottleWithFairy']], + ["Mire Shed - Right", true, ['BottleWithRedPotion']], + ["Mire Shed - Right", true, ['BottleWithGreenPotion']], + ["Mire Shed - Right", true, ['BottleWithBluePotion']], + ["Mire Shed - Right", true, ['Bottle']], + ["Mire Shed - Right", true, ['BottleWithGoldBee']], + ["Mire Shed - Right", true, ['MagicMirror']], + ]; + } +} diff --git a/tests/MajorGlitches/DarkWorld/NorthEastTest.php b/tests/MajorGlitches/DarkWorld/NorthEastTest.php index f1ad135e7..f5a1b9d1c 100644 --- a/tests/MajorGlitches/DarkWorld/NorthEastTest.php +++ b/tests/MajorGlitches/DarkWorld/NorthEastTest.php @@ -49,69 +49,79 @@ public function accessPool() { return [ ["Catfish", false, []], - ["Catfish", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove']], - ["Catfish", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove']], - ["Catfish", true, ['MoonPearl', 'DefeatAgahnim', 'TitansMitt']], - ["Catfish", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Catfish", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Catfish", true, ['MoonPearl', 'TitansMitt', 'Flippers']], + ["Catfish", false, [], ['MoonPearl', 'AnyBottle']], + ["Catfish", true, ['MoonPearl']], + ["Catfish", true, ['BottleWithBee']], + ["Catfish", true, ['BottleWithFairy']], + ["Catfish", true, ['BottleWithRedPotion']], + ["Catfish", true, ['BottleWithGreenPotion']], + ["Catfish", true, ['BottleWithBluePotion']], + ["Catfish", true, ['Bottle']], + ["Catfish", true, ['BottleWithGoldBee']], ["Pyramid", true, []], ["Pyramid Fairy - Sword", false, []], ["Pyramid Fairy - Sword", false, [], ['AnySword']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'TitansMitt', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'ProgressiveGlove', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'PowerGlove', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'TitansMitt', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'TitansMitt', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'ProgressiveGlove', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'PowerGlove', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'TitansMitt', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MagicMirror']], + ["Pyramid Fairy - Sword", false, [], ['MagicMirror', 'Crystal5']], + ["Pyramid Fairy - Sword", false, [], ['MagicMirror', 'Crystal6']], + ["Pyramid Fairy - Sword", false, [], ['MagicMirror', 'MoonPearl', 'AnyBottle']], + ["Pyramid Fairy - Sword", false, [], ['MagicMirror', 'Hammer', 'AnyBottle']], + ["Pyramid Fairy - Sword", true, ['MagicMirror', 'UncleSword']], + ["Pyramid Fairy - Sword", true, ['Crystal5', 'Crystal6', 'MoonPearl', 'Hammer', 'UncleSword']], + ["Pyramid Fairy - Sword", true, ['Crystal5', 'Crystal6', 'BottleWithBee', 'UncleSword']], + ["Pyramid Fairy - Sword", true, ['Crystal5', 'Crystal6', 'BottleWithFairy', 'UncleSword']], + ["Pyramid Fairy - Sword", true, ['Crystal5', 'Crystal6', 'BottleWithRedPotion', 'UncleSword']], + ["Pyramid Fairy - Sword", true, ['Crystal5', 'Crystal6', 'BottleWithGreenPotion', 'UncleSword']], + ["Pyramid Fairy - Sword", true, ['Crystal5', 'Crystal6', 'BottleWithBluePotion', 'UncleSword']], + ["Pyramid Fairy - Sword", true, ['Crystal5', 'Crystal6', 'Bottle', 'UncleSword']], + ["Pyramid Fairy - Sword", true, ['Crystal5', 'Crystal6', 'BottleWithGoldBee', 'UncleSword']], ["Pyramid Fairy - Bow", false, []], ["Pyramid Fairy - Bow", false, [], ['AnyBow']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'Hammer']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'TitansMitt', 'Hammer']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'ProgressiveGlove', 'Hammer']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'PowerGlove', 'Hammer']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'TitansMitt', 'MagicMirror']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MagicMirror']], + ["Pyramid Fairy - Bow", false, [], ['MagicMirror', 'Crystal5']], + ["Pyramid Fairy - Bow", false, [], ['MagicMirror', 'Crystal6']], + ["Pyramid Fairy - Bow", false, [], ['MagicMirror', 'MoonPearl', 'AnyBottle']], + ["Pyramid Fairy - Bow", false, [], ['MagicMirror', 'Hammer', 'AnyBottle']], + ["Pyramid Fairy - Bow", true, ['MagicMirror', 'BowAndArrows']], + ["Pyramid Fairy - Bow", true, ['Crystal5', 'Crystal6', 'MoonPearl', 'Hammer', 'BowAndArrows']], + ["Pyramid Fairy - Bow", true, ['Crystal5', 'Crystal6', 'BottleWithBee', 'BowAndArrows']], + ["Pyramid Fairy - Bow", true, ['Crystal5', 'Crystal6', 'BottleWithFairy', 'BowAndArrows']], + ["Pyramid Fairy - Bow", true, ['Crystal5', 'Crystal6', 'BottleWithRedPotion', 'BowAndArrows']], + ["Pyramid Fairy - Bow", true, ['Crystal5', 'Crystal6', 'BottleWithGreenPotion', 'BowAndArrows']], + ["Pyramid Fairy - Bow", true, ['Crystal5', 'Crystal6', 'BottleWithBluePotion', 'BowAndArrows']], + ["Pyramid Fairy - Bow", true, ['Crystal5', 'Crystal6', 'Bottle', 'BowAndArrows']], + ["Pyramid Fairy - Bow", true, ['Crystal5', 'Crystal6', 'BottleWithGoldBee', 'BowAndArrows']], ["Pyramid Fairy - Left", false, []], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'Hammer']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'TitansMitt', 'Hammer']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveGlove', 'Hammer']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'PowerGlove', 'Hammer']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'TitansMitt', 'MagicMirror']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MagicMirror']], + ["Pyramid Fairy - Left", false, [], ['MagicMirror', 'Crystal5']], + ["Pyramid Fairy - Left", false, [], ['MagicMirror', 'Crystal6']], + ["Pyramid Fairy - Left", false, [], ['MagicMirror', 'MoonPearl', 'AnyBottle']], + ["Pyramid Fairy - Left", false, [], ['MagicMirror', 'Hammer', 'AnyBottle']], + ["Pyramid Fairy - Left", true, ['MagicMirror']], + ["Pyramid Fairy - Left", true, ['Crystal5', 'Crystal6', 'MoonPearl', 'Hammer']], + ["Pyramid Fairy - Left", true, ['Crystal5', 'Crystal6', 'BottleWithBee']], + ["Pyramid Fairy - Left", true, ['Crystal5', 'Crystal6', 'BottleWithFairy']], + ["Pyramid Fairy - Left", true, ['Crystal5', 'Crystal6', 'BottleWithRedPotion']], + ["Pyramid Fairy - Left", true, ['Crystal5', 'Crystal6', 'BottleWithGreenPotion']], + ["Pyramid Fairy - Left", true, ['Crystal5', 'Crystal6', 'BottleWithBluePotion']], + ["Pyramid Fairy - Left", true, ['Crystal5', 'Crystal6', 'Bottle']], + ["Pyramid Fairy - Left", true, ['Crystal5', 'Crystal6', 'BottleWithGoldBee']], ["Pyramid Fairy - Right", false, []], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'Hammer']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'TitansMitt', 'Hammer']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveGlove', 'Hammer']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'PowerGlove', 'Hammer']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'TitansMitt', 'MagicMirror']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MagicMirror']], + ["Pyramid Fairy - Right", false, [], ['MagicMirror', 'Crystal5']], + ["Pyramid Fairy - Right", false, [], ['MagicMirror', 'Crystal6']], + ["Pyramid Fairy - Right", false, [], ['MagicMirror', 'MoonPearl', 'AnyBottle']], + ["Pyramid Fairy - Right", false, [], ['MagicMirror', 'Hammer', 'AnyBottle']], + ["Pyramid Fairy - Right", true, ['MagicMirror']], + ["Pyramid Fairy - Right", true, ['Crystal5', 'Crystal6', 'MoonPearl', 'Hammer']], + ["Pyramid Fairy - Right", true, ['Crystal5', 'Crystal6', 'BottleWithBee']], + ["Pyramid Fairy - Right", true, ['Crystal5', 'Crystal6', 'BottleWithFairy']], + ["Pyramid Fairy - Right", true, ['Crystal5', 'Crystal6', 'BottleWithRedPotion']], + ["Pyramid Fairy - Right", true, ['Crystal5', 'Crystal6', 'BottleWithGreenPotion']], + ["Pyramid Fairy - Right", true, ['Crystal5', 'Crystal6', 'BottleWithBluePotion']], + ["Pyramid Fairy - Right", true, ['Crystal5', 'Crystal6', 'Bottle']], + ["Pyramid Fairy - Right", true, ['Crystal5', 'Crystal6', 'BottleWithGoldBee']], ["Ganon", false, []], ["Ganon", false, [], ['MoonPearl']], diff --git a/tests/MajorGlitches/DarkWorld/NorthWestTest.php b/tests/MajorGlitches/DarkWorld/NorthWestTest.php index b4ed5746c..0be8c0398 100644 --- a/tests/MajorGlitches/DarkWorld/NorthWestTest.php +++ b/tests/MajorGlitches/DarkWorld/NorthWestTest.php @@ -49,13 +49,15 @@ public function accessPool() { return [ ["Brewery", false, []], - ["Brewery", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Brewery", true, ['MoonPearl', 'TitansMitt']], - ["Brewery", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Brewery", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Brewery", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Brewery", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Brewery", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Brewery", false, [], ['MoonPearl', 'AnyBottle']], + ["Brewery", true, ['MoonPearl']], + ["Brewery", true, ['BottleWithBee']], + ["Brewery", true, ['BottleWithFairy']], + ["Brewery", true, ['BottleWithRedPotion']], + ["Brewery", true, ['BottleWithGreenPotion']], + ["Brewery", true, ['BottleWithBluePotion']], + ["Brewery", true, ['Bottle']], + ["Brewery", true, ['BottleWithGoldBee']], ["C-Shaped House", true, []], @@ -63,18 +65,43 @@ public function accessPool() ["Hammer Pegs", false, []], ["Hammer Pegs", false, [], ['Hammer']], - ["Hammer Pegs", true, ['MoonPearl', 'Hammer', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hammer Pegs", true, ['MoonPearl', 'Hammer', 'TitansMitt']], + ["Hammer Pegs", false, [], ['MoonPearl', 'AnyBottle']], + ["Hammer Pegs", true, ['MoonPearl', 'Hammer']], + ["Hammer Pegs", true, ['BottleWithBee', 'Hammer']], + ["Hammer Pegs", true, ['BottleWithFairy', 'Hammer']], + ["Hammer Pegs", true, ['BottleWithRedPotion', 'Hammer']], + ["Hammer Pegs", true, ['BottleWithGreenPotion', 'Hammer']], + ["Hammer Pegs", true, ['BottleWithBluePotion', 'Hammer']], + ["Hammer Pegs", true, ['Bottle', 'Hammer']], + ["Hammer Pegs", true, ['BottleWithGoldBee', 'Hammer']], ["Bumper Cave", true, []], ["Blacksmith", false, []], + ["Blacksmith", false, [], ['MoonPearl', 'AnyBottle']], + ["Blacksmith", false, [], ['Gloves', 'AnyBottle']], ["Blacksmith", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Blacksmith", true, ['MoonPearl', 'TitansMitt']], + ["Blacksmith", true, ['BottleWithBee']], + ["Blacksmith", true, ['BottleWithFairy']], + ["Blacksmith", true, ['BottleWithRedPotion']], + ["Blacksmith", true, ['BottleWithGreenPotion']], + ["Blacksmith", true, ['BottleWithFairy']], + ["Blacksmith", true, ['BottleWithBluePotion']], + ["Blacksmith", true, ['Bottle']], + ["Blacksmith", true, ['BottleWithGoldBee']], ["Purple Chest", false, []], + ["Purple Chest", false, [], ['MoonPearl', 'AnyBottle']], + ["Purple Chest", false, [], ['Gloves', 'AnyBottle']], ["Purple Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Purple Chest", true, ['MoonPearl', 'TitansMitt']], + ["Purple Chest", true, ['BottleWithBee']], + ["Purple Chest", true, ['BottleWithFairy']], + ["Purple Chest", true, ['BottleWithRedPotion']], + ["Purple Chest", true, ['BottleWithGreenPotion']], + ["Purple Chest", true, ['BottleWithFairy']], + ["Purple Chest", true, ['BottleWithBluePotion']], + ["Purple Chest", true, ['Bottle']], + ["Purple Chest", true, ['BottleWithGoldBee']], ]; } } diff --git a/tests/MajorGlitches/DarkWorld/SouthTest.php b/tests/MajorGlitches/DarkWorld/SouthTest.php index 43b3cd3f5..c3f3c364b 100644 --- a/tests/MajorGlitches/DarkWorld/SouthTest.php +++ b/tests/MajorGlitches/DarkWorld/SouthTest.php @@ -49,74 +49,82 @@ public function accessPool() { return [ ["Hype Cave - Top", false, []], - ["Hype Cave - Top", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Hype Cave - Top", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hype Cave - Top", true, ['MoonPearl', 'TitansMitt']], - ["Hype Cave - Top", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Hype Cave - Top", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Hype Cave - Top", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Hype Cave - Top", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Hype Cave - Top", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Hype Cave - Top", false, [], ['MoonPearl', 'AnyBottle']], + ["Hype Cave - Top", true, ['MoonPearl']], + ["Hype Cave - Top", true, ['BottleWithBee']], + ["Hype Cave - Top", true, ['BottleWithFairy']], + ["Hype Cave - Top", true, ['BottleWithRedPotion']], + ["Hype Cave - Top", true, ['BottleWithGreenPotion']], + ["Hype Cave - Top", true, ['BottleWithBluePotion']], + ["Hype Cave - Top", true, ['Bottle']], + ["Hype Cave - Top", true, ['BottleWithGoldBee']], ["Hype Cave - Middle Right", false, []], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'TitansMitt']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Hype Cave - Middle Right", false, [], ['MoonPearl', 'AnyBottle']], + ["Hype Cave - Middle Right", true, ['MoonPearl']], + ["Hype Cave - Middle Right", true, ['BottleWithBee']], + ["Hype Cave - Middle Right", true, ['BottleWithFairy']], + ["Hype Cave - Middle Right", true, ['BottleWithRedPotion']], + ["Hype Cave - Middle Right", true, ['BottleWithGreenPotion']], + ["Hype Cave - Middle Right", true, ['BottleWithBluePotion']], + ["Hype Cave - Middle Right", true, ['Bottle']], + ["Hype Cave - Middle Right", true, ['BottleWithGoldBee']], ["Hype Cave - Middle Left", false, []], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'TitansMitt']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Hype Cave - Middle Left", false, [], ['MoonPearl', 'AnyBottle']], + ["Hype Cave - Middle Left", true, ['MoonPearl']], + ["Hype Cave - Middle Left", true, ['BottleWithBee']], + ["Hype Cave - Middle Left", true, ['BottleWithFairy']], + ["Hype Cave - Middle Left", true, ['BottleWithRedPotion']], + ["Hype Cave - Middle Left", true, ['BottleWithGreenPotion']], + ["Hype Cave - Middle Left", true, ['BottleWithBluePotion']], + ["Hype Cave - Middle Left", true, ['Bottle']], + ["Hype Cave - Middle Left", true, ['BottleWithGoldBee']], ["Hype Cave - Bottom", false, []], - ["Hype Cave - Bottom", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'TitansMitt']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Hype Cave - Bottom", false, [], ['MoonPearl', 'AnyBottle']], + ["Hype Cave - Bottom", true, ['MoonPearl']], + ["Hype Cave - Bottom", true, ['BottleWithBee']], + ["Hype Cave - Bottom", true, ['BottleWithFairy']], + ["Hype Cave - Bottom", true, ['BottleWithRedPotion']], + ["Hype Cave - Bottom", true, ['BottleWithGreenPotion']], + ["Hype Cave - Bottom", true, ['BottleWithBluePotion']], + ["Hype Cave - Bottom", true, ['Bottle']], + ["Hype Cave - Bottom", true, ['BottleWithGoldBee']], ["Hype Cave - NPC", false, []], - ["Hype Cave - NPC", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Hype Cave - NPC", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hype Cave - NPC", true, ['MoonPearl', 'TitansMitt']], - ["Hype Cave - NPC", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Hype Cave - NPC", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Hype Cave - NPC", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Hype Cave - NPC", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Hype Cave - NPC", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Hype Cave - NPC", false, [], ['MoonPearl', 'AnyBottle']], + ["Hype Cave - NPC", true, ['MoonPearl']], + ["Hype Cave - NPC", true, ['BottleWithBee']], + ["Hype Cave - NPC", true, ['BottleWithFairy']], + ["Hype Cave - NPC", true, ['BottleWithRedPotion']], + ["Hype Cave - NPC", true, ['BottleWithGreenPotion']], + ["Hype Cave - NPC", true, ['BottleWithBluePotion']], + ["Hype Cave - NPC", true, ['Bottle']], + ["Hype Cave - NPC", true, ['BottleWithGoldBee']], ["Stumpy", false, []], - ["Stumpy", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Stumpy", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Stumpy", true, ['MoonPearl', 'TitansMitt']], - ["Stumpy", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Stumpy", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Stumpy", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Stumpy", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Stumpy", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Stumpy", false, [], ['MoonPearl', 'AnyBottle', 'MagicMirror']], + ["Stumpy", true, ['MoonPearl']], + ["Stumpy", true, ['MagicMirror']], + ["Stumpy", true, ['BottleWithBee']], + ["Stumpy", true, ['BottleWithFairy']], + ["Stumpy", true, ['BottleWithRedPotion']], + ["Stumpy", true, ['BottleWithGreenPotion']], + ["Stumpy", true, ['BottleWithBluePotion']], + ["Stumpy", true, ['Bottle']], + ["Stumpy", true, ['BottleWithGoldBee']], ["Digging Game", false, []], - ["Digging Game", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Digging Game", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Digging Game", true, ['MoonPearl', 'TitansMitt']], - ["Digging Game", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Digging Game", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Digging Game", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Digging Game", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Digging Game", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Digging Game", false, [], ['MoonPearl', 'AnyBottle']], + ["Digging Game", true, ['MoonPearl']], + ["Digging Game", true, ['BottleWithBee']], + ["Digging Game", true, ['BottleWithFairy']], + ["Digging Game", true, ['BottleWithRedPotion']], + ["Digging Game", true, ['BottleWithGreenPotion']], + ["Digging Game", true, ['BottleWithBluePotion']], + ["Digging Game", true, ['Bottle']], + ["Digging Game", true, ['BottleWithGoldBee']], ]; } } diff --git a/tests/MajorGlitches/DeathMountain/WestTest.php b/tests/MajorGlitches/DeathMountain/WestTest.php new file mode 100644 index 000000000..9e64a7538 --- /dev/null +++ b/tests/MajorGlitches/DeathMountain/WestTest.php @@ -0,0 +1,68 @@ +world = World::factory('standard', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->addCollected(['RescueZelda']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + public function accessPool() + { + return [ + ["Ether Tablet", false, []], + ["Ether Tablet", false, [], ['UpgradedSword']], + ["Ether Tablet", false, [], ['BookOfMudora']], + ["Ether Tablet", true, ['BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['BookOfMudora', 'L4Sword']], + + ["Old Man", false, []], + ["Old Man", false, [], ['Lamp']], + ["Old Man", true, ['Lamp']], + + ["Spectacle Rock Cave", true, []], + + ["Spectacle Rock", true, []], + ]; + } +} diff --git a/tests/MajorGlitches/DesertPalaceTest.php b/tests/MajorGlitches/DesertPalaceTest.php index 73fe0b414..8f1e87e9f 100644 --- a/tests/MajorGlitches/DesertPalaceTest.php +++ b/tests/MajorGlitches/DesertPalaceTest.php @@ -47,9 +47,7 @@ public function testEntry(bool $access, array $items, array $except = []) public function entryPool() { return [ - [true, ['BookOfMudora']], - [true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove']], - [true, ['Flute', 'MagicMirror', 'TitansMitt']], + [true, []], ]; } @@ -113,41 +111,25 @@ public function accessPool() ["Desert Palace - Map Chest", true, []], ["Desert Palace - Big Chest", false, []], - ["Desert Palace - Big Chest", true, ['BookOfMudora', 'BigKeyP2']], - ["Desert Palace - Big Chest", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyP2']], - ["Desert Palace - Big Chest", true, ['Flute', 'MagicMirror', 'TitansMitt', 'BigKeyP2']], + ["Desert Palace - Big Chest", true, ['BigKeyP2']], ["Desert Palace - Torch", false, []], ["Desert Palace - Torch", false, [], ['PegasusBoots']], - ["Desert Palace - Torch", true, ['BookOfMudora', 'PegasusBoots']], - ["Desert Palace - Torch", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'PegasusBoots']], - ["Desert Palace - Torch", true, ['Flute', 'MagicMirror', 'TitansMitt', 'PegasusBoots']], + ["Desert Palace - Torch", true, ['PegasusBoots']], ["Desert Palace - Compass Chest", false, []], ["Desert Palace - Compass Chest", false, [], ['KeyP2']], - ["Desert Palace - Compass Chest", true, ['BookOfMudora', 'KeyP2']], - ["Desert Palace - Compass Chest", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'KeyP2']], - ["Desert Palace - Compass Chest", true, ['Flute', 'MagicMirror', 'TitansMitt', 'KeyP2']], + ["Desert Palace - Compass Chest", true, ['KeyP2']], ["Desert Palace - Big Key Chest", false, []], ["Desert Palace - Big Key Chest", false, [], ['KeyP2']], - ["Desert Palace - Big Key Chest", true, ['BookOfMudora', 'KeyP2']], - ["Desert Palace - Big Key Chest", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'KeyP2']], - ["Desert Palace - Big Key Chest", true, ['Flute', 'MagicMirror', 'TitansMitt', 'KeyP2']], + ["Desert Palace - Big Key Chest", true, ['KeyP2']], ["Desert Palace - Boss", false, []], + ["Desert Palace - Boss", false, [], ['KeyP2']], ["Desert Palace - Boss", false, [], ['BigKeyP2']], ["Desert Palace - Boss", false, [], ['Lamp', 'FireRod']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'Lamp', 'ProgressiveGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'Lamp', 'PowerGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'Lamp', 'TitansMitt', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'FireRod', 'ProgressiveGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'FireRod', 'PowerGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'FireRod', 'TitansMitt', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'Flute', 'MagicMirror', 'Lamp', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'Flute', 'MagicMirror', 'Lamp', 'TitansMitt', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'Flute', 'MagicMirror', 'FireRod', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'Flute', 'MagicMirror', 'FireRod', 'TitansMitt', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'Lamp', 'BigKeyP2']], ]; } } diff --git a/tests/MajorGlitches/GanonsTowerTest.php b/tests/MajorGlitches/GanonsTowerTest.php index 5d330719c..962d4429b 100644 --- a/tests/MajorGlitches/GanonsTowerTest.php +++ b/tests/MajorGlitches/GanonsTowerTest.php @@ -131,277 +131,135 @@ public function accessPool() return [ ["Ganon's Tower - Bob's Torch", false, []], ["Ganon's Tower - Bob's Torch", false, [], ['PegasusBoots']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Torch", true, ['PegasusBoots']], ["Ganon's Tower - DMs Room - Top Left", false, []], ["Ganon's Tower - DMs Room - Top Left", false, [], ['Hammer']], ["Ganon's Tower - DMs Room - Top Left", false, [], ['Hookshot']], - ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Left", true, ['Hookshot', 'Hammer']], ["Ganon's Tower - DMs Room - Top Right", false, []], ["Ganon's Tower - DMs Room - Top Right", false, [], ['Hammer']], ["Ganon's Tower - DMs Room - Top Right", false, [], ['Hookshot']], - ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Top Right", true, ['Hookshot', 'Hammer']], + ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer']], + ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer']], + ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer']], ["Ganon's Tower - DMs Room - Bottom Left", false, []], ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Hammer']], ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Hookshot']], - ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Left", true, ['Hookshot', 'Hammer']], ["Ganon's Tower - DMs Room - Bottom Right", false, []], ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Hammer']], ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Hookshot']], - ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - DMs Room - Bottom Right", true, ['Hookshot', 'Hammer']], ["Ganon's Tower - Randomizer Room - Top Left", false, []], ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Hammer']], ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Hookshot']], - ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer']], ["Ganon's Tower - Randomizer Room - Top Right", false, []], ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Hammer']], ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Hookshot']], - ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer']], ["Ganon's Tower - Randomizer Room - Bottom Left", false, []], ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Hammer']], ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Hookshot']], - ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer']], ["Ganon's Tower - Randomizer Room - Bottom Right", false, []], ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Hammer']], ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Hookshot']], - ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer']], ["Ganon's Tower - Firesnake Room", false, []], ["Ganon's Tower - Firesnake Room", false, [], ['Hammer']], ["Ganon's Tower - Firesnake Room", false, [], ['Hookshot']], - ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer']], ["Ganon's Tower - Map Chest", false, []], ["Ganon's Tower - Map Chest", false, [], ['Hammer']], ["Ganon's Tower - Map Chest", false, [], ['Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'PegasusBoots', 'Hammer']], ["Ganon's Tower - Big Chest", false, []], ["Ganon's Tower - Big Chest", false, [], ['BigKeyA2']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'CaneOfSomaria', 'FireRod']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer']], ["Ganon's Tower - Hope Room - Left", true, []], ["Ganon's Tower - Hope Room - Right", true, []], ["Ganon's Tower - Bob's Chest", false, []], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'CaneOfSomaria', 'FireRod']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer']], ["Ganon's Tower - Tile Room", false, []], ["Ganon's Tower - Tile Room", false, [], ['CaneOfSomaria']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Tile Room", true, ['CaneOfSomaria']], ["Ganon's Tower - Compass Room - Top Left", false, []], ["Ganon's Tower - Compass Room - Top Left", false, [], ['CaneOfSomaria']], ["Ganon's Tower - Compass Room - Top Left", false, [], ['FireRod']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'CaneOfSomaria']], ["Ganon's Tower - Compass Room - Top Right", false, []], ["Ganon's Tower - Compass Room - Top Right", false, [], ['CaneOfSomaria']], ["Ganon's Tower - Compass Room - Top Right", false, [], ['FireRod']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'CaneOfSomaria']], ["Ganon's Tower - Compass Room - Bottom Left", false, []], ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['CaneOfSomaria']], ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['FireRod']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'CaneOfSomaria']], ["Ganon's Tower - Compass Room - Bottom Right", false, []], ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['CaneOfSomaria']], ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['FireRod']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'CaneOfSomaria']], ["Ganon's Tower - Big Key Chest", false, []], - ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'CaneOfSomaria', 'FireRod']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer']], ["Ganon's Tower - Big Key Room - Left", false, []], - ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'CaneOfSomaria', 'FireRod']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer']], ["Ganon's Tower - Big Key Room - Right", false, []], - ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'CaneOfSomaria', 'FireRod']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Hammer']], ["Ganon's Tower - Mini Helmasaur Room - Left", false, []], ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['AnyBow']], ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['BigKeyA2']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Lamp']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod']], ["Ganon's Tower - Mini Helmasaur Room - Right", false, []], ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['AnyBow']], ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['BigKeyA2']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Lamp']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod']], ["Ganon's Tower - Pre-Moldorm Chest", false, []], ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['AnyBow']], ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['BigKeyA2']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Lamp']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod']], ["Ganon's Tower - Moldorm Chest", false, []], ["Ganon's Tower - Moldorm Chest", false, [], ['Hookshot']], ["Ganon's Tower - Moldorm Chest", false, [], ['AnyBow']], ["Ganon's Tower - Moldorm Chest", false, [], ['BigKeyA2']], - ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], - ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'Lamp']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'Hookshot', 'FireRod']], ]; } } diff --git a/tests/MajorGlitches/IcePalaceTest.php b/tests/MajorGlitches/IcePalaceTest.php index 13a5d472a..dc9d48476 100644 --- a/tests/MajorGlitches/IcePalaceTest.php +++ b/tests/MajorGlitches/IcePalaceTest.php @@ -94,256 +94,213 @@ public function accessPool() ["Ice Palace - Big Key Chest", false, []], ["Ice Palace - Big Key Chest", false, [], ['Gloves']], ["Ice Palace - Big Key Chest", false, [], ['Hammer']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'MoonPearl', 'CaneOfByrna', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'MoonPearl', 'Cape', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'MoonPearl', 'CaneOfByrna', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'MoonPearl', 'Cape', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'Bottle', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'Bottle', 'CaneOfByrna', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'Bottle', 'Cape', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'Bottle', 'PowerGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'Bottle', 'CaneOfByrna', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Flippers', 'Bottle', 'Cape', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MagicMirror', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MagicMirror', 'CaneOfByrna', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MagicMirror', 'Cape', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MagicMirror', 'PowerGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MagicMirror', 'CaneOfByrna', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MagicMirror', 'Cape', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'TitansMitt', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Cape', 'TitansMitt', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['Cape', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'KeyD5']], ["Ice Palace - Compass Chest", false, []], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], + ["Ice Palace - Compass Chest", true, ['Flippers', 'MoonPearl']], + ["Ice Palace - Compass Chest", true, ['Flippers', 'Bottle']], + ["Ice Palace - Compass Chest", true, ['MagicMirror']], + ["Ice Palace - Compass Chest", true, ['TitansMitt']], ["Ice Palace - Map Chest", false, []], ["Ice Palace - Map Chest", false, [], ['Gloves']], ["Ice Palace - Map Chest", false, [], ['Hammer']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'MoonPearl', 'CaneOfByrna', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'MoonPearl', 'Cape', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'MoonPearl', 'PowerGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'MoonPearl', 'CaneOfByrna', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'MoonPearl', 'Cape', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'Bottle', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'Bottle', 'CaneOfByrna', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'Bottle', 'Cape', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'Bottle', 'PowerGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'Bottle', 'CaneOfByrna', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Flippers', 'Bottle', 'Cape', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MagicMirror', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MagicMirror', 'CaneOfByrna', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MagicMirror', 'Cape', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MagicMirror', 'PowerGlove', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MagicMirror', 'CaneOfByrna', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MagicMirror', 'Cape', 'PowerGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'TitansMitt', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Cape', 'TitansMitt', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['Cape', 'ProgressiveGlove', 'ProgressiveGlove', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Hammer', 'Hookshot', 'KeyD5']], ["Ice Palace - Spike Room", false, []], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Flippers', 'MoonPearl', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Flippers', 'MoonPearl', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['Flippers', 'MoonPearl', 'KeyD5', 'KeyD5']], ["Ice Palace - Freezor Chest", false, []], - ["Ice Palace - Freezor Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], + ["Ice Palace - Freezor Chest", false, [], ['FireRod', 'Bombos']], + ["Ice Palace - Freezor Chest", false, [], ['FireRod', 'AnySword']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'MoonPearl', 'FireRod']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'Bottle', 'FireRod']], + ["Ice Palace - Freezor Chest", true, ['MagicMirror', 'FireRod']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'FireRod']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'MoonPearl', 'UncleSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'Bottle', 'UncleSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['MagicMirror', 'UncleSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'UncleSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'MoonPearl', 'ProgressiveSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'Bottle', 'ProgressiveSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['MagicMirror', 'ProgressiveSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'ProgressiveSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'MoonPearl', 'MasterSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'Bottle', 'MasterSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['MagicMirror', 'MasterSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'MasterSword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'MoonPearl', 'L3Sword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'Bottle', 'L3Sword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['MagicMirror', 'L3Sword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'L3Sword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'MoonPearl', 'L4Sword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['Flippers', 'Bottle', 'L4Sword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['MagicMirror', 'L4Sword', 'Bombos']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'L4Sword', 'Bombos']], ["Ice Palace - Iced T Room", false, []], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], + ["Ice Palace - Compass Chest", true, ['Flippers', 'MoonPearl']], + ["Ice Palace - Compass Chest", true, ['Flippers', 'Bottle']], + ["Ice Palace - Compass Chest", true, ['MagicMirror']], + ["Ice Palace - Compass Chest", true, ['TitansMitt']], ["Ice Palace - Big Chest", false, []], ["Ice Palace - Big Chest", false, [], ['BigKeyD5']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'Flippers', 'MoonPearl']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'Flippers', 'Bottle']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MagicMirror']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'TitansMitt']], ["Ice Palace - Boss", false, []], ["Ice Palace - Boss", false, [], ['Gloves']], ["Ice Palace - Boss", false, [], ['Hammer']], - //["Ice Palace - Boss", false, [], ['BigKeyD5']], + ["Ice Palace - Boss", false, [], ['BigKeyD5']], ["Ice Palace - Boss", false, [], ['FireRod', 'Bombos', 'AnySword']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'MoonPearl', 'PowerGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'Flippers', 'Bottle', 'PowerGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'MagicMirror', 'PowerGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ]; } } diff --git a/tests/MajorGlitches/LightWorldTest.php b/tests/MajorGlitches/LightWorldTest.php index a73d3e72d..99b1822b0 100644 --- a/tests/MajorGlitches/LightWorldTest.php +++ b/tests/MajorGlitches/LightWorldTest.php @@ -60,14 +60,7 @@ public function accessPool() ["King's Tomb", false, []], ["King's Tomb", false, [], ['PegasusBoots']], - ["King's Tomb", true, ['PegasusBoots', 'ProgressiveGlove', 'ProgressiveGlove']], - ["King's Tomb", true, ['PegasusBoots', 'TitansMitt']], - ["King's Tomb", true, ['PegasusBoots', 'ProgressiveGlove', 'Hammer', 'MoonPearl', 'MagicMirror']], - ["King's Tomb", true, ['PegasusBoots', 'PowerGlove', 'Hammer', 'MoonPearl', 'MagicMirror']], - ["King's Tomb", true, ['PegasusBoots', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MoonPearl', 'MagicMirror']], - ["King's Tomb", true, ['PegasusBoots', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MoonPearl', 'MagicMirror']], - ["King's Tomb", true, ['PegasusBoots', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'MoonPearl', 'MagicMirror']], - ["King's Tomb", true, ['PegasusBoots', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MoonPearl', 'MagicMirror']], + ["King's Tomb", true, ['PegasusBoots']], ["Floodgate Chest", true, []], @@ -127,9 +120,7 @@ public function accessPool() ["Magic Bat", false, []], ["Magic Bat", false, [], ['Powder']], - ["Magic Bat", true, ['Powder', 'Hammer']], - ["Magic Bat", true, ['Powder', 'ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'MagicMirror']], - ["Magic Bat", true, ['Powder', 'TitansMitt', 'MoonPearl', 'MagicMirror']], + ["Magic Bat", true, ['Powder']], ["Sick Kid", false, []], ["Sick Kid", false, [], ['AnyBottle']], @@ -146,34 +137,10 @@ public function accessPool() ["Bombos Tablet", false, []], ["Bombos Tablet", false, [], ['UpgradedSword']], ["Bombos Tablet", false, [], ['BookOfMudora']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'TitansMitt']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'TitansMitt']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'TitansMitt']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'TitansMitt']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'ProgressiveGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'ProgressiveGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'ProgressiveGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'ProgressiveGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'PowerGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'PowerGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'PowerGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'PowerGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'DefeatAgahnim', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'DefeatAgahnim', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'DefeatAgahnim', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'DefeatAgahnim', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'DefeatAgahnim', 'Flippers', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'DefeatAgahnim', 'Flippers', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'DefeatAgahnim', 'Flippers', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Bombos Tablet", true, ['BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Bombos Tablet", true, ['BookOfMudora', 'L2Sword']], + ["Bombos Tablet", true, ['BookOfMudora', 'L3Sword']], + ["Bombos Tablet", true, ['BookOfMudora', 'L4Sword']], ["King Zora", true, []], @@ -190,8 +157,9 @@ public function accessPool() ["Checkerboard Cave", false, []], ["Checkerboard Cave", false, [], ['Gloves']], - ["Checkerboard Cave", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Checkerboard Cave", true, ['Flute', 'MagicMirror', 'TitansMitt']], + ["Checkerboard Cave", true, ['ProgressiveGlove']], + ["Checkerboard Cave", true, ['PowerGlove']], + ["Checkerboard Cave", true, ['TitansMitt']], ["Mini Moldorm Cave - NPC", true, []], @@ -212,8 +180,9 @@ public function accessPool() ["Lake Hylia Island", true, []], ["Sunken Treasure", true, []], - + ["Zora's Ledge", false, []], + ["Zora's Ledge", false, [], ['Flippers', 'PegasusBoots']], ["Zora's Ledge", true, ['Flippers']], ["Zora's Ledge", true, ['PegasusBoots']], @@ -222,11 +191,13 @@ public function accessPool() ["Flute Spot", true, ['Shovel']], ["Waterfall Fairy - Left", false, []], + ["Waterfall Fairy - Left", false, [], ['Flippers', 'MoonPearl', 'PegasusBoots']], ["Waterfall Fairy - Left", true, ['Flippers']], ["Waterfall Fairy - Left", true, ['MoonPearl']], ["Waterfall Fairy - Left", true, ['PegasusBoots']], ["Waterfall Fairy - Right", false, []], + ["Waterfall Fairy - Right", false, [], ['Flippers', 'MoonPearl', 'PegasusBoots']], ["Waterfall Fairy - Right", true, ['Flippers']], ["Waterfall Fairy - Right", true, ['MoonPearl']], ["Waterfall Fairy - Right", true, ['PegasusBoots']], diff --git a/tests/MajorGlitches/MiseryMireTest.php b/tests/MajorGlitches/MiseryMireTest.php index 1fbdb809d..7d6cad1d7 100644 --- a/tests/MajorGlitches/MiseryMireTest.php +++ b/tests/MajorGlitches/MiseryMireTest.php @@ -15,7 +15,6 @@ public function setUp(): void { parent::setUp(); $this->world = World::factory('standard', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); - $this->world->getLocation("Misery Mire Medallion")->setItem(Item::get('Ether', $this->world)); $this->addCollected(['RescueZelda']); $this->collected->setChecksForWorld($this->world->id); @@ -94,120 +93,214 @@ public function accessPool() return [ ["Misery Mire - Big Chest", false, []], ["Misery Mire - Big Chest", false, [], ['BigKeyD6']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Chest", false, [], ['Ether']], + ["Misery Mire - Big Chest", false, [], ['MoonPearl', 'AnyBottle']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Bottle', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Bottle', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Bottle', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Bottle', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Bottle', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Bottle', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Bottle', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Bottle', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Bottle', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'Bottle', 'Ether', 'L4Sword', 'Hookshot']], ["Misery Mire - Main Lobby", false, []], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", false, [], ['Ether']], + ["Misery Mire - Main Lobby", false, [], ['MoonPearl', 'AnyBottle']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Bottle', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Bottle', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Bottle', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Bottle', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Bottle', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Bottle', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Bottle', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Bottle', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Bottle', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'Bottle', 'Ether', 'L4Sword', 'Hookshot']], ["Misery Mire - Big Key Chest", false, []], ["Misery Mire - Big Key Chest", false, [], ['FireRod', 'Lamp']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", false, [], ['Ether']], + ["Misery Mire - Big Key Chest", false, [], ['MoonPearl', 'AnyBottle']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'L4Sword', 'Hookshot']], ["Misery Mire - Compass Chest", false, []], ["Misery Mire - Compass Chest", false, [], ['FireRod', 'Lamp']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", false, [], ['Ether']], + ["Misery Mire - Compass Chest", false, [], ['MoonPearl', 'AnyBottle']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'Bottle', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'Bottle', 'Ether', 'L4Sword', 'Hookshot']], ["Misery Mire - Bridge Chest", false, []], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", false, [], ['Ether']], + ["Misery Mire - Bridge Chest", false, [], ['MoonPearl', 'AnyBottle']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['Bottle', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['Bottle', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['Bottle', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['Bottle', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['Bottle', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['Bottle', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['Bottle', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['Bottle', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['Bottle', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Bridge Chest", true, ['Bottle', 'Ether', 'L4Sword', 'Hookshot']], ["Misery Mire - Map Chest", false, []], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Map Chest", false, [], ['Ether']], + ["Misery Mire - Map Chest", false, [], ['MoonPearl', 'AnyBottle']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Bottle', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Bottle', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Bottle', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Bottle', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Bottle', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Bottle', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Bottle', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Bottle', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Bottle', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'Bottle', 'Ether', 'L4Sword', 'Hookshot']], ["Misery Mire - Spike Chest", false, []], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot', 'Cape']], + ["Misery Mire - Spike Chest", false, [], ['Ether']], + ["Misery Mire - Spike Chest", false, [], ['MoonPearl', 'AnyBottle']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['Bottle', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['Bottle', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['Bottle', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['Bottle', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['Bottle', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['Bottle', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['Bottle', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['Bottle', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['Bottle', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['Bottle', 'Ether', 'L4Sword', 'Hookshot']], ["Misery Mire - Boss", false, []], ["Misery Mire - Boss", false, [], ['Lamp']], diff --git a/tests/MajorGlitches/OpenTest.php b/tests/MajorGlitches/OpenTest.php new file mode 100644 index 000000000..081f9d996 --- /dev/null +++ b/tests/MajorGlitches/OpenTest.php @@ -0,0 +1,129 @@ +world = World::factory('open', ['difficulty' => 'test_rules', 'logic' => 'MajorGlitches']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + + ["Sanctuary", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Left", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Middle", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Right", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Dark Cross", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Boomerang Chest", false, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Map Chest", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Zelda's Cell", false, 'KeyH2', [], ['KeyH2']], + ]; + } + + public function accessPool() + { + return [ + ["Sanctuary", true, []], + + ["Sewers - Secret Room - Left", False, []], + ["Sewers - Secret Room - Left", true, ['ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['PowerGlove']], + ["Sewers - Secret Room - Left", true, ['TitansMitt']], + ["Sewers - Secret Room - Left", true, ['Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Middle", false, []], + ["Sewers - Secret Room - Middle", true, ['ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['PowerGlove']], + ["Sewers - Secret Room - Middle", true, ['TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Right", false, []], + ["Sewers - Secret Room - Right", true, ['ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['PowerGlove']], + ["Sewers - Secret Room - Right", true, ['TitansMitt']], + ["Sewers - Secret Room - Right", true, ['Lamp', 'KeyH2']], + + ["Sewers - Dark Cross", False, [], ['Lamp']], + ["Sewers - Dark Cross", true, ['Lamp']], + + ["Hyrule Castle - Boomerang Chest", false, []], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2']], + + ["Hyrule Castle - Map Chest", true, []], + + ["Hyrule Castle - Zelda's Cell", false, []], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2']], + + ["Link's Uncle", true, []], + + ["Secret Passage", true, []], + ]; + } +} diff --git a/tests/MajorGlitches/PalaceOfDarknessTest.php b/tests/MajorGlitches/PalaceOfDarknessTest.php index e3fc82dad..a7fa35e92 100644 --- a/tests/MajorGlitches/PalaceOfDarknessTest.php +++ b/tests/MajorGlitches/PalaceOfDarknessTest.php @@ -104,116 +104,48 @@ public function accessPool() { return [ ["Palace of Darkness - Big Key Chest", false, []], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1']], ["Palace of Darkness - The Arena - Ledge", false, []], ["Palace of Darkness - The Arena - Ledge", false, [], ['AnyBow']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows']], ["Palace of Darkness - The Arena - Bridge", false, []], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Palace of Darkness - The Arena - Bridge", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - The Arena - Bridge", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'PowerGlove']], - ["Palace of Darkness - The Arena - Bridge", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'TitansMitt']], - ["Palace of Darkness - The Arena - Bridge", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'ProgressiveGlove']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1']], + ["Palace of Darkness - The Arena - Bridge", true, ['BowAndArrows', 'Hammer']], ["Palace of Darkness - Big Chest", false, []], ["Palace of Darkness - Big Chest", false, [], ['Lamp']], ["Palace of Darkness - Big Chest", false, [], ['BigKeyD1']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'DefeatAgahnim']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp']], ["Palace of Darkness - Compass Chest", false, []], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1']], ["Palace of Darkness - Harmless Hellway", false, []], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1']], ["Palace of Darkness - Stalfos Basement", false, []], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Palace of Darkness - Stalfos Basement", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Stalfos Basement", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'PowerGlove']], - ["Palace of Darkness - Stalfos Basement", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'TitansMitt']], - ["Palace of Darkness - Stalfos Basement", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'ProgressiveGlove']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1']], + ["Palace of Darkness - Stalfos Basement", true, ['BowAndArrows', 'Hammer']], ["Palace of Darkness - Dark Basement - Left", false, []], ["Palace of Darkness - Dark Basement - Left", false, [], ['Lamp']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp']], ["Palace of Darkness - Dark Basement - Right", false, []], ["Palace of Darkness - Dark Basement - Right", false, [], ['Lamp']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp']], ["Palace of Darkness - Map Chest", false, []], ["Palace of Darkness - Map Chest", false, [], ['AnyBow']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows']], ["Palace of Darkness - Dark Maze - Top", false, []], ["Palace of Darkness - Dark Maze - Top", false, [], ['Lamp']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'DefeatAgahnim']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], ["Palace of Darkness - Dark Maze - Bottom", false, []], ["Palace of Darkness - Dark Maze - Bottom", false, [], ['Lamp']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'DefeatAgahnim']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], ["Palace of Darkness - Shooter Room", true, []], @@ -222,10 +154,7 @@ public function accessPool() ["Palace of Darkness - Boss", false, [], ['Hammer']], ["Palace of Darkness - Boss", false, [], ['AnyBow']], ["Palace of Darkness - Boss", false, [], ['BigKeyD1']], - ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'BowAndArrows', 'DefeatAgahnim']], - ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'BowAndArrows', 'PowerGlove']], - ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'BowAndArrows', 'TitansMitt']], - ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'BowAndArrows', 'ProgressiveGlove']], + ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'Lamp', 'Hammer', 'BowAndArrows']], ]; } } diff --git a/tests/MajorGlitches/SkullWoodsTest.php b/tests/MajorGlitches/SkullWoodsTest.php index bdda27ef4..bfade1669 100644 --- a/tests/MajorGlitches/SkullWoodsTest.php +++ b/tests/MajorGlitches/SkullWoodsTest.php @@ -95,14 +95,7 @@ public function accessPool() return [ ["Skull Woods - Big Chest", false, []], ["Skull Woods - Big Chest", false, [], ['BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'TitansMitt', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD3']], + ["Skull Woods - Big Chest", true, ['BigKeyD3']], ["Skull Woods - Big Key Chest", true, []], @@ -112,14 +105,8 @@ public function accessPool() ["Skull Woods - Bridge Room", false, []], ["Skull Woods - Bridge Room", false, [], ['FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'TitansMitt', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod']], + ["Skull Woods - Bridge Room", false, [], ['MoonPearl']], + ["Skull Woods - Bridge Room", true, ['FireRod', 'MoonPearl']], ["Skull Woods - Pot Prison", true, []], @@ -128,46 +115,12 @@ public function accessPool() ["Skull Woods - Boss", false, []], ["Skull Woods - Boss", false, [], ['FireRod']], ["Skull Woods - Boss", false, [], ['AnySword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'TitansMitt', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'TitansMitt', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'TitansMitt', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'TitansMitt', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'TitansMitt', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod', 'ProgressiveSword']], + ["Skull Woods - Boss", false, [], ['MoonPearl']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'MoonPearl', 'UncleSword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'MoonPearl', 'MasterSword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'MoonPearl', 'L3Sword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'MoonPearl', 'L4Sword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'FireRod', 'MoonPearl', 'ProgressiveSword']], ]; } } diff --git a/tests/MajorGlitches/SwampPalaceTest.php b/tests/MajorGlitches/SwampPalaceTest.php index 59939bddc..eacdc4351 100644 --- a/tests/MajorGlitches/SwampPalaceTest.php +++ b/tests/MajorGlitches/SwampPalaceTest.php @@ -27,6 +27,75 @@ public function tearDown(): void unset($this->world); } + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Swamp Palace') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [false, []], + [false, [], ['Flippers']], + [false, [], ['MagicMirror', 'Ether']], + [true, ['Flippers', 'MagicMirror', 'MoonPearl']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + [true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ]; + } + /** * @param string $location * @param bool $access @@ -71,26 +140,35 @@ public function testFillLocation(string $location, bool $access, string $item, a public function fillPool() { return [ - ["Swamp Palace - Entrance", false, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Entrance", true, 'BigKeyD2', [], ['BigKeyD2']], ["Swamp Palace - Entrance", true, 'KeyD2', [], ['KeyD2']], - + ["Swamp Palace - Big Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Big Chest", true, 'KeyD2', [], ['KeyD2']], ["Swamp Palace - Big Key Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Big Key Chest", true, 'KeyD2', [], ['KeyD2']], ["Swamp Palace - Map Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Map Chest", true, 'KeyD2', [], ['KeyD2']], ["Swamp Palace - West Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - West Chest", true, 'KeyD2', [], ['KeyD2']], ["Swamp Palace - Compass Chest", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Compass Chest", true, 'KeyD2', [], ['KeyD2']], ["Swamp Palace - Flooded Room - Left", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Flooded Room - Left", true, 'KeyD2', [], ['KeyD2']], ["Swamp Palace - Flooded Room - Right", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Flooded Room - Right", true, 'KeyD2', [], ['KeyD2']], ["Swamp Palace - Waterfall Room", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Waterfall Room", true, 'KeyD2', [], ['KeyD2']], ["Swamp Palace - Boss", true, 'BigKeyD2', [], ['BigKeyD2']], + ["Swamp Palace - Boss", true, 'KeyD2', [], ['KeyD2']], ]; } @@ -98,81 +176,431 @@ public function accessPool() { return [ ["Swamp Palace - Entrance", false, []], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hookshot']], + ["Swamp Palace - Entrance", false, [], ['Flippers']], + ["Swamp Palace - Entrance", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Entrance", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Entrance", true, ['Flippers', 'MagicMirror', 'MoonPearl']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Entrance", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], ["Swamp Palace - Big Chest", false, []], ["Swamp Palace - Big Chest", false, [], ['Flippers']], ["Swamp Palace - Big Chest", false, [], ['BigKeyD2', 'BigKeyD6', 'BigKeyP3']], - ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], - ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + ["Swamp Palace - Big Chest", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Big Chest", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Big Chest", true, ['KeyD2', 'Flippers', 'MagicMirror', 'MoonPearl', 'Hammer', 'BigKeyD2']], + ["Swamp Palace - Big Chest", true, ['KeyD2', 'Flippers', 'MagicMirror', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], ["Swamp Palace - Big Key Chest", false, []], ["Swamp Palace - Big Key Chest", false, [], ['Flippers']], - ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], - ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + ["Swamp Palace - Big Key Chest", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Big Key Chest", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Big Key Chest", false, [], ['Ether', 'BigKeyP3', 'Hammer']], + ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'Flippers', 'MagicMirror', 'MoonPearl', 'Hammer']], + ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'Flippers', 'MagicMirror', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Big Key Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], ["Swamp Palace - Map Chest", false, []], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hookshot']], + ["Swamp Palace - Map Chest", false, [], ['Flippers']], + ["Swamp Palace - Map Chest", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Map Chest", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Map Chest", true, ['KeyD2', 'Flippers', 'MagicMirror', 'MoonPearl']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Map Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], ["Swamp Palace - West Chest", false, []], ["Swamp Palace - West Chest", false, [], ['Flippers']], - ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], - ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + ["Swamp Palace - West Chest", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - West Chest", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - West Chest", false, [], ['Ether', 'BigKeyP3', 'Hammer']], + ["Swamp Palace - West Chest", true, ['KeyD2', 'Flippers', 'MagicMirror', 'MoonPearl', 'Hammer']], + ["Swamp Palace - West Chest", true, ['KeyD2', 'Flippers', 'MagicMirror', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - West Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], ["Swamp Palace - Compass Chest", false, []], ["Swamp Palace - Compass Chest", false, [], ['Flippers']], - ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], - ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + ["Swamp Palace - Compass Chest", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Compass Chest", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Compass Chest", false, [], ['Ether', 'BigKeyP3', 'Hammer']], + ["Swamp Palace - Compass Chest", true, ['KeyD2', 'Flippers', 'MagicMirror', 'MoonPearl', 'Hammer']], + ["Swamp Palace - Compass Chest", true, ['KeyD2', 'Flippers', 'MagicMirror', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'PegasusBoots', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Compass Chest", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], ["Swamp Palace - Flooded Room - Left", false, []], ["Swamp Palace - Flooded Room - Left", false, [], ['Flippers']], ["Swamp Palace - Flooded Room - Left", false, [], ['Hookshot']], - ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Left", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Flooded Room - Left", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Flooded Room - Left", false, [], ['Ether', 'BigKeyP3', 'Hammer']], + ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'Hammer']], + ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Left", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], ["Swamp Palace - Flooded Room - Right", false, []], ["Swamp Palace - Flooded Room - Right", false, [], ['Flippers']], ["Swamp Palace - Flooded Room - Right", false, [], ['Hookshot']], - ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Right", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Flooded Room - Right", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Flooded Room - Right", false, [], ['Ether', 'BigKeyP3', 'Hammer']], + ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'Hammer']], + ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Flooded Room - Right", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], ["Swamp Palace - Waterfall Room", false, []], ["Swamp Palace - Waterfall Room", false, [], ['Flippers']], ["Swamp Palace - Waterfall Room", false, [], ['Hookshot']], - ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], - ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + ["Swamp Palace - Waterfall Room", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Waterfall Room", false, [], ['MagicMirror', 'Ether']], + ["Swamp Palace - Waterfall Room", false, [], ['Ether', 'BigKeyP3', 'Hammer']], + ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'Hammer']], + ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Waterfall Room", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], ["Swamp Palace - Boss", false, []], - ["Swamp Palace - Boss", false, [], ['Flippers']], + ["Swamp Palace - Boss", false, [], ['MagicMirror', 'Lamp']], + ["Swamp Palace - Boss", false, [], ['MagicMirror', 'Ether']], ["Swamp Palace - Boss", false, [], ['Hookshot']], - ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], - ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + ["Swamp Palace - Boss", false, [], ['Flippers']], + ["Swamp Palace - Boss", false, [], ['Hammer', 'Ether', 'BigKeyP3']], + ["Swamp Palace - Boss", false, [], ['KeyD2', 'Ether']], + ["Swamp Palace - Boss", false, [], ['Hammer', 'AnySword', 'IceRod', 'FireRod']], + ["Swamp Palace - Boss", false, ['Hookshot', 'Flippers', 'MagicMirror', 'MoonPearl', 'KeyD2', 'FireRod', 'IceRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'Hammer']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'BowAndArrows', 'FireRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'HalfMagic', 'FireRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'QuarterMagic', 'FireRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'FireRod', 'BottleWithBee', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'FireRod', 'BottleWithFairy', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'FireRod', 'BottleWithRedPotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'FireRod', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'FireRod', 'BottleWithBluePotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'FireRod', 'Bottle', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'FireRod', 'BottleWithGoldBee', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'BowAndArrows', 'IceRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'HalfMagic', 'IceRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'QuarterMagic', 'IceRod', 'MoonPearl', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'IceRod', 'BottleWithBee', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'IceRod', 'BottleWithFairy', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'IceRod', 'BottleWithRedPotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'IceRod', 'BottleWithGreenPotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'IceRod', 'BottleWithBluePotion', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'IceRod', 'Bottle', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'IceRod', 'BottleWithGoldBee', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'UncleSword', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'ProgressiveSword', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'MasterSword', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'L3Sword', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['KeyD2', 'Flippers', 'Hookshot', 'MagicMirror', 'MoonPearl', 'L4Sword', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyD6']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'MoonPearl', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'UncleSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'ProgressiveSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'MasterSword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L3Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], + ["Swamp Palace - Boss", true, ['Flippers', 'Lamp', 'Bottle', 'Ether', 'Hookshot', 'L4Sword', 'KeyD6', 'KeyD6', 'KeyD6', 'BigKeyP3']], ]; } } diff --git a/tests/MajorGlitches/ThievesTownTest.php b/tests/MajorGlitches/ThievesTownTest.php index b282df198..88150f5fe 100644 --- a/tests/MajorGlitches/ThievesTownTest.php +++ b/tests/MajorGlitches/ThievesTownTest.php @@ -99,116 +99,149 @@ public function accessPool() return [ ["Thieves' Town - Attic", false, []], ["Thieves' Town - Attic", false, [], ['BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'TitansMitt', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Attic", false, [], ['MoonPearl', 'AnyBottle']], + ["Thieves' Town - Attic", true, ['MoonPearl', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Attic", true, ['BottleWithBee', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Attic", true, ['BottleWithFairy', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Attic", true, ['BottleWithRedPotion', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Attic", true, ['BottleWithGreenPotion', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Attic", true, ['BottleWithBluePotion', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Attic", true, ['Bottle', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Attic", true, ['BottleWithGoldBee', 'KeyD4', 'BigKeyD4']], ["Thieves' Town - Big Key Chest", false, []], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'TitansMitt']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Thieves' Town - Big Key Chest", true, ['MoonPearl']], + ["Thieves' Town - Big Key Chest", true, ['BottleWithBee']], + ["Thieves' Town - Big Key Chest", true, ['BottleWithFairy']], + ["Thieves' Town - Big Key Chest", true, ['BottleWithRedPotion']], + ["Thieves' Town - Big Key Chest", true, ['BottleWithGreenPotion']], + ["Thieves' Town - Big Key Chest", true, ['BottleWithBluePotion']], + ["Thieves' Town - Big Key Chest", true, ['Bottle']], + ["Thieves' Town - Big Key Chest", true, ['BottleWithGoldBee']], ["Thieves' Town - Map Chest", false, []], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'TitansMitt']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Thieves' Town - Map Chest", true, ['MoonPearl']], + ["Thieves' Town - Map Chest", true, ['BottleWithBee']], + ["Thieves' Town - Map Chest", true, ['BottleWithFairy']], + ["Thieves' Town - Map Chest", true, ['BottleWithRedPotion']], + ["Thieves' Town - Map Chest", true, ['BottleWithGreenPotion']], + ["Thieves' Town - Map Chest", true, ['BottleWithBluePotion']], + ["Thieves' Town - Map Chest", true, ['Bottle']], + ["Thieves' Town - Map Chest", true, ['BottleWithGoldBee']], + ["Thieves' Town - Compass Chest", false, []], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'TitansMitt']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Thieves' Town - Compass Chest", true, ['MoonPearl']], + ["Thieves' Town - Compass Chest", true, ['BottleWithBee']], + ["Thieves' Town - Compass Chest", true, ['BottleWithFairy']], + ["Thieves' Town - Compass Chest", true, ['BottleWithRedPotion']], + ["Thieves' Town - Compass Chest", true, ['BottleWithGreenPotion']], + ["Thieves' Town - Compass Chest", true, ['BottleWithBluePotion']], + ["Thieves' Town - Compass Chest", true, ['Bottle']], + ["Thieves' Town - Compass Chest", true, ['BottleWithGoldBee']], + ["Thieves' Town - Ambush Chest", false, []], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'TitansMitt']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Thieves' Town - Ambush Chest", true, ['MoonPearl']], + ["Thieves' Town - Ambush Chest", true, ['BottleWithBee']], + ["Thieves' Town - Ambush Chest", true, ['BottleWithFairy']], + ["Thieves' Town - Ambush Chest", true, ['BottleWithRedPotion']], + ["Thieves' Town - Ambush Chest", true, ['BottleWithGreenPotion']], + ["Thieves' Town - Ambush Chest", true, ['BottleWithBluePotion']], + ["Thieves' Town - Ambush Chest", true, ['Bottle']], + ["Thieves' Town - Ambush Chest", true, ['BottleWithGoldBee']], + ["Thieves' Town - Big Chest", false, []], ["Thieves' Town - Big Chest", false, [], ['BigKeyD4']], - ["Thieves' Town - Big Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Big Chest", true, ['MoonPearl', 'TitansMitt', 'Hammer', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Big Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hammer', 'Hookshot', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Big Chest", true, ['BottleWithBee', 'Hammer', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Big Chest", true, ['BottleWithFairy', 'Hammer', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Big Chest", true, ['BottleWithRedPotion', 'Hammer', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Big Chest", true, ['BottleWithGreenPotion', 'Hammer', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Big Chest", true, ['BottleWithBluePotion', 'Hammer', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Big Chest", true, ['Bottle', 'Hammer', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Big Chest", true, ['BottleWithGoldBee', 'Hammer', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Big Chest", true, ['MoonPearl', 'Hammer', 'KeyD4', 'BigKeyD4']], ["Thieves' Town - Blind's Cell", false, []], ["Thieves' Town - Blind's Cell", false, [], ['BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'TitansMitt', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4']], + ["Thieves' Town - Blind's Cell", true, ['BottleWithBee', 'BigKeyD4']], + ["Thieves' Town - Blind's Cell", true, ['BottleWithFairy', 'BigKeyD4']], + ["Thieves' Town - Blind's Cell", true, ['BottleWithRedPotion', 'BigKeyD4']], + ["Thieves' Town - Blind's Cell", true, ['BottleWithGreenPotion', 'BigKeyD4']], + ["Thieves' Town - Blind's Cell", true, ['BottleWithBluePotion', 'BigKeyD4']], + ["Thieves' Town - Blind's Cell", true, ['Bottle', 'BigKeyD4']], + ["Thieves' Town - Blind's Cell", true, ['BottleWithGoldBee', 'BigKeyD4']], + ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'BigKeyD4']], ["Thieves' Town - Boss", false, []], ["Thieves' Town - Boss", false, [], ['BigKeyD4']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'PowerGlove', 'Hammer', 'BigKeyD4']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'BigKeyD4']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'BigKeyD4']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'ProgressiveSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'UncleSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'MasterSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'L3Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'L4Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'CaneOfByrna']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'CaneOfSomaria']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'Hammer']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'ProgressiveSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'UncleSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'MasterSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'L3Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'L4Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'CaneOfByrna']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'CaneOfSomaria']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'ProgressiveSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'UncleSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'MasterSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'L3Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'L4Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'CaneOfByrna']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'CaneOfSomaria']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'ProgressiveSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'UncleSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'MasterSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'L3Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'L4Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'CaneOfByrna']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'CaneOfSomaria']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'ProgressiveSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'UncleSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'MasterSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'L3Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'L4Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'CaneOfByrna']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'CaneOfSomaria']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'Hammer']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'BigKeyD4', 'ProgressiveSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'BigKeyD4', 'UncleSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'BigKeyD4', 'MasterSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'BigKeyD4', 'L3Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'BigKeyD4', 'L4Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'BigKeyD4', 'CaneOfByrna']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'BigKeyD4', 'CaneOfSomaria']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'BigKeyD4', 'Hammer']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBee', 'BigKeyD4', 'ProgressiveSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBee', 'BigKeyD4', 'UncleSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBee', 'BigKeyD4', 'MasterSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBee', 'BigKeyD4', 'L3Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBee', 'BigKeyD4', 'L4Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBee', 'BigKeyD4', 'CaneOfByrna']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBee', 'BigKeyD4', 'CaneOfSomaria']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBee', 'BigKeyD4', 'Hammer']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithFairy', 'BigKeyD4', 'ProgressiveSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithFairy', 'BigKeyD4', 'UncleSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithFairy', 'BigKeyD4', 'MasterSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithFairy', 'BigKeyD4', 'L3Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithFairy', 'BigKeyD4', 'L4Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithFairy', 'BigKeyD4', 'CaneOfByrna']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithFairy', 'BigKeyD4', 'CaneOfSomaria']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithFairy', 'BigKeyD4', 'Hammer']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithRedPotion', 'BigKeyD4', 'ProgressiveSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithRedPotion', 'BigKeyD4', 'UncleSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithRedPotion', 'BigKeyD4', 'MasterSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithRedPotion', 'BigKeyD4', 'L3Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithRedPotion', 'BigKeyD4', 'L4Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithRedPotion', 'BigKeyD4', 'CaneOfByrna']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithRedPotion', 'BigKeyD4', 'CaneOfSomaria']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithRedPotion', 'BigKeyD4', 'Hammer']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGreenPotion', 'BigKeyD4', 'ProgressiveSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGreenPotion', 'BigKeyD4', 'UncleSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGreenPotion', 'BigKeyD4', 'MasterSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGreenPotion', 'BigKeyD4', 'L3Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGreenPotion', 'BigKeyD4', 'L4Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGreenPotion', 'BigKeyD4', 'CaneOfByrna']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGreenPotion', 'BigKeyD4', 'CaneOfSomaria']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGreenPotion', 'BigKeyD4', 'Hammer']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBluePotion', 'BigKeyD4', 'ProgressiveSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBluePotion', 'BigKeyD4', 'UncleSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBluePotion', 'BigKeyD4', 'MasterSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBluePotion', 'BigKeyD4', 'L3Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBluePotion', 'BigKeyD4', 'L4Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBluePotion', 'BigKeyD4', 'CaneOfByrna']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBluePotion', 'BigKeyD4', 'CaneOfSomaria']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithBluePotion', 'BigKeyD4', 'Hammer']], + ["Thieves' Town - Boss", true, ['KeyD4', 'Bottle', 'BigKeyD4', 'ProgressiveSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'Bottle', 'BigKeyD4', 'UncleSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'Bottle', 'BigKeyD4', 'MasterSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'Bottle', 'BigKeyD4', 'L3Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'Bottle', 'BigKeyD4', 'L4Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'Bottle', 'BigKeyD4', 'CaneOfByrna']], + ["Thieves' Town - Boss", true, ['KeyD4', 'Bottle', 'BigKeyD4', 'CaneOfSomaria']], + ["Thieves' Town - Boss", true, ['KeyD4', 'Bottle', 'BigKeyD4', 'Hammer']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGoldBee', 'BigKeyD4', 'ProgressiveSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGoldBee', 'BigKeyD4', 'UncleSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGoldBee', 'BigKeyD4', 'MasterSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGoldBee', 'BigKeyD4', 'L3Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGoldBee', 'BigKeyD4', 'L4Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGoldBee', 'BigKeyD4', 'CaneOfByrna']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGoldBee', 'BigKeyD4', 'CaneOfSomaria']], + ["Thieves' Town - Boss", true, ['KeyD4', 'BottleWithGoldBee', 'BigKeyD4', 'Hammer']], + + ]; } } diff --git a/tests/MajorGlitches/TowerOfHeraTest.php b/tests/MajorGlitches/TowerOfHeraTest.php index f3a51f39f..ac4cd855c 100644 --- a/tests/MajorGlitches/TowerOfHeraTest.php +++ b/tests/MajorGlitches/TowerOfHeraTest.php @@ -91,67 +91,31 @@ public function accessPool() { return [ ["Tower of Hera - Big Key Chest", false, []], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Flute', 'MagicMirror', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'ProgressiveGlove', 'MagicMirror', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'PowerGlove', 'MagicMirror', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'TitansMitt', 'MagicMirror', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Flute', 'Hookshot', 'Hammer', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'PowerGlove', 'Hookshot', 'Hammer', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'TitansMitt', 'Hookshot', 'Hammer', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Flute', 'MagicMirror', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Flute', 'Hookshot', 'Hammer', 'KeyP3']], + ["Tower of Hera - Big Key Chest", false, [], ['Lamp', 'FireRod']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['FireRod', 'KeyP3']], ["Tower of Hera - Basement Cage", true, []], ["Tower of Hera - Map Chest", true, []], ["Tower of Hera - Compass Chest", false, []], - ["Tower of Hera - Compass Chest", true, ['Flute', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['Flute', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['PowerGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", false, [], ['BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['BigKeyP3']], ["Tower of Hera - Big Chest", false, []], - ["Tower of Hera - Big Chest", true, ['Flute', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['Flute', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['PowerGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Big Chest", false, [], ['BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['BigKeyP3']], ["Tower of Hera - Boss", false, []], + ["Tower of Hera - Boss", false, [], ['BigKeyP3']], ["Tower of Hera - Boss", false, [], ['AnySword', 'Hammer']], - ["Tower of Hera - Boss", true, ['Flute', 'MagicMirror', 'BigKeyP3', 'ProgressiveSword']], - ["Tower of Hera - Boss", true, ['Flute', 'MagicMirror', 'BigKeyP3', 'UncleSword']], - ["Tower of Hera - Boss", true, ['Flute', 'MagicMirror', 'BigKeyP3', 'MasterSword']], - ["Tower of Hera - Boss", true, ['Flute', 'MagicMirror', 'BigKeyP3', 'L3Sword']], - ["Tower of Hera - Boss", true, ['Flute', 'MagicMirror', 'BigKeyP3', 'L4Sword']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'UncleSword']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'MasterSword']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'ProgressiveSword']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L3Sword']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L4Sword']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'UncleSword']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'MasterSword']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'ProgressiveSword']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L3Sword']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L4Sword']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3', 'UncleSword']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3', 'MasterSword']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3', 'ProgressiveSword']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L3Sword']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L4Sword']], - ["Tower of Hera - Boss", true, ['Flute', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['BigKeyP3', 'ProgressiveSword']], + ["Tower of Hera - Boss", true, ['BigKeyP3', 'UncleSword']], + ["Tower of Hera - Boss", true, ['BigKeyP3', 'MasterSword']], + ["Tower of Hera - Boss", true, ['BigKeyP3', 'L3Sword']], + ["Tower of Hera - Boss", true, ['BigKeyP3', 'L4Sword']], + ["Tower of Hera - Boss", true, ['BigKeyP3', 'Hammer']], ]; } } diff --git a/tests/MajorGlitches/TurtleRockTest.php b/tests/MajorGlitches/TurtleRockTest.php index 204273da2..e83af8d94 100644 --- a/tests/MajorGlitches/TurtleRockTest.php +++ b/tests/MajorGlitches/TurtleRockTest.php @@ -90,7 +90,7 @@ public function fillPool() ["Turtle Rock - Big Key Chest", true, 'BigKeyD7', ['KeyD7', 'KeyD7'], ['BigKeyD7']], - ["Turtle Rock - Crystaroller Room", false, 'BigKeyD7', [], ['BigKeyD7']], + ["Turtle Rock - Crystaroller Room", true, 'BigKeyD7', [], ['BigKeyD7']], ["Turtle Rock - Eye Bridge - Bottom Left", true, 'BigKeyD7', [], ['BigKeyD7']], @@ -108,163 +108,87 @@ public function fillPool() public function accessPool() { return [ - ["Turtle Rock - Chain Chomps", false, []], - ["Turtle Rock - Chain Chomps", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7']], + ["Turtle Rock - Chain Chomps", true, []], ["Turtle Rock - Compass Chest", false, []], ["Turtle Rock - Compass Chest", false, [], ['CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria']], + ["Turtle Rock - Compass Chest", true, ['CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + ["Turtle Rock - Compass Chest", true, ['CaneOfSomaria', 'MoonPearl', 'Quake', 'UncleSword']], + ["Turtle Rock - Compass Chest", true, ['CaneOfSomaria', 'Bottle', 'Quake', 'UncleSword']], ["Turtle Rock - Roller Room - Left", false, []], ["Turtle Rock - Roller Room - Left", false, [], ['CaneOfSomaria']], ["Turtle Rock - Roller Room - Left", false, [], ['FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], + ["Turtle Rock - Roller Room - Left", true, ['CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'FireRod']], + ["Turtle Rock - Roller Room - Left", true, ['CaneOfSomaria', 'MoonPearl', 'Quake', 'UncleSword', 'FireRod']], + ["Turtle Rock - Roller Room - Left", true, ['CaneOfSomaria', 'Bottle', 'Quake', 'UncleSword', 'FireRod']], ["Turtle Rock - Roller Room - Right", false, []], ["Turtle Rock - Roller Room - Right", false, [], ['CaneOfSomaria']], ["Turtle Rock - Roller Room - Right", false, [], ['FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], + ["Turtle Rock - Roller Room - Right", true, ['CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'FireRod']], + ["Turtle Rock - Roller Room - Right", true, ['CaneOfSomaria', 'MoonPearl', 'Quake', 'UncleSword', 'FireRod']], + ["Turtle Rock - Roller Room - Right", true, ['CaneOfSomaria', 'Bottle', 'Quake', 'UncleSword', 'FireRod']], ["Turtle Rock - Big Chest", false, []], ["Turtle Rock - Big Chest", false, [], ['BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Big Chest", false, [], ['CaneOfSomaria', 'Hookshot']], + ["Turtle Rock - Big Chest", true, ['CaneOfSomaria', 'BigKeyD7']], + ["Turtle Rock - Big Chest", true, ['Hookshot', 'BigKeyD7']], ["Turtle Rock - Big Key Chest", false, []], - ["Turtle Rock - Big Key Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], + ["Turtle Rock - Big Key Chest", true, ['KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], ["Turtle Rock - Crystaroller Room", false, []], - ["Turtle Rock - Crystaroller Room", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - + ["Turtle Rock - Crystaroller Room", false, [], ['BigKeyD7', 'Lamp']], + ["Turtle Rock - Crystaroller Room", true, ['BigKeyD7']], + ["Turtle Rock - Crystaroller Room", true, ['Lamp', 'CaneOfSomaria', 'MagicMirror', 'MoonPearl']], + ["Turtle Rock - Crystaroller Room", true, ['Lamp', 'CaneOfSomaria', 'MagicMirror', 'Bottle']], + ["Turtle Rock - Eye Bridge - Bottom Left", false, []], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", false, ['MagicMirror']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['MagicMirror', 'MoonPearl']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['MagicMirror', 'Bottle']], ["Turtle Rock - Eye Bridge - Bottom Right", false, []], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", false, ['MagicMirror']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['MagicMirror', 'MoonPearl']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['MagicMirror', 'Bottle']], ["Turtle Rock - Eye Bridge - Top Left", false, []], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", false, ['MagicMirror']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['MagicMirror', 'MoonPearl']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['MagicMirror', 'Bottle']], ["Turtle Rock - Eye Bridge - Top Right", false, []], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", false, ['MagicMirror']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['MagicMirror', 'MoonPearl']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['MagicMirror', 'Bottle']], ["Turtle Rock - Boss", false, []], ["Turtle Rock - Boss", false, [], ['CaneOfSomaria']], ["Turtle Rock - Boss", false, [], ['IceRod']], ["Turtle Rock - Boss", false, [], ['FireRod']], + ["Turtle Rock - Boss", false, [], ['AnySword', 'Hammer']], ["Turtle Rock - Boss", false, [], ['BigKeyD7']], - ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'UncleSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'ProgressiveSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MasterSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'ProgressiveSword', 'ProgressiveSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'L3Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'L4Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'UncleSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'ProgressiveSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'MasterSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'ProgressiveSword', 'ProgressiveSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'MoonPearl', 'L3Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'MoonPearl', 'L4Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'MagicMirror', 'MoonPearl', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], ]; } } diff --git a/tests/NoGlitches/MiseryMireTest.php b/tests/NoGlitches/MiseryMireTest.php index e2a591a23..7f3d03752 100644 --- a/tests/NoGlitches/MiseryMireTest.php +++ b/tests/NoGlitches/MiseryMireTest.php @@ -209,26 +209,16 @@ public function accessPool() ["Misery Mire - Spike Chest", false, [], ['MoonPearl']], ["Misery Mire - Spike Chest", false, [], ['TitansMitt']], ["Misery Mire - Spike Chest", false, [], ['Flute']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot', 'Cape']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], ["Misery Mire - Boss", false, []], ["Misery Mire - Boss", false, [], ['MoonPearl']], diff --git a/tests/NoGlitches/OpenTest.php b/tests/NoGlitches/OpenTest.php new file mode 100644 index 000000000..aa81578eb --- /dev/null +++ b/tests/NoGlitches/OpenTest.php @@ -0,0 +1,129 @@ +world = World::factory('open', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + + ["Sanctuary", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Left", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Middle", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Right", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Dark Cross", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Boomerang Chest", false, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Map Chest", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Zelda's Cell", false, 'KeyH2', [], ['KeyH2']], + ]; + } + + public function accessPool() + { + return [ + ["Sanctuary", true, []], + + ["Sewers - Secret Room - Left", False, []], + ["Sewers - Secret Room - Left", true, ['ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['PowerGlove']], + ["Sewers - Secret Room - Left", true, ['TitansMitt']], + ["Sewers - Secret Room - Left", true, ['Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Middle", false, []], + ["Sewers - Secret Room - Middle", true, ['ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['PowerGlove']], + ["Sewers - Secret Room - Middle", true, ['TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Right", false, []], + ["Sewers - Secret Room - Right", true, ['ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['PowerGlove']], + ["Sewers - Secret Room - Right", true, ['TitansMitt']], + ["Sewers - Secret Room - Right", true, ['Lamp', 'KeyH2']], + + ["Sewers - Dark Cross", False, [], ['Lamp']], + ["Sewers - Dark Cross", true, ['Lamp']], + + ["Hyrule Castle - Boomerang Chest", false, []], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2']], + + ["Hyrule Castle - Map Chest", true, []], + + ["Hyrule Castle - Zelda's Cell", false, []], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2']], + + ["Link's Uncle", true, []], + + ["Secret Passage", true, []], + ]; + } +} diff --git a/tests/OverworldGlitches/DarkWorld/DeathMountain/EastTest.php b/tests/OverworldGlitches/DarkWorld/DeathMountain/EastTest.php index 268b2163f..40a9a48f0 100644 --- a/tests/OverworldGlitches/DarkWorld/DeathMountain/EastTest.php +++ b/tests/OverworldGlitches/DarkWorld/DeathMountain/EastTest.php @@ -49,64 +49,39 @@ public function accessPool() { return [ ["Superbunny Cave - Top", false, []], - ["Superbunny Cave - Top", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Flute']], - ["Superbunny Cave - Top", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Flute']], - ["Superbunny Cave - Top", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror', 'Hammer', 'Flute']], - ["Superbunny Cave - Top", true, ['MoonPearl', 'TitansMitt', 'MagicMirror', 'Hammer', 'Flute']], - ["Superbunny Cave - Top", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Lamp']], - ["Superbunny Cave - Top", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Lamp']], - ["Superbunny Cave - Top", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror', 'Hammer', 'Lamp']], - ["Superbunny Cave - Top", true, ['MoonPearl', 'TitansMitt', 'MagicMirror', 'Hammer', 'Lamp']], + ["Superbunny Cave - Top", true, ['ProgressiveGlove', 'ProgressiveGlove', 'PegasusBoots']], + ["Superbunny Cave - Top", true, ['TitansMitt', 'PegasusBoots']], + ["Superbunny Cave - Top", true, ['Hammer', 'PegasusBoots']], + ["Superbunny Cave - Top", true, ['MoonPearl', 'PegasusBoots']], ["Superbunny Cave - Bottom", false, []], - ["Superbunny Cave - Bottom", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Flute']], - ["Superbunny Cave - Bottom", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Flute']], - ["Superbunny Cave - Bottom", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror', 'Hammer', 'Flute']], - ["Superbunny Cave - Bottom", true, ['MoonPearl', 'TitansMitt', 'MagicMirror', 'Hammer', 'Flute']], - ["Superbunny Cave - Bottom", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Lamp']], - ["Superbunny Cave - Bottom", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Lamp']], - ["Superbunny Cave - Bottom", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror', 'Hammer', 'Lamp']], - ["Superbunny Cave - Bottom", true, ['MoonPearl', 'TitansMitt', 'MagicMirror', 'Hammer', 'Lamp']], + ["Superbunny Cave - Bottom", true, ['ProgressiveGlove', 'ProgressiveGlove', 'PegasusBoots']], + ["Superbunny Cave - Bottom", true, ['TitansMitt', 'PegasusBoots']], + ["Superbunny Cave - Bottom", true, ['Hammer', 'PegasusBoots']], + ["Superbunny Cave - Bottom", true, ['MoonPearl', 'PegasusBoots']], ["Hookshot Cave - Bottom Right", false, []], ["Hookshot Cave - Bottom Right", false, [], ['Gloves', 'PegasusBoots']], ["Hookshot Cave - Bottom Right", false, [], ['MoonPearl']], ["Hookshot Cave - Bottom Right", true, ['MoonPearl', 'PegasusBoots']], - ["Hookshot Cave - Bottom Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Flute']], - ["Hookshot Cave - Bottom Right", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Flute']], - ["Hookshot Cave - Bottom Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror', 'Hammer', 'Flute', 'PegasusBoots']], - ["Hookshot Cave - Bottom Right", true, ['MoonPearl', 'TitansMitt', 'MagicMirror', 'Hammer', 'Flute', 'PegasusBoots']], - ["Hookshot Cave - Bottom Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Lamp']], - ["Hookshot Cave - Bottom Right", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Lamp']], - ["Hookshot Cave - Bottom Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror', 'Hammer', 'Lamp', 'PegasusBoots']], - ["Hookshot Cave - Bottom Right", true, ['MoonPearl', 'TitansMitt', 'MagicMirror', 'Hammer', 'Lamp', 'PegasusBoots']], ["Hookshot Cave - Bottom Left", false, []], ["Hookshot Cave - Bottom Left", false, [], ['Gloves', 'PegasusBoots']], ["Hookshot Cave - Bottom Left", false, [], ['MoonPearl']], + ["Hookshot Cave - Bottom Left", false, [], ['Hookshot']], ["Hookshot Cave - Bottom Left", true, ['MoonPearl', 'PegasusBoots', 'Hookshot']], - ["Hookshot Cave - Bottom Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Flute']], - ["Hookshot Cave - Bottom Left", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Flute']], - ["Hookshot Cave - Bottom Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Lamp']], - ["Hookshot Cave - Bottom Left", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Lamp']], ["Hookshot Cave - Top Left", false, []], ["Hookshot Cave - Top Left", false, [], ['Gloves', 'PegasusBoots']], ["Hookshot Cave - Top Left", false, [], ['MoonPearl']], + ["Hookshot Cave - Top Left", false, [], ['Hookshot']], ["Hookshot Cave - Top Left", true, ['MoonPearl', 'PegasusBoots', 'Hookshot']], - ["Hookshot Cave - Top Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Flute']], - ["Hookshot Cave - Top Left", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Flute']], - ["Hookshot Cave - Top Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Lamp']], - ["Hookshot Cave - Top Left", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Lamp']], ["Hookshot Cave - Top Right", false, []], ["Hookshot Cave - Top Right", false, [], ['Gloves', 'PegasusBoots']], ["Hookshot Cave - Top Right", false, [], ['MoonPearl']], + ["Hookshot Cave - Top Right", false, [], ['Hookshot']], ["Hookshot Cave - Top Right", true, ['MoonPearl', 'PegasusBoots', 'Hookshot']], - ["Hookshot Cave - Top Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Flute']], - ["Hookshot Cave - Top Right", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Flute']], - ["Hookshot Cave - Top Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Hookshot', 'Lamp']], - ["Hookshot Cave - Top Right", true, ['MoonPearl', 'TitansMitt', 'Hookshot', 'Lamp']], ]; } } diff --git a/tests/OverworldGlitches/DarkWorld/DeathMountain/WestTest.php b/tests/OverworldGlitches/DarkWorld/DeathMountain/WestTest.php index 4874651a8..be746116a 100644 --- a/tests/OverworldGlitches/DarkWorld/DeathMountain/WestTest.php +++ b/tests/OverworldGlitches/DarkWorld/DeathMountain/WestTest.php @@ -53,42 +53,24 @@ public function accessPool() ["Spike Cave", false, [], ['MoonPearl']], ["Spike Cave", false, [], ['Hammer']], ["Spike Cave", false, [], ['Cape', 'CaneOfByrna']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Lamp', 'Cape']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'PowerGlove', 'Lamp', 'Cape']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'TitansMitt', 'Lamp', 'Cape']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Flute', 'Cape']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'PowerGlove', 'Flute', 'Cape']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'TitansMitt', 'Flute', 'Cape']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Lamp', 'CaneOfByrna']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'PowerGlove', 'Lamp', 'CaneOfByrna']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'TitansMitt', 'Lamp', 'CaneOfByrna']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Flute', 'CaneOfByrna']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'PowerGlove', 'Flute', 'CaneOfByrna']], - ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'TitansMitt', 'Flute', 'CaneOfByrna']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Lamp', 'Cape']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'Lamp', 'Cape']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'Lamp', 'Cape']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Flute', 'Cape']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'Flute', 'Cape']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'Flute', 'Cape']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Lamp', 'CaneOfByrna']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'Lamp', 'CaneOfByrna']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'Lamp', 'CaneOfByrna']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Flute', 'CaneOfByrna']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'Flute', 'CaneOfByrna']], - ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'Flute', 'CaneOfByrna']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Lamp', 'Cape']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'Lamp', 'Cape']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'Lamp', 'Cape']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Flute', 'Cape']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'Flute', 'Cape']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'Flute', 'Cape']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Lamp', 'CaneOfByrna']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'Lamp', 'CaneOfByrna']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'Lamp', 'CaneOfByrna']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'Flute', 'CaneOfByrna']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'Flute', 'CaneOfByrna']], - ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'Flute', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'PowerGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'TitansMitt', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'PowerGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['Bottle', 'MoonPearl', 'Hammer', 'TitansMitt', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['HalfMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'PegasusBoots', 'Cape']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'ProgressiveGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'PowerGlove', 'PegasusBoots', 'CaneOfByrna']], + ["Spike Cave", true, ['QuarterMagic', 'MoonPearl', 'Hammer', 'TitansMitt', 'PegasusBoots', 'CaneOfByrna']], ]; } } diff --git a/tests/OverworldGlitches/DarkWorld/MireTest.php b/tests/OverworldGlitches/DarkWorld/MireTest.php index 55a3784fd..e686b61a7 100644 --- a/tests/OverworldGlitches/DarkWorld/MireTest.php +++ b/tests/OverworldGlitches/DarkWorld/MireTest.php @@ -49,12 +49,14 @@ public function accessPool() { return [ ["Mire Shed - Left", false, []], - ["Mire Shed - Left", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Mire Shed - Left", true, ['MoonPearl', 'Flute', 'TitansMitt']], + ["Mire Shed - Left", true, ['MoonPearl', 'PegasusBoots']], + ["Mire Shed - Left", true, ['MagicMirror', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Mire Shed - Left", true, ['MagicMirror', 'Flute', 'TitansMitt']], ["Mire Shed - Right", false, []], - ["Mire Shed - Right", true, ['MoonPearl', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Mire Shed - Right", true, ['MoonPearl', 'Flute', 'TitansMitt']], + ["Mire Shed - Right", true, ['MoonPearl', 'PegasusBoots']], + ["Mire Shed - Right", true, ['MagicMirror', 'Flute', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Mire Shed - Right", true, ['MagicMirror', 'Flute', 'TitansMitt']], ]; } } diff --git a/tests/OverworldGlitches/DarkWorld/NorthEastTest.php b/tests/OverworldGlitches/DarkWorld/NorthEastTest.php index e64f69b9b..81205d05a 100644 --- a/tests/OverworldGlitches/DarkWorld/NorthEastTest.php +++ b/tests/OverworldGlitches/DarkWorld/NorthEastTest.php @@ -50,73 +50,25 @@ public function accessPool() return [ ["Catfish", false, []], ["Catfish", false, [], ['MoonPearl']], - ["Catfish", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove']], - ["Catfish", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove']], - ["Catfish", true, ['MoonPearl', 'DefeatAgahnim', 'TitansMitt']], - ["Catfish", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Catfish", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Catfish", true, ['MoonPearl', 'TitansMitt', 'Flippers']], + ["Catfish", true, ['MoonPearl', 'PegasusBoots']], ["Pyramid", false, []], - ["Pyramid", true, ['DefeatAgahnim']], - ["Pyramid", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Pyramid", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Pyramid", true, ['MoonPearl', 'TitansMitt', 'Flippers']], + ["Pyramid", true, ['MoonPearl', 'PegasusBoots']], ["Pyramid Fairy - Sword", false, []], ["Pyramid Fairy - Sword", false, [], ['AnySword']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'TitansMitt', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'ProgressiveGlove', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'PowerGlove', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'TitansMitt', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'UncleSword', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'TitansMitt', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'ProgressiveGlove', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'PowerGlove', 'Hammer']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'TitansMitt', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Sword", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveSword', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MagicMirror']], + ["Pyramid Fairy - Sword", true, ['MagicMirror', 'PegasusBoots', 'UncleSword']], + ["Pyramid Fairy - Sword", true, ['MagicMirror', 'PegasusBoots', 'ProgressiveSword']], ["Pyramid Fairy - Bow", false, []], ["Pyramid Fairy - Bow", false, [], ['AnyBow']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'Hammer']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'TitansMitt', 'Hammer']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'ProgressiveGlove', 'Hammer']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'PowerGlove', 'Hammer']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'TitansMitt', 'MagicMirror']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Bow", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'BowAndArrows', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MagicMirror']], + ["Pyramid Fairy - Bow", true, ['MagicMirror', 'PegasusBoots', 'BowAndArrows']], ["Pyramid Fairy - Left", false, []], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'Hammer']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'TitansMitt', 'Hammer']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveGlove', 'Hammer']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'PowerGlove', 'Hammer']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'TitansMitt', 'MagicMirror']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Left", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MagicMirror']], + ["Pyramid Fairy - Left", true, ['MagicMirror', 'PegasusBoots']], ["Pyramid Fairy - Right", false, []], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'Hammer']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'TitansMitt', 'Hammer']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'ProgressiveGlove', 'Hammer']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'PowerGlove', 'Hammer']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'TitansMitt', 'MagicMirror']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'ProgressiveGlove', 'ProgressiveGlove', 'MagicMirror']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MagicMirror']], - ["Pyramid Fairy - Right", true, ['MoonPearl', 'Crystal5', 'Crystal6', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MagicMirror']], + ["Pyramid Fairy - Right", true, ['MagicMirror', 'PegasusBoots']], ["Ganon", false, []], ["Ganon", false, [], ['MoonPearl']], diff --git a/tests/OverworldGlitches/DarkWorld/NorthWestTest.php b/tests/OverworldGlitches/DarkWorld/NorthWestTest.php index 9eaa6b044..c2b1ffa4e 100644 --- a/tests/OverworldGlitches/DarkWorld/NorthWestTest.php +++ b/tests/OverworldGlitches/DarkWorld/NorthWestTest.php @@ -50,45 +50,23 @@ public function accessPool() return [ ["Brewery", false, []], ["Brewery", false, [], ['MoonPearl']], - ["Brewery", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Brewery", true, ['MoonPearl', 'TitansMitt']], - ["Brewery", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Brewery", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Brewery", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Brewery", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Brewery", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Brewery", true, ['MoonPearl', 'PegasusBoots']], ["C-Shaped House", false, []], - ["C-Shaped House", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["C-Shaped House", true, ['MoonPearl', 'TitansMitt']], - ["C-Shaped House", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["C-Shaped House", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["C-Shaped House", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["C-Shaped House", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["C-Shaped House", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["C-Shaped House", true, ['MoonPearl', 'PegasusBoots']], + ["C-Shaped House", true, ['MagicMirror', 'PegasusBoots']], ["Chest Game", false, []], - ["Chest Game", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Chest Game", true, ['MoonPearl', 'TitansMitt']], - ["Chest Game", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Chest Game", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Chest Game", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Chest Game", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Chest Game", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Chest Game", true, ['MoonPearl', 'PegasusBoots']], + ["Chest Game", true, ['MagicMirror', 'PegasusBoots']], ["Hammer Pegs", false, []], ["Hammer Pegs", false, [], ['MoonPearl']], ["Hammer Pegs", false, [], ['Hammer']], - ["Hammer Pegs", true, ['MoonPearl', 'Hammer', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hammer Pegs", true, ['MoonPearl', 'Hammer', 'TitansMitt']], + ["Hammer Pegs", true, ['MoonPearl', 'Hammer', 'PegasusBoots']], ["Bumper Cave", false, []], - ["Bumper Cave", true, ['MoonPearl', 'Cape', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Bumper Cave", true, ['MoonPearl', 'Cape', 'TitansMitt']], - ["Bumper Cave", true, ['MoonPearl', 'Cape', 'ProgressiveGlove', 'Hammer']], - ["Bumper Cave", true, ['MoonPearl', 'Cape', 'PowerGlove', 'Hammer']], - ["Bumper Cave", true, ['MoonPearl', 'Cape', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Bumper Cave", true, ['MoonPearl', 'Cape', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], + ["Bumper Cave", true, ['MoonPearl', 'PegasusBoots']], ["Blacksmith", false, []], ["Blacksmith", false, [], ['MoonPearl']], diff --git a/tests/OverworldGlitches/DarkWorld/SouthTest.php b/tests/OverworldGlitches/DarkWorld/SouthTest.php index be2a78acc..938164e66 100644 --- a/tests/OverworldGlitches/DarkWorld/SouthTest.php +++ b/tests/OverworldGlitches/DarkWorld/SouthTest.php @@ -50,80 +50,31 @@ public function accessPool() return [ ["Hype Cave - Top", false, []], ["Hype Cave - Top", false, [], ['MoonPearl']], - ["Hype Cave - Top", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Hype Cave - Top", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hype Cave - Top", true, ['MoonPearl', 'TitansMitt']], - ["Hype Cave - Top", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Hype Cave - Top", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Hype Cave - Top", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Hype Cave - Top", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Hype Cave - Top", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Hype Cave - Top", true, ['MoonPearl', 'PegasusBoots']], ["Hype Cave - Middle Right", false, []], ["Hype Cave - Middle Right", false, [], ['MoonPearl']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'TitansMitt']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Hype Cave - Middle Right", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Hype Cave - Middle Right", true, ['MoonPearl', 'PegasusBoots']], ["Hype Cave - Middle Left", false, []], ["Hype Cave - Middle Left", false, [], ['MoonPearl']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'TitansMitt']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Hype Cave - Middle Left", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Hype Cave - Middle Left", true, ['MoonPearl', 'PegasusBoots']], ["Hype Cave - Bottom", false, []], ["Hype Cave - Bottom", false, [], ['MoonPearl']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'TitansMitt']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Hype Cave - Bottom", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Hype Cave - Bottom", true, ['MoonPearl', 'PegasusBoots']], ["Hype Cave - NPC", false, []], ["Hype Cave - NPC", false, [], ['MoonPearl']], - ["Hype Cave - NPC", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Hype Cave - NPC", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Hype Cave - NPC", true, ['MoonPearl', 'TitansMitt']], - ["Hype Cave - NPC", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Hype Cave - NPC", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Hype Cave - NPC", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Hype Cave - NPC", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Hype Cave - NPC", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Hype Cave - NPC", true, ['MoonPearl', 'PegasusBoots']], ["Stumpy", false, []], ["Stumpy", false, [], ['MoonPearl']], - ["Stumpy", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Stumpy", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Stumpy", true, ['MoonPearl', 'TitansMitt']], - ["Stumpy", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Stumpy", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Stumpy", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Stumpy", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Stumpy", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Stumpy", true, ['MoonPearl', 'PegasusBoots']], ["Digging Game", false, []], ["Digging Game", false, [], ['MoonPearl']], - ["Digging Game", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer']], - ["Digging Game", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Digging Game", true, ['MoonPearl', 'TitansMitt']], - ["Digging Game", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Digging Game", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Digging Game", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Digging Game", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Digging Game", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Digging Game", true, ['MoonPearl', 'PegasusBoots']], ]; } } diff --git a/tests/OverworldGlitches/DeathMountain/EastTest.php b/tests/OverworldGlitches/DeathMountain/EastTest.php index e8b8b17ec..f6d77bd20 100644 --- a/tests/OverworldGlitches/DeathMountain/EastTest.php +++ b/tests/OverworldGlitches/DeathMountain/EastTest.php @@ -50,75 +50,36 @@ public function accessPool() return [ ["Spiral Cave", false, []], ["Spiral Cave", true, ['PegasusBoots']], - ["Spiral Cave", true, ['Flute', 'Hookshot']], - ["Spiral Cave", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], - ["Spiral Cave", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Spiral Cave", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror']], - ["Spiral Cave", false, ['ProgressiveGlove', 'Hookshot']], - ["Spiral Cave", false, [], ['Gloves', 'Flute', 'PegasusBoots']], ["Paradox Cave Lower - Far Left", false, []], - ["Paradox Cave Lower - Far Left", true, ['Flute', 'Hookshot']], - ["Paradox Cave Lower - Far Left", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Far Left", true, ['PowerGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Far Left", true, ['TitansMitt', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Far Left", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Lower - Far Left", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Lower - Far Left", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'Hammer']], + ["Paradox Cave Lower - Far Left", true, ['PegasusBoots']], ["Paradox Cave Lower - Left", false, []], - ["Paradox Cave Lower - Left", true, ['Flute', 'Hookshot']], - ["Paradox Cave Lower - Left", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Left", true, ['PowerGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Left", true, ['TitansMitt', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Left", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Lower - Left", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Lower - Left", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'Hammer']], + ["Paradox Cave Lower - Left", true, ['PegasusBoots']], ["Paradox Cave Lower - Middle", false, []], - ["Paradox Cave Lower - Middle", true, ['Flute', 'Hookshot']], - ["Paradox Cave Lower - Middle", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Middle", true, ['PowerGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Middle", true, ['TitansMitt', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Middle", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Lower - Middle", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Lower - Middle", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'Hammer']], + ["Paradox Cave Lower - Middle", true, ['PegasusBoots']], ["Paradox Cave Lower - Right", false, []], - ["Paradox Cave Lower - Right", true, ['Flute', 'Hookshot']], - ["Paradox Cave Lower - Right", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Right", true, ['PowerGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Right", true, ['TitansMitt', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Right", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Lower - Right", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Lower - Right", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'Hammer']], + ["Paradox Cave Lower - Right", true, ['PegasusBoots']], ["Paradox Cave Lower - Far Right", false, []], - ["Paradox Cave Lower - Far Right", true, ['Flute', 'Hookshot']], - ["Paradox Cave Lower - Far Right", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Far Right", true, ['PowerGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Far Right", true, ['TitansMitt', 'Lamp', 'Hookshot']], - ["Paradox Cave Lower - Far Right", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Lower - Far Right", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Lower - Far Right", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'Hammer']], + ["Paradox Cave Lower - Far Right", true, ['PegasusBoots']], ["Paradox Cave Upper - Left", false, []], - ["Paradox Cave Upper - Left", true, ['Flute', 'Hookshot']], - ["Paradox Cave Upper - Left", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Upper - Left", true, ['PowerGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Upper - Left", true, ['TitansMitt', 'Lamp', 'Hookshot']], - ["Paradox Cave Upper - Left", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Upper - Left", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Upper - Left", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'Hammer']], + ["Paradox Cave Lower - Left", true, ['PegasusBoots']], ["Paradox Cave Upper - Right", false, []], - ["Paradox Cave Upper - Right", true, ['Flute', 'Hookshot']], - ["Paradox Cave Upper - Right", true, ['ProgressiveGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Upper - Right", true, ['PowerGlove', 'Lamp', 'Hookshot']], - ["Paradox Cave Upper - Right", true, ['TitansMitt', 'Lamp', 'Hookshot']], - ["Paradox Cave Upper - Right", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Upper - Right", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'Hammer']], - ["Paradox Cave Upper - Right", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'Hammer']], + ["Paradox Cave Lower - Right", true, ['PegasusBoots']], + + ["Mimic Cave", false, []], + ["Mimic Cave", false, [], ['MagicMirror']], + ["Mimic Cave", false, [], ['Hammer']], + ["Mimic Cave", true, ['MagicMirror', 'Hammer', 'PegasusBoots']], + ["Mimic Cave", true, ['MagicMirror', 'Hammer', 'ProgressiveGlove', 'Lamp']], + ["Mimic Cave", true, ['MagicMirror', 'Hammer', 'PowerGlove', 'Lamp']], + ["Mimic Cave", true, ['MagicMirror', 'Hammer', 'TitansMitt', 'Lamp']], + ["Mimic Cave", true, ['MagicMirror', 'Hammer', 'Flute']], ]; } } diff --git a/tests/OverworldGlitches/DeathMountain/WestTest.php b/tests/OverworldGlitches/DeathMountain/WestTest.php index b15f0b637..65a0cc3e4 100644 --- a/tests/OverworldGlitches/DeathMountain/WestTest.php +++ b/tests/OverworldGlitches/DeathMountain/WestTest.php @@ -51,57 +51,20 @@ public function accessPool() ["Ether Tablet", false, []], ["Ether Tablet", false, [], ['UpgradedSword']], ["Ether Tablet", false, [], ['BookOfMudora']], - ["Ether Tablet", true, ['Flute', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], - ["Ether Tablet", true, ['Flute', 'MagicMirror', 'BookOfMudora', 'L2Sword']], - ["Ether Tablet", true, ['Flute', 'MagicMirror', 'BookOfMudora', 'L3Sword']], - ["Ether Tablet", true, ['Flute', 'MagicMirror', 'BookOfMudora', 'L4Sword']], - ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], - ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BookOfMudora', 'L2Sword']], - ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BookOfMudora', 'L3Sword']], - ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BookOfMudora', 'L4Sword']], - ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], - ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BookOfMudora', 'L2Sword']], - ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BookOfMudora', 'L3Sword']], - ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BookOfMudora', 'L4Sword']], - ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], - ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BookOfMudora', 'L2Sword']], - ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BookOfMudora', 'L3Sword']], - ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BookOfMudora', 'L4Sword']], - ["Ether Tablet", true, ['Flute', 'Hammer', 'Hookshot', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], - ["Ether Tablet", true, ['Flute', 'Hammer', 'Hookshot', 'BookOfMudora', 'L2Sword']], - ["Ether Tablet", true, ['Flute', 'Hammer', 'Hookshot', 'BookOfMudora', 'L3Sword']], - ["Ether Tablet", true, ['Flute', 'Hammer', 'Hookshot', 'BookOfMudora', 'L4Sword']], - ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], - ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'L2Sword']], - ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'L3Sword']], - ["Ether Tablet", true, ['ProgressiveGlove', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'L4Sword']], - ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], - ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'L2Sword']], - ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'L3Sword']], - ["Ether Tablet", true, ['PowerGlove', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'L4Sword']], - ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], - ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'L2Sword']], - ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'L3Sword']], - ["Ether Tablet", true, ['TitansMitt', 'Lamp', 'Hammer', 'Hookshot', 'BookOfMudora', 'L4Sword']], + ["Ether Tablet", true, ['PegasusBoots', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Ether Tablet", true, ['PegasusBoots', 'BookOfMudora', 'L2Sword']], + ["Ether Tablet", true, ['PegasusBoots', 'BookOfMudora', 'L3Sword']], + ["Ether Tablet", true, ['PegasusBoots', 'BookOfMudora', 'L4Sword']], ["Old Man", false, []], ["Old Man", false, [], ['Lamp']], - ["Old Man", true, ['Flute', 'Lamp']], - ["Old Man", true, ['ProgressiveGlove', 'Lamp']], - ["Old Man", true, ['PowerGlove', 'Lamp']], - ["Old Man", true, ['TitansMitt', 'Lamp']], + ["Old Man", true, ['PegasusBoots', 'Lamp']], ["Spectacle Rock Cave", false, []], - ["Spectacle Rock Cave", true, ['Flute']], - ["Spectacle Rock Cave", true, ['ProgressiveGlove', 'Lamp']], - ["Spectacle Rock Cave", true, ['PowerGlove', 'Lamp']], - ["Spectacle Rock Cave", true, ['TitansMitt', 'Lamp']], + ["Spectacle Rock Cave", true, ['PegasusBoots']], ["Spectacle Rock", false, []], - ["Spectacle Rock", true, ['Flute', 'MagicMirror']], - ["Spectacle Rock", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror']], - ["Spectacle Rock", true, ['PowerGlove', 'Lamp', 'MagicMirror']], - ["Spectacle Rock", true, ['TitansMitt', 'Lamp', 'MagicMirror']], + ["Spectacle Rock", true, ['PegasusBoots']], ]; } } diff --git a/tests/OverworldGlitches/DesertPalaceTest.php b/tests/OverworldGlitches/DesertPalaceTest.php index 91915db1b..564e8a127 100644 --- a/tests/OverworldGlitches/DesertPalaceTest.php +++ b/tests/OverworldGlitches/DesertPalaceTest.php @@ -48,9 +48,7 @@ public function entryPool() { return [ [false, []], - [true, ['BookOfMudora']], - [true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove']], - [true, ['Flute', 'MagicMirror', 'TitansMitt']], + [true, ['PegasusBoots']], ]; } @@ -112,47 +110,28 @@ public function accessPool() { return [ ["Desert Palace - Map Chest", false, []], - ["Desert Palace - Map Chest", true, ['BookOfMudora']], - ["Desert Palace - Map Chest", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Desert Palace - Map Chest", true, ['Flute', 'MagicMirror', 'TitansMitt']], + ["Desert Palace - Map Chest", true, ['PegasusBoots']], ["Desert Palace - Big Chest", false, []], - ["Desert Palace - Big Chest", true, ['BookOfMudora', 'BigKeyP2']], - ["Desert Palace - Big Chest", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyP2']], - ["Desert Palace - Big Chest", true, ['Flute', 'MagicMirror', 'TitansMitt', 'BigKeyP2']], + ["Desert Palace - Big Chest", true, ['PegasusBoots', 'BigKeyP2']], ["Desert Palace - Torch", false, []], ["Desert Palace - Torch", false, [], ['PegasusBoots']], - ["Desert Palace - Torch", true, ['BookOfMudora', 'PegasusBoots']], - ["Desert Palace - Torch", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'PegasusBoots']], - ["Desert Palace - Torch", true, ['Flute', 'MagicMirror', 'TitansMitt', 'PegasusBoots']], + ["Desert Palace - Torch", true, ['PegasusBoots']], ["Desert Palace - Compass Chest", false, []], ["Desert Palace - Compass Chest", false, [], ['KeyP2']], - ["Desert Palace - Compass Chest", true, ['BookOfMudora', 'KeyP2']], - ["Desert Palace - Compass Chest", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'KeyP2']], - ["Desert Palace - Compass Chest", true, ['Flute', 'MagicMirror', 'TitansMitt', 'KeyP2']], + ["Desert Palace - Compass Chest", true, ['PegasusBoots', 'KeyP2']], ["Desert Palace - Big Key Chest", false, []], ["Desert Palace - Big Key Chest", false, [], ['KeyP2']], - ["Desert Palace - Big Key Chest", true, ['BookOfMudora', 'KeyP2']], - ["Desert Palace - Big Key Chest", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove', 'KeyP2']], - ["Desert Palace - Big Key Chest", true, ['Flute', 'MagicMirror', 'TitansMitt', 'KeyP2']], + ["Desert Palace - Big Key Chest", true, ['PegasusBoots', 'KeyP2']], ["Desert Palace - Boss", false, []], ["Desert Palace - Boss", false, [], ['KeyP2']], ["Desert Palace - Boss", false, [], ['BigKeyP2']], ["Desert Palace - Boss", false, [], ['Lamp', 'FireRod']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'Lamp', 'ProgressiveGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'Lamp', 'PowerGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'Lamp', 'TitansMitt', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'FireRod', 'ProgressiveGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'FireRod', 'PowerGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'BookOfMudora', 'FireRod', 'TitansMitt', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'Flute', 'MagicMirror', 'Lamp', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'Flute', 'MagicMirror', 'Lamp', 'TitansMitt', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'Flute', 'MagicMirror', 'FireRod', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyP2']], - ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'Flute', 'MagicMirror', 'FireRod', 'TitansMitt', 'BigKeyP2']], + ["Desert Palace - Boss", true, ['UncleSword', 'KeyP2', 'PegasusBoots', 'Lamp', 'BigKeyP2']], ]; } } diff --git a/tests/OverworldGlitches/EasternPalaceTest.php b/tests/OverworldGlitches/EasternPalaceTest.php index 5fb0ec6d6..c48798c59 100644 --- a/tests/OverworldGlitches/EasternPalaceTest.php +++ b/tests/OverworldGlitches/EasternPalaceTest.php @@ -107,7 +107,6 @@ public function accessPool() ["Eastern Palace - Big Key Chest", false, [], ['Lamp']], ["Eastern Palace - Big Key Chest", true, ['Lamp']], - ["Eastern Palace - Boss", false, []], ["Eastern Palace - Boss", false, [], ['Lamp']], ["Eastern Palace - Boss", false, [], ['AnyBow']], diff --git a/tests/OverworldGlitches/GanonsTowerTest.php b/tests/OverworldGlitches/GanonsTowerTest.php index d5399063b..61716f779 100644 --- a/tests/OverworldGlitches/GanonsTowerTest.php +++ b/tests/OverworldGlitches/GanonsTowerTest.php @@ -131,293 +131,133 @@ public function accessPool() return [ ["Ganon's Tower - Bob's Torch", false, []], ["Ganon's Tower - Bob's Torch", false, [], ['PegasusBoots']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - Bob's Torch", true, ['MoonPearl', 'PegasusBoots']], ["Ganon's Tower - DMs Room - Top Left", false, []], ["Ganon's Tower - DMs Room - Top Left", false, [], ['Hammer']], ["Ganon's Tower - DMs Room - Top Left", false, [], ['Hookshot']], - ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - DMs Room - Top Left", true, ['MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - DMs Room - Top Right", false, []], ["Ganon's Tower - DMs Room - Top Right", false, [], ['Hammer']], ["Ganon's Tower - DMs Room - Top Right", false, [], ['Hookshot']], - ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - DMs Room - Top Right", true, ['MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - DMs Room - Bottom Left", false, []], ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Hammer']], ["Ganon's Tower - DMs Room - Bottom Left", false, [], ['Hookshot']], - ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - DMs Room - Bottom Left", true, ['MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - DMs Room - Bottom Right", false, []], ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Hammer']], ["Ganon's Tower - DMs Room - Bottom Right", false, [], ['Hookshot']], - ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - DMs Room - Bottom Right", true, ['MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Randomizer Room - Top Left", false, []], ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Hammer']], ["Ganon's Tower - Randomizer Room - Top Left", false, [], ['Hookshot']], - ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - Randomizer Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Randomizer Room - Top Right", false, []], ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Hammer']], ["Ganon's Tower - Randomizer Room - Top Right", false, [], ['Hookshot']], - ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - Randomizer Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Randomizer Room - Bottom Left", false, []], ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Hammer']], ["Ganon's Tower - Randomizer Room - Bottom Left", false, [], ['Hookshot']], - ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - Randomizer Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Randomizer Room - Bottom Right", false, []], ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Hammer']], ["Ganon's Tower - Randomizer Room - Bottom Right", false, [], ['Hookshot']], - ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - Randomizer Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Firesnake Room", false, []], ["Ganon's Tower - Firesnake Room", false, [], ['Hammer']], ["Ganon's Tower - Firesnake Room", false, [], ['Hookshot']], - ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - Firesnake Room", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Map Chest", false, []], ["Ganon's Tower - Map Chest", false, [], ['Hammer']], ["Ganon's Tower - Map Chest", false, [], ['Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - Map Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Big Chest", false, []], ["Ganon's Tower - Big Chest", false, [], ['BigKeyA2']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Big Chest", true, ['BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Hope Room - Left", false, []], - ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - Hope Room - Left", true, ['MoonPearl', 'PegasusBoots']], ["Ganon's Tower - Hope Room - Right", false, []], - ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'PegasusBoots']], + ["Ganon's Tower - Hope Room - Right", true, ['MoonPearl', 'PegasusBoots']], ["Ganon's Tower - Bob's Chest", false, []], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Bob's Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Tile Room", false, []], ["Ganon's Tower - Tile Room", false, [], ['CaneOfSomaria']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], + ["Ganon's Tower - Tile Room", true, ['MoonPearl', 'TitansMitt', 'CaneOfSomaria', 'PegasusBoots']], ["Ganon's Tower - Compass Room - Top Left", false, []], ["Ganon's Tower - Compass Room - Top Left", false, [], ['CaneOfSomaria']], ["Ganon's Tower - Compass Room - Top Left", false, [], ['FireRod']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], + ["Ganon's Tower - Compass Room - Top Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'CaneOfSomaria', 'PegasusBoots']], ["Ganon's Tower - Compass Room - Top Right", false, []], ["Ganon's Tower - Compass Room - Top Right", false, [], ['CaneOfSomaria']], ["Ganon's Tower - Compass Room - Top Right", false, [], ['FireRod']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], + ["Ganon's Tower - Compass Room - Top Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'CaneOfSomaria', 'PegasusBoots']], ["Ganon's Tower - Compass Room - Bottom Left", false, []], ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['CaneOfSomaria']], ["Ganon's Tower - Compass Room - Bottom Left", false, [], ['FireRod']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], + ["Ganon's Tower - Compass Room - Bottom Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'CaneOfSomaria', 'PegasusBoots']], ["Ganon's Tower - Compass Room - Bottom Right", false, []], ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['CaneOfSomaria']], ["Ganon's Tower - Compass Room - Bottom Right", false, [], ['FireRod']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'PegasusBoots']], - ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'PegasusBoots']], + ["Ganon's Tower - Compass Room - Bottom Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'FireRod', 'MoonPearl', 'CaneOfSomaria', 'PegasusBoots']], ["Ganon's Tower - Big Key Chest", false, []], - ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Big Key Chest", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Big Key Chest", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Big Key Room - Left", false, []], - ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Big Key Room - Left", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Big Key Room - Left", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Big Key Room - Right", false, []], - ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Big Key Room - Right", true, ['UncleSword', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'CaneOfSomaria', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Big Key Room - Right", true, ['KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'Hammer', 'PegasusBoots']], ["Ganon's Tower - Mini Helmasaur Room - Left", false, []], ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['AnyBow']], ["Ganon's Tower - Mini Helmasaur Room - Left", false, [], ['BigKeyA2']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Lamp', 'PegasusBoots']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'FireRod', 'PegasusBoots']], ["Ganon's Tower - Mini Helmasaur Room - Right", false, []], ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['AnyBow']], ["Ganon's Tower - Mini Helmasaur Room - Right", false, [], ['BigKeyA2']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Lamp', 'PegasusBoots']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'FireRod', 'PegasusBoots']], ["Ganon's Tower - Pre-Moldorm Chest", false, []], ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['AnyBow']], ["Ganon's Tower - Pre-Moldorm Chest", false, [], ['BigKeyA2']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'MagicMirror', 'Hammer', 'PegasusBoots']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'MagicMirror', 'Hammer', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Lamp', 'PegasusBoots']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['BowAndArrows', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'FireRod', 'PegasusBoots']], ["Ganon's Tower - Moldorm Chest", false, []], ["Ganon's Tower - Moldorm Chest", false, [], ['Hookshot']], ["Ganon's Tower - Moldorm Chest", false, [], ['AnyBow']], ["Ganon's Tower - Moldorm Chest", false, [], ['BigKeyA2']], - ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'TitansMitt', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'PegasusBoots']], - ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Lamp', 'Hookshot', 'PegasusBoots']], - ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'PegasusBoots']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Lamp', 'Hookshot', 'PegasusBoots']], + ["Ganon's Tower - Moldorm Chest", true, ['BowAndArrows', 'UncleSword', 'BigKeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'MoonPearl', 'Hookshot', 'FireRod', 'PegasusBoots']], ]; } } diff --git a/tests/OverworldGlitches/IcePalaceTest.php b/tests/OverworldGlitches/IcePalaceTest.php index 333e8f182..fe3888e6c 100644 --- a/tests/OverworldGlitches/IcePalaceTest.php +++ b/tests/OverworldGlitches/IcePalaceTest.php @@ -92,261 +92,359 @@ public function accessPool() { return [ ["Ice Palace - Big Key Chest", false, []], + ["Ice Palace - Big Key Chest", false, [], ['Gloves']], ["Ice Palace - Big Key Chest", false, [], ['Hammer']], ["Ice Palace - Big Key Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'FireRod', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'FireRod', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], ["Ice Palace - Compass Chest", false, []], ["Ice Palace - Compass Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], - ["Ice Palace - Compass Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], + ["Ice Palace - Compass Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod']], + ["Ice Palace - Compass Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword']], + ["Ice Palace - Compass Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Compass Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword']], + ["Ice Palace - Compass Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword']], + ["Ice Palace - Compass Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword']], + ["Ice Palace - Compass Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], + ["Ice Palace - Compass Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], + ["Ice Palace - Compass Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Compass Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], + ["Ice Palace - Compass Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], + ["Ice Palace - Compass Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], + ["Ice Palace - Compass Chest", true, ['TitansMitt', 'FireRod']], + ["Ice Palace - Compass Chest", true, ['TitansMitt', 'Bombos', 'UncleSword']], + ["Ice Palace - Compass Chest", true, ['TitansMitt', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Compass Chest", true, ['TitansMitt', 'Bombos', 'MasterSword']], + ["Ice Palace - Compass Chest", true, ['TitansMitt', 'Bombos', 'L3Sword']], + ["Ice Palace - Compass Chest", true, ['TitansMitt', 'Bombos', 'L4Sword']], ["Ice Palace - Map Chest", false, []], + ["Ice Palace - Map Chest", false, [], ['Gloves']], ["Ice Palace - Map Chest", false, [], ['Hammer']], ["Ice Palace - Map Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'FireRod', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'FireRod', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Cape', 'KeyD5', 'KeyD5']], ["Ice Palace - Spike Room", false, []], ["Ice Palace - Spike Room", false, [], ['FireRod', 'Bombos', 'AnySword']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Cape', 'KeyD5', 'KeyD5']], + + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Cape', 'KeyD5', 'KeyD5']], + + ["Ice Palace - Spike Room", true, ['TitansMitt', 'FireRod', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'UncleSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'ProgressiveSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'MasterSword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'L3Sword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'FireRod', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'UncleSword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'ProgressiveSword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'MasterSword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'L3Sword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'L4Sword', 'CaneOfByrna', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'FireRod', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'UncleSword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'ProgressiveSword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'MasterSword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'L3Sword', 'Cape', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['TitansMitt', 'Bombos', 'L4Sword', 'Cape', 'KeyD5', 'KeyD5']], + + + ["Ice Palace - Freezor Chest", false, []], ["Ice Palace - Freezor Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], - ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], + ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod']], + ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword']], + ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword']], + ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword']], + ["Ice Palace - Freezor Chest", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword']], + ["Ice Palace - Freezor Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], + ["Ice Palace - Freezor Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], + ["Ice Palace - Freezor Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Freezor Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], + ["Ice Palace - Freezor Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], + ["Ice Palace - Freezor Chest", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'FireRod']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'Bombos', 'UncleSword']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'Bombos', 'MasterSword']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'Bombos', 'L3Sword']], + ["Ice Palace - Freezor Chest", true, ['TitansMitt', 'Bombos', 'L4Sword']], ["Ice Palace - Iced T Room", false, []], ["Ice Palace - Iced T Room", false, [], ['FireRod', 'Bombos', 'AnySword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], - ["Ice Palace - Iced T Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], + ["Ice Palace - Iced T Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod']], + ["Ice Palace - Iced T Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword']], + ["Ice Palace - Iced T Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Iced T Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword']], + ["Ice Palace - Iced T Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword']], + ["Ice Palace - Iced T Room", true, ['MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword']], + ["Ice Palace - Iced T Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], + ["Ice Palace - Iced T Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], + ["Ice Palace - Iced T Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Iced T Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], + ["Ice Palace - Iced T Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], + ["Ice Palace - Iced T Room", true, ['ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], + ["Ice Palace - Iced T Room", true, ['TitansMitt', 'FireRod']], + ["Ice Palace - Iced T Room", true, ['TitansMitt', 'Bombos', 'UncleSword']], + ["Ice Palace - Iced T Room", true, ['TitansMitt', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Iced T Room", true, ['TitansMitt', 'Bombos', 'MasterSword']], + ["Ice Palace - Iced T Room", true, ['TitansMitt', 'Bombos', 'L3Sword']], + ["Ice Palace - Iced T Room", true, ['TitansMitt', 'Bombos', 'L4Sword']], ["Ice Palace - Big Chest", false, []], ["Ice Palace - Big Chest", false, [], ['BigKeyD5']], ["Ice Palace - Big Chest", false, [], ['FireRod', 'Bombos', 'AnySword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], - ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'TitansMitt', 'FireRod']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'UncleSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'ProgressiveSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'MasterSword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'L3Sword']], + ["Ice Palace - Big Chest", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'L4Sword']], ["Ice Palace - Boss", false, []], + ["Ice Palace - Boss", false, [], ['Gloves']], ["Ice Palace - Boss", false, [], ['Hammer']], ["Ice Palace - Boss", false, [], ['BigKeyD5']], ["Ice Palace - Boss", false, [], ['FireRod', 'Bombos', 'AnySword']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Boss", true, ['BigKeyD5', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'PowerGlove', 'MoonPearl', 'PegasusBoots', 'Flippers', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'FireRod', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Boss", true, ['BigKeyD5', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'CaneOfSomaria', 'KeyD5']], ]; } } diff --git a/tests/OverworldGlitches/LightWorldTest.php b/tests/OverworldGlitches/LightWorldTest.php index 41c0ec44d..1ac17080a 100644 --- a/tests/OverworldGlitches/LightWorldTest.php +++ b/tests/OverworldGlitches/LightWorldTest.php @@ -62,12 +62,7 @@ public function accessPool() ["King's Tomb", false, [], ['PegasusBoots']], ["King's Tomb", true, ['PegasusBoots', 'ProgressiveGlove', 'ProgressiveGlove']], ["King's Tomb", true, ['PegasusBoots', 'TitansMitt']], - ["King's Tomb", true, ['PegasusBoots', 'ProgressiveGlove', 'Hammer', 'MoonPearl', 'MagicMirror']], - ["King's Tomb", true, ['PegasusBoots', 'PowerGlove', 'Hammer', 'MoonPearl', 'MagicMirror']], - ["King's Tomb", true, ['PegasusBoots', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'MoonPearl', 'MagicMirror']], - ["King's Tomb", true, ['PegasusBoots', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'MoonPearl', 'MagicMirror']], - ["King's Tomb", true, ['PegasusBoots', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'MoonPearl', 'MagicMirror']], - ["King's Tomb", true, ['PegasusBoots', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'MoonPearl', 'MagicMirror']], + ["King's Tomb", true, ['PegasusBoots', 'MagicMirror']], ["Floodgate Chest", true, []], @@ -127,9 +122,7 @@ public function accessPool() ["Magic Bat", false, []], ["Magic Bat", false, [], ['Powder']], - ["Magic Bat", true, ['Powder', 'Hammer']], - ["Magic Bat", true, ['Powder', 'ProgressiveGlove', 'ProgressiveGlove', 'MoonPearl', 'MagicMirror']], - ["Magic Bat", true, ['Powder', 'TitansMitt', 'MoonPearl', 'MagicMirror']], + ["Magic Bat", true, ['Powder', 'PegasusBoots']], ["Sick Kid", false, []], ["Sick Kid", false, [], ['AnyBottle']], @@ -146,34 +139,10 @@ public function accessPool() ["Bombos Tablet", false, []], ["Bombos Tablet", false, [], ['UpgradedSword']], ["Bombos Tablet", false, [], ['BookOfMudora']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'TitansMitt']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'TitansMitt']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'TitansMitt']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'TitansMitt']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'ProgressiveGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'ProgressiveGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'ProgressiveGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'ProgressiveGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'PowerGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'PowerGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'PowerGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'PowerGlove', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'DefeatAgahnim', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'DefeatAgahnim', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'DefeatAgahnim', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'DefeatAgahnim', 'Hammer']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword', 'DefeatAgahnim', 'Flippers', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L2Sword', 'DefeatAgahnim', 'Flippers', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L3Sword', 'DefeatAgahnim', 'Flippers', 'Hookshot']], - ["Bombos Tablet", true, ['MoonPearl', 'MagicMirror', 'BookOfMudora', 'L4Sword', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Bombos Tablet", true, ['PegasusBoots', 'BookOfMudora', 'ProgressiveSword', 'ProgressiveSword']], + ["Bombos Tablet", true, ['PegasusBoots', 'BookOfMudora', 'L2Sword']], + ["Bombos Tablet", true, ['PegasusBoots', 'BookOfMudora', 'L3Sword']], + ["Bombos Tablet", true, ['PegasusBoots', 'BookOfMudora', 'L4Sword']], ["King Zora", true, []], @@ -185,27 +154,16 @@ public function accessPool() ["Lumberjack Tree", true, ['PegasusBoots', 'DefeatAgahnim']], ["Cave 45", false, []], - ["Cave 45", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Cave 45", true, ['MoonPearl', 'MagicMirror', 'TitansMitt']], - ["Cave 45", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer']], - ["Cave 45", true, ['MoonPearl', 'MagicMirror', 'PowerGlove', 'Hammer']], - ["Cave 45", true, ['MoonPearl', 'MagicMirror', 'DefeatAgahnim', 'Hammer']], - ["Cave 45", true, ['MoonPearl', 'MagicMirror', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Cave 45", true, ['MoonPearl', 'MagicMirror', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Cave 45", true, ['PegasusBoots']], ["Graveyard Ledge", false, []], - ["Graveyard Ledge", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Graveyard Ledge", true, ['MoonPearl', 'MagicMirror', 'TitansMitt']], - ["Graveyard Ledge", true, ['MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer']], - ["Graveyard Ledge", true, ['MoonPearl', 'MagicMirror', 'PowerGlove', 'Hammer']], - ["Graveyard Ledge", true, ['MoonPearl', 'MagicMirror', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Graveyard Ledge", true, ['MoonPearl', 'MagicMirror', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Graveyard Ledge", true, ['MoonPearl', 'MagicMirror', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Graveyard Ledge", true, ['PegasusBoots']], ["Checkerboard Cave", false, []], ["Checkerboard Cave", false, [], ['Gloves']], - ["Checkerboard Cave", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Checkerboard Cave", true, ['Flute', 'MagicMirror', 'TitansMitt']], + ["Checkerboard Cave", true, ['PegasusBoots', 'ProgressiveGlove']], + ["Checkerboard Cave", true, ['PegasusBoots', 'PowerGlove']], + ["Checkerboard Cave", true, ['PegasusBoots', 'TitansMitt']], ["Mini Moldorm Cave - NPC", true, []], @@ -222,22 +180,15 @@ public function accessPool() ["Maze Race", true, []], ["Desert Ledge", false, []], - ["Desert Ledge", true, ['BookOfMudora']], - ["Desert Ledge", true, ['Flute', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Desert Ledge", true, ['Flute', 'MagicMirror', 'TitansMitt']], + ["Desert Ledge", true, ['PegasusBoots']], ["Lake Hylia Island", false, []], - ["Lake Hylia Island", true, ['Flippers', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Lake Hylia Island", true, ['Flippers', 'MoonPearl', 'MagicMirror', 'TitansMitt']], - ["Lake Hylia Island", true, ['Flippers', 'MoonPearl', 'MagicMirror', 'ProgressiveGlove', 'Hammer']], - ["Lake Hylia Island", true, ['Flippers', 'MoonPearl', 'MagicMirror', 'PowerGlove', 'Hammer']], - ["Lake Hylia Island", true, ['Flippers', 'MoonPearl', 'MagicMirror', 'DefeatAgahnim']], + ["Lake Hylia Island", true, ['PegasusBoots']], ["Sunken Treasure", true, []], ["Zora's Ledge", false, []], - ["Zora's Ledge", true, ['Flippers']], - ["Zora's Ledge", true, ['MoonPearl', 'PegasusBoots']], + ["Zora's Ledge", true, ['PegasusBoots']], ["Flute Spot", false, []], ["Flute Spot", false, [], ['Shovel']], diff --git a/tests/OverworldGlitches/MiseryMireTest.php b/tests/OverworldGlitches/MiseryMireTest.php index 766c1370e..e1843d19c 100644 --- a/tests/OverworldGlitches/MiseryMireTest.php +++ b/tests/OverworldGlitches/MiseryMireTest.php @@ -95,143 +95,77 @@ public function accessPool() ["Misery Mire - Big Chest", false, []], ["Misery Mire - Big Chest", false, [], ['MoonPearl']], ["Misery Mire - Big Chest", false, [], ['BigKeyD6']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Big Chest", true, ['BigKeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'L4Sword']], ["Misery Mire - Main Lobby", false, []], ["Misery Mire - Main Lobby", false, [], ['MoonPearl']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Main Lobby", true, ['KeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'L4Sword']], ["Misery Mire - Big Key Chest", false, []], ["Misery Mire - Big Key Chest", false, [], ['MoonPearl']], ["Misery Mire - Big Key Chest", false, [], ['FireRod', 'Lamp']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'PegasusBoots', 'Ether', 'L4Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Big Key Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'PegasusBoots', 'Ether', 'L4Sword']], ["Misery Mire - Compass Chest", false, []], ["Misery Mire - Compass Chest", false, [], ['MoonPearl']], ["Misery Mire - Compass Chest", false, [], ['FireRod', 'Lamp']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'FireRod', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Compass Chest", true, ['KeyD6', 'KeyD6', 'KeyD6', 'Lamp', 'MoonPearl', 'PegasusBoots', 'Ether', 'L4Sword']], ["Misery Mire - Bridge Chest", false, []], ["Misery Mire - Bridge Chest", false, [], ['MoonPearl']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Bridge Chest", true, ['MoonPearl', 'PegasusBoots', 'Ether', 'L4Sword']], ["Misery Mire - Map Chest", false, []], ["Misery Mire - Map Chest", false, [], ['MoonPearl']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Map Chest", true, ['KeyD6', 'MoonPearl', 'PegasusBoots', 'Ether', 'L4Sword']], ["Misery Mire - Spike Chest", false, []], ["Misery Mire - Spike Chest", false, [], ['MoonPearl']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot', 'CaneOfByrna']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots', 'Cape']], - ["Misery Mire - Spike Chest", true, ['MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot', 'Cape']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Spike Chest", true, ['MoonPearl', 'PegasusBoots', 'Ether', 'L4Sword']], ["Misery Mire - Boss", false, []], ["Misery Mire - Boss", false, [], ['MoonPearl']], ["Misery Mire - Boss", false, [], ['Lamp']], ["Misery Mire - Boss", false, [], ['CaneOfSomaria']], ["Misery Mire - Boss", false, [], ['BigKeyD6']], - ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'PegasusBoots']], - ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'UncleSword', 'Hookshot']], - ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'PegasusBoots']], - ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'ProgressiveSword', 'Hookshot']], - ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'PegasusBoots']], - ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'MasterSword', 'Hookshot']], - ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'PegasusBoots']], - ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L3Sword', 'Hookshot']], - ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'PegasusBoots']], - ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'Flute', 'TitansMitt', 'Ether', 'L4Sword', 'Hookshot']], - + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'PegasusBoots', 'Ether', 'UncleSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'PegasusBoots', 'Ether', 'ProgressiveSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'PegasusBoots', 'Ether', 'MasterSword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'PegasusBoots', 'Ether', 'L3Sword']], + ["Misery Mire - Boss", true, ['KeyD6', 'KeyD6', 'BigKeyD6', 'Lamp', 'CaneOfSomaria', 'MoonPearl', 'PegasusBoots', 'Ether', 'L4Sword']], ]; } } diff --git a/tests/OverworldGlitches/OpenTest.php b/tests/OverworldGlitches/OpenTest.php new file mode 100644 index 000000000..c04e900b1 --- /dev/null +++ b/tests/OverworldGlitches/OpenTest.php @@ -0,0 +1,129 @@ +world = World::factory('open', ['difficulty' => 'test_rules', 'logic' => 'OverworldGlitches']); + $this->collected->setChecksForWorld($this->world->id); + } + + public function tearDown(): void + { + parent::tearDown(); + unset($this->world); + } + + /** + * @param string $location + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider accessPool + */ + public function testLocation(string $location, bool $access, array $items, array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->canAccess($this->collected)); + } + + /** + * @param string $location + * @param bool $access + * @param string $item + * @param array $items + * @param array $except + * + * @dataProvider fillPool + */ + public function testFillLocation(string $location, bool $access, string $item, array $items = [], array $except = []) + { + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getLocation($location) + ->fill(Item::get($item, $this->world), $this->collected)); + } + + public function fillPool() + { + return [ + + ["Sanctuary", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Left", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Middle", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Secret Room - Right", true, 'KeyH2', [], ['KeyH2']], + + ["Sewers - Dark Cross", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Boomerang Chest", false, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Map Chest", true, 'KeyH2', [], ['KeyH2']], + + ["Hyrule Castle - Zelda's Cell", false, 'KeyH2', [], ['KeyH2']], + ]; + } + + public function accessPool() + { + return [ + ["Sanctuary", true, []], + + ["Sewers - Secret Room - Left", False, []], + ["Sewers - Secret Room - Left", true, ['ProgressiveGlove']], + ["Sewers - Secret Room - Left", true, ['PowerGlove']], + ["Sewers - Secret Room - Left", true, ['TitansMitt']], + ["Sewers - Secret Room - Left", true, ['Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Middle", false, []], + ["Sewers - Secret Room - Middle", true, ['ProgressiveGlove']], + ["Sewers - Secret Room - Middle", true, ['PowerGlove']], + ["Sewers - Secret Room - Middle", true, ['TitansMitt']], + ["Sewers - Secret Room - Middle", true, ['Lamp', 'KeyH2']], + + ["Sewers - Secret Room - Right", false, []], + ["Sewers - Secret Room - Right", true, ['ProgressiveGlove']], + ["Sewers - Secret Room - Right", true, ['PowerGlove']], + ["Sewers - Secret Room - Right", true, ['TitansMitt']], + ["Sewers - Secret Room - Right", true, ['Lamp', 'KeyH2']], + + ["Sewers - Dark Cross", False, [], ['Lamp']], + ["Sewers - Dark Cross", true, ['Lamp']], + + ["Hyrule Castle - Boomerang Chest", false, []], + ["Hyrule Castle - Boomerang Chest", true, ['KeyH2']], + + ["Hyrule Castle - Map Chest", true, []], + + ["Hyrule Castle - Zelda's Cell", false, []], + ["Hyrule Castle - Zelda's Cell", true, ['KeyH2']], + + ["Link's Uncle", true, []], + + ["Secret Passage", true, []], + ]; + } +} diff --git a/tests/OverworldGlitches/PalaceOfDarknessTest.php b/tests/OverworldGlitches/PalaceOfDarknessTest.php index 8fdd8480a..cb735de26 100644 --- a/tests/OverworldGlitches/PalaceOfDarknessTest.php +++ b/tests/OverworldGlitches/PalaceOfDarknessTest.php @@ -49,6 +49,10 @@ public function entryPool() return [ [false, []], [false, ['MoonPearl']], + [false, ['PegasusBoots']], + [true, ['MoonPearl', 'PegasusBoots']], + [true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + [true, ['MoonPearl', 'TitansMitt']], ]; } @@ -132,136 +136,91 @@ public function accessPool() return [ ["Palace of Darkness - Big Key Chest", false, []], ["Palace of Darkness - Big Key Chest", false, [], ['MoonPearl']], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'PegasusBoots']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Big Key Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'TitansMitt']], ["Palace of Darkness - The Arena - Ledge", false, []], ["Palace of Darkness - The Arena - Ledge", false, [], ['MoonPearl']], ["Palace of Darkness - The Arena - Ledge", false, [], ['AnyBow']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'PegasusBoots']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - The Arena - Ledge", true, ['BowAndArrows', 'MoonPearl', 'TitansMitt']], ["Palace of Darkness - The Arena - Bridge", false, []], ["Palace of Darkness - The Arena - Bridge", false, [], ['MoonPearl']], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Palace of Darkness - The Arena - Bridge", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - The Arena - Bridge", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'PowerGlove']], - ["Palace of Darkness - The Arena - Bridge", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'TitansMitt']], - ["Palace of Darkness - The Arena - Bridge", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'ProgressiveGlove']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'PegasusBoots']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - The Arena - Bridge", true, ['KeyD1', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - The Arena - Bridge", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'PegasusBoots']], ["Palace of Darkness - Big Chest", false, []], ["Palace of Darkness - Big Chest", false, [], ['MoonPearl']], ["Palace of Darkness - Big Chest", false, [], ['Lamp']], ["Palace of Darkness - Big Chest", false, [], ['BigKeyD1']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'DefeatAgahnim']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'PegasusBoots']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Big Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'TitansMitt']], ["Palace of Darkness - Compass Chest", false, []], ["Palace of Darkness - Compass Chest", false, [], ['MoonPearl']], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'PegasusBoots']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Compass Chest", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'TitansMitt']], ["Palace of Darkness - Harmless Hellway", false, []], ["Palace of Darkness - Harmless Hellway", false, [], ['MoonPearl']], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'PegasusBoots']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Harmless Hellway", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'TitansMitt']], ["Palace of Darkness - Stalfos Basement", false, []], ["Palace of Darkness - Stalfos Basement", false, [], ['MoonPearl']], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Palace of Darkness - Stalfos Basement", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Stalfos Basement", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'PowerGlove']], - ["Palace of Darkness - Stalfos Basement", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'TitansMitt']], - ["Palace of Darkness - Stalfos Basement", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'ProgressiveGlove']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'PegasusBoots']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Stalfos Basement", true, ['KeyD1', 'MoonPearl', 'TitansMitt']], + ["Palace of Darkness - Stalfos Basement", true, ['BowAndArrows', 'Hammer', 'MoonPearl', 'PegasusBoots']], ["Palace of Darkness - Dark Basement - Left", false, []], ["Palace of Darkness - Dark Basement - Left", false, [], ['MoonPearl']], ["Palace of Darkness - Dark Basement - Left", false, [], ['Lamp']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'PegasusBoots']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Basement - Left", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'TitansMitt']], ["Palace of Darkness - Dark Basement - Right", false, []], ["Palace of Darkness - Dark Basement - Right", false, [], ['MoonPearl']], ["Palace of Darkness - Dark Basement - Right", false, [], ['Lamp']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'PegasusBoots']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Basement - Right", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'Lamp', 'MoonPearl', 'TitansMitt']], ["Palace of Darkness - Map Chest", false, []], ["Palace of Darkness - Map Chest", false, [], ['MoonPearl']], ["Palace of Darkness - Map Chest", false, [], ['AnyBow']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'PegasusBoots']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Map Chest", true, ['BowAndArrows', 'MoonPearl', 'TitansMitt']], ["Palace of Darkness - Dark Maze - Top", false, []], ["Palace of Darkness - Dark Maze - Top", false, [], ['MoonPearl']], ["Palace of Darkness - Dark Maze - Top", false, [], ['Lamp']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'DefeatAgahnim']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'PegasusBoots']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Maze - Top", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'TitansMitt']], ["Palace of Darkness - Dark Maze - Bottom", false, []], ["Palace of Darkness - Dark Maze - Bottom", false, [], ['MoonPearl']], ["Palace of Darkness - Dark Maze - Bottom", false, [], ['Lamp']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'DefeatAgahnim']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'PegasusBoots']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Dark Maze - Bottom", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'MoonPearl', 'Lamp', 'TitansMitt']], ["Palace of Darkness - Shooter Room", false, []], ["Palace of Darkness - Shooter Room", false, [], ['MoonPearl']], - ["Palace of Darkness - Shooter Room", true, ['MoonPearl', 'DefeatAgahnim']], - ["Palace of Darkness - Shooter Room", true, ['MoonPearl', 'Hammer', 'PowerGlove']], - ["Palace of Darkness - Shooter Room", true, ['MoonPearl', 'Hammer', 'TitansMitt']], - ["Palace of Darkness - Shooter Room", true, ['MoonPearl', 'Hammer', 'ProgressiveGlove']], - ["Palace of Darkness - Shooter Room", true, ['MoonPearl', 'Flippers', 'TitansMitt']], - ["Palace of Darkness - Shooter Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Shooter Room", true, ['MoonPearl', 'PegasusBoots']], + ["Palace of Darkness - Shooter Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], + ["Palace of Darkness - Shooter Room", true, ['MoonPearl', 'TitansMitt']], ["Palace of Darkness - Boss", false, []], ["Palace of Darkness - Boss", false, [], ['MoonPearl']], @@ -269,10 +228,7 @@ public function accessPool() ["Palace of Darkness - Boss", false, [], ['Hammer']], ["Palace of Darkness - Boss", false, [], ['AnyBow']], ["Palace of Darkness - Boss", false, [], ['BigKeyD1']], - ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'BowAndArrows', 'DefeatAgahnim']], - ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'BowAndArrows', 'PowerGlove']], - ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'BowAndArrows', 'TitansMitt']], - ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'BowAndArrows', 'ProgressiveGlove']], + ["Palace of Darkness - Boss", true, ['KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', 'MoonPearl', 'Lamp', 'Hammer', 'BowAndArrows', 'PegasusBoots']], ]; } } diff --git a/tests/OverworldGlitches/SkullWoodsTest.php b/tests/OverworldGlitches/SkullWoodsTest.php index be7881f3a..7c4e54dce 100644 --- a/tests/OverworldGlitches/SkullWoodsTest.php +++ b/tests/OverworldGlitches/SkullWoodsTest.php @@ -95,119 +95,43 @@ public function accessPool() return [ ["Skull Woods - Big Chest", false, []], ["Skull Woods - Big Chest", false, [], ['BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'TitansMitt', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD3']], - ["Skull Woods - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD3']], + ["Skull Woods - Big Chest", true, ['MagicMirror', 'PegasusBoots', 'BigKeyD3']], + ["Skull Woods - Big Chest", true, ['MoonPearl', 'PegasusBoots', 'BigKeyD3']], ["Skull Woods - Big Key Chest", false, []], - ["Skull Woods - Big Key Chest", true, ['MoonPearl', 'TitansMitt']], - ["Skull Woods - Big Key Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Skull Woods - Big Key Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Skull Woods - Big Key Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Skull Woods - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Skull Woods - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Skull Woods - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Skull Woods - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Skull Woods - Big Key Chest", true, ['MagicMirror', 'PegasusBoots']], + ["Skull Woods - Big Key Chest", true, ['MoonPearl', 'PegasusBoots']], ["Skull Woods - Compass Chest", false, []], - ["Skull Woods - Compass Chest", true, ['MoonPearl', 'TitansMitt']], - ["Skull Woods - Compass Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Skull Woods - Compass Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Skull Woods - Compass Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Skull Woods - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Skull Woods - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Skull Woods - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Skull Woods - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Skull Woods - Compass Chest", true, ['MagicMirror', 'PegasusBoots']], + ["Skull Woods - Compass Chest", true, ['MoonPearl', 'PegasusBoots']], ["Skull Woods - Map Chest", false, []], - ["Skull Woods - Map Chest", true, ['MoonPearl', 'TitansMitt']], - ["Skull Woods - Map Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Skull Woods - Map Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Skull Woods - Map Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Skull Woods - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Skull Woods - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Skull Woods - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Skull Woods - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Skull Woods - Map Chest", true, ['MagicMirror', 'PegasusBoots']], + ["Skull Woods - Map Chest", true, ['MoonPearl', 'PegasusBoots']], ["Skull Woods - Bridge Room", false, []], + ["Skull Woods - Bridge Room", false, [], ['MoonPearl']], ["Skull Woods - Bridge Room", false, [], ['FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'TitansMitt', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod']], - ["Skull Woods - Bridge Room", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod']], + ["Skull Woods - Bridge Room", true, ['MoonPearl', 'PegasusBoots', 'FireRod']], ["Skull Woods - Pot Prison", false, []], - ["Skull Woods - Pot Prison", true, ['MoonPearl', 'TitansMitt']], - ["Skull Woods - Pot Prison", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Skull Woods - Pot Prison", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Skull Woods - Pot Prison", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Skull Woods - Pot Prison", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Skull Woods - Pot Prison", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Skull Woods - Pot Prison", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Skull Woods - Pot Prison", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Skull Woods - Pot Prison", true, ['MagicMirror', 'PegasusBoots']], + ["Skull Woods - Pot Prison", true, ['MoonPearl', 'PegasusBoots']], ["Skull Woods - Pinball Room", false, []], - ["Skull Woods - Pinball Room", true, ['MoonPearl', 'TitansMitt']], - ["Skull Woods - Pinball Room", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Skull Woods - Pinball Room", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Skull Woods - Pinball Room", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Skull Woods - Pinball Room", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Skull Woods - Pinball Room", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Skull Woods - Pinball Room", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Skull Woods - Pinball Room", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Skull Woods - Pinball Room", true, ['MagicMirror', 'PegasusBoots']], + ["Skull Woods - Pinball Room", true, ['MoonPearl', 'PegasusBoots']], ["Skull Woods - Boss", false, []], + ["Skull Woods - Boss", false, [], ['MoonPearl']], ["Skull Woods - Boss", false, [], ['FireRod']], ["Skull Woods - Boss", false, [], ['AnySword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'TitansMitt', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'TitansMitt', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'TitansMitt', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'TitansMitt', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'TitansMitt', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PowerGlove', 'Hammer', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'FireRod', 'ProgressiveSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod', 'UncleSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod', 'MasterSword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod', 'L3Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod', 'L4Sword']], - ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'FireRod', 'ProgressiveSword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PegasusBoots', 'FireRod', 'UncleSword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PegasusBoots', 'FireRod', 'MasterSword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PegasusBoots', 'FireRod', 'L3Sword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PegasusBoots', 'FireRod', 'L4Sword']], + ["Skull Woods - Boss", true, ['KeyD3', 'KeyD3', 'KeyD3', 'MoonPearl', 'PegasusBoots', 'FireRod', 'ProgressiveSword']], ]; } } diff --git a/tests/OverworldGlitches/SwampPalaceTest.php b/tests/OverworldGlitches/SwampPalaceTest.php index 51204b1ad..51d5b2bd7 100644 --- a/tests/OverworldGlitches/SwampPalaceTest.php +++ b/tests/OverworldGlitches/SwampPalaceTest.php @@ -99,12 +99,7 @@ public function accessPool() ["Swamp Palace - Entrance", false, [], ['MagicMirror']], ["Swamp Palace - Entrance", false, [], ['MoonPearl']], ["Swamp Palace - Entrance", false, [], ['Flippers']], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], - ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hookshot']], + ["Swamp Palace - Entrance", true, ['MagicMirror', 'MoonPearl', 'Flippers', 'PegasusBoots']], ["Swamp Palace - Big Chest", false, []], ["Swamp Palace - Big Chest", false, [], ['MagicMirror']], @@ -112,51 +107,34 @@ public function accessPool() ["Swamp Palace - Big Chest", false, [], ['Flippers']], ["Swamp Palace - Big Chest", false, [], ['Hammer']], ["Swamp Palace - Big Chest", false, [], ['BigKeyD2']], - ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], - ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + ["Swamp Palace - Big Chest", true, ['BigKeyD2', 'KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PegasusBoots', 'Hammer']], ["Swamp Palace - Big Key Chest", false, []], ["Swamp Palace - Big Key Chest", false, [], ['MagicMirror']], ["Swamp Palace - Big Key Chest", false, [], ['MoonPearl']], ["Swamp Palace - Big Key Chest", false, [], ['Flippers']], ["Swamp Palace - Big Key Chest", false, [], ['Hammer']], - ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], - ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + ["Swamp Palace - Big Key Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PegasusBoots', 'Hammer']], ["Swamp Palace - Map Chest", false, []], ["Swamp Palace - Map Chest", false, [], ['MagicMirror']], ["Swamp Palace - Map Chest", false, [], ['MoonPearl']], ["Swamp Palace - Map Chest", false, [], ['Flippers']], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt']], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], - ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hookshot']], + ["Swamp Palace - Map Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PegasusBoots']], ["Swamp Palace - West Chest", false, []], ["Swamp Palace - West Chest", false, [], ['MagicMirror']], ["Swamp Palace - West Chest", false, [], ['MoonPearl']], ["Swamp Palace - West Chest", false, [], ['Flippers']], ["Swamp Palace - West Chest", false, [], ['Hammer']], - ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], - ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + ["Swamp Palace - West Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PegasusBoots', 'Hammer']], ["Swamp Palace - Compass Chest", false, []], ["Swamp Palace - Compass Chest", false, [], ['MagicMirror']], ["Swamp Palace - Compass Chest", false, [], ['MoonPearl']], ["Swamp Palace - Compass Chest", false, [], ['Flippers']], ["Swamp Palace - Compass Chest", false, [], ['Hammer']], - ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer']], - ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer']], - ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer']], - ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer']], + ["Swamp Palace - Compass Chest", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PegasusBoots', 'Hammer']], ["Swamp Palace - Flooded Room - Left", false, []], ["Swamp Palace - Flooded Room - Left", false, [], ['MagicMirror']], @@ -164,10 +142,7 @@ public function accessPool() ["Swamp Palace - Flooded Room - Left", false, [], ['Flippers']], ["Swamp Palace - Flooded Room - Left", false, [], ['Hammer']], ["Swamp Palace - Flooded Room - Left", false, [], ['Hookshot']], - ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Left", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PegasusBoots', 'Hammer', 'Hookshot']], ["Swamp Palace - Flooded Room - Right", false, []], ["Swamp Palace - Flooded Room - Right", false, [], ['MagicMirror']], @@ -175,10 +150,7 @@ public function accessPool() ["Swamp Palace - Flooded Room - Right", false, [], ['Flippers']], ["Swamp Palace - Flooded Room - Right", false, [], ['Hammer']], ["Swamp Palace - Flooded Room - Right", false, [], ['Hookshot']], - ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + ["Swamp Palace - Flooded Room - Right", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PegasusBoots', 'Hammer', 'Hookshot']], ["Swamp Palace - Waterfall Room", false, []], ["Swamp Palace - Waterfall Room", false, [], ['MagicMirror']], @@ -186,10 +158,7 @@ public function accessPool() ["Swamp Palace - Waterfall Room", false, [], ['Flippers']], ["Swamp Palace - Waterfall Room", false, [], ['Hammer']], ["Swamp Palace - Waterfall Room", false, [], ['Hookshot']], - ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], - ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + ["Swamp Palace - Waterfall Room", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PegasusBoots', 'Hammer', 'Hookshot']], ["Swamp Palace - Boss", false, []], ["Swamp Palace - Boss", false, [], ['MagicMirror']], @@ -197,10 +166,7 @@ public function accessPool() ["Swamp Palace - Boss", false, [], ['Flippers']], ["Swamp Palace - Boss", false, [], ['Hammer']], ["Swamp Palace - Boss", false, [], ['Hookshot']], - ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'TitansMitt', 'Hammer', 'Hookshot']], - ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PowerGlove', 'Hammer', 'Hookshot']], - ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'DefeatAgahnim', 'Hammer', 'Hookshot']], + ["Swamp Palace - Boss", true, ['KeyD2', 'MagicMirror', 'MoonPearl', 'Flippers', 'PegasusBoots', 'Hammer', 'Hookshot']], ]; } } diff --git a/tests/OverworldGlitches/ThievesTownTest.php b/tests/OverworldGlitches/ThievesTownTest.php index ccc7f5dab..2a798b83e 100644 --- a/tests/OverworldGlitches/ThievesTownTest.php +++ b/tests/OverworldGlitches/ThievesTownTest.php @@ -100,123 +100,45 @@ public function accessPool() ["Thieves' Town - Attic", false, []], ["Thieves' Town - Attic", false, [], ['MoonPearl']], ["Thieves' Town - Attic", false, [], ['BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'TitansMitt', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Attic", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Attic", true, ['MoonPearl', 'PegasusBoots', 'KeyD4', 'BigKeyD4']], ["Thieves' Town - Big Key Chest", false, []], ["Thieves' Town - Big Key Chest", false, [], ['MoonPearl']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'TitansMitt']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Thieves' Town - Big Key Chest", true, ['MoonPearl', 'PegasusBoots']], ["Thieves' Town - Map Chest", false, []], ["Thieves' Town - Map Chest", false, [], ['MoonPearl']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'TitansMitt']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Thieves' Town - Map Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Thieves' Town - Map Chest", true, ['MoonPearl', 'PegasusBoots']], ["Thieves' Town - Compass Chest", false, []], ["Thieves' Town - Compass Chest", false, [], ['MoonPearl']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'TitansMitt']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Thieves' Town - Compass Chest", true, ['MoonPearl', 'PegasusBoots']], ["Thieves' Town - Ambush Chest", false, []], ["Thieves' Town - Ambush Chest", false, [], ['MoonPearl']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'TitansMitt']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot']], - ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot']], + ["Thieves' Town - Ambush Chest", true, ['MoonPearl', 'PegasusBoots']], ["Thieves' Town - Big Chest", false, []], ["Thieves' Town - Big Chest", false, [], ['MoonPearl']], ["Thieves' Town - Big Chest", false, [], ['BigKeyD4']], - ["Thieves' Town - Big Chest", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Big Chest", true, ['MoonPearl', 'TitansMitt', 'Hammer', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Big Chest", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'KeyD4', 'BigKeyD4']], - ["Thieves' Town - Big Chest", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hammer', 'Hookshot', 'KeyD4', 'BigKeyD4']], + ["Thieves' Town - Big Chest", true, ['MoonPearl', 'PegasusBoots', 'Hammer', 'KeyD4', 'BigKeyD4']], ["Thieves' Town - Blind's Cell", false, []], ["Thieves' Town - Blind's Cell", false, [], ['MoonPearl']], ["Thieves' Town - Blind's Cell", false, [], ['BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'TitansMitt', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'ProgressiveGlove', 'Hammer', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'PowerGlove', 'Hammer', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4']], - ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4']], + ["Thieves' Town - Blind's Cell", true, ['MoonPearl', 'PegasusBoots', 'BigKeyD4']], ["Thieves' Town - Boss", false, []], ["Thieves' Town - Boss", false, [], ['MoonPearl']], ["Thieves' Town - Boss", false, [], ['BigKeyD4']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'PowerGlove', 'Hammer', 'BigKeyD4']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Hammer', 'Hookshot', 'BigKeyD4']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'Hammer', 'BigKeyD4']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'ProgressiveSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'UncleSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'MasterSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'L3Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'L4Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'CaneOfByrna']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'CaneOfSomaria']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'TitansMitt', 'BigKeyD4', 'Hammer']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'ProgressiveSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'UncleSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'MasterSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'L3Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'L4Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'CaneOfByrna']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'ProgressiveGlove', 'ProgressiveGlove', 'BigKeyD4', 'CaneOfSomaria']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'ProgressiveSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'UncleSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'MasterSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'L3Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'L4Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'CaneOfByrna']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'ProgressiveGlove', 'Hookshot', 'BigKeyD4', 'CaneOfSomaria']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'ProgressiveSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'UncleSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'MasterSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'L3Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'L4Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'CaneOfByrna']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'PowerGlove', 'Hookshot', 'BigKeyD4', 'CaneOfSomaria']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'ProgressiveSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'UncleSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'MasterSword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'L3Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'L4Sword']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'CaneOfByrna']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'CaneOfSomaria']], - ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'DefeatAgahnim', 'Flippers', 'Hookshot', 'BigKeyD4', 'Hammer']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'PegasusBoots', 'BigKeyD4', 'ProgressiveSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'PegasusBoots', 'BigKeyD4', 'UncleSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'PegasusBoots', 'BigKeyD4', 'MasterSword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'PegasusBoots', 'BigKeyD4', 'L3Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'PegasusBoots', 'BigKeyD4', 'L4Sword']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'PegasusBoots', 'BigKeyD4', 'CaneOfByrna']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'PegasusBoots', 'BigKeyD4', 'CaneOfSomaria']], + ["Thieves' Town - Boss", true, ['KeyD4', 'MoonPearl', 'PegasusBoots', 'BigKeyD4', 'Hammer']], ]; } } diff --git a/tests/OverworldGlitches/TowerOfHeraTest.php b/tests/OverworldGlitches/TowerOfHeraTest.php index b84511137..cea88626c 100644 --- a/tests/OverworldGlitches/TowerOfHeraTest.php +++ b/tests/OverworldGlitches/TowerOfHeraTest.php @@ -25,10 +25,31 @@ public function tearDown(): void unset($this->world); } - // Entry - public function testCanEnterWithEverything() + /** + * @param bool $access + * @param array $items + * @param array $except + * + * @dataProvider entryPool + */ + public function testEntry(bool $access, array $items, array $except = []) { - $this->assertTrue($this->world->getRegion('Tower of Hera')->canEnter($this->world->getLocations(), $this->allItems())); + if (count($except)) { + $this->collected = $this->allItemsExcept($except); + } + + $this->addCollected($items); + + $this->assertEquals($access, $this->world->getRegion('Tower of Hera') + ->canEnter($this->world->getLocations(), $this->collected)); + } + + public function entryPool() + { + return [ + [false, []], + [true, ['PegasusBoots']], + ]; } /** @@ -97,83 +118,28 @@ public function accessPool() { return [ ["Tower of Hera - Big Key Chest", false, []], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Flute', 'MagicMirror', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'ProgressiveGlove', 'MagicMirror', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'PowerGlove', 'MagicMirror', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'TitansMitt', 'MagicMirror', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'Flute', 'Hookshot', 'Hammer', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'ProgressiveGlove', 'Hookshot', 'Hammer', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'PowerGlove', 'Hookshot', 'Hammer', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['Lamp', 'TitansMitt', 'Hookshot', 'Hammer', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Flute', 'MagicMirror', 'KeyP3']], - ["Tower of Hera - Big Key Chest", true, ['FireRod', 'Flute', 'Hookshot', 'Hammer', 'KeyP3']], + ["Tower of Hera - Big Key Chest", true, ['Lamp', 'PegasusBoots', 'KeyP3']], ["Tower of Hera - Basement Cage", false, []], - ["Tower of Hera - Basement Cage", true, ['Flute', 'MagicMirror']], - ["Tower of Hera - Basement Cage", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror']], - ["Tower of Hera - Basement Cage", true, ['PowerGlove', 'Lamp', 'MagicMirror']], - ["Tower of Hera - Basement Cage", true, ['TitansMitt', 'Lamp', 'MagicMirror']], - ["Tower of Hera - Basement Cage", true, ['Flute', 'Hookshot', 'Hammer']], - ["Tower of Hera - Basement Cage", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer']], - ["Tower of Hera - Basement Cage", true, ['PowerGlove', 'Lamp', 'Hookshot', 'Hammer']], - ["Tower of Hera - Basement Cage", true, ['TitansMitt', 'Lamp', 'Hookshot', 'Hammer']], + ["Tower of Hera - Basement Cage", true, ['PegasusBoots']], ["Tower of Hera - Map Chest", false, []], - ["Tower of Hera - Map Chest", true, ['Flute', 'MagicMirror']], - ["Tower of Hera - Map Chest", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror']], - ["Tower of Hera - Map Chest", true, ['PowerGlove', 'Lamp', 'MagicMirror']], - ["Tower of Hera - Map Chest", true, ['TitansMitt', 'Lamp', 'MagicMirror']], - ["Tower of Hera - Map Chest", true, ['Flute', 'Hookshot', 'Hammer']], - ["Tower of Hera - Map Chest", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer']], - ["Tower of Hera - Map Chest", true, ['PowerGlove', 'Lamp', 'Hookshot', 'Hammer']], - ["Tower of Hera - Map Chest", true, ['TitansMitt', 'Lamp', 'Hookshot', 'Hammer']], + ["Tower of Hera - Map Chest", true, ['PegasusBoots']], ["Tower of Hera - Compass Chest", false, []], - ["Tower of Hera - Compass Chest", true, ['Flute', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['Flute', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['PowerGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Compass Chest", true, ['TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Compass Chest", true, ['PegasusBoots', 'BigKeyP3']], ["Tower of Hera - Big Chest", false, []], - ["Tower of Hera - Big Chest", true, ['Flute', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['Flute', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['PowerGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Big Chest", true, ['TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Big Chest", true, ['PegasusBoots', 'BigKeyP3']], ["Tower of Hera - Boss", false, []], ["Tower of Hera - Boss", false, [], ['AnySword', 'Hammer']], - ["Tower of Hera - Boss", true, ['Flute', 'MagicMirror', 'BigKeyP3', 'ProgressiveSword']], - ["Tower of Hera - Boss", true, ['Flute', 'MagicMirror', 'BigKeyP3', 'UncleSword']], - ["Tower of Hera - Boss", true, ['Flute', 'MagicMirror', 'BigKeyP3', 'MasterSword']], - ["Tower of Hera - Boss", true, ['Flute', 'MagicMirror', 'BigKeyP3', 'L3Sword']], - ["Tower of Hera - Boss", true, ['Flute', 'MagicMirror', 'BigKeyP3', 'L4Sword']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'UncleSword']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'MasterSword']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'ProgressiveSword']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L3Sword']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L4Sword']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'UncleSword']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'MasterSword']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'ProgressiveSword']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L3Sword']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L4Sword']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3', 'UncleSword']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3', 'MasterSword']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3', 'ProgressiveSword']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L3Sword']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'MagicMirror', 'BigKeyP3', 'L4Sword']], - ["Tower of Hera - Boss", true, ['Flute', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Boss", true, ['ProgressiveGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Boss", true, ['PowerGlove', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], - ["Tower of Hera - Boss", true, ['TitansMitt', 'Lamp', 'Hookshot', 'Hammer', 'BigKeyP3']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'BigKeyP3', 'ProgressiveSword']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'BigKeyP3', 'UncleSword']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'BigKeyP3', 'MasterSword']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'BigKeyP3', 'L3Sword']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'BigKeyP3', 'L4Sword']], + ["Tower of Hera - Boss", true, ['PegasusBoots', 'BigKeyP3', 'Hammer']], ]; } } diff --git a/tests/OverworldGlitches/TurtleRockTest.php b/tests/OverworldGlitches/TurtleRockTest.php index 6fc207155..bc197b5de 100644 --- a/tests/OverworldGlitches/TurtleRockTest.php +++ b/tests/OverworldGlitches/TurtleRockTest.php @@ -102,163 +102,126 @@ public function accessPool() { return [ ["Turtle Rock - Chain Chomps", false, []], - ["Turtle Rock - Chain Chomps", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7']], - ["Turtle Rock - Chain Chomps", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7']], + ["Turtle Rock - Chain Chomps", true, ['MoonPearl', 'PegasusBoots']], + ["Turtle Rock - Chain Chomps", true, ['PegasusBoots', 'MagicMirror', 'Hammer']], + ["Turtle Rock - Chain Chomps", true, ['PegasusBoots', 'MagicMirror', 'TitansMitt']], ["Turtle Rock - Compass Chest", false, []], ["Turtle Rock - Compass Chest", false, [], ['CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria']], - ["Turtle Rock - Compass Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria']], + ["Turtle Rock - Compass Chest", true, ['MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + ["Turtle Rock - Compass Chest", true, ['PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + ["Turtle Rock - Compass Chest", true, ['PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], ["Turtle Rock - Roller Room - Left", false, []], ["Turtle Rock - Roller Room - Left", false, [], ['CaneOfSomaria']], ["Turtle Rock - Roller Room - Left", false, [], ['FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Left", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], + ["Turtle Rock - Roller Room - Left", true, ['MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'FireRod']], + ["Turtle Rock - Roller Room - Left", true, ['PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'FireRod']], + ["Turtle Rock - Roller Room - Left", true, ['PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'FireRod']], ["Turtle Rock - Roller Room - Right", false, []], ["Turtle Rock - Roller Room - Right", false, [], ['CaneOfSomaria']], ["Turtle Rock - Roller Room - Right", false, [], ['FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], - ["Turtle Rock - Roller Room - Right", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'FireRod']], + ["Turtle Rock - Roller Room - Right", true, ['MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'FireRod']], + ["Turtle Rock - Roller Room - Right", true, ['PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'FireRod']], + ["Turtle Rock - Roller Room - Right", true, ['PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'FireRod']], ["Turtle Rock - Big Chest", false, []], ["Turtle Rock - Big Chest", false, [], ['BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Big Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Big Chest", true, ['MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'BigKeyD7']], + ["Turtle Rock - Big Chest", true, ['PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'BigKeyD7']], + ["Turtle Rock - Big Chest", true, ['PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'BigKeyD7']], + ["Turtle Rock - Big Chest", true, ['MoonPearl', 'PegasusBoots', 'Hookshot', 'BigKeyD7']], + ["Turtle Rock - Big Chest", true, ['PegasusBoots', 'MagicMirror', 'Hammer', 'Hookshot', 'BigKeyD7']], + ["Turtle Rock - Big Chest", true, ['PegasusBoots', 'MagicMirror', 'TitansMitt', 'Hookshot', 'BigKeyD7']], ["Turtle Rock - Big Key Chest", false, []], - ["Turtle Rock - Big Key Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], - ["Turtle Rock - Big Key Chest", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7']], + ["Turtle Rock - Big Key Chest", true, ['MoonPearl', 'PegasusBoots', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + ["Turtle Rock - Big Key Chest", true, ['PegasusBoots', 'MagicMirror', 'Hammer', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], + ["Turtle Rock - Big Key Chest", true, ['PegasusBoots', 'MagicMirror', 'TitansMitt', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7']], ["Turtle Rock - Crystaroller Room", false, []], ["Turtle Rock - Crystaroller Room", false, [], ['BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Flute', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Flute', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Crystaroller Room", true, ['Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Crystaroller Room", true, ['MoonPearl', 'PegasusBoots', 'BigKeyD7']], + ["Turtle Rock - Crystaroller Room", true, ['PegasusBoots', 'MagicMirror', 'Hammer', 'BigKeyD7']], + ["Turtle Rock - Crystaroller Room", true, ['PegasusBoots', 'MagicMirror', 'TitansMitt', 'BigKeyD7']], ["Turtle Rock - Eye Bridge - Bottom Left", false, []], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'Cape', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'Cape', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'Cape', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfByrna', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfByrna', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'CaneOfByrna', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'MirrorShield', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'MirrorShield', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'MirrorShield', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], ["Turtle Rock - Eye Bridge - Bottom Right", false, []], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'Cape', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'Cape', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'Cape', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfByrna', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfByrna', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'CaneOfByrna', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'MirrorShield', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'MirrorShield', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'MirrorShield', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Bottom Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], ["Turtle Rock - Eye Bridge - Top Left", false, []], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'Cape', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'Cape', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'Cape', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfByrna', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfByrna', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'CaneOfByrna', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'MirrorShield', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'MirrorShield', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'MirrorShield', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Left", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], ["Turtle Rock - Eye Bridge - Top Right", false, []], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'Cape', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'Cape', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfByrna', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfByrna', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'MirrorShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'MirrorShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'Cape', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'Cape', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'Cape', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfByrna', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfByrna', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'CaneOfByrna', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'MirrorShield', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'MirrorShield', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'MirrorShield', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'MoonPearl', 'PegasusBoots', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Eye Bridge - Top Right", true, ['Lamp', 'ProgressiveShield', 'ProgressiveShield', 'ProgressiveShield', 'PegasusBoots', 'MagicMirror', 'TitansMitt', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], ["Turtle Rock - Boss", false, []], ["Turtle Rock - Boss", false, [], ['CaneOfSomaria']], ["Turtle Rock - Boss", false, [], ['IceRod']], ["Turtle Rock - Boss", false, [], ['FireRod']], + ["Turtle Rock - Boss", false, [], ['AnySword', 'Hammer']], ["Turtle Rock - Boss", false, [], ['BigKeyD7']], - ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'UncleSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], - ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'Hookshot', 'MoonPearl', 'TitansMitt', 'Hammer', 'Quake', 'ProgressiveSword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MoonPearl', 'PegasusBoots', 'UncleSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'UncleSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MoonPearl', 'PegasusBoots', 'ProgressiveSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'ProgressiveSword', 'Bottle', 'Bottle', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MoonPearl', 'PegasusBoots', 'MasterSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'MasterSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MoonPearl', 'PegasusBoots', 'ProgressiveSword', 'ProgressiveSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'ProgressiveSword', 'ProgressiveSword', 'Bottle', 'Bottle', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MoonPearl', 'PegasusBoots', 'L3Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'L3Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MoonPearl', 'PegasusBoots', 'L4Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MagicMirror', 'TitansMitt', 'L4Sword', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'MoonPearl', 'PegasusBoots', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], + ["Turtle Rock - Boss", true, ['IceRod', 'FireRod', 'Lamp', 'PegasusBoots', 'MagicMirror', 'Hammer', 'CaneOfSomaria', 'KeyD7', 'KeyD7', 'KeyD7', 'KeyD7', 'BigKeyD7']], ]; } -} +} \ No newline at end of file diff --git a/tests/RetroBowTest.php b/tests/RetroBowTest.php index 73b3627dd..e66a7f2d4 100644 --- a/tests/RetroBowTest.php +++ b/tests/RetroBowTest.php @@ -16,10 +16,10 @@ public function setUp(): void parent::setUp(); $this->world = World::factory('retro', ['difficulty' => 'test_rules', 'logic' => 'NoGlitches']); $this->addCollected(['RescueZelda', 'Lamp', 'BigKeyP1', 'MoonPearl', - 'UncleSword', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'FireRod', + 'UncleSword', 'ProgressiveGlove', 'ProgressiveGlove', 'Flute', 'Hookshot', 'Hammer', 'FireRod', 'Crystal1', 'Crystal2', 'Crystal3', 'Crystal4', 'Crystal5', 'Crystal6', 'Crystal7', - 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', - 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'BigKeyA2']); + 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'KeyD1', 'BigKeyD1', + 'KeyA2', 'KeyA2', 'KeyA2', 'KeyA2', 'BigKeyA2']); $this->collected->setChecksForWorld($this->world->id); } @@ -53,35 +53,43 @@ public function accessPool() { return [ ["Eastern Palace - Boss", false, ['ProgressiveBow']], - ["Eastern Palace - Boss", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Eastern Palace - Boss", false, ['ProgressiveBow', 'ProgressiveBow']], + ["Eastern Palace - Boss", true, ['ProgressiveBow', 'SilverArrowUpgrade']], ["Eastern Palace - Boss", true, ['ProgressiveBow', 'ShopArrow']], ["Palace of Darkness - Boss", false, ['ProgressiveBow']], - ["Palace of Darkness - Boss", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Palace of Darkness - Boss", false, ['ProgressiveBow', 'ProgressiveBow']], + ["Palace of Darkness - Boss", true, ['ProgressiveBow', 'SilverArrowUpgrade']], ["Palace of Darkness - Boss", true, ['ProgressiveBow', 'ShopArrow']], ["Palace of Darkness - The Arena - Ledge", false, ['ProgressiveBow']], - ["Palace of Darkness - The Arena - Ledge", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Palace of Darkness - The Arena - Ledge", false, ['ProgressiveBow', 'ProgressiveBow']], + ["Palace of Darkness - The Arena - Ledge", true, ['ProgressiveBow', 'SilverArrowUpgrade']], ["Palace of Darkness - The Arena - Ledge", true, ['ProgressiveBow', 'ShopArrow']], ["Palace of Darkness - Map Chest", false, ['ProgressiveBow']], - ["Palace of Darkness - Map Chest", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Palace of Darkness - Map Chest", false, ['ProgressiveBow', 'ProgressiveBow']], + ["Palace of Darkness - Map Chest", true, ['ProgressiveBow', 'SilverArrowUpgrade']], ["Palace of Darkness - Map Chest", true, ['ProgressiveBow', 'ShopArrow']], ["Ganon's Tower - Mini Helmasaur Room - Left", false, ['ProgressiveBow']], - ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Mini Helmasaur Room - Left", false, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['ProgressiveBow', 'SilverArrowUpgrade']], ["Ganon's Tower - Mini Helmasaur Room - Left", true, ['ProgressiveBow', 'ShopArrow']], ["Ganon's Tower - Mini Helmasaur Room - Right", false, ['ProgressiveBow']], - ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Mini Helmasaur Room - Right", false, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['ProgressiveBow', 'SilverArrowUpgrade']], ["Ganon's Tower - Mini Helmasaur Room - Right", true, ['ProgressiveBow', 'ShopArrow']], ["Ganon's Tower - Pre-Moldorm Chest", false, ['ProgressiveBow']], - ["Ganon's Tower - Pre-Moldorm Chest", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Pre-Moldorm Chest", false, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Pre-Moldorm Chest", true, ['ProgressiveBow', 'SilverArrowUpgrade']], ["Ganon's Tower - Pre-Moldorm Chest", true, ['ProgressiveBow', 'ShopArrow']], - + ["Ganon's Tower - Moldorm Chest", false, ['ProgressiveBow']], - ["Ganon's Tower - Moldorm Chest", true, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Moldorm Chest", false, ['ProgressiveBow', 'ProgressiveBow']], + ["Ganon's Tower - Moldorm Chest", true, ['ProgressiveBow', 'SilverArrowUpgrade']], ["Ganon's Tower - Moldorm Chest", true, ['ProgressiveBow', 'ShopArrow']], ]; } From 2bcaf943a7ee7d7bac1cd55e9db43234ab1331aa Mon Sep 17 00:00:00 2001 From: compiling <8335770+compiling@users.noreply.github.com> Date: Sat, 4 Jan 2020 02:42:31 +1000 Subject: [PATCH 16/19] Update Ice Palace ride side logic (#777) * Allow access to right side Ice Palace with infinite keys. * Fixes to Ice Palace Right Side logic: allow placing hookshot if the big key is on the right side. Always allow in retro mode, with the shop key. * Update unit tests for Ice Palace right side to account for the Big Key, and ignore the 2nd small key and Cape/Byrna. --- app/Region/Standard/IcePalace.php | 14 ++- tests/NoGlitches/IcePalaceTest.php | 180 +++++++++++++++++------------ 2 files changed, 118 insertions(+), 76 deletions(-) diff --git a/app/Region/Standard/IcePalace.php b/app/Region/Standard/IcePalace.php index f9f58bae7..9fecb876a 100644 --- a/app/Region/Standard/IcePalace.php +++ b/app/Region/Standard/IcePalace.php @@ -73,20 +73,26 @@ public function initalize() return $items->has('Hammer') && $items->canLiftRocks() && (!$this->world->config('region.cantTakeDamage', false) || $items->has('CaneOfByrna') || $items->has('Cape') || $items->has('Hookshot')) - && $this->locations["Ice Palace - Spike Room"]->canAccess($items, $locations); + && ($items->has('Hookshot') || $items->has('ShopKey') + || ($items->has('KeyD5', 1) && (!$items->has('BigKeyD5') || $locations->itemInLocations(Item::get('BigKeyD5', $this->world), + ['Ice Palace - Map Chest','Ice Palace - Spike Room'])))); }); $this->locations["Ice Palace - Map Chest"]->setRequirements(function ($locations, $items) { return $items->has('Hammer') && $items->canLiftRocks() && (!$this->world->config('region.cantTakeDamage', false) || $items->has('CaneOfByrna') || $items->has('Cape') || $items->has('Hookshot')) - && $this->locations["Ice Palace - Spike Room"]->canAccess($items, $locations); + && ($items->has('Hookshot') || $items->has('ShopKey') + || ($items->has('KeyD5', 1) && (!$items->has('BigKeyD5') || $locations->itemInLocations(Item::get('BigKeyD5', $this->world), + ['Ice Palace - Big Key Chest','Ice Palace - Spike Room'])))); }); $this->locations["Ice Palace - Spike Room"]->setRequirements(function ($locations, $items) { return (!$this->world->config('region.cantTakeDamage', false) - || $items->has('CaneOfByrna') || $items->has('Cape') || $items->has('Hookshot')) - && ($items->has('Hookshot') || ($items->has('BigKeyD5') ? $items->has('Hookshot') : $items->has('KeyD5', 1))); + || $items->has('CaneOfByrna') || $items->has('Cape') || $items->has('Hookshot')) + && ($items->has('Hookshot') || $items->has('ShopKey') + || ($items->has('KeyD5', 1) && (!$items->has('BigKeyD5') || $locations->itemInLocations(Item::get('BigKeyD5', $this->world), + ['Ice Palace - Big Key Chest','Ice Palace - Map Chest'])))); }); $this->locations["Ice Palace - Freezor Chest"]->setRequirements(function ($locations, $items) { diff --git a/tests/NoGlitches/IcePalaceTest.php b/tests/NoGlitches/IcePalaceTest.php index 922d82d9e..d6e4c6873 100644 --- a/tests/NoGlitches/IcePalaceTest.php +++ b/tests/NoGlitches/IcePalaceTest.php @@ -109,30 +109,42 @@ public function accessPool() ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Big Key Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Big Key Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'BigKeyD5']], ["Ice Palace - Compass Chest", false, []], ["Ice Palace - Compass Chest", false, [], ['TitansMitt']], @@ -182,30 +194,42 @@ public function accessPool() ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5']], ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], - ["Ice Palace - Map Chest", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Map Chest", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hammer', 'KeyD5', 'BigKeyD5']], ["Ice Palace - Spike Room", false, []], ["Ice Palace - Spike Room", false, [], ['TitansMitt']], @@ -224,30 +248,42 @@ public function accessPool() ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hookshot', 'KeyD5']], ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5']], ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['Cape', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], - ["Ice Palace - Spike Room", true, ['CaneOfByrna', 'MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'KeyD5', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'KeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", true, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'Hookshot', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'FireRod', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'FireRod', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'UncleSword', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'UncleSword', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'ProgressiveSword', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'ProgressiveSword', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'MasterSword', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'MasterSword', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L3Sword', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L3Sword', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'ProgressiveGlove', 'ProgressiveGlove', 'Bombos', 'L4Sword', 'KeyD5', 'BigKeyD5']], + ["Ice Palace - Spike Room", false, ['MoonPearl', 'Flippers', 'TitansMitt', 'Bombos', 'L4Sword', 'KeyD5', 'BigKeyD5']], ["Ice Palace - Freezor Chest", false, []], From ccea79e758bbd7b45d0c613022a241420d141eb2 Mon Sep 17 00:00:00 2001 From: PuzzleSecretary <39073962+PuzzleSecretary@users.noreply.github.com> Date: Thu, 9 Jan 2020 21:28:14 -0800 Subject: [PATCH 17/19] A community hint (#780) Because it came up in Twitch chat! --- strings/blind.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/strings/blind.txt b/strings/blind.txt index 11238a593..0bd73e821 100644 --- a/strings/blind.txt +++ b/strings/blind.txt @@ -168,3 +168,7 @@ Dark Aga Rooms are not a bright idea. - +Best advice +for a Goron? +Be Boulder. +- From 8c2d6549f68e84baf5853f23f9c2383dc15838bd Mon Sep 17 00:00:00 2001 From: PuzzleSecretary <39073962+PuzzleSecretary@users.noreply.github.com> Date: Sun, 9 Feb 2020 17:32:08 -0800 Subject: [PATCH 18/19] Yet another pun (#783) --- strings/blind.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/strings/blind.txt b/strings/blind.txt index 0bd73e821..64e185b3c 100644 --- a/strings/blind.txt +++ b/strings/blind.txt @@ -172,3 +172,7 @@ Best advice for a Goron? Be Boulder. - +Equestrian +services are +a stable job. +- From 97ff061819c1d7c853f3c2b866a10593c4634ceb Mon Sep 17 00:00:00 2001 From: Thomas Prescott Date: Sun, 9 Feb 2020 19:34:51 -0600 Subject: [PATCH 19/19] Misc updates for v31.0.4 (#775) * add v31.0.4 patch notes * add clarification regarding dark rooms * customizer, add enemizer support * only customize prize packs if asked * misc changes to updates blade * advise new players to generate a normal rom instead of a race rom * fix spelling * Revert "only customize prize packs if asked" This reverts commit abcaf9f15c29dc8963d54c6a7115af120d87ca2c. * update the updates blade * update patch notes * include logic updates from #777 * fix typo in updates blade * Crowd Control: Leave max armor at default (2) Crowd Control: Fix BugCatchingNet not being removed from CC item pool Crowd Control: Remove 10 keys from Retro instead of 15 * Crowd Control: Make blue mail the max armor upgrade Daily: Add support getting the hash of the current daily as json instead of scraping /en/daily * update patch note regarding CC armor * Add addition of daily API endpoint to change log * ensure mystery preserves the special in the meta (this is for future festives) * add a config option "ignoreCanKillEscapeThings" customizer will set this to true if an item is manually placed at Uncle This allows the customizer to manually place Uncle's item, however it could result in an unbeatable game if not used wisely (similar to other customizer options) * more patch notes updates * update standard world state text on options page --- app/Http/Controllers/CustomizerController.php | 11 +++- app/Http/Controllers/RandomizerController.php | 3 +- app/Jobs/SendPatchToDisk.php | 3 +- app/Support/ItemCollection.php | 3 +- app/World.php | 4 +- app/World/Retro.php | 2 +- resources/js/views/Customizer.vue | 52 ++++++++++++++++++- resources/js/vue-i18n-locales.generated.js | 6 +-- resources/lang/en/options.php | 2 +- resources/lang/en/resources.php | 5 +- resources/lang/en/rom.php | 2 +- resources/views/updates.blade.php | 32 +++++++++++- routes/api.php | 16 ++++++ 13 files changed, 123 insertions(+), 18 deletions(-) diff --git a/app/Http/Controllers/CustomizerController.php b/app/Http/Controllers/CustomizerController.php index 3528853b2..f14725f19 100644 --- a/app/Http/Controllers/CustomizerController.php +++ b/app/Http/Controllers/CustomizerController.php @@ -2,6 +2,7 @@ namespace ALttP\Http\Controllers; +use ALttP\Enemizer; use ALttP\Item; use ALttP\Jobs\SendPatchToDisk; use ALttP\Randomizer; @@ -52,7 +53,8 @@ public function generateSeed(Request $request) 'build', 'tournament', 'spoilers', - 'size' + 'size', + 'special' ]); break; case "off": @@ -175,6 +177,7 @@ protected function prepSeed(Request $request, bool $save = false) 'enemizer.enemyShuffle' => $request->input('enemizer.enemy_shuffle', 'none'), 'enemizer.enemyDamage' => $request->input('enemizer.enemy_damage', 'default'), 'enemizer.enemyHealth' => $request->input('enemizer.enemy_health', 'default'), + 'ignoreCanKillEscapeThings' => array_key_exists(base64_encode("Link's Uncle:1"), $request->input('l')), 'customPrizePacks' => true, ], $custom_data)); @@ -243,6 +246,12 @@ protected function prepSeed(Request $request, bool $save = false) 'difficulty' => 'custom', ])); + if ($world->isEnemized()) { + $patch = $rom->getWriteLog(); + $en = new Enemizer($world, $patch); + $en->randomize(); + $en->writeToRom($rom); + } if ($request->input('tournament', false)) { $rom->setTournamentType('standard'); diff --git a/app/Http/Controllers/RandomizerController.php b/app/Http/Controllers/RandomizerController.php index c3dc2386e..849fcc0ac 100644 --- a/app/Http/Controllers/RandomizerController.php +++ b/app/Http/Controllers/RandomizerController.php @@ -48,7 +48,8 @@ public function generateSeed(CreateRandomizedGame $request) 'build', 'tournament', 'spoilers', - 'size' + 'size', + 'special' ]); break; case "off": diff --git a/app/Jobs/SendPatchToDisk.php b/app/Jobs/SendPatchToDisk.php index 4598ed88e..e7b2d7f6f 100644 --- a/app/Jobs/SendPatchToDisk.php +++ b/app/Jobs/SendPatchToDisk.php @@ -54,7 +54,8 @@ public function handle() 'build', 'tournament', 'spoilers', - 'size' + 'size', + 'special' ]); break; case "generate": diff --git a/app/Support/ItemCollection.php b/app/Support/ItemCollection.php index 47e2ef664..983d7e3a8 100644 --- a/app/Support/ItemCollection.php +++ b/app/Support/ItemCollection.php @@ -542,7 +542,8 @@ public function canKillEscapeThings(World $world) && $world->config('enemizer.enemyHealth', 'default') == 'default') || $this->canShootArrows($world) || $this->has('Hammer') - || $this->has('FireRod'); + || $this->has('FireRod') + || $world->config('ignoreCanKillEscapeThings', false); } /** diff --git a/app/World.php b/app/World.php index ff39589f4..76dbd2727 100644 --- a/app/World.php +++ b/app/World.php @@ -153,12 +153,12 @@ public function __construct(int $id = 0, array $config = []) break; case 'crowd_control': $this->config['item.overflow.count.Sword'] = 4; - $this->config['item.overflow.count.Armor'] = 0; + $this->config['item.overflow.count.Armor'] = 1; $this->config['item.overflow.count.Shield'] = 0; $this->config['item.overflow.count.Bow'] = 1; $this->config['item.overflow.count.BossHeartContainer'] = 1; $this->config['item.overflow.count.PieceOfHeart'] = 20; - $this->config['item.count.BugNet'] = 0; + $this->config['item.count.BugCatchingNet'] = 0; $this->config['item.count.HalfMagic'] = 0; $this->config['item.count.CaneOfByrna'] = 0; $this->config['item.count.Cape'] = 0; diff --git a/app/World/Retro.php b/app/World/Retro.php index 00fc1fece..c61b73c79 100644 --- a/app/World/Retro.php +++ b/app/World/Retro.php @@ -26,7 +26,6 @@ public function __construct(int $id = 0, array $config = []) switch ($this->config('item.pool')) { case 'hard': case 'expert': - case 'crowd_control': $this->config['item.count.KeyD1'] = 0; $this->config['item.count.KeyA2'] = 0; $this->config['item.count.KeyD7'] = 0; @@ -34,6 +33,7 @@ public function __construct(int $id = 0, array $config = []) $this->config['item.count.TwentyRupees2'] = 15 + $this->config('item.count.TwentyRupees2', 0); break; + case 'crowd_control': case 'normal': $this->config['item.count.KeyD1'] = 0; $this->config['item.count.KeyA2'] = 0; diff --git a/resources/js/views/Customizer.vue b/resources/js/views/Customizer.vue index d379f2ee6..2ea3c511d 100644 --- a/resources/js/views/Customizer.vue +++ b/resources/js/views/Customizer.vue @@ -131,6 +131,22 @@ >{{ $t('randomizer.hints.title') }}
+
+
+ +
+
+ +
+
{{ $t('randomizer.difficulty.title') }}
@@ -156,6 +172,20 @@ :options="optionsItemFunctionality" >{{ $t('randomizer.item_functionality.title') }}
+
+ +
+
+ +
@@ -380,9 +410,13 @@ export default { "randomizer.ganon_open", "randomizer.world_state", "randomizer.hints", + "randomizer.boss_shuffle", + "randomizer.enemy_shuffle", "randomizer.weapons", "randomizer.item_pool", - "randomizer.item_functionality" + "randomizer.item_functionality", + "randomizer.enemy_damage", + "randomizer.enemy_health" ], restore_lookup: { "randomizer.glitches_required": "setGlitchesRequired", @@ -394,9 +428,13 @@ export default { "randomizer.ganon_open": "setGanonOpen", "randomizer.world_state": "setWorldState", "randomizer.hints": "setHints", + "randomizer.boss_shuffle": "setBossShuffle", + "randomizer.enemy_shuffle": "setEnemyShuffle", "randomizer.weapons": "setWeapons", "randomizer.item_pool": "setItemPool", - "randomizer.item_functionality": "setItemFunctionality" + "randomizer.item_functionality": "setItemFunctionality", + "randomizer.enemy_damage": "setEnemyDamage", + "randomizer.enemy_health": "setEnemyHealth" } }; }, @@ -492,6 +530,12 @@ export default { tournament: this.spoiler.value !== "on", spoilers: this.spoiler.value, lang: document.documentElement.lang, + enemizer: { + boss_shuffle: this.bossShuffle.value, + enemy_shuffle: this.enemyShuffle.value, + enemy_damage: this.enemyDamage.value, + enemy_health: this.enemyHealth.value + }, name: this.choice.name, notes: this.choice.notes, l: this.locations, @@ -659,6 +703,10 @@ export default { localforage.removeItem("randomizer.weapons"), localforage.removeItem("randomizer.item_pool"), localforage.removeItem("randomizer.item_functionality"), + localforage.removeItem("randomizer.enemy_health"), + localforage.removeItem("randomizer.enemy_damage"), + localforage.removeItem("randomizer.enemy_shuffle"), + localforage.removeItem("randomizer.boss_shuffle"), this.$store.dispatch("nukeStore") ]; Promise.all(promises).then(() => { diff --git a/resources/js/vue-i18n-locales.generated.js b/resources/js/vue-i18n-locales.generated.js index 8a542f0d6..4a0133c5b 100644 --- a/resources/js/vue-i18n-locales.generated.js +++ b/resources/js/vue-i18n-locales.generated.js @@ -1284,9 +1284,9 @@ export default { } }, "generate": { - "race": "Generate ROM", + "race": "Generate Race ROM", "race_warning": "Spoilers will never be available for this option.", - "spoiler_race": "Generate ROM (with spoilers)", + "spoiler_race": "Generate Normal ROM", "back": "Change Settings", "regenerate": "Generate Again", "regenerate_tooltip": "Generate new game with same settings", @@ -1336,7 +1336,7 @@ export default { "loader": { "title": "Getting Started", "file_select": "Select ROM File", - "content": "
  1. Select your rom file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
  2. Select the Game Options for how you would like your game randomized
  3. Click Generate ROM
  4. Then Save your rom and get to playing
" + "content": "
  1. Select your rom file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
  2. Select the Game Options for how you would like your game randomized
  3. Click Generate Normal ROM
  4. Then Save your rom and get to playing
" }, "info": { "spoilerwarning": "WARNING: The generator of this game viewed the spoiler log.", diff --git a/resources/lang/en/options.php b/resources/lang/en/options.php index 3da01019e..2ab97e4c7 100644 --- a/resources/lang/en/options.php +++ b/resources/lang/en/options.php @@ -179,7 +179,7 @@ [ 'header' => __('randomizer.world_state.options.standard'), 'content' => [ - 'This setting is the closest to the original game. It retains the initial prologue of rescuing Zelda in Hyrule Castle and delivering her to the Sanctuary. This must be completed before you are free to explore Hyrule. Your uncle is guaranteed to give you an item which lets you clear the prologue (although not necessarily a sword). You are given a light cone for navigating the dark rooms of the Sewers even without the Lamp (although any future visits to dark rooms, including the Sewers, will be in total darkness until you find the Lamp).', + 'This setting is the closest to the original game. It retains the initial prologue of rescuing Zelda in Hyrule Castle and delivering her to the Sanctuary. This must be completed before you are free to explore Hyrule. Your uncle is guaranteed to give you an item which lets you clear the prologue (although not necessarily a sword). You are given a light cone for navigating the dark rooms of the Sewers even without the Lamp (although any future visits to other dark rooms, except for the Sewers, will be in total darkness until you find the Lamp).', ], ], [ diff --git a/resources/lang/en/resources.php b/resources/lang/en/resources.php index 72c590fec..7449f2f38 100644 --- a/resources/lang/en/resources.php +++ b/resources/lang/en/resources.php @@ -42,9 +42,10 @@ . '
  • Sahasrahla gives you his item when you speak to him with the Pendant of Courage.
  • ' . '
  • The Super Bomb spawns when you have acquired crystals 5 and 6.
  • ' . '
  • The Smith and the Purple Chest will stay following you through Save and Quit.
  • ' - . '
  • You are never required to navigate a dark room; the lamp will be available to light your way, so go out and find it!
  • ' + . '
  • You are never required to navigate a dark room; the lamp will be available to light your way, so go out and find it! *
  • ' . '
  • Keys might not be accessible if they are not required to finish the game. For instance, the Skull Woods big key might be in the big chest.
  • ' - . '', + . '' + . '* Advanced Item Placement may require limited dark room navigation using Fire Rod.', ], ], 'changes' => [ diff --git a/resources/lang/en/rom.php b/resources/lang/en/rom.php index b1b34a945..2578b6775 100644 --- a/resources/lang/en/rom.php +++ b/resources/lang/en/rom.php @@ -6,7 +6,7 @@ 'content' => '
      ' . '
    1. Select your rom file and load it into the browser (Please use a Zelda no Densetsu: Kamigami no Triforce v1.0 ROM with an .smc or .sfc extension)
    2. ' . '
    3. Select the ' . __('navigation.options') . ' for how you would like your game randomized
    4. ' - . '
    5. Click ' . __('randomizer.generate.race') . '
    6. ' + . '
    7. Click ' . __('randomizer.generate.spoiler_race') . '
    8. ' . '
    9. Then Save your rom and get to playing
    10. ' . '
    ', ], diff --git a/resources/views/updates.blade.php b/resources/views/updates.blade.php index 9643b92bb..a51415657 100644 --- a/resources/views/updates.blade.php +++ b/resources/views/updates.blade.php @@ -2,6 +2,36 @@ @section('content') +

    v31.0.4

    +
    +
      +
    • The logic for Ganon was updated to include a fire source when playing Swordless weapons.
    • +
    • Minor logic fixes
    • +
        +
      • Open OWG/MG: Spinspeed entry into Ganon's Tower no longer requires a sword and instead can require Hookshot
      • +
      • Inverted: The Flippers will no longer ben placed on Lake Hylia island with No Glitches logic.
      • +
      • Inverted logic has new unit tests, which should ensure future logic bugs do not appear.
      • +
      • Fixed logic checks that involve ensuring the player can fire the bow.
      • +
      • Ice Palace: Allow access to the right side chests with one Small Key if the Big Key is accessible in a right-side chest (this permits access to these locations without the Hookshot).
      • +
      • Ice Palace: Allow access to the right-side chests in Retro World State, regardless of the Big Key location.
      • +
      • Other miscellaneous glitched logic bug fixes
      • +
      +
    • The correct number of small keys will be removed from the item pool when choosing Retro World State. This is based on the item pool setting (-10 keys for Normal, -15 for Hard and Expert).
    • +
    • Added additional text selections for Uncle, Blind, Ganon, and joke hints.
    • +
    • Vanilla swords now properly place all four Progressive Swords in the world, unless the goal is Master Sword Pedestal.
    • +
    • There is now a 5% chance that the daily challenge will be a mystery.
    • +
    • A new message will appear on the permalink for mystery games to indicate that it is a mystery game.
    • +
    • The hint Ganon provides for the Progressive Bow not found by the player will indicate if Silver Arrows were unobtainable. This hint applies to Hard, Expert, and Crowd Control item pool settings.
    • +
    • Renamed the "Generate ROM" and "Generate ROM (with spoilers)" buttons to "Generate Race ROM" and "Generate Normal ROM" to more clearly indicate each button's purpose.
    • +
    • Added additional checks to ensure that the logic provides some offensive capability in enemy kill rooms if the enemy health setting is something other than "Default."
    • +
    • Customizer: Enemizer options (boss shuffle, enemy shuffle, enemy damage, and enemy health) are now available. Customizing boss locations is not yet supported.
    • +
    • Customizer: It is now possible to manually place Uncle's item when choosing Standard state and randomized swords.
    • +
    • Crowd Control: Properly remove the Bug Catching Net from the Crowd Control item pool. Blue mail armor upgrade is also available again in Crowd Control.
    • +
    • Added API endpoint for retrieving the hash and day of the latest daily (/api/daily).
    • +
    +
    + +

    v31.0.3

    @@ -21,8 +51,6 @@
    - -

    v31.0.2

      diff --git a/routes/api.php b/routes/api.php index 0fdf5fcaf..d67159cf0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -24,3 +24,19 @@ Route::post('customizer', 'CustomizerController@generateSeed')->middleware('throttle:50,360'); Route::post('customizer/test', 'CustomizerController@testGenerateSeed')->middleware('throttle:200,360'); + +Route::get('daily', static function () { + $featured = ALttP\FeaturedGame::today(); + if (!$featured) { + $exitCode = Artisan::call('alttp:dailies', ['days' => 1]); + $featured = ALttP\FeaturedGame::today(); + } + $seed = $featured->seed; + if ($seed) { + return [ + 'hash' => $seed->hash, + 'daily' => $featured->day, + ]; + } + abort(404); +}); \ No newline at end of file