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} |