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