104 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			104 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | import typing | ||
|  | 
 | ||
|  | from BaseClasses import Item, ItemClassification | ||
|  | from typing import Dict, List | ||
|  | 
 | ||
|  | PROGRESSION = ItemClassification.progression | ||
|  | PROGRESSION_SKIP_BALANCING = ItemClassification.progression_skip_balancing | ||
|  | USEFUL = ItemClassification.useful | ||
|  | FILLER = ItemClassification.filler | ||
|  | 
 | ||
|  | 
 | ||
|  | class ItemData(typing.NamedTuple): | ||
|  |     code: typing.Optional[int] | ||
|  |     type: str | ||
|  |     classification: ItemClassification = PROGRESSION | ||
|  | 
 | ||
|  | 
 | ||
|  | item_table: Dict[str, ItemData] = { | ||
|  |     # Units | ||
|  |     'Spearman': ItemData(52000, 'Unit'), | ||
|  |     'Wagon': ItemData(52001, 'Unit', USEFUL), | ||
|  |     'Mage': ItemData(52002, 'Unit'), | ||
|  |     'Archer': ItemData(52003, 'Unit'), | ||
|  |     'Knight': ItemData(52004, 'Unit'), | ||
|  |     'Ballista': ItemData(52005, 'Unit'), | ||
|  |     'Golem': ItemData(52006, 'Unit', USEFUL), | ||
|  |     'Harpy': ItemData(52007, 'Unit'), | ||
|  |     'Witch': ItemData(52008, 'Unit', USEFUL), | ||
|  |     'Dragon': ItemData(52009, 'Unit'), | ||
|  |     'Balloon': ItemData(52010, 'Unit', USEFUL), | ||
|  |     'Barge': ItemData(52011, 'Unit'), | ||
|  |     'Merfolk': ItemData(52012, 'Unit'), | ||
|  |     'Turtle': ItemData(52013, 'Unit'), | ||
|  |     'Harpoon Ship': ItemData(52014, 'Unit'), | ||
|  |     'Warship': ItemData(52015, 'Unit'), | ||
|  |     'Thief': ItemData(52016, 'Unit'), | ||
|  |     'Rifleman': ItemData(52017, 'Unit'), | ||
|  | 
 | ||
|  |     # Map Triggers | ||
|  |     'Eastern Bridges': ItemData(52018, 'Trigger'), | ||
|  |     'Southern Walls': ItemData(52019, 'Trigger'), | ||
|  |     'Final Bridges': ItemData(52020, 'Trigger', PROGRESSION_SKIP_BALANCING), | ||
|  |     'Final Walls': ItemData(52021, 'Trigger', PROGRESSION_SKIP_BALANCING), | ||
|  |     'Final Sickle': ItemData(52022, 'Trigger', PROGRESSION_SKIP_BALANCING), | ||
|  | 
 | ||
|  |     # Player Buffs | ||
|  |     'Income Boost': ItemData(52023, 'Boost', FILLER), | ||
|  | 
 | ||
|  |     'Commander Defense Boost': ItemData(52024, 'Boost', FILLER), | ||
|  | 
 | ||
|  |     # Factions | ||
|  |     'Cherrystone Commanders': ItemData(52025, 'Faction', USEFUL), | ||
|  |     'Felheim Commanders': ItemData(52026, 'Faction', USEFUL), | ||
|  |     'Floran Commanders': ItemData(52027, 'Faction', USEFUL), | ||
|  |     'Heavensong Commanders': ItemData(52028, 'Faction', USEFUL), | ||
|  |     'Requiem Commanders': ItemData(52029, 'Faction', USEFUL), | ||
|  |     'Outlaw Commanders': ItemData(52030, 'Faction', USEFUL), | ||
|  | 
 | ||
|  |     # Event Items | ||
|  |     'Wargroove Victory': ItemData(None, 'Goal') | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | class CommanderData(typing.NamedTuple): | ||
|  |     name: str | ||
|  |     internal_name: str | ||
|  |     alt_name: str = None | ||
|  | 
 | ||
|  | 
 | ||
|  | faction_table: Dict[str, List[CommanderData]] = { | ||
|  |     'Starter': [ | ||
|  |         CommanderData('Mercival', 'commander_mercival') | ||
|  |     ], | ||
|  |     'Cherrystone': [ | ||
|  |         CommanderData('Mercia', 'commander_mercia'), | ||
|  |         CommanderData('Emeric', 'commander_emeric'), | ||
|  |         CommanderData('Caesar', 'commander_caesar'), | ||
|  |     ], | ||
|  |     'Felheim': [ | ||
|  |         CommanderData('Valder', 'commander_valder'), | ||
|  |         CommanderData('Ragna', 'commander_ragna'), | ||
|  |         CommanderData('Sigrid', 'commander_sigrid') | ||
|  |     ], | ||
|  |     'Floran': [ | ||
|  |         CommanderData('Greenfinger', 'commander_greenfinger'), | ||
|  |         CommanderData('Sedge', 'commander_sedge'), | ||
|  |         CommanderData('Nuru', 'commander_nuru') | ||
|  |     ], | ||
|  |     'Heavensong': [ | ||
|  |         CommanderData('Tenri', 'commander_tenri'), | ||
|  |         CommanderData('Koji', 'commander_koji'), | ||
|  |         CommanderData('Ryota', 'commander_ryota') | ||
|  |     ], | ||
|  |     'Requiem': [ | ||
|  |         CommanderData('Elodie', 'commander_elodie'), | ||
|  |         CommanderData('Dark Mercia', 'commander_darkmercia') | ||
|  |     ], | ||
|  |     'Outlaw': [ | ||
|  |         CommanderData('Wulfar', 'commander_wulfar'), | ||
|  |         CommanderData('Twins', 'commander_twins', 'Errol & Orla'), | ||
|  |         CommanderData('Vesper', 'commander_vesper') | ||
|  |     ] | ||
|  | } |