53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
import typing
|
|
|
|
from BaseClasses import Item, ItemClassification
|
|
from .Names import ItemName
|
|
|
|
|
|
class ItemData(typing.NamedTuple):
|
|
code: typing.Optional[int]
|
|
progression: bool
|
|
quantity: int = 1
|
|
event: bool = False
|
|
|
|
|
|
class DKC3Item(Item):
|
|
game: str = "Donkey Kong Country 3"
|
|
|
|
|
|
# Separate tables for each type of item.
|
|
junk_table = {
|
|
ItemName.one_up_balloon: ItemData(0xDC3001, False),
|
|
ItemName.bear_coin: ItemData(0xDC3002, False),
|
|
}
|
|
|
|
collectable_table = {
|
|
ItemName.bonus_coin: ItemData(0xDC3003, True),
|
|
ItemName.dk_coin: ItemData(0xDC3004, True),
|
|
ItemName.banana_bird: ItemData(0xDC3005, True),
|
|
ItemName.krematoa_cog: ItemData(0xDC3006, True),
|
|
ItemName.progressive_boat: ItemData(0xDC3007, True),
|
|
}
|
|
|
|
inventory_table = {
|
|
ItemName.present: ItemData(0xDC3008, True),
|
|
ItemName.bowling_ball: ItemData(0xDC3009, True),
|
|
ItemName.shell: ItemData(0xDC300A, True),
|
|
ItemName.mirror: ItemData(0xDC300B, True),
|
|
ItemName.flower: ItemData(0xDC300C, True),
|
|
ItemName.wrench: ItemData(0xDC300D, True),
|
|
}
|
|
|
|
event_table = {
|
|
ItemName.victory: ItemData(0xDC3000, True),
|
|
}
|
|
|
|
# Complete item table.
|
|
item_table = {
|
|
**junk_table,
|
|
**collectable_table,
|
|
**event_table,
|
|
}
|
|
|
|
lookup_id_to_name: typing.Dict[int, str] = {data.code: item_name for item_name, data in item_table.items() if data.code}
|