35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
| from typing import Callable, Dict, NamedTuple, Optional
 | |
| 
 | |
| from BaseClasses import Location, MultiWorld
 | |
| 
 | |
| 
 | |
| class CliqueLocation(Location):
 | |
|     game = "Clique"
 | |
| 
 | |
| 
 | |
| class CliqueLocationData(NamedTuple):
 | |
|     region: str
 | |
|     address: Optional[int] = None
 | |
|     can_create: Callable[[MultiWorld, int], bool] = lambda multiworld, player: True
 | |
|     locked_item: Optional[str] = None
 | |
| 
 | |
| 
 | |
| location_data_table: Dict[str, CliqueLocationData] = {
 | |
|     "The Big Red Button": CliqueLocationData(
 | |
|         region="The Button Realm",
 | |
|         address=69696969,
 | |
|     ),
 | |
|     "The Item on the Desk": CliqueLocationData(
 | |
|         region="The Button Realm",
 | |
|         address=69696968,
 | |
|         can_create=lambda multiworld, player: bool(getattr(multiworld, "hard_mode")[player]),
 | |
|     ),
 | |
|     "In the Player's Mind": CliqueLocationData(
 | |
|         region="The Button Realm",
 | |
|         locked_item="The Urge to Push",
 | |
|     ),
 | |
| }
 | |
| 
 | |
| location_table = {name: data.address for name, data in location_data_table.items() if data.address is not None}
 | |
| locked_locations = {name: data for name, data in location_data_table.items() if data.locked_item}
 |