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