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')
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								}
							 |