23 lines
		
	
	
		
			970 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			23 lines
		
	
	
		
			970 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								# Copyright (c) 2022 FelicitusNeko
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# This software is released under the MIT License.
							 | 
						||
| 
								 | 
							
								# https://opensource.org/licenses/MIT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from ..generic.Rules import forbid_item, exclusion_rules
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def set_rules(world, player):
							 | 
						||
| 
								 | 
							
								    # Prevent PSI keys from showing up in any boss' room
							 | 
						||
| 
								 | 
							
								    # This is to prevent softlock from ending up having to fight a boss in the wrong boss room
							 | 
						||
| 
								 | 
							
								    for boss in ["Meridian", "Ataraxia", "Merodach"]:
							 | 
						||
| 
								 | 
							
								        for key in range(1, 4):
							 | 
						||
| 
								 | 
							
								            forbid_item(world.get_location(boss, player), f"PSI Key {key}", player)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Prevent progression from showing up in last six checks per store
							 | 
						||
| 
								 | 
							
								    # This is to prevent softlock from high prices or low chest drop
							 | 
						||
| 
								 | 
							
								    default_exclude_locations = set()
							 | 
						||
| 
								 | 
							
								    for store in ["Alpha Cache", "Beta Cache", "Gamma Cache", "Reward Chest"]:
							 | 
						||
| 
								 | 
							
								        for check_number in range(19, 25):
							 | 
						||
| 
								 | 
							
								            default_exclude_locations.add(f"{store} {check_number}")
							 | 
						||
| 
								 | 
							
								    exclusion_rules(world, player, default_exclude_locations)
							 |