* sm64ex: use item data class * rearrange imports * Dict to dict * remove optional typing * bonus item descriptions since we can also add stuff for webworld easily * remove item descriptions (rip) and decrease verbosity for classifications * formatting
		
			
				
	
	
		
			59 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from typing import NamedTuple
 | |
| 
 | |
| from BaseClasses import Item, ItemClassification
 | |
| 
 | |
| sm64ex_base_id: int = 3626000
 | |
| 
 | |
| class SM64Item(Item):
 | |
|     game: str = "Super Mario 64"
 | |
| 
 | |
| class SM64ItemData(NamedTuple):
 | |
|     code: int | None = None
 | |
|     classification: ItemClassification = ItemClassification.progression
 | |
| 
 | |
| generic_item_data_table: dict[str, SM64ItemData] = {
 | |
|     "Power Star": SM64ItemData(sm64ex_base_id + 0, ItemClassification.progression_skip_balancing),
 | |
|     "Basement Key": SM64ItemData(sm64ex_base_id + 178),
 | |
|     "Second Floor Key": SM64ItemData(sm64ex_base_id + 179),
 | |
|     "Progressive Key": SM64ItemData(sm64ex_base_id + 180),
 | |
|     "Wing Cap": SM64ItemData(sm64ex_base_id + 181),
 | |
|     "Metal Cap": SM64ItemData(sm64ex_base_id + 182),
 | |
|     "Vanish Cap": SM64ItemData(sm64ex_base_id + 183),
 | |
|     "1Up Mushroom": SM64ItemData(sm64ex_base_id + 184, ItemClassification.filler),
 | |
| }
 | |
| 
 | |
| action_item_data_table: dict[str, SM64ItemData] = {
 | |
|     "Double Jump": SM64ItemData(sm64ex_base_id + 185),
 | |
|     "Triple Jump": SM64ItemData(sm64ex_base_id + 186),
 | |
|     "Long Jump": SM64ItemData(sm64ex_base_id + 187),
 | |
|     "Backflip": SM64ItemData(sm64ex_base_id + 188),
 | |
|     "Side Flip": SM64ItemData(sm64ex_base_id + 189),
 | |
|     "Wall Kick": SM64ItemData(sm64ex_base_id + 190),
 | |
|     "Dive": SM64ItemData(sm64ex_base_id + 191),
 | |
|     "Ground Pound": SM64ItemData(sm64ex_base_id + 192),
 | |
|     "Kick": SM64ItemData(sm64ex_base_id + 193),
 | |
|     "Climb": SM64ItemData(sm64ex_base_id + 194),
 | |
|     "Ledge Grab": SM64ItemData(sm64ex_base_id + 195),
 | |
| }
 | |
| 
 | |
| cannon_item_data_table: dict[str, SM64ItemData] = {
 | |
|     "Cannon Unlock BoB": SM64ItemData(sm64ex_base_id + 200),
 | |
|     "Cannon Unlock WF": SM64ItemData(sm64ex_base_id + 201),
 | |
|     "Cannon Unlock JRB": SM64ItemData(sm64ex_base_id + 202),
 | |
|     "Cannon Unlock CCM": SM64ItemData(sm64ex_base_id + 203),
 | |
|     "Cannon Unlock SSL": SM64ItemData(sm64ex_base_id + 207),
 | |
|     "Cannon Unlock SL": SM64ItemData(sm64ex_base_id + 209),
 | |
|     "Cannon Unlock WDW": SM64ItemData(sm64ex_base_id + 210),
 | |
|     "Cannon Unlock TTM": SM64ItemData(sm64ex_base_id + 211),
 | |
|     "Cannon Unlock THI": SM64ItemData(sm64ex_base_id + 212),
 | |
|     "Cannon Unlock RR": SM64ItemData(sm64ex_base_id + 214),
 | |
| }
 | |
| 
 | |
| item_data_table = {
 | |
|     **generic_item_data_table,
 | |
|     **action_item_data_table,
 | |
|     **cannon_item_data_table
 | |
| }
 | |
| 
 | |
| item_table = {name: data.code for name, data in item_data_table.items() if data.code is not None}
 |