59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								from typing import Dict, NamedTuple, Optional
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from BaseClasses import Item, ItemClassification
							 | 
						||
| 
								 | 
							
								from .Names import ItemName
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								celeste_64_base_id: int = 0xCA0000
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Celeste64Item(Item):
							 | 
						||
| 
								 | 
							
								    game = "Celeste 64"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Celeste64ItemData(NamedTuple):
							 | 
						||
| 
								 | 
							
								    code: Optional[int] = None
							 | 
						||
| 
								 | 
							
								    type: ItemClassification = ItemClassification.filler
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								item_data_table: Dict[str, Celeste64ItemData] = {
							 | 
						||
| 
								 | 
							
								    ItemName.strawberry: Celeste64ItemData(
							 | 
						||
| 
								 | 
							
								        code = celeste_64_base_id + 0,
							 | 
						||
| 
								 | 
							
								        type=ItemClassification.progression_skip_balancing,
							 | 
						||
| 
								 | 
							
								    ),
							 | 
						||
| 
								 | 
							
								    ItemName.dash_refill: Celeste64ItemData(
							 | 
						||
| 
								 | 
							
								        code = celeste_64_base_id + 1,
							 | 
						||
| 
								 | 
							
								        type=ItemClassification.progression,
							 | 
						||
| 
								 | 
							
								    ),
							 | 
						||
| 
								 | 
							
								    ItemName.double_dash_refill: Celeste64ItemData(
							 | 
						||
| 
								 | 
							
								        code = celeste_64_base_id + 2,
							 | 
						||
| 
								 | 
							
								        type=ItemClassification.progression,
							 | 
						||
| 
								 | 
							
								    ),
							 | 
						||
| 
								 | 
							
								    ItemName.feather: Celeste64ItemData(
							 | 
						||
| 
								 | 
							
								        code = celeste_64_base_id + 3,
							 | 
						||
| 
								 | 
							
								        type=ItemClassification.progression,
							 | 
						||
| 
								 | 
							
								    ),
							 | 
						||
| 
								 | 
							
								    ItemName.coin: Celeste64ItemData(
							 | 
						||
| 
								 | 
							
								        code = celeste_64_base_id + 4,
							 | 
						||
| 
								 | 
							
								        type=ItemClassification.progression,
							 | 
						||
| 
								 | 
							
								    ),
							 | 
						||
| 
								 | 
							
								    ItemName.cassette: Celeste64ItemData(
							 | 
						||
| 
								 | 
							
								        code = celeste_64_base_id + 5,
							 | 
						||
| 
								 | 
							
								        type=ItemClassification.progression,
							 | 
						||
| 
								 | 
							
								    ),
							 | 
						||
| 
								 | 
							
								    ItemName.traffic_block: Celeste64ItemData(
							 | 
						||
| 
								 | 
							
								        code = celeste_64_base_id + 6,
							 | 
						||
| 
								 | 
							
								        type=ItemClassification.progression,
							 | 
						||
| 
								 | 
							
								    ),
							 | 
						||
| 
								 | 
							
								    ItemName.spring: Celeste64ItemData(
							 | 
						||
| 
								 | 
							
								        code = celeste_64_base_id + 7,
							 | 
						||
| 
								 | 
							
								        type=ItemClassification.progression,
							 | 
						||
| 
								 | 
							
								    ),
							 | 
						||
| 
								 | 
							
								    ItemName.breakables: Celeste64ItemData(
							 | 
						||
| 
								 | 
							
								        code = celeste_64_base_id + 8,
							 | 
						||
| 
								 | 
							
								        type=ItemClassification.progression,
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								item_table = {name: data.code for name, data in item_data_table.items() if data.code is not None}
							 |