214 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			214 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from . import LingoTestBase | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestVanillaDoorsNormalSunwarps(LingoTestBase): | ||
|  |     options = { | ||
|  |         "shuffle_doors": "none", | ||
|  |         "shuffle_colors": "true", | ||
|  |         "sunwarp_access": "normal" | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_access(self): | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("Yellow") | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestSimpleDoorsNormalSunwarps(LingoTestBase): | ||
|  |     options = { | ||
|  |         "shuffle_doors": "simple", | ||
|  |         "sunwarp_access": "normal" | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_access(self): | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("Second Room - Exit Door") | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name(["Crossroads - Tower Entrances", "Orange Tower Fourth Floor - Hot Crusts Door"]) | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestSimpleDoorsDisabledSunwarps(LingoTestBase): | ||
|  |     options = { | ||
|  |         "shuffle_doors": "simple", | ||
|  |         "sunwarp_access": "disabled" | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_access(self): | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("Second Room - Exit Door") | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name(["Hub Room - Crossroads Entrance", "Crossroads - Tower Entrancse", | ||
|  |                               "Orange Tower Fourth Floor - Hot Crusts Door"]) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestSimpleDoorsUnlockSunwarps(LingoTestBase): | ||
|  |     options = { | ||
|  |         "shuffle_doors": "simple", | ||
|  |         "sunwarp_access": "unlock" | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_access(self): | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("Second Room - Exit Door") | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name(["Crossroads - Tower Entrances", "Orange Tower Fourth Floor - Hot Crusts Door"]) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("Sunwarps") | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestComplexDoorsNormalSunwarps(LingoTestBase): | ||
|  |     options = { | ||
|  |         "shuffle_doors": "complex", | ||
|  |         "sunwarp_access": "normal" | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_access(self): | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("Second Room - Exit Door") | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name(["Crossroads - Tower Entrance", "Orange Tower Fourth Floor - Hot Crusts Door"]) | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestComplexDoorsDisabledSunwarps(LingoTestBase): | ||
|  |     options = { | ||
|  |         "shuffle_doors": "complex", | ||
|  |         "sunwarp_access": "disabled" | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_access(self): | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("Second Room - Exit Door") | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name(["Hub Room - Crossroads Entrance", "Crossroads - Tower Entrance", | ||
|  |                               "Orange Tower Fourth Floor - Hot Crusts Door"]) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestComplexDoorsIndividualSunwarps(LingoTestBase): | ||
|  |     options = { | ||
|  |         "shuffle_doors": "complex", | ||
|  |         "sunwarp_access": "individual" | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_access(self): | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("Second Room - Exit Door") | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("1 Sunwarp") | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name(["Crossroads - Tower Entrance", "Orange Tower Fourth Floor - Hot Crusts Door"]) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("2 Sunwarp") | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("3 Sunwarp") | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestComplexDoorsProgressiveSunwarps(LingoTestBase): | ||
|  |     options = { | ||
|  |         "shuffle_doors": "complex", | ||
|  |         "sunwarp_access": "progressive" | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_access(self): | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name("Second Room - Exit Door") | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         progressive_pilgrimage = self.get_items_by_name("Progressive Pilgrimage") | ||
|  |         self.collect(progressive_pilgrimage[0]) | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Crossroads", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect_by_name(["Crossroads - Tower Entrance", "Orange Tower Fourth Floor - Hot Crusts Door"]) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect(progressive_pilgrimage[1]) | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player)) | ||
|  |         self.assertFalse(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  |         self.collect(progressive_pilgrimage[2]) | ||
|  |         self.assertTrue(self.multiworld.state.can_reach("Outside The Initiated", "Region", self.player)) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestUnlockSunwarpPilgrimage(LingoTestBase): | ||
|  |     options = { | ||
|  |         "sunwarp_access": "unlock", | ||
|  |         "shuffle_colors": "false", | ||
|  |         "enable_pilgrimage": "true" | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_access(self): | ||
|  |         self.assertFalse(self.can_reach_location("Pilgrim Antechamber - PILGRIM")) | ||
|  | 
 | ||
|  |         self.collect_by_name("Sunwarps") | ||
|  | 
 | ||
|  |         self.assertTrue(self.can_reach_location("Pilgrim Antechamber - PILGRIM")) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestIndividualSunwarpPilgrimage(LingoTestBase): | ||
|  |     options = { | ||
|  |         "sunwarp_access": "individual", | ||
|  |         "shuffle_colors": "false", | ||
|  |         "enable_pilgrimage": "true" | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_access(self): | ||
|  |         for i in range(1, 7): | ||
|  |             self.assertFalse(self.can_reach_location("Pilgrim Antechamber - PILGRIM")) | ||
|  |             self.collect_by_name(f"{i} Sunwarp") | ||
|  | 
 | ||
|  |         self.assertTrue(self.can_reach_location("Pilgrim Antechamber - PILGRIM")) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestProgressiveSunwarpPilgrimage(LingoTestBase): | ||
|  |     options = { | ||
|  |         "sunwarp_access": "progressive", | ||
|  |         "shuffle_colors": "false", | ||
|  |         "enable_pilgrimage": "true" | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_access(self): | ||
|  |         for item in self.get_items_by_name("Progressive Pilgrimage"): | ||
|  |             self.assertFalse(self.can_reach_location("Pilgrim Antechamber - PILGRIM")) | ||
|  |             self.collect(item) | ||
|  | 
 | ||
|  |         self.assertTrue(self.can_reach_location("Pilgrim Antechamber - PILGRIM")) |