# coding=utf-8
"""
Canonical source of truth for all stat-related game data.

Merges the information previously duplicated across Constants.STAT_ENUMS,
Constants.UNIT_STAT_ENUMS_MAP, Constants.STATS, and StatCalc.STATS_NAME_MAP
into one authoritative ``STATS`` dictionary.  Simpler views are derived at
module load time.
"""

from __future__ import annotations

from typing import Any

# ---------------------------------------------------------------------------
# Canonical stat definitions
# ---------------------------------------------------------------------------

STATS: dict[str, dict[str, Any]] = {
    "0": {
        "statId": 0,
        "nameKey": "None",
        "descKey": "",
        "isDecimal": False,
        "name": "None",
        "detailedName": "None",
        "enum": "UnitStat_DEFAULT",
        "tableKey": "",
    },
    "1": {
        "statId": 1,
        "nameKey": "UnitStat_Health",
        "descKey": "UnitStatDescription_Health_TU7",
        "isDecimal": False,
        "name": "Health",
        "detailedName": "Max Health",
        "enum": "UNITSTATMAXHEALTH",
        "tableKey": "MAX_HEALTH",
    },
    "2": {
        "statId": 2,
        "nameKey": "UnitStat_Strength",
        "descKey": "UnitStatDescription_Strength",
        "isDecimal": False,
        "name": "Strength",
        "detailedName": "Strength",
        "enum": "UNITSTATSTRENGTH",
        "tableKey": "STRENGTH",
    },
    "3": {
        "statId": 3,
        "nameKey": "UnitStat_Agility",
        "descKey": "UnitStatDescription_Agility",
        "isDecimal": False,
        "name": "Agility",
        "detailedName": "Agility",
        "enum": "UNITSTATAGILITY",
        "tableKey": "AGILITY",
    },
    "4": {
        "statId": 4,
        "nameKey": "UnitStat_Intelligence_TU7",
        "descKey": "UnitStatDescription_Intelligence",
        "isDecimal": False,
        "name": "Tactics",
        "detailedName": "Tactics",
        "enum": "UNITSTATINTELLIGENCE",
        "tableKey": "INTELLIGENCE",
    },
    "5": {
        "statId": 5,
        "nameKey": "UnitStat_Speed",
        "descKey": "UnitStatDescription_Speed",
        "isDecimal": False,
        "name": "Speed",
        "detailedName": "Speed",
        "enum": "UNITSTATSPEED",
        "tableKey": "SPEED",
    },
    "6": {
        "statId": 6,
        "nameKey": "UnitStat_AttackDamage",
        "descKey": "UnitStatDescription_AttackDamage",
        "isDecimal": False,
        "name": "Physical Damage",
        "detailedName": "Physical Damage",
        "enum": "UNITSTATATTACKDAMAGE",
        "tableKey": "ATTACK_DAMAGE",
    },
    "7": {
        "statId": 7,
        "nameKey": "UnitStat_AbilityPower",
        "descKey": "UnitStatDescription_AbilityPower",
        "isDecimal": False,
        "name": "Special Damage",
        "detailedName": "Special Damage",
        "enum": "UNITSTATABILITYPOWER",
        "tableKey": "ABILITY_POWER",
    },
    "8": {
        "statId": 8,
        "nameKey": "UnitStat_Armor",
        "descKey": "UnitStatDescription_Armor",
        "isDecimal": False,
        "name": "Armor",
        "detailedName": "Armor",
        "enum": "UNITSTATARMOR",
        "tableKey": "ARMOR",
    },
    "9": {
        "statId": 9,
        "nameKey": "UnitStat_Suppression",
        "descKey": "UnitStatDescription_Suppression",
        "isDecimal": False,
        "name": "Resistance",
        "detailedName": "Resistance",
        "enum": "UNITSTATSUPPRESSION",
        "tableKey": "SUPPRESSION",
    },
    "10": {
        "statId": 10,
        "nameKey": "UnitStat_ArmorPenetration",
        "descKey": "UnitStatDescription_ArmorPenetration",
        "isDecimal": False,
        "name": "Armor Penetration",
        "detailedName": "Armor Penetration",
        "enum": "UNITSTATARMORPENETRATION",
        "tableKey": "ARMOR_PENETRATION",
    },
    "11": {
        "statId": 11,
        "nameKey": "UnitStat_SuppressionPenetration",
        "descKey": "UnitStatDescription_SuppressionPenetration",
        "isDecimal": False,
        "name": "Resistance Penetration",
        "detailedName": "Resistance Penetration",
        "enum": "UNITSTATSUPPRESSIONPENETRATION",
        "tableKey": "SUPPRESSION_PENETRATION",
    },
    "12": {
        "statId": 12,
        "nameKey": "UnitStat_DodgeRating_TU5V",
        "descKey": "UnitStatDescription_DodgeRating",
        "isDecimal": False,
        "name": "Dodge Chance",
        "detailedName": "Dodge Rating",
        "enum": "UNITSTATDODGERATING",
        "tableKey": "DODGE_RATING",
    },
    "13": {
        "statId": 13,
        "nameKey": "UnitStat_DeflectionRating_TU5V",
        "descKey": "UnitStatDescription_DeflectionRating",
        "isDecimal": False,
        "name": "Deflection Chance",
        "detailedName": "Deflection Rating",
        "enum": "UNITSTATDEFLECTIONRATING",
        "tableKey": "DEFLECTION_RATING",
    },
    "14": {
        "statId": 14,
        "nameKey": "UnitStat_AttackCriticalRating_TU5V",
        "descKey": "UnitStatDescription_AttackCriticalRating",
        "isDecimal": False,
        "name": "Physical Critical Chance",
        "detailedName": "Physical Critical Rating",
        "enum": "UNITSTATATTACKCRITICALRATING",
        "tableKey": "ATTACK_CRITICAL_RATING",
    },
    "15": {
        "statId": 15,
        "nameKey": "UnitStat_AbilityCriticalRating_TU5V",
        "descKey": "UnitStatDescription_AbilityCriticalRating",
        "isDecimal": False,
        "name": "Special Critical Chance",
        "detailedName": "Special Critical Rating",
        "enum": "UNITSTATABILITYCRITICALRATING",
        "tableKey": "ABILITY_CRITICAL_RATING",
    },
    "16": {
        "statId": 16,
        "nameKey": "UnitStat_CriticalDamage",
        "descKey": "UnitStatDescription_CriticalDamage",
        "isDecimal": True,
        "name": "Critical Damage",
        "detailedName": "Critical Damage",
        "enum": "UNITSTATCRITICALDAMAGE",
        "tableKey": "CRITICAL_DAMAGE",
    },
    "17": {
        "statId": 17,
        "nameKey": "UnitStat_Accuracy",
        "descKey": "UnitStatDescription_Accuracy",
        "isDecimal": True,
        "name": "Potency",
        "detailedName": "Potency",
        "enum": "UNITSTATACCURACY",
        "tableKey": "ACCURACY",
    },
    "18": {
        "statId": 18,
        "nameKey": "UnitStat_Resistance",
        "descKey": "UnitStatDescription_Resistance",
        "isDecimal": True,
        "name": "Tenacity",
        "detailedName": "Tenacity",
        "enum": "UNITSTATRESISTANCE",
        "tableKey": "RESISTANCE",
    },
    "19": {
        "statId": 19,
        "nameKey": "UnitStat_DodgePercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Dodge",
        "detailedName": "Dodge Percent Additive",
        "enum": "UNITSTATDODGEPERCENTADDITIVE",
        "tableKey": "DODGE_PERCENT_ADDITIVE",
    },
    "20": {
        "statId": 20,
        "nameKey": "UnitStat_DeflectionPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Deflection",
        "detailedName": "Deflection Percent Additive",
        "enum": "UNITSTATDEFLECTIONPERCENTADDITIVE",
        "tableKey": "DEFLECTION_PERCENT_ADDITIVE",
    },
    "21": {
        "statId": 21,
        "nameKey": "UnitStat_AttackCriticalPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Physical Critical Chance",
        "detailedName": "Physical Critical Percent Additive",
        "enum": "UNITSTATATTACKCRITICALPERCENTADDITIVE",
        "tableKey": "ATTACK_CRITICAL_PERCENT_ADDITIVE",
    },
    "22": {
        "statId": 22,
        "nameKey": "UnitStat_AbilityCriticalPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Special Critical Chance",
        "detailedName": "Special Critical Percent Additive",
        "enum": "UNITSTATABILITYCRITICALPERCENTADDITIVE",
        "tableKey": "ABILITY_CRITICAL_PERCENT_ADDITIVE",
    },
    "23": {
        "statId": 23,
        "nameKey": "UnitStat_ArmorPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Armor",
        "detailedName": "Armor Percent Additive",
        "enum": "UNITSTATARMORPERCENTADDITIVE",
        "tableKey": "ARMOR_PERCENT_ADDITIVE",
    },
    "24": {
        "statId": 24,
        "nameKey": "UnitStat_SuppressionPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Resistance",
        "detailedName": "Resistance Percent Additive",
        "enum": "UNITSTATSUPPRESSIONPERCENTADDITIVE",
        "tableKey": "SUPPRESSION_PERCENT_ADDITIVE",
    },
    "25": {
        "statId": 25,
        "nameKey": "UnitStat_ArmorPenetrationPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Armor Penetration",
        "detailedName": "Armor Penetration Percent Additive",
        "enum": "UNITSTATARMORPENETRATIONPERCENTADDITIVE",
        "tableKey": "ARMOR_PENETRATION_PERCENT_ADDITIVE",
    },
    "26": {
        "statId": 26,
        "nameKey": "UnitStat_SuppressionPenetrationPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Resistance Penetration",
        "detailedName": "Resistance Penetration Percent Additive",
        "enum": "UNITSTATSUPPRESSIONPENETRATIONPERCENTADDITIVE",
        "tableKey": "SUPPRESSION_PENETRATION_PERCENT_ADDITIVE",
    },
    "27": {
        "statId": 27,
        "nameKey": "UnitStat_HealthSteal",
        "descKey": "UnitStatDescription_HealthSteal",
        "isDecimal": True,
        "name": "Health Steal",
        "detailedName": "Health Steal",
        "enum": "UNITSTATHEALTHSTEAL",
        "tableKey": "HEALTH_STEAL",
    },
    "28": {
        "statId": 28,
        "nameKey": "UnitStat_MaxShield",
        "descKey": "UnitStatDescription_MaxShield",
        "isDecimal": False,
        "name": "Protection",
        "detailedName": "Max Protection",
        "enum": "UNITSTATMAXSHIELD",
        "tableKey": "MAX_SHIELD",
    },
    "29": {
        "statId": 29,
        "nameKey": "UnitStat_ShieldPenetration",
        "descKey": "",
        "isDecimal": True,
        "name": "Protection Ignore",
        "detailedName": "Protection Ignore",
        "enum": "UNITSTATSHIELDPENETRATION",
        "tableKey": "SHIELD_PENETRATION",
    },
    "30": {
        "statId": 30,
        "nameKey": "UnitStat_HealthRegen",
        "descKey": "",
        "isDecimal": True,
        "name": "Health Regeneration",
        "detailedName": "Health Regen",
        "enum": "UNITSTATHEALTHREGEN",
        "tableKey": "HEALTH_REGEN",
    },
    "31": {
        "statId": 31,
        "nameKey": "UnitStat_AttackDamagePercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Physical Damage",
        "detailedName": "Physical Damage Percent Additive",
        "enum": "UNITSTATATTACKDAMAGEPERCENTADDITIVE",
        "tableKey": "ATTACK_DAMAGE_PERCENT_ADDITIVE",
    },
    "32": {
        "statId": 32,
        "nameKey": "UnitStat_AbilityPowerPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Special Damage",
        "detailedName": "Special Damage Percent Additive",
        "enum": "UNITSTATABILITYPOWERPERCENTADDITIVE",
        "tableKey": "ABILITY_POWER_PERCENT_ADDITIVE",
    },
    "33": {
        "statId": 33,
        "nameKey": "UnitStat_DodgeNegatePercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Physical Accuracy",
        "detailedName": "Dodge Negate Percent Additive",
        "enum": "UNITSTATDODGENEGATEPERCENTADDITIVE",
        "tableKey": "DODGE_NEGATE_PERCENT_ADDITIVE",
    },
    "34": {
        "statId": 34,
        "nameKey": "UnitStat_DeflectionNegatePercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Special Accuracy",
        "detailedName": "Deflection Negate Percent Additive",
        "enum": "UNITSTATDEFLECTIONNEGATEPERCENTADDITIVE",
        "tableKey": "DEFLECTION_NEGATE_PERCENT_ADDITIVE",
    },
    "35": {
        "statId": 35,
        "nameKey": "UnitStat_AttackCriticalNegatePercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Physical Critical Avoidance",
        "detailedName": "Physical Critical Negate Percent Additive",
        "enum": "UNITSTATATTACKCRITICALNEGATEPERCENTADDITIVE",
        "tableKey": "ATTACK_CRITICAL_NEGATE_PERCENT_ADDITIVE",
    },
    "36": {
        "statId": 36,
        "nameKey": "UnitStat_AbilityCriticalNegatePercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Special Critical Avoidance",
        "detailedName": "Special Critical Negate Percent Additive",
        "enum": "UNITSTATABILITYCRITICALNEGATEPERCENTADDITIVE",
        "tableKey": "ABILITY_CRITICAL_NEGATE_PERCENT_ADDITIVE",
    },
    "37": {
        "statId": 37,
        "nameKey": "UnitStat_DodgeNegateRating",
        "descKey": "UnitStatDescription_DodgeNegateRating",
        "isDecimal": False,
        "name": "Physical Accuracy",
        "detailedName": "Dodge Negate Rating",
        "enum": "UNITSTATDODGENEGATERATING",
        "tableKey": "DODGE_NEGATE_RATING",
    },
    "38": {
        "statId": 38,
        "nameKey": "UnitStat_DeflectionNegateRating",
        "descKey": "UnitStatDescription_DeflectionNegateRating",
        "isDecimal": False,
        "name": "Special Accuracy",
        "detailedName": "Deflection Negate Rating",
        "enum": "UNITSTATDEFLECTIONNEGATERATING",
        "tableKey": "DEFLECTION_NEGATE_RATING",
    },
    "39": {
        "statId": 39,
        "nameKey": "UnitStat_AttackCriticalNegateRating",
        "descKey": "UnitStatDescription_AttackCriticalNegateRating",
        "isDecimal": False,
        "name": "Physical Critical Avoidance",
        "detailedName": "Physical Critical Negate Rating",
        "enum": "UNITSTATATTACKCRITICALNEGATERATING",
        "tableKey": "ATTACK_CRITICAL_NEGATE_RATING",
    },
    "40": {
        "statId": 40,
        "nameKey": "UnitStat_AbilityCriticalNegateRating",
        "descKey": "UnitStatDescription_AbilityCriticalNegateRating",
        "isDecimal": False,
        "name": "Special Critical Avoidance",
        "detailedName": "Special Critical Negate Rating",
        "enum": "UNITSTATABILITYCRITICALNEGATERATING",
        "tableKey": "ABILITY_CRITICAL_NEGATE_RATING",
    },
    "41": {
        "statId": 41,
        "nameKey": "UnitStat_Offense",
        "descKey": "UnitStatDescription_Offense",
        "isDecimal": False,
        "name": "Offense",
        "detailedName": "Offense",
        "enum": "UNITSTATOFFENSE",
        "tableKey": "OFFENSE",
    },
    "42": {
        "statId": 42,
        "nameKey": "UnitStat_Defense",
        "descKey": "UnitStatDescription_Defense",
        "isDecimal": False,
        "name": "Defense",
        "detailedName": "Defense",
        "enum": "UNITSTATDEFENSE",
        "tableKey": "DEFENSE",
    },
    "43": {
        "statId": 43,
        "nameKey": "UnitStat_DefensePenetration",
        "descKey": "UnitStatDescription_DefensePenetration",
        "isDecimal": False,
        "name": "Defense Penetration",
        "detailedName": "Defense Penetration",
        "enum": "UNITSTATDEFENSEPENETRATION",
        "tableKey": "DEFENSE_PENETRATION",
    },
    "44": {
        "statId": 44,
        "nameKey": "UnitStat_EvasionRating",
        "descKey": "UnitStatDescription_EvasionRating",
        "isDecimal": False,
        "name": "Evasion",
        "detailedName": "Evasion Rating",
        "enum": "UNITSTATEVASIONRATING",
        "tableKey": "EVASION_RATING",
    },
    "45": {
        "statId": 45,
        "nameKey": "UnitStat_CriticalRating",
        "descKey": "UnitStatDescription_CriticalRating",
        "isDecimal": False,
        "name": "Critical Chance",
        "detailedName": "Critical Rating",
        "enum": "UNITSTATCRITICALRATING",
        "tableKey": "CRITICAL_RATING",
    },
    "46": {
        "statId": 46,
        "nameKey": "UnitStat_EvasionNegateRating",
        "descKey": "UnitStatDescription_EvasionNegateRating",
        "isDecimal": False,
        "name": "Accuracy",
        "detailedName": "Evasion Negate Rating",
        "enum": "UNITSTATEVASIONNEGATERATING",
        "tableKey": "EVASION_NEGATE_RATING",
    },
    "47": {
        "statId": 47,
        "nameKey": "UnitStat_CriticalNegateRating",
        "descKey": "UnitStatDescription_CriticalNegateRating",
        "isDecimal": False,
        "name": "Critical Avoidance",
        "detailedName": "Critical Negate Rating",
        "enum": "UNITSTATCRITICALNEGATERATING",
        "tableKey": "CRITICAL_NEGATE_RATING",
    },
    "48": {
        "statId": 48,
        "nameKey": "UnitStat_OffensePercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Offense",
        "detailedName": "Offense Percent Additive",
        "enum": "UNITSTATOFFENSEPERCENTADDITIVE",
        "tableKey": "OFFENSE_PERCENT_ADDITIVE",
    },
    "49": {
        "statId": 49,
        "nameKey": "UnitStat_DefensePercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Defense",
        "detailedName": "Defense Percent Additive",
        "enum": "UNITSTATDEFENSEPERCENTADDITIVE",
        "tableKey": "DEFENSE_PERCENT_ADDITIVE",
    },
    "50": {
        "statId": 50,
        "nameKey": "UnitStat_DefensePenetrationPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Defense Penetration",
        "detailedName": "Defense Penetration Percent Additive",
        "enum": "UNITSTATDEFENSEPENETRATIONPERCENTADDITIVE",
        "tableKey": "DEFENSE_PENETRATION_PERCENT_ADDITIVE",
    },
    "51": {
        "statId": 51,
        "nameKey": "UnitStat_EvasionPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Evasion",
        "detailedName": "Evasion Percent Additive",
        "enum": "UNITSTATEVASIONPERCENTADDITIVE",
        "tableKey": "EVASION_PERCENT_ADDITIVE",
    },
    "52": {
        "statId": 52,
        "nameKey": "UnitStat_EvasionNegatePercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Accuracy",
        "detailedName": "Evasion Negate Percent Additive",
        "enum": "UNITSTATEVASIONNEGATEPERCENTADDITIVE",
        "tableKey": "EVASION_NEGATE_PERCENT_ADDITIVE",
    },
    "53": {
        "statId": 53,
        "nameKey": "UnitStat_CriticalChancePercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Critical Chance",
        "detailedName": "Critical Chance Percent Additive",
        "enum": "UNITSTATCRITICALCHANCEPERCENTADDITIVE",
        "tableKey": "CRITICAL_CHANCE_PERCENT_ADDITIVE",
    },
    "54": {
        "statId": 54,
        "nameKey": "UnitStat_CriticalNegateChancePercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Critical Avoidance",
        "detailedName": "Critical Negate Chance Percent Additive",
        "enum": "UNITSTATCRITICALNEGATECHANCEPERCENTADDITIVE",
        "tableKey": "CRITICAL_NEGATE_CHANCE_PERCENT_ADDITIVE",
    },
    "55": {
        "statId": 55,
        "nameKey": "UnitStat_MaxHealthPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Health",
        "detailedName": "Max Health Percent Additive",
        "enum": "UNITSTATMAXHEALTHPERCENTADDITIVE",
        "tableKey": "MAX_HEALTH_PERCENT_ADDITIVE",
    },
    "56": {
        "statId": 56,
        "nameKey": "UnitStat_MaxShieldPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Protection",
        "detailedName": "Max Protection Percent Additive",
        "enum": "UNITSTATMAXSHIELDPERCENTADDITIVE",
        "tableKey": "MAX_SHIELD_PERCENT_ADDITIVE",
    },
    "57": {
        "statId": 57,
        "nameKey": "UnitStat_SpeedPercentAdditive",
        "descKey": "",
        "isDecimal": True,
        "name": "Speed",
        "detailedName": "Speed Percent Additive",
        "enum": "UNITSTATSPEEDPERCENTADDITIVE",
        "tableKey": "SPEED_PERCENT_ADDITIVE",
    },
    "58": {
        "statId": 58,
        "nameKey": "UnitStat_CounterAttackRating",
        "descKey": "",
        "isDecimal": True,
        "name": "Counter Attack",
        "detailedName": "Counter Attack Rating",
        "enum": "UNITSTATCOUNTERATTACKRATING",
        "tableKey": "COUNTER_ATTACK_RATING",
    },
    "59": {
        "statId": 59,
        "nameKey": "Combat_Buffs_TASK_NAME_2",
        "descKey": "",
        "isDecimal": True,
        "name": "Taunt",
        "detailedName": "Taunt",
        "enum": "UNITSTATTAUNT",
        "tableKey": "TAUNT",
    },
    "60": {
        "statId": 60,
        "nameKey": "UnitStat_DefensePenetrationTargetPercentAdditive",
        "descKey": "UnitStatDescription_DefensePenetrationTargetPercentAdditive",
        "isDecimal": True,
        "name": "Defense Penetration",
        "detailedName": "Target Defense Penetration Percent Additive",
        "enum": "UNITSTATDEFENSEPENETRATIONTARGETPERCENTADDITIVE",
        "tableKey": "DEFENSE_PENETRATION_TARGET_PERCENT_ADDITIVE",
    },
    "61": {
        "statId": 61,
        "nameKey": "UNIT_STAT_STAT_VIEW_MASTERY",
        "descKey": "",
        "isDecimal": True,
        "name": "Mastery",
        "detailedName": "Mastery",
        "enum": "UNITSTATMASTERY",
        "tableKey": "MASTERY",
    },
}

# ---------------------------------------------------------------------------
# Derived views (computed once at import time)
# ---------------------------------------------------------------------------

STAT_ENUMS: dict[str, str] = {k: v["nameKey"] for k, v in STATS.items()}
"""Mapping of stat ID (string) to nameKey string."""

UNIT_STAT_ENUMS_MAP: dict[str, dict[str, str]] = {
    k: {"enum": v["enum"], "nameKey": v["nameKey"], **({"tableKey": v["tableKey"]} if v["tableKey"] else {})}
    for k, v in STATS.items()
    if v.get("enum")
}
"""Mapping of stat ID to {enum, nameKey, tableKey} dict."""

# ---------------------------------------------------------------------------
# Other game data lookups
# ---------------------------------------------------------------------------

MOD_SET_IDS: dict[str, str] = {
    "1": "Health",
    "2": "Offense",
    "3": "Defense",
    "4": "Speed",
    "5": "Critical Chance",
    "6": "Critical Damage",
    "7": "Potency",
    "8": "Tenacity",
}

MOD_SLOTS: dict[str, str] = {
    "2": "Square",
    "3": "Arrow",
    "4": "Diamond",
    "5": "Triangle",
    "6": "Circle",
    "7": "Plus/Cross",
}

UNIT_RARITY: dict[int, str] = {
    1: "ONE_STAR",
    2: "TWO_STAR",
    3: "THREE_STAR",
    4: "FOUR_STAR",
    5: "FIVE_STAR",
    6: "SIX_STAR",
    7: "SEVEN_STAR",
}

UNIT_RARITY_NAMES: dict[str, str] = {v: str(k) for k, v in UNIT_RARITY.items()}

LANGUAGES: list[str] = [
    "chs_cn",
    "cht_cn",
    "eng_us",
    "fre_fr",
    "ger_de",
    "ind_id",
    "ita_it",
    "jpn_jp",
    "kor_kr",
    "por_br",
    "rus_ru",
    "spa_xm",
    "tha_th",
    "tur_tr",
]

OMICRON_MODE: dict[int, str] = {
    0: "Default",
    1: "ALL",
    4: "Raid",
    7: "TB",
    8: "TW",
    9: "GAC",
    11: "Conquest",
    12: "Galactic Challenge",
    14: "GAC (3v3)",
    15: "GAC (5v5)",
}
