mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00

The final stage of Progressive Art Gallery opens up the four-way intersection between the Art Gallery, Orange Tower Fifth Floor, The Bearer, and Outside The Initiated. This is a very useful door, and it would be cool to be able to open it without having to get five progressive items. The original reason this was included in the progression was because getting into the back of Art Gallery early would cause sequence breaks. At this point, the way the client handles the Art Gallery has changed enough that it does not matter if the player can go through this door before getting all progressive art galleries.
199 lines
14 KiB
Python
199 lines
14 KiB
Python
from . import LingoTestBase
|
|
|
|
|
|
class TestComplexProgressiveHallwayRoom(LingoTestBase):
|
|
options = {
|
|
"shuffle_doors": "complex"
|
|
}
|
|
|
|
def test_item(self):
|
|
self.remove_forced_good_item()
|
|
|
|
self.assertFalse(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (4)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Elements Area", "Region", self.player))
|
|
|
|
self.collect_by_name(["Second Room - Exit Door", "The Tenacious - Shortcut to Hub Room",
|
|
"Outside The Agreeable - Tenacious Entrance"])
|
|
self.assertTrue(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (4)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Elements Area", "Region", self.player))
|
|
|
|
progressive_hallway_room = self.get_items_by_name("Progressive Hallway Room")
|
|
|
|
self.collect(progressive_hallway_room[0])
|
|
self.assertTrue(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (4)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Elements Area", "Region", self.player))
|
|
|
|
self.collect(progressive_hallway_room[1])
|
|
self.assertTrue(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (4)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Elements Area", "Region", self.player))
|
|
|
|
self.collect(progressive_hallway_room[2])
|
|
self.assertTrue(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (4)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Elements Area", "Region", self.player))
|
|
|
|
self.collect(progressive_hallway_room[3])
|
|
self.assertTrue(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (4)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Elements Area", "Region", self.player))
|
|
|
|
|
|
class TestSimpleHallwayRoom(LingoTestBase):
|
|
options = {
|
|
"shuffle_doors": "simple"
|
|
}
|
|
|
|
def test_item(self):
|
|
self.remove_forced_good_item()
|
|
|
|
self.assertFalse(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (4)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Elements Area", "Region", self.player))
|
|
|
|
self.collect_by_name(["Second Room - Exit Door", "Entrances to The Tenacious"])
|
|
self.assertTrue(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Hallway Room (4)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Elements Area", "Region", self.player))
|
|
|
|
self.collect_by_name("Hallway Room Doors")
|
|
self.assertTrue(self.multiworld.state.can_reach("Outside The Agreeable", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (2)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (3)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Hallway Room (4)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Elements Area", "Region", self.player))
|
|
|
|
|
|
class TestProgressiveArtGallery(LingoTestBase):
|
|
options = {
|
|
"shuffle_doors": "complex",
|
|
"shuffle_colors": "false",
|
|
}
|
|
|
|
def test_item(self):
|
|
self.remove_forced_good_item()
|
|
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|
|
|
|
self.collect_by_name(["Second Room - Exit Door", "Crossroads - Tower Entrance",
|
|
"Orange Tower Fourth Floor - Hot Crusts Door"])
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|
|
|
|
progressive_gallery_room = self.get_items_by_name("Progressive Art Gallery")
|
|
|
|
self.collect(progressive_gallery_room[0])
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|
|
|
|
self.collect(progressive_gallery_room[1])
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|
|
|
|
self.collect(progressive_gallery_room[2])
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|
|
|
|
self.collect(progressive_gallery_room[3])
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertTrue(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|
|
|
|
self.collect_by_name("Orange Tower Fifth Floor - Quadruple Intersection")
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertTrue(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|
|
|
|
|
|
class TestNoDoorsArtGallery(LingoTestBase):
|
|
options = {
|
|
"shuffle_doors": "none",
|
|
"shuffle_colors": "true"
|
|
}
|
|
|
|
def test_item(self):
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|
|
|
|
self.collect_by_name("Yellow")
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|
|
|
|
self.collect_by_name("Brown")
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertFalse(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|
|
|
|
self.collect_by_name("Blue")
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertFalse(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|
|
|
|
self.collect_by_name(["Orange", "Gray"])
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Second Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Third Floor)", "Region", self.player))
|
|
self.assertTrue(self.multiworld.state.can_reach("Art Gallery (Fourth Floor)", "Region", self.player))
|
|
self.assertTrue(self.can_reach_location("Art Gallery - ONE ROAD MANY TURNS"))
|
|
self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
|