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