-- Static data for global color Assistant settings.
-- Loaded before MSUF_AssistantRegistry_GlobalColorSettings.lua.
local addonName, MSUF = ...
MSUF = MSUF or _G.MSUF_NS or {}

local M = MSUF.MSUF2 or _G.MSUF2 or {}
MSUF.MSUF2 = M

local A = MSUF.Assistant or {}
MSUF.Assistant = A
M.Assistant = A

local Data = A.GlobalColorSettingsRegistryData or {}
A.GlobalColorSettingsRegistryData = Data

Data.COLOR_ALIASES = {
    gray = "grey",
    grau = "grey",
    violet = "purple",
    violett = "purple",
    aqua = "cyan",
    teal = "turquoise",
    weiss = "white",
    schwarz = "black",
    rot = "red",
    gruen = "green",
    blau = "blue",
    gelb = "yellow",
    lila = "purple",
    rosa = "pink",
    tuerkis = "turquoise",
}

Data.FALLBACK_COLORS = {
    white = { 1, 1, 1 },
    black = { 0, 0, 0 },
    red = { 1, 0, 0 },
    green = { 0, 1, 0 },
    blue = { 0, 0, 1 },
    yellow = { 1, 1, 0 },
    cyan = { 0, 1, 1 },
    magenta = { 1, 0, 1 },
    orange = { 1, 0.5, 0 },
    purple = { 0.6, 0, 0.8 },
    pink = { 1, 0.6, 0.8 },
    turquoise = { 0, 0.9, 0.8 },
    grey = { 0.5, 0.5, 0.5 },
    brown = { 0.6, 0.3, 0.1 },
    gold = { 1, 0.85, 0.1 },
}

Data.CP_SLOT_DEFAULTS = {
    COMBO_POINTS_1 = { 0.00, 0.95, 1.00 },
    COMBO_POINTS_2 = { 0.00, 0.95, 1.00 },
    COMBO_POINTS_3 = { 1.00, 1.00, 0.00 },
    COMBO_POINTS_4 = { 1.00, 1.00, 0.00 },
    COMBO_POINTS_5 = { 1.00, 1.00, 0.00 },
    COMBO_POINTS_6 = { 1.00, 0.05, 0.05 },
    COMBO_POINTS_7 = { 1.00, 0.05, 0.05 },
}

Data.COLOR_CLASS_TOKENS = {
    "WARRIOR", "PALADIN", "HUNTER", "ROGUE", "PRIEST", "DEATHKNIGHT", "SHAMAN",
    "MAGE", "WARLOCK", "MONK", "DRUID", "DEMONHUNTER", "EVOKER",
}

Data.COLOR_CLASS_LABELS = {
    WARRIOR = "Warrior",
    PALADIN = "Paladin",
    HUNTER = "Hunter",
    ROGUE = "Rogue",
    PRIEST = "Priest",
    DEATHKNIGHT = "Death Knight",
    SHAMAN = "Shaman",
    MAGE = "Mage",
    WARLOCK = "Warlock",
    MONK = "Monk",
    DRUID = "Druid",
    DEMONHUNTER = "Demon Hunter",
    EVOKER = "Evoker",
}

Data.COLOR_NPC_ROWS = {
    { key = "friendly", label = "Friendly NPC Color", dr = 0, dg = 1, db = 0, aliases = { "friendly npc color", "friendly reaction color" } },
    { key = "neutral", label = "Neutral NPC Color", dr = 1, dg = 1, db = 0, aliases = { "neutral npc color", "neutral reaction color" } },
    { key = "enemy", label = "Enemy NPC Color", dr = 0.85, dg = 0.10, db = 0.10, aliases = { "enemy npc color", "hostile npc color", "enemy reaction color" } },
    { key = "dead", label = "Dead NPC Color", dr = 0.40, dg = 0.40, db = 0.40, aliases = { "dead npc color", "dead unit color" } },
}

Data.COLOR_NPC_TYPE_TOGGLE_ROWS = {
    { key = "npcTypeTarget", label = "NPC Type Color Target", aliases = { "npc type colors target", "target npc type colors" } },
    { key = "npcTypeFocus", label = "NPC Type Color Focus", aliases = { "npc type colors focus", "focus npc type colors" } },
    { key = "npcTypeBoss", label = "NPC Type Color Boss", aliases = { "npc type colors boss", "boss npc type colors" } },
    { key = "npcTypeToT", label = "NPC Type Color Target of Target", aliases = { "npc type colors targettarget", "targettarget npc type colors", "tot npc type colors" } },
}

Data.COLOR_NPC_TYPE_ROWS = {
    { key = "npcBoss", label = "Boss NPC Type Color", dr = 0.74, dg = 0.11, db = 0, aliases = { "boss npc type color", "npc boss color", "boss type color" } },
    { key = "npcMiniboss", label = "Miniboss NPC Type Color", dr = 0.56, dg = 0, db = 0.74, aliases = { "miniboss npc type color", "lieutenant npc color", "npc miniboss color" } },
    { key = "npcCaster", label = "Caster NPC Type Color", dr = 0, dg = 0.45, db = 0.74, aliases = { "caster npc type color", "npc caster color", "caster type color" } },
    { key = "npcMelee", label = "Melee NPC Type Color", dr = 0.99, dg = 0.99, db = 0.99, aliases = { "melee npc type color", "npc melee color", "melee type color" } },
    { key = "npcRegular", label = "Regular NPC Type Color", dr = 0.70, dg = 0.56, db = 0.33, aliases = { "regular npc type color", "npc regular color", "regular type color" } },
}

Data.COLOR_DISPEL_TYPE_ROWS = {
    { key = "Magic", label = "Magic Dispel Color", dr = 0.20, dg = 0.60, db = 1.00, aliases = { "magic dispel color", "magic debuff color" } },
    { key = "Curse", label = "Curse Dispel Color", dr = 0.60, dg = 0.00, db = 1.00, aliases = { "curse dispel color", "curse debuff color" } },
    { key = "Disease", label = "Disease Dispel Color", dr = 0.60, dg = 0.40, db = 0.00, aliases = { "disease dispel color", "disease debuff color" } },
    { key = "Poison", label = "Poison Dispel Color", dr = 0.00, dg = 0.60, db = 0.00, aliases = { "poison dispel color", "poison debuff color" } },
    { key = "Bleed", label = "Bleed Dispel Color", dr = 0.80, dg = 0.10, db = 0.10, aliases = { "bleed dispel color", "bleed debuff color" } },
}

Data.COLOR_CASTBAR_ROWS = {
    { key = "castbarInterruptible", label = "Interruptible Cast Color", get = "GetInterruptibleCastColor", set = "SetInterruptibleCastColor", dr = 0, dg = 0.9, db = 0.8, aliases = { "interruptible cast color", "interruptible castbar color", "castbar interruptible color", "interrupt castbar color", "castbar interrupt color", "kickable cast color", "kickable castbar color" } },
    { key = "castbarNonInterruptible", label = "Non-Interruptible Cast Color", get = "GetNonInterruptibleCastColor", set = "SetNonInterruptibleCastColor", dr = 0.4, dg = 0.01, db = 0.01, aliases = { "non interruptible cast color", "non interruptible castbar color", "noninterruptible cast color", "noninterruptible castbar color", "not interruptible castbar color", "uninterruptible cast color", "uninterruptible castbar color", "unkickable cast color", "unkickable castbar color", "not kickable castbar color" } },
    { key = "castbarInterruptUnavailable", label = "Interrupt Unavailable Fill Color", get = "GetInterruptUnavailableCastColor", set = "SetInterruptUnavailableCastColor", dr = 1.0, dg = 0.494117647, db = 0.137254902, aliases = { "interrupt unavailable fill color", "unavailable cast fill color", "unavailable fill color", "kick unavailable fill color", "kick cooldown fill color", "interrupt cooldown fill color", "castbar unavailable fill color" } },
    { key = "castbarInterruptFeedback", label = "Interrupt Feedback Cast Color", get = "GetInterruptFeedbackCastColor", set = "SetInterruptFeedbackCastColor", dr = 1, dg = 0.82, db = 0, aliases = { "interrupt feedback color", "castbar interrupt feedback color", "interrupt color all castbars", "interrupt color for all castbars", "interrupted cast color", "interrupted castbar color", "after interrupt cast color" } },
    { key = "castbarFont", label = "Cast Bar Text Color", get = "GetCastbarTextColor", set = "SetCastbarTextColor", dr = 1, dg = 1, db = 1, aliases = { "castbar text color", "castbar font color", "cast bar text color", "castbar spell name color", "castbar spell name text color", "castbar spell color", "castbar spell text color", "spell name color", "spell text color" } },
}

Data.COLOR_POWER_TOKENS = {
    { key = "MANA", label = "Mana" },
    { key = "RAGE", label = "Rage" },
    { key = "ENERGY", label = "Energy" },
    { key = "FOCUS", label = "Focus" },
    { key = "RUNIC_POWER", label = "Runic Power" },
    { key = "INSANITY", label = "Insanity" },
    { key = "FURY", label = "Fury" },
    { key = "PAIN", label = "Pain" },
    { key = "ESSENCE", label = "Essence" },
    { key = "LUNAR_POWER", label = "Astral Power" },
    { key = "MAELSTROM", label = "Maelstrom" },
}

Data.COLOR_CP_TOKENS = {
    { key = "COMBO_POINTS", label = "Combo Points" },
    { key = "HOLY_POWER", label = "Holy Power" },
    { key = "SOUL_SHARDS", label = "Soul Shards" },
    { key = "CHI", label = "Chi" },
    { key = "ARCANE_CHARGES", label = "Arcane Charges" },
    { key = "RUNES", label = "Runes" },
    { key = "ESSENCE", label = "Essence" },
    { key = "CHARGED", label = "Empowered / Charged" },
    { key = "SOUL_FRAGMENTS", label = "Soul Fragments" },
    { key = "SOUL_FRAGMENTS_META", label = "Soul Fragments Void Meta" },
    { key = "MAELSTROM", label = "Maelstrom Weapon" },
    { key = "MAELSTROM_ABOVE_5", label = "Maelstrom Weapon 5+" },
    { key = "ASTRAL_POWER", label = "Astral Power" },
    { key = "AP_PREDICTION", label = "Astral Prediction" },
    { key = "ECLIPSE_SOLAR", label = "Eclipse Solar" },
    { key = "ECLIPSE_LUNAR", label = "Eclipse Lunar" },
    { key = "ECLIPSE_CA", label = "Celestial Alignment" },
    { key = "STAGGER_GREEN", label = "Stagger Light" },
    { key = "STAGGER_YELLOW", label = "Stagger Moderate" },
    { key = "STAGGER_RED", label = "Stagger Heavy" },
    { key = "SOUL_FRAGMENTS_VENG", label = "Soul Fragments Vengeance" },
    { key = "INSANITY", label = "Insanity" },
    { key = "MAELSTROM_POWER", label = "Maelstrom Power" },
    { key = "WHIRLWIND", label = "Whirlwind" },
    { key = "TIP_OF_THE_SPEAR", label = "Tip of the Spear" },
    { key = "ICICLES", label = "Icicles" },
    { key = "EBON_MIGHT", label = "Ebon Might" },
    { key = "RESOURCE_TEXT", label = "Resource Text" },
}

Data.AURA_COOLDOWN_TEXT_COLOR_ROWS = {
    { key = "aurasCooldownTextSafeColor", label = "Aura Cooldown Safe Text Color", dr = 1, dg = 1, db = 1, aliases = { "aura cooldown safe color", "aura cooldown safe text color", "cooldown text safe color", "aura timer safe color", "aura safe timer color", "safe aura timer color" } },
    { key = "aurasCooldownTextWarningColor", label = "Aura Cooldown Warning Text Color", dr = 1, dg = 0.85, db = 0.2, aliases = { "aura cooldown warning color", "aura cooldown warning text color", "cooldown text warning color", "aura timer warning color", "aura warning timer color", "warning aura timer color" } },
    { key = "aurasCooldownTextUrgentColor", label = "Aura Cooldown Urgent Text Color", dr = 1, dg = 0.55, db = 0.1, aliases = { "aura cooldown urgent color", "aura cooldown urgent text color", "cooldown text urgent color", "aura timer urgent color", "aura urgent timer color", "urgent aura timer color" } },
}

Data.AURA_COOLDOWN_TEXT_THRESHOLD_ROWS = {
    { key = "aurasCooldownTextSafeSeconds", attr = "auraCooldownTextSafeSeconds", label = "Aura Cooldown Safe Seconds", defaultValue = 60, minValue = 0, maxValue = 600, aliases = { "aura cooldown safe seconds", "aura timer safe seconds", "aura safe seconds", "safe aura seconds", "safe aura timer threshold", "aura safe timer threshold" } },
    { key = "aurasCooldownTextWarningSeconds", attr = "auraCooldownTextWarningSeconds", label = "Aura Cooldown Warning Seconds", defaultValue = 15, minValue = 0, maxValue = 30, aliases = { "aura cooldown warning seconds", "aura timer warning seconds", "aura warning seconds", "warning aura seconds", "warning aura timer threshold", "aura warning timer threshold" } },
    { key = "aurasCooldownTextUrgentSeconds", attr = "auraCooldownTextUrgentSeconds", label = "Aura Cooldown Urgent Seconds", defaultValue = 5, minValue = 0, maxValue = 15, aliases = { "aura cooldown urgent seconds", "aura timer urgent seconds", "aura urgent seconds", "urgent aura seconds", "urgent aura timer threshold", "aura urgent timer threshold" } },
}
