mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 12:11:33 -06:00

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