39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from typing import Callable, Dict, NamedTuple, Optional, TYPE_CHECKING
 | 
						|
 | 
						|
from BaseClasses import Item, ItemClassification
 | 
						|
 | 
						|
if TYPE_CHECKING:
 | 
						|
    from . import CliqueWorld
 | 
						|
 | 
						|
 | 
						|
class CliqueItem(Item):
 | 
						|
    game = "Clique"
 | 
						|
 | 
						|
 | 
						|
class CliqueItemData(NamedTuple):
 | 
						|
    code: Optional[int] = None
 | 
						|
    type: ItemClassification = ItemClassification.filler
 | 
						|
    can_create: Callable[["CliqueWorld"], bool] = lambda world: True
 | 
						|
 | 
						|
 | 
						|
item_data_table: Dict[str, CliqueItemData] = {
 | 
						|
    "Feeling of Satisfaction": CliqueItemData(
 | 
						|
        code=69696969,
 | 
						|
        type=ItemClassification.progression,
 | 
						|
    ),
 | 
						|
    "Button Activation": CliqueItemData(
 | 
						|
        code=69696968,
 | 
						|
        type=ItemClassification.progression,
 | 
						|
        can_create=lambda world: world.options.hard_mode,
 | 
						|
    ),
 | 
						|
    "A Cool Filler Item (No Satisfaction Guaranteed)": CliqueItemData(
 | 
						|
        code=69696967,
 | 
						|
        can_create=lambda world: False  # Only created from `get_filler_item_name`.
 | 
						|
    ),
 | 
						|
    "The Urge to Push": CliqueItemData(
 | 
						|
        type=ItemClassification.progression,
 | 
						|
    ),
 | 
						|
}
 | 
						|
 | 
						|
item_table = {name: data.code for name, data in item_data_table.items() if data.code is not None}
 |