The Messenger: fix items accessibility reachability bug due to new rules (#2937)
This commit is contained in:
		
							parent
							
								
									a7384b4b63
								
							
						
					
					
						commit
						6d3f7865ff
					
				| 
						 | 
					@ -523,7 +523,7 @@ class MessengerOOBRules(MessengerRules):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def set_self_locking_items(world: "MessengerWorld", player: int) -> None:
 | 
					def set_self_locking_items(world: "MessengerWorld", player: int) -> None:
 | 
				
			||||||
    # locations where these placements are always valid
 | 
					    # locations where these placements are always valid
 | 
				
			||||||
    allow_self_locking_items(world.get_location("Searing Crags - Key of Strength"), "Power Thistle")
 | 
					    allow_self_locking_items(world.get_location("Searing Crags - Key of Strength").parent_region, "Power Thistle")
 | 
				
			||||||
    allow_self_locking_items(world.get_location("Sunken Shrine - Key of Love"), "Sun Crest", "Moon Crest")
 | 
					    allow_self_locking_items(world.get_location("Sunken Shrine - Key of Love"), "Sun Crest", "Moon Crest")
 | 
				
			||||||
    allow_self_locking_items(world.get_location("Corrupted Future - Key of Courage"), "Demon King Crown")
 | 
					    allow_self_locking_items(world.get_location("Corrupted Future - Key of Courage").parent_region, "Demon King Crown")
 | 
				
			||||||
    allow_self_locking_items(world.get_location("Elemental Skylands Seal - Water"), "Currents Master")
 | 
					    allow_self_locking_items(world.get_location("Elemental Skylands Seal - Water"), "Currents Master")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,3 +1,5 @@
 | 
				
			||||||
 | 
					import typing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from . import MessengerTestBase
 | 
					from . import MessengerTestBase
 | 
				
			||||||
from ..constants import NOTES, PHOBEKINS
 | 
					from ..constants import NOTES, PHOBEKINS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -208,5 +210,8 @@ class ItemsAccessTest(MessengerTestBase):
 | 
				
			||||||
            for item_name in location_lock_pairs[loc]:
 | 
					            for item_name in location_lock_pairs[loc]:
 | 
				
			||||||
                item = self.get_item_by_name(item_name)
 | 
					                item = self.get_item_by_name(item_name)
 | 
				
			||||||
                with self.subTest("Fulfills Accessibility", location=loc, item=item_name):
 | 
					                with self.subTest("Fulfills Accessibility", location=loc, item=item_name):
 | 
				
			||||||
                    self.assertTrue(self.multiworld.get_location(loc, self.player).can_fill(self.multiworld.state, item,
 | 
					                    location = self.multiworld.get_location(loc, self.player)
 | 
				
			||||||
                                                                                            True))
 | 
					                    self.assertTrue(location.can_fill(self.multiworld.state, item, True))
 | 
				
			||||||
 | 
					                    location.item = item
 | 
				
			||||||
 | 
					                    self.multiworld.state.update_reachable_regions(self.player)
 | 
				
			||||||
 | 
					                    self.assertTrue(self.can_reach_location(loc))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue