 817197c14d
			
		
	
	817197c14d
	
	
	
		
			
			The static class with the "disable forced good item" field is gone. Now, certain tests that want to check for specific access progression can run a method that removes the forced good item and adds it back to the pool. Tests that don't care about this will collect the forced good item like normal. This should prevent the intermittent fill failures on complex doors unit tests, since the forced good item should provide enough locations to fill in.
		
			
				
	
	
		
			180 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			180 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from . import LingoTestBase
 | |
| 
 | |
| 
 | |
| class TestProgressiveOrangeTower(LingoTestBase):
 | |
|     options = {
 | |
|         "shuffle_doors": "complex",
 | |
|         "progressive_orange_tower": "true"
 | |
|     }
 | |
| 
 | |
|     def test_from_welcome_back(self) -> None:
 | |
|         self.remove_forced_good_item()
 | |
| 
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect_by_name("Welcome Back Area - Shortcut to Starting Room")
 | |
|         self.collect_by_name("Orange Tower Fifth Floor - Welcome Back")
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         progressive_tower = self.get_items_by_name("Progressive Orange Tower")
 | |
| 
 | |
|         self.collect(progressive_tower[0])
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect(progressive_tower[1])
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect(progressive_tower[2])
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect(progressive_tower[3])
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect(progressive_tower[4])
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect(progressive_tower[5])
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|     def test_from_hub_room(self) -> None:
 | |
|         self.remove_forced_good_item()
 | |
| 
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect_by_name("Second Room - Exit Door")
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect_by_name("Orange Tower First Floor - Shortcut to Hub Room")
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         progressive_tower = self.get_items_by_name("Progressive Orange Tower")
 | |
| 
 | |
|         self.collect(progressive_tower[0])
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.remove(self.get_item_by_name("Orange Tower First Floor - Shortcut to Hub Room"))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect(progressive_tower[1])
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect(progressive_tower[2])
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect(progressive_tower[3])
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect(progressive_tower[4])
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 | |
| 
 | |
|         self.collect(progressive_tower[5])
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower First Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Second Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Third Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fourth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Fifth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Sixth Floor", "Region", self.player))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Orange Tower Seventh Floor", "Region", self.player))
 |