* Baseline patching and logic for DKC3 * Client can send, but not yet receive * Alpha Test Baseline * Bug Fixes and Starting Lives Option * Finish BBH, add world hints * Add music shuffle * Boomer Costs Text * Stubbed in Collect behaviour * Adjust Gyrocopter option * Add Bonus Coin junk replacement and tracker support * Delete bad logs * Undo host.yaml change * Refactored SNIClient * Make Swanky Free * Fix Typo * Undo SNIClient run_game hack * Fix Typo * Remove Bosses from Level Shuffle * Remove duplicate kivy Data * Add DKC3 Docs and increment Data version * Remove dead code * Fix mislabeled region * Add Dark Souls 3 to README * Always force Cog on Rocket Rush Flag * Fix Single Ski lock and too many DK Coins * Update Retroarch version number * Don't send DKC3 through LttP Adjuster * Comment Location ROM Table * Change ROM Hash prefix to D3 * Remove redundant constructor * Add ROM Change Safeguards * Properly mark WRAM accesses * Remove outdated region connect * Fix syntax error * Fix Game description * Fix SNES Bank Access * Add isso_setup for DKC3 * Double Quote strings * Escape single quotes I guess
		
			
				
	
	
		
			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}
 |