From d91f78e92731bc7f835988e664714aa3b9f4d4da Mon Sep 17 00:00:00 2001 From: NoM0Re Date: Thu, 19 Jun 2025 14:14:49 +0200 Subject: [PATCH] (feat/Templates) Include WeakAuras Templates (#56) --- ...AceGUIContainer-WeakAurasTemplateGroup.lua | 84 + WeakAurasTemplates/Locales/deDE.lua | 213 ++ WeakAurasTemplates/Locales/enUS.lua | 133 ++ WeakAurasTemplates/Locales/esES.lua | 132 ++ WeakAurasTemplates/Locales/esMX.lua | 132 ++ WeakAurasTemplates/Locales/frFR.lua | 155 ++ WeakAurasTemplates/Locales/itIT.lua | 210 ++ WeakAurasTemplates/Locales/koKR.lua | 131 ++ WeakAurasTemplates/Locales/ptBR.lua | 219 ++ WeakAurasTemplates/Locales/ruRU.lua | 131 ++ WeakAurasTemplates/Locales/zhCN.lua | 131 ++ WeakAurasTemplates/Locales/zhTW.lua | 131 ++ WeakAurasTemplates/TriggerTemplates.lua | 1879 +++++++++++++++++ .../TriggerTemplatesDataWrath.lua | 1224 +++++++++++ WeakAurasTemplates/WeakAurasTemplates.toc | 19 + WeakAurasTemplates/locales.xml | 16 + 16 files changed, 4940 insertions(+) create mode 100644 WeakAurasTemplates/AceGUI-Widgets/AceGUIContainer-WeakAurasTemplateGroup.lua create mode 100644 WeakAurasTemplates/Locales/deDE.lua create mode 100644 WeakAurasTemplates/Locales/enUS.lua create mode 100644 WeakAurasTemplates/Locales/esES.lua create mode 100644 WeakAurasTemplates/Locales/esMX.lua create mode 100644 WeakAurasTemplates/Locales/frFR.lua create mode 100644 WeakAurasTemplates/Locales/itIT.lua create mode 100644 WeakAurasTemplates/Locales/koKR.lua create mode 100644 WeakAurasTemplates/Locales/ptBR.lua create mode 100644 WeakAurasTemplates/Locales/ruRU.lua create mode 100644 WeakAurasTemplates/Locales/zhCN.lua create mode 100644 WeakAurasTemplates/Locales/zhTW.lua create mode 100644 WeakAurasTemplates/TriggerTemplates.lua create mode 100644 WeakAurasTemplates/TriggerTemplatesDataWrath.lua create mode 100644 WeakAurasTemplates/WeakAurasTemplates.toc create mode 100644 WeakAurasTemplates/locales.xml diff --git a/WeakAurasTemplates/AceGUI-Widgets/AceGUIContainer-WeakAurasTemplateGroup.lua b/WeakAurasTemplates/AceGUI-Widgets/AceGUIContainer-WeakAurasTemplateGroup.lua new file mode 100644 index 0000000..a92b3df --- /dev/null +++ b/WeakAurasTemplates/AceGUI-Widgets/AceGUIContainer-WeakAurasTemplateGroup.lua @@ -0,0 +1,84 @@ +if not WeakAuras.IsLibsOK() then return end + +--[[----------------------------------------------------------------------------- +WeakAurasTemplateGroup Container +Simple container that is used in the template selection +-------------------------------------------------------------------------------]] +local Type, Version = "WeakAurasTemplateGroup", 1 +local AceGUI = LibStub and LibStub("AceGUI-3.0", true) +if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end + +-- Lua APIs +local pairs = pairs + +-- WoW APIs +local CreateFrame, UIParent = CreateFrame, UIParent + +--[[----------------------------------------------------------------------------- +Methods +-------------------------------------------------------------------------------]] +local methods = { + ["OnAcquire"] = function(self) + self:SetWidth(300) + self:SetHeight(100) + end, + + ["LayoutFinished"] = function(self, width, height) + if self.noAutoHeight then return end + self:SetHeight((height or 0) + 15) + end, + + ["OnWidthSet"] = function(self, width) + local content = self.content + local contentwidth = width - 20 + if contentwidth < 0 then + contentwidth = 0 + end + content:SetWidth(contentwidth) + content.width = contentwidth + end, + + ["OnHeightSet"] = function(self, height) + local content = self.content + local contentheight = height - 15 + if contentheight < 0 then + contentheight = 0 + end + content:SetHeight(contentheight) + content.height = contentheight + end +} + +--[[----------------------------------------------------------------------------- +Constructor +-------------------------------------------------------------------------------]] +local PaneBackdrop = { + bgFile = "Interface\\ChatFrame\\ChatFrameBackground", + edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", + tile = true, tileSize = 16, edgeSize = 16, + insets = { left = 3, right = 3, top = 5, bottom = 3 } +} + +local function Constructor() + local frame = CreateFrame("Frame", nil, UIParent) + frame:SetFrameStrata("FULLSCREEN_DIALOG") + + --Container Support + local content = CreateFrame("Frame", nil, frame) + content:SetPoint("TOPLEFT", 20, 0) + content:SetPoint("BOTTOMRIGHT", 0, 15) + + --- @type table + local widget = { + frame = frame, + content = content, + type = Type + } + for method, func in pairs(methods) do + widget[method] = func + end + + return AceGUI:RegisterAsContainer(widget) +end + +AceGUI:RegisterWidgetType(Type, Constructor, Version) diff --git a/WeakAurasTemplates/Locales/deDE.lua b/WeakAurasTemplates/Locales/deDE.lua new file mode 100644 index 0000000..48092d2 --- /dev/null +++ b/WeakAurasTemplates/Locales/deDE.lua @@ -0,0 +1,213 @@ +if not WeakAuras.IsLibsOK() then return end + +if (GAME_LOCALE or GetLocale()) ~= "deDE" then + return +end + +local L = WeakAuras.L + +-- WeakAuras/Templates + L["(Dwarf)"] = "(Zwerg)" + L["(Dwarf/Human)"] = "(Zwerg/Mensch)" + L["(Human)"] = "(Mensch)" + L["(Night Elf)"] = "(Nachtelf)" + L["(Troll)"] = "(Troll)" + L["(Undead)"] = "(Untot)" + --[[Translation missing --]] + L["< 4 stacks"] = "< 4 stacks" + --[[Translation missing --]] + L["5 stacks"] = "5 stacks" + L["Abilities"] = "Fähigkeiten" + L["Add Triggers"] = "Auslöser hinzufügen" + L["Always Active"] = "Immer aktiv" + L["Always Show"] = "Immer anzeigen" + L["Always show the aura, highlight it if debuffed."] = "Zeige immer die Aura, hebe sie hervor, wenn sie geschwächt ist." + L["Always show the aura, turns grey if on cooldown."] = "Aura immer anzeigen, wird Grau wenn es auf Abkühlen steht." + --[[Translation missing --]] + L["Always show the aura, turns grey if the debuff not active."] = "Always show the aura, turns grey if the debuff not active." + --[[Translation missing --]] + L["Always shows highlights if enchant missing."] = "Always shows highlights if enchant missing." + --[[Translation missing --]] + L["Always shows the aura, grey if buff not active."] = "Always shows the aura, grey if buff not active." + --[[Translation missing --]] + L["Always shows the aura, highlight it if buffed."] = "Always shows the aura, highlight it if buffed." + --[[Translation missing --]] + L["Always shows the aura, highlight when active, turns blue on insufficient resources."] = "Always shows the aura, highlight when active, turns blue on insufficient resources." + --[[Translation missing --]] + L["Always shows the aura, highlight while proc is active, blue on insufficient resources."] = "Always shows the aura, highlight while proc is active, blue on insufficient resources." + --[[Translation missing --]] + L["Always shows the aura, highlight while proc is active, blue when not usable."] = "Always shows the aura, highlight while proc is active, blue when not usable." + --[[Translation missing --]] + L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources." + --[[Translation missing --]] + L["Always shows the aura, turns blue on insufficient resources."] = "Always shows the aura, turns blue on insufficient resources." + --[[Translation missing --]] + L["Always shows the aura, turns blue when not usable."] = "Always shows the aura, turns blue when not usable." + --[[Translation missing --]] + L["Always shows the aura, turns grey if on cooldown."] = "Always shows the aura, turns grey if on cooldown." + --[[Translation missing --]] + L["Always shows the aura, turns grey if the ability is not usable and red when out of range."] = "Always shows the aura, turns grey if the ability is not usable and red when out of range." + --[[Translation missing --]] + L["Always shows the aura, turns grey if the ability is not usable."] = "Always shows the aura, turns grey if the ability is not usable." + --[[Translation missing --]] + L["Always shows the aura, turns red when out of range, blue on insufficient resources."] = "Always shows the aura, turns red when out of range, blue on insufficient resources." + --[[Translation missing --]] + L["Always shows the aura, turns red when out of range."] = "Always shows the aura, turns red when out of range." + --[[Translation missing --]] + L["Always shows the aura."] = "Always shows the aura." + L["Back"] = "Zurück" + --[[Translation missing --]] + L["Basic Show On Cooldown"] = "Basic Show On Cooldown" + --[[Translation missing --]] + L["Basic Show On Ready"] = "Basic Show On Ready" + L["Bloodlust/Heroism"] = "Kampfrausch/Heldentum" + L["buff"] = "buff" + L["Buffs"] = "Buffs" + L["Cancel"] = "Abbrechen" + L["Cast"] = "Zauberwirken" + --[[Translation missing --]] + L["Charge and Buff Tracking"] = "Charge and Buff Tracking" + --[[Translation missing --]] + L["Charge and Debuff Tracking"] = "Charge and Debuff Tracking" + --[[Translation missing --]] + L["Charge and Duration Tracking"] = "Charge and Duration Tracking" + --[[Translation missing --]] + L["Charge Tracking"] = "Charge Tracking" + L["cooldown"] = "Abklingzeit" + --[[Translation missing --]] + L["Cooldown Tracking"] = "Cooldown Tracking" + --[[Translation missing --]] + L["Cooldowns"] = "Cooldowns" + L["Create Auras"] = "Auren erstellen" + L["debuff"] = "Schwächungszauber" + L["Debuffs"] = "Debuffs" + --[[Translation missing --]] + L["dps buff"] = "dps buff" + L["General"] = "Allgemein" + L["Health"] = "Gesundheit" + --[[Translation missing --]] + L["Highlight while action is queued."] = "Highlight while action is queued." + --[[Translation missing --]] + L["Highlight while active, red when out of range."] = "Highlight while active, red when out of range." + --[[Translation missing --]] + L["Highlight while active."] = "Highlight while active." + --[[Translation missing --]] + L["Highlight while buffed, red when out of range."] = "Highlight while buffed, red when out of range." + --[[Translation missing --]] + L["Highlight while buffed."] = "Highlight while buffed." + --[[Translation missing --]] + L["Highlight while debuffed, red when out of range."] = "Highlight while debuffed, red when out of range." + --[[Translation missing --]] + L["Highlight while debuffed."] = "Highlight while debuffed." + --[[Translation missing --]] + L["Highlight while spell is active."] = "Highlight while spell is active." + --[[Translation missing --]] + L["Hold CTRL to create multiple auras at once"] = "Hold CTRL to create multiple auras at once" + L["Keeps existing triggers intact"] = "Verändert existierende Auslöser nicht" + --[[Translation missing --]] + L["Master Channeler Rune"] = "Master Channeler Rune" + --[[Translation missing --]] + L["Max 3"] = "Max 3" + --[[Translation missing --]] + L["Max 4"] = "Max 4" + L["Next"] = "Nächste" + --[[Translation missing --]] + L["Only show the aura if the target has the debuff."] = "Only show the aura if the target has the debuff." + --[[Translation missing --]] + L["Only show the aura when the item is on cooldown."] = "Only show the aura when the item is on cooldown." + --[[Translation missing --]] + L["Only shows if the weapon is enchanted."] = "Only shows if the weapon is enchanted." + --[[Translation missing --]] + L["Only shows if the weapon is not enchanted."] = "Only shows if the weapon is not enchanted." + --[[Translation missing --]] + L["Only shows the aura if the target has the buff."] = "Only shows the aura if the target has the buff." + --[[Translation missing --]] + L["Only shows the aura when the ability is on cooldown."] = "Only shows the aura when the ability is on cooldown." + --[[Translation missing --]] + L["Only shows the aura when the ability is ready to use."] = "Only shows the aura when the ability is ready to use." + --[[Translation missing --]] + L["Other cooldown"] = "Other cooldown" + L["Pet alive"] = "Begleiter am Leben" + L["Pet Behavior"] = "Begleiterverhalten" + L["PvP Talents"] = "PvP-Talente" + --[[Translation missing --]] + L["regen buff"] = "regen buff" + L["Replace all existing triggers"] = "Ersetzt alle vorhandenen Auslöser " + L["Replace Triggers"] = "Auslöser ersetzen" + L["Resources"] = "Ressourcen" + L["Resources and Shapeshift Form"] = "Ressourcen und Gestaltwandlungsform" + --[[Translation missing --]] + L["Rogue cooldown"] = "Rogue cooldown" + L["Runes"] = "Runen" + L["Shapeshift Form"] = "Gestaltwandlungsform" + --[[Translation missing --]] + L["Show Always, Glow on Missing"] = "Show Always, Glow on Missing" + --[[Translation missing --]] + L["Show Charges and Check Usable"] = "Show Charges and Check Usable" + --[[Translation missing --]] + L["Show Charges with Proc Tracking"] = "Show Charges with Proc Tracking" + --[[Translation missing --]] + L["Show Charges with Range Tracking"] = "Show Charges with Range Tracking" + --[[Translation missing --]] + L["Show Charges with Usable Check"] = "Show Charges with Usable Check" + --[[Translation missing --]] + L["Show Cooldown and Action Queued"] = "Show Cooldown and Action Queued" + --[[Translation missing --]] + L["Show Cooldown and Buff"] = "Show Cooldown and Buff" + --[[Translation missing --]] + L["Show Cooldown and Buff and Check for Target"] = "Show Cooldown and Buff and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Buff and Check Usable"] = "Show Cooldown and Buff and Check Usable" + --[[Translation missing --]] + L["Show Cooldown and Check for Target"] = "Show Cooldown and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Check for Target & Proc Tracking"] = "Show Cooldown and Check for Target & Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Check Usable"] = "Show Cooldown and Check Usable" + --[[Translation missing --]] + L["Show Cooldown and Check Usable & Target"] = "Show Cooldown and Check Usable & Target" + --[[Translation missing --]] + L["Show Cooldown and Check Usable, Proc Tracking"] = "Show Cooldown and Check Usable, Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Check Usable, Target & Proc Tracking"] = "Show Cooldown and Check Usable, Target & Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Debuff"] = "Show Cooldown and Debuff" + --[[Translation missing --]] + L["Show Cooldown and Debuff and Check for Target"] = "Show Cooldown and Debuff and Check for Target" + L["Show Cooldown and Duration"] = "Abklingzeit und Dauer anzeigen" + --[[Translation missing --]] + L["Show Cooldown and Duration and Check for Target"] = "Show Cooldown and Duration and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Duration and Check Usable"] = "Show Cooldown and Duration and Check Usable" + --[[Translation missing --]] + L["Show Cooldown and Proc Tracking"] = "Show Cooldown and Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Totem Information"] = "Show Cooldown and Totem Information" + --[[Translation missing --]] + L["Show if Enchant Missing"] = "Show if Enchant Missing" + --[[Translation missing --]] + L["Show on Ready"] = "Show on Ready" + --[[Translation missing --]] + L["Show Only if Buffed"] = "Show Only if Buffed" + --[[Translation missing --]] + L["Show Only if Debuffed"] = "Show Only if Debuffed" + --[[Translation missing --]] + L["Show Only if Enchanted"] = "Show Only if Enchanted" + --[[Translation missing --]] + L["Show Only if on Cooldown"] = "Show Only if on Cooldown" + --[[Translation missing --]] + L["Show Totem and Charge Information"] = "Show Totem and Charge Information" + L["Stance"] = "Haltung" + --[[Translation missing --]] + L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources." + --[[Translation missing --]] + L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."] = "Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources." + --[[Translation missing --]] + L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."] = "Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources." + --[[Translation missing --]] + L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."] = "Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources." + L["Unknown Item"] = "Unbekannter Gegenstand" + L["Unknown Spell"] = "Unbekannter Zauber" + --[[Translation missing --]] + L["Warrior cooldown"] = "Warrior cooldown" + diff --git a/WeakAurasTemplates/Locales/enUS.lua b/WeakAurasTemplates/Locales/enUS.lua new file mode 100644 index 0000000..1332bf7 --- /dev/null +++ b/WeakAurasTemplates/Locales/enUS.lua @@ -0,0 +1,133 @@ +if not WeakAuras.IsLibsOK() then return end + +local L = WeakAuras.L + +-- WeakAuras/Templates + L["(Dwarf)"] = "(Dwarf)" + L["(Dwarf/Human)"] = "(Dwarf/Human)" + L["(Human)"] = "(Human)" + L["(Night Elf)"] = "(Night Elf)" + L["(Troll)"] = "(Troll)" + L["(Undead)"] = "(Undead)" + L["< 4 stacks"] = "< 4 stacks" + L["5 stacks"] = "5 stacks" + L["Abilities"] = "Abilities" + L["Add Triggers"] = "Add Triggers" + L["Always Active"] = "Always Active" + L["Always Show"] = "Always Show" + L["Always show the aura, highlight it if debuffed."] = "Always show the aura, highlight it if debuffed." + L["Always show the aura, turns grey if on cooldown."] = "Always show the aura, turns grey if on cooldown." + L["Always show the aura, turns grey if the debuff not active."] = "Always show the aura, turns grey if the debuff not active." + L["Always shows highlights if enchant missing."] = "Always shows highlights if enchant missing." + L["Always shows the aura, grey if buff not active."] = "Always shows the aura, grey if buff not active." + L["Always shows the aura, highlight it if buffed."] = "Always shows the aura, highlight it if buffed." + L["Always shows the aura, highlight when active, turns blue on insufficient resources."] = "Always shows the aura, highlight when active, turns blue on insufficient resources." + L["Always shows the aura, highlight while proc is active, blue on insufficient resources."] = "Always shows the aura, highlight while proc is active, blue on insufficient resources." + L["Always shows the aura, highlight while proc is active, blue when not usable."] = "Always shows the aura, highlight while proc is active, blue when not usable." + L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources." + L["Always shows the aura, turns blue on insufficient resources."] = "Always shows the aura, turns blue on insufficient resources." + L["Always shows the aura, turns blue when not usable."] = "Always shows the aura, turns blue when not usable." + L["Always shows the aura, turns grey if on cooldown."] = "Always shows the aura, turns grey if on cooldown." + L["Always shows the aura, turns grey if the ability is not usable and red when out of range."] = "Always shows the aura, turns grey if the ability is not usable and red when out of range." + L["Always shows the aura, turns grey if the ability is not usable."] = "Always shows the aura, turns grey if the ability is not usable." + L["Always shows the aura, turns red when out of range, blue on insufficient resources."] = "Always shows the aura, turns red when out of range, blue on insufficient resources." + L["Always shows the aura, turns red when out of range."] = "Always shows the aura, turns red when out of range." + L["Always shows the aura."] = "Always shows the aura." + L["Back"] = "Back" + L["Basic Show On Cooldown"] = "Basic Show On Cooldown" + L["Basic Show On Ready"] = "Basic Show On Ready" + L["Bloodlust/Heroism"] = "Bloodlust/Heroism" + L["buff"] = "buff" + L["Buffs"] = "Buffs" + L["Cancel"] = "Cancel" + L["Cast"] = "Cast" + L["Charge and Buff Tracking"] = "Charge and Buff Tracking" + L["Charge and Debuff Tracking"] = "Charge and Debuff Tracking" + L["Charge and Duration Tracking"] = "Charge and Duration Tracking" + L["Charge Tracking"] = "Charge Tracking" + L["cooldown"] = "cooldown" + L["Cooldown Tracking"] = "Cooldown Tracking" + L["Cooldowns"] = "Cooldowns" + L["Create Auras"] = "Create Auras" + L["debuff"] = "debuff" + L["Debuffs"] = "Debuffs" + L["dps buff"] = "dps buff" + L["General"] = "General" + L["Health"] = "Health" + L["Highlight while action is queued."] = "Highlight while action is queued." + L["Highlight while active, red when out of range."] = "Highlight while active, red when out of range." + L["Highlight while active."] = "Highlight while active." + L["Highlight while buffed, red when out of range."] = "Highlight while buffed, red when out of range." + L["Highlight while buffed."] = "Highlight while buffed." + L["Highlight while debuffed, red when out of range."] = "Highlight while debuffed, red when out of range." + L["Highlight while debuffed."] = "Highlight while debuffed." + L["Highlight while spell is active."] = "Highlight while spell is active." + L["Hold CTRL to create multiple auras at once"] = "Hold CTRL to create multiple auras at once" + L["Keeps existing triggers intact"] = "Keeps existing triggers intact" + L["Master Channeler Rune"] = "Master Channeler Rune" + L["Max 3"] = "Max 3" + L["Max 4"] = "Max 4" + L["Next"] = "Next" + L["Only show the aura if the target has the debuff."] = "Only show the aura if the target has the debuff." + L["Only show the aura when the item is on cooldown."] = "Only show the aura when the item is on cooldown." + L["Only shows if the weapon is enchanted."] = "Only shows if the weapon is enchanted." + L["Only shows if the weapon is not enchanted."] = "Only shows if the weapon is not enchanted." + L["Only shows the aura if the target has the buff."] = "Only shows the aura if the target has the buff." + L["Only shows the aura when the ability is on cooldown."] = "Only shows the aura when the ability is on cooldown." + L["Only shows the aura when the ability is ready to use."] = "Only shows the aura when the ability is ready to use." + L["Other cooldown"] = "Other cooldown" + L["Pet alive"] = "Pet alive" + L["Pet Behavior"] = "Pet Behavior" + L["PvP Talents"] = "PvP Talents" + L["regen buff"] = "regen buff" + L["Replace all existing triggers"] = "Replace all existing triggers" + L["Replace Triggers"] = "Replace Triggers" + L["Resources"] = "Resources" + L["Resources and Shapeshift Form"] = "Resources and Shapeshift Form" + L["Rogue cooldown"] = "Rogue cooldown" + L["Runes"] = "Runes" + L["Shapeshift Form"] = "Shapeshift Form" + L["Show Always, Glow on Missing"] = "Show Always, Glow on Missing" + L["Show Charges and Check Usable"] = "Show Charges and Check Usable" + L["Show Charges with Proc Tracking"] = "Show Charges with Proc Tracking" + L["Show Charges with Range Tracking"] = "Show Charges with Range Tracking" + L["Show Charges with Usable Check"] = "Show Charges with Usable Check" + L["Show Cooldown and Action Queued"] = "Show Cooldown and Action Queued" + L["Show Cooldown and Buff"] = "Show Cooldown and Buff" + L["Show Cooldown and Buff and Check for Target"] = "Show Cooldown and Buff and Check for Target" + L["Show Cooldown and Buff and Check Usable"] = "Show Cooldown and Buff and Check Usable" + L["Show Cooldown and Check for Target"] = "Show Cooldown and Check for Target" + L["Show Cooldown and Check for Target & Proc Tracking"] = "Show Cooldown and Check for Target & Proc Tracking" + L["Show Cooldown and Check Usable"] = "Show Cooldown and Check Usable" + L["Show Cooldown and Check Usable & Target"] = "Show Cooldown and Check Usable & Target" + L["Show Cooldown and Check Usable, Proc Tracking"] = "Show Cooldown and Check Usable, Proc Tracking" + L["Show Cooldown and Check Usable, Target & Proc Tracking"] = "Show Cooldown and Check Usable, Target & Proc Tracking" + L["Show Cooldown and Debuff"] = "Show Cooldown and Debuff" + L["Show Cooldown and Debuff and Check for Target"] = "Show Cooldown and Debuff and Check for Target" + L["Show Cooldown and Duration"] = "Show Cooldown and Duration" + L["Show Cooldown and Duration and Check for Target"] = "Show Cooldown and Duration and Check for Target" + L["Show Cooldown and Duration and Check Usable"] = "Show Cooldown and Duration and Check Usable" + L["Show Cooldown and Proc Tracking"] = "Show Cooldown and Proc Tracking" + L["Show Cooldown and Totem Information"] = "Show Cooldown and Totem Information" + L["Show if Enchant Missing"] = "Show if Enchant Missing" + L["Show on Ready"] = "Show on Ready" + L["Show Only if Buffed"] = "Show Only if Buffed" + L["Show Only if Debuffed"] = "Show Only if Debuffed" + L["Show Only if Enchanted"] = "Show Only if Enchanted" + L["Show Only if on Cooldown"] = "Show Only if on Cooldown" + L["Show Totem and Charge Information"] = "Show Totem and Charge Information" + L["Stance"] = "Stance" + L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources." + L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."] = "Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources." + L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."] = "Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources." + L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."] = "Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources." + L["Unknown Item"] = "Unknown Item" + L["Unknown Spell"] = "Unknown Spell" + L["Warrior cooldown"] = "Warrior cooldown" + + +-- Make missing translations available +setmetatable(WeakAuras.L, {__index = function(self, key) + self[key] = (key or "") + return key +end}) diff --git a/WeakAurasTemplates/Locales/esES.lua b/WeakAurasTemplates/Locales/esES.lua new file mode 100644 index 0000000..b3ed52e --- /dev/null +++ b/WeakAurasTemplates/Locales/esES.lua @@ -0,0 +1,132 @@ +if not WeakAuras.IsLibsOK() then return end + +if (GAME_LOCALE or GetLocale()) ~= "esES" then + return +end + +local L = WeakAuras.L + +-- WeakAuras/Templates + L["(Dwarf)"] = "(Enano)" + L["(Dwarf/Human)"] = "(Enano/Humano)" + L["(Human)"] = "(Humano)" + L["(Night Elf)"] = "(Elfo de la noche)" + L["(Troll)"] = "(Trol)" + L["(Undead)"] = "(No-muerto)" + L["< 4 stacks"] = "< 4 acumulaciones" + L["5 stacks"] = "5 acumulaciones" + L["Abilities"] = "Habilidades" + L["Add Triggers"] = "Añadir activadores" + L["Always Active"] = "Siempre activo" + L["Always Show"] = "Mostrar siempre" + L["Always show the aura, highlight it if debuffed."] = "Mostrar siempre el aura, resaltarla si hay perjuicios." + L["Always show the aura, turns grey if on cooldown."] = "Siempre muestra el aura, se vuelve gris si está en tiempo de reutilización." + L["Always show the aura, turns grey if the debuff not active."] = "Mostrar siempre el aura, se vuelve gris si el perjuicio no está activo." + L["Always shows highlights if enchant missing."] = "Siempre se muestra resplandeciente si no hay encantamiento." + L["Always shows the aura, grey if buff not active."] = "Muestra siempre el aura, se vuelve gris si el beneficio no está activo." + L["Always shows the aura, highlight it if buffed."] = "Muestra siempre el aura, la resalta si el beneficio está activo." + L["Always shows the aura, highlight when active, turns blue on insufficient resources."] = "Muestra siempre el aura, la resalta si está activa, se vuelve azul si no hay suficientes recursos." + L["Always shows the aura, highlight while proc is active, blue on insufficient resources."] = "Siempre muestra el aura, resalta mientras el prec está activo, azul con recursos insuficientes." + L["Always shows the aura, highlight while proc is active, blue when not usable."] = "Muestra siempre el aura, resaltada mientras el prec está activo, azul cuando no se puede usar." + L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Muestra siempre el aura, resalta mientras el prec está activo, se vuelve rojo cuando está fuera de alcance, azul en caso de recursos insuficientes." + L["Always shows the aura, turns blue on insufficient resources."] = "Siempre muestra el aura, se vuelve azul con recursos insuficientes." + L["Always shows the aura, turns blue when not usable."] = "Siempre muestra el aura, se vuelve azul cuando no se puede utilizar." + L["Always shows the aura, turns grey if on cooldown."] = "Siempre muestra el aura, se vuelve gris si está en cooldown." + L["Always shows the aura, turns grey if the ability is not usable and red when out of range."] = "Muestra siempre el aura, se vuelve gris si la habilidad no es utilizable y roja cuando está fuera de alcance." + L["Always shows the aura, turns grey if the ability is not usable."] = "Muestra siempre el aura, se vuelve gris si la habilidad no es utilizable." + L["Always shows the aura, turns red when out of range, blue on insufficient resources."] = "Siempre muestra el aura, se vuelve roja cuando está fuera de alcance, azul en caso de recursos insuficientes." + L["Always shows the aura, turns red when out of range."] = "Siempre muestra el aura, se vuelve roja cuando está fuera de alcance." + L["Always shows the aura."] = "Siempre muestra el aura." + L["Back"] = "Volver" + L["Basic Show On Cooldown"] = "Mostrar en reutilización básico" + L["Basic Show On Ready"] = "Mostrar al estar listo básico" + L["Bloodlust/Heroism"] = "Ansia de sangre/Heroísmo" + L["buff"] = "beneficio" + L["Buffs"] = "Beneficios" + L["Cancel"] = "Cancelar" + L["Cast"] = "Lanzar" + L["Charge and Buff Tracking"] = "Seguimiento de cargas y beneficios" + L["Charge and Debuff Tracking"] = "Seguimiento de cargas y perjuicios" + L["Charge and Duration Tracking"] = "Seguimiento de cargas y duración" + L["Charge Tracking"] = "Seguimiento de cargas" + L["cooldown"] = "reutilización" + L["Cooldown Tracking"] = "Seguimiento de reutilización" + L["Cooldowns"] = "Reutilizaciones" + L["Create Auras"] = "Crear auras" + L["debuff"] = "perjuicio" + L["Debuffs"] = "Perjuicios" + L["dps buff"] = "beneficio de dps" + L["General"] = "General" + L["Health"] = "Salud" + L["Highlight while action is queued."] = "Resaltar mientras la acción está en cola." + L["Highlight while active, red when out of range."] = "Resaltar mientras está activa, rojo cuando está fuera de alcance." + L["Highlight while active."] = "Resaltar mientras está activa." + L["Highlight while buffed, red when out of range."] = "Resaltar cuando hay beneficio activo, rojo cuando esté fuera de rango." + L["Highlight while buffed."] = "Resaltar cuando hay beneficio activo." + L["Highlight while debuffed, red when out of range."] = "Resaltar cuando hay perjuicio activo, rojo cuando esté fuera de rango." + L["Highlight while debuffed."] = "Resaltar cuando hay perjuicio activo." + L["Highlight while spell is active."] = "Resaltar mientras el hechizo está activo." + L["Hold CTRL to create multiple auras at once"] = "Mantén pulsado CTRL para crear varias auras a la vez" + L["Keeps existing triggers intact"] = "Mantiene intactos los activadores existentes" + L["Master Channeler Rune"] = "Runa de Maestro canalizador" + L["Max 3"] = "Máx. 3" + L["Max 4"] = "Máx. 4" + L["Next"] = "Siguiente" + L["Only show the aura if the target has the debuff."] = "Mostrar el aura solo si el objetivo tiene el perjuicio activo." + L["Only show the aura when the item is on cooldown."] = "Mostrar el aura solo cuando el objeto está en reutilización." + L["Only shows if the weapon is enchanted."] = "Mostrar solo si el arma está encantada." + L["Only shows if the weapon is not enchanted."] = "Mostrar solo si el arma no está encantada." + L["Only shows the aura if the target has the buff."] = "Muestra el aura solo si el objetivo tiene el beneficio activo." + L["Only shows the aura when the ability is on cooldown."] = "Mostrar el aura solo cuando la habilidad está en reutilización." + L["Only shows the aura when the ability is ready to use."] = "Mostrar el aura solo cuando la habilidad está lista para usar." + L["Other cooldown"] = "Otra reutilización" + L["Pet alive"] = "Mascota viva" + L["Pet Behavior"] = "Comportamiento de mascota" + L["PvP Talents"] = "Talentos de JcJ" + L["regen buff"] = "beneficio regen" + L["Replace all existing triggers"] = "Sustituir todos los activadores existentes" + L["Replace Triggers"] = "Sustituir activadores" + L["Resources"] = "Recursos" + L["Resources and Shapeshift Form"] = "Recursos y cambio de forma" + L["Rogue cooldown"] = "Reutilización de pícaro" + L["Runes"] = "Runas" + L["Shapeshift Form"] = "Cambio de forma" + L["Show Always, Glow on Missing"] = "Siempre mostrar, resplandor si falta" + L["Show Charges and Check Usable"] = "Mostrar cargos y comprobar utilizable" + L["Show Charges with Proc Tracking"] = "Mostrar cargos con seguimiento de prec" + L["Show Charges with Range Tracking"] = "Mostrar cargos con seguimiento de rango" + L["Show Charges with Usable Check"] = "Mostrar cargas con comprobación que sea utilizable" + L["Show Cooldown and Action Queued"] = "Mostrar reutilización y acción en cola" + L["Show Cooldown and Buff"] = "Mostrar tiempo de reutilización y beneficio" + L["Show Cooldown and Buff and Check for Target"] = "Mostrar Tiempo de reutilización, Beneficio y Comprobar objetivo" + L["Show Cooldown and Buff and Check Usable"] = "Mostrar Tiempo de reutilización, Beneficio y Comprobar utilizable" + L["Show Cooldown and Check for Target"] = [=[Mostrar reutilización y comprobar el objetivo +​]=] + L["Show Cooldown and Check for Target & Proc Tracking"] = "Mostrar reutilización y objetivo y seguimiento de prec" + L["Show Cooldown and Check Usable"] = "Mostrar reutilización y comprobar que sea utilizable" + L["Show Cooldown and Check Usable & Target"] = "Mostrar reutilización y comprobar que sea utilizable y objetivo" + L["Show Cooldown and Check Usable, Proc Tracking"] = "Mostrar reutilización y comprobar que sea utilizable, seguimiento de prec" + L["Show Cooldown and Check Usable, Target & Proc Tracking"] = "Mostrar reutilización y comprobar que sea utilizable, objetivo y seguimiento de prec" + L["Show Cooldown and Debuff"] = "Mostrar Tiempo de reutilización y Perjuicio" + L["Show Cooldown and Debuff and Check for Target"] = "Mostrar Tiempo de reutilización, Perjuicio y Comprobar objetivo" + L["Show Cooldown and Duration"] = "Mostrar reutilización y duración" + L["Show Cooldown and Duration and Check for Target"] = "Mostrar reutilización y duración y comprobar para objetivo" + L["Show Cooldown and Duration and Check Usable"] = "Mostrar reutilización y duración y comprobar que sea utilizable" + L["Show Cooldown and Proc Tracking"] = "Mostrar reutilización y seguimiento de prec" + L["Show Cooldown and Totem Information"] = "Mostrar reutilización y información de tótem" + L["Show if Enchant Missing"] = "Mostrar si falta encantamiento" + L["Show on Ready"] = "Mostrar al estar listo" + L["Show Only if Buffed"] = "Mostrar solo si hay Beneficio activo" + L["Show Only if Debuffed"] = "Mostrar solo si hay Perjuicio activo" + L["Show Only if Enchanted"] = "Mostrar solo si está encantado" + L["Show Only if on Cooldown"] = "Mostrar solo si está en tiempo de reutilización" + L["Show Totem and Charge Information"] = "Mostrar tótem y información de carga" + L["Stance"] = "Actitud" + L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Realiza un seguimiento de la carga y el prec, resalta mientras el proc está activo, se vuelve rojo cuando está fuera de alcance, azul si hay recursos insuficientes." + L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."] = "Realiza un seguimiento de la carga y el beneficio, resaltar cuando el beneficio está activo, azul si no hay recursos suficientes." + L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."] = "Realiza un seguimiento de la carga y el perjuicio, resaltar cuando el perjuicio está activo, azul si no hay recursos suficientes." + L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."] = "Realiza un seguimiento de la carga y la duración del hechizo, resalta mientras el hechizo está activo, azul si hay recursos insuficientes." + L["Unknown Item"] = "Objeto desconocido" + L["Unknown Spell"] = "Hechizo desconocido" + L["Warrior cooldown"] = "Reutilización de guerrero" + diff --git a/WeakAurasTemplates/Locales/esMX.lua b/WeakAurasTemplates/Locales/esMX.lua new file mode 100644 index 0000000..a1ca144 --- /dev/null +++ b/WeakAurasTemplates/Locales/esMX.lua @@ -0,0 +1,132 @@ +if not WeakAuras.IsLibsOK() then return end + +if (GAME_LOCALE or GetLocale()) ~= "esMX" then + return +end + +local L = WeakAuras.L + +-- WeakAuras/Templates + L["(Dwarf)"] = "(Enano)" + L["(Dwarf/Human)"] = "(Enano/Humano)" + L["(Human)"] = "(Humano)" + L["(Night Elf)"] = "(Elfo de la noche)" + L["(Troll)"] = "(Trol)" + L["(Undead)"] = "(No-muerto)" + L["< 4 stacks"] = "< 4 acumulaciones" + L["5 stacks"] = "5 acumulaciones" + L["Abilities"] = "Habilidades" + L["Add Triggers"] = "Añadir activadores" + L["Always Active"] = "Siempre activo" + L["Always Show"] = "Mostrar siempre" + L["Always show the aura, highlight it if debuffed."] = "Mostrar siempre el aura, resaltar si hay perjuicios." + L["Always show the aura, turns grey if on cooldown."] = "Siempre muestra el aura, se vuelve gris si está en reutilización." + L["Always show the aura, turns grey if the debuff not active."] = "Mostrar siempre el aura, se vuelve gris si el perjuicio no está activo." + L["Always shows highlights if enchant missing."] = "Siempre se muestra resaltados si no hay encantamiento." + L["Always shows the aura, grey if buff not active."] = "Muestra siempre el aura, se vuelve gris si el beneficio no está activo." + L["Always shows the aura, highlight it if buffed."] = "Muestra siempre el aura, resalta si el beneficio está activo." + L["Always shows the aura, highlight when active, turns blue on insufficient resources."] = "Muestra siempre el aura, resalta si está activa, se vuelve azul si no hay suficientes recursos." + L["Always shows the aura, highlight while proc is active, blue on insufficient resources."] = "Siempre muestra el aura, resalta mientras el prec está activo, azul con recursos insuficientes." + L["Always shows the aura, highlight while proc is active, blue when not usable."] = "Muestra siempre el aura, resalta mientras el prec está activo, azul cuando no se puede usar." + L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Muestra siempre el aura, resalta mientras el prec está activo, se vuelve rojo cuando está fuera de alcance, azul en caso de recursos insuficientes." + L["Always shows the aura, turns blue on insufficient resources."] = "Siempre muestra el aura, se vuelve azul con recursos insuficientes." + L["Always shows the aura, turns blue when not usable."] = "Siempre muestra el aura, se vuelve azul cuando no se puede utilizar." + L["Always shows the aura, turns grey if on cooldown."] = "Siempre muestra el aura, se vuelve gris si está en reutilización." + L["Always shows the aura, turns grey if the ability is not usable and red when out of range."] = "Muestra siempre el aura, se vuelve gris si la habilidad no es utilizable y roja cuando está fuera de alcance." + L["Always shows the aura, turns grey if the ability is not usable."] = "Muestra siempre el aura, se vuelve gris si la habilidad no es utilizable." + L["Always shows the aura, turns red when out of range, blue on insufficient resources."] = "Siempre muestra el aura, se vuelve roja cuando está fuera de alcance, azul en caso de recursos insuficientes." + L["Always shows the aura, turns red when out of range."] = "Siempre muestra el aura, se vuelve roja cuando está fuera de alcance." + L["Always shows the aura."] = "Siempre muestra el aura." + L["Back"] = "Volver" + L["Basic Show On Cooldown"] = "Mostrar en reutilización básico" + L["Basic Show On Ready"] = "Mostrar al estar listo básico" + L["Bloodlust/Heroism"] = "Ansia de sangre/Heroísmo" + L["buff"] = "beneficio" + L["Buffs"] = "Beneficios" + L["Cancel"] = "Cancelar" + L["Cast"] = "Lanzar" + L["Charge and Buff Tracking"] = "Seguimiento de cargas y beneficios" + L["Charge and Debuff Tracking"] = "Seguimiento de cargas y perjuicios" + L["Charge and Duration Tracking"] = "Seguimiento de cargas y duración" + L["Charge Tracking"] = "Seguimiento de cargas" + L["cooldown"] = "reutilización" + L["Cooldown Tracking"] = "Seguimiento de reutilización" + L["Cooldowns"] = "Reutilizaciones" + L["Create Auras"] = "Crear auras" + L["debuff"] = "perjuicio" + L["Debuffs"] = "Perjuicios" + L["dps buff"] = "beneficio de dps" + L["General"] = "General" + L["Health"] = "Salud" + L["Highlight while action is queued."] = "Resaltar mientras la acción está en cola." + L["Highlight while active, red when out of range."] = "Resaltar mientras está activa, rojo cuando está fuera de alcance." + L["Highlight while active."] = "Resaltar mientras está activa." + L["Highlight while buffed, red when out of range."] = "Resaltar cuando hay beneficio activo, rojo cuando esté fuera de rango." + L["Highlight while buffed."] = "Resaltar cuando hay beneficio activo." + L["Highlight while debuffed, red when out of range."] = "Resaltar cuando hay perjuicio activo, rojo cuando esté fuera de rango." + L["Highlight while debuffed."] = "Resaltar cuando hay perjuicio activo." + L["Highlight while spell is active."] = "Resaltar mientras el hechizo está activo." + L["Hold CTRL to create multiple auras at once"] = "Mantén pulsado CTRL para crear varias auras a la vez" + L["Keeps existing triggers intact"] = "Mantiene intactos los activadores existentes" + L["Master Channeler Rune"] = "Runa de Maestro canalizador" + L["Max 3"] = "Máx. 3" + L["Max 4"] = "Máx. 4" + L["Next"] = "Siguiente" + L["Only show the aura if the target has the debuff."] = "Mostrar el aura solo si el objetivo tiene el perjuicio activo." + L["Only show the aura when the item is on cooldown."] = "Mostrar el aura solo cuando el objeto está en reutilización." + L["Only shows if the weapon is enchanted."] = "Mostrar solo si el arma está encantada." + L["Only shows if the weapon is not enchanted."] = "Mostrar solo si el arma no está encantada." + L["Only shows the aura if the target has the buff."] = "Muestra el aura solo si el objetivo tiene el beneficio activo." + L["Only shows the aura when the ability is on cooldown."] = "Mostrar el aura solo cuando la habilidad está en reutilización." + L["Only shows the aura when the ability is ready to use."] = "Mostrar el aura solo cuando la habilidad está lista para usar." + L["Other cooldown"] = "Otra reutilización" + L["Pet alive"] = "Mascota viva" + L["Pet Behavior"] = "Comportamiento de mascota" + L["PvP Talents"] = "Talentos de JcJ" + L["regen buff"] = "beneficio regen" + L["Replace all existing triggers"] = "Sustituir todos los activadores existentes" + L["Replace Triggers"] = "Sustituir activadores" + L["Resources"] = "Recursos" + L["Resources and Shapeshift Form"] = "Recursos y cambio de forma" + L["Rogue cooldown"] = "Reutilización de pícaro" + L["Runes"] = "Runas" + L["Shapeshift Form"] = "Cambio de forma" + L["Show Always, Glow on Missing"] = "Siempre mostrar, resplandor si falta" + L["Show Charges and Check Usable"] = "Mostrar cargos y comprobar utilizable" + L["Show Charges with Proc Tracking"] = "Mostrar cargos con seguimiento de prec" + L["Show Charges with Range Tracking"] = "Mostrar cargos con seguimiento de rango" + L["Show Charges with Usable Check"] = "Mostrar cargas con comprobación que sea utilizable" + L["Show Cooldown and Action Queued"] = "Mostrar reutilización y acción en cola" + L["Show Cooldown and Buff"] = "Mostrar tiempo de reutilización y beneficio" + L["Show Cooldown and Buff and Check for Target"] = "Mostrar Tiempo de reutilización, Beneficio y Comprobar objetivo" + L["Show Cooldown and Buff and Check Usable"] = "Mostrar Tiempo de reutilización, Beneficio y Comprobar utilizable" + L["Show Cooldown and Check for Target"] = [=[Mostrar reutilización y comprobar el objetivo +​]=] + L["Show Cooldown and Check for Target & Proc Tracking"] = "Mostrar reutilización y objetivo y seguimiento de prec" + L["Show Cooldown and Check Usable"] = "Mostrar reutilización y comprobar que sea utilizable" + L["Show Cooldown and Check Usable & Target"] = "Mostrar reutilización y comprobar que sea utilizable y objetivo" + L["Show Cooldown and Check Usable, Proc Tracking"] = "Mostrar reutilización y comprobar que sea utilizable, seguimiento de prec" + L["Show Cooldown and Check Usable, Target & Proc Tracking"] = "Mostrar reutilización y comprobar que sea utilizable, objetivo y seguimiento de prec" + L["Show Cooldown and Debuff"] = "Mostrar Tiempo de reutilización y Perjuicio" + L["Show Cooldown and Debuff and Check for Target"] = "Mostrar Tiempo de reutilización, Perjuicio y Comprobar objetivo" + L["Show Cooldown and Duration"] = "Mostrar reutilización y duración" + L["Show Cooldown and Duration and Check for Target"] = "Mostrar reutilización y duración y comprobar para objetivo" + L["Show Cooldown and Duration and Check Usable"] = "Mostrar reutilización y duración y comprobar que sea utilizable" + L["Show Cooldown and Proc Tracking"] = "Mostrar reutilización y seguimiento de prec" + L["Show Cooldown and Totem Information"] = "Mostrar reutilización y información de tótem" + L["Show if Enchant Missing"] = "Mostrar si falta encantamiento" + L["Show on Ready"] = "Mostrar al estar listo" + L["Show Only if Buffed"] = "Mostrar solo si hay Beneficio activo" + L["Show Only if Debuffed"] = "Mostrar solo si hay Perjuicio activo" + L["Show Only if Enchanted"] = "Mostrar solo si está encantado" + L["Show Only if on Cooldown"] = "Mostrar solo si está en tiempo de reutilización" + L["Show Totem and Charge Information"] = "Mostrar tótem y información de carga" + L["Stance"] = "Actitud" + L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Realiza un seguimiento de la carga y el proc, resalta mientras el prec está activo, se vuelve rojo cuando está fuera de alcance, azul si hay recursos insuficientes." + L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."] = "Realiza un seguimiento de la carga y el beneficio, resaltar cuando el beneficio está activo, azul si no hay recursos suficientes." + L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."] = "Realiza un seguimiento de la carga y el perjuicio, resaltar cuando el perjuicio está activo, azul si no hay recursos suficientes." + L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."] = "Realiza un seguimiento de la carga y la duración del hechizo, resalta mientras el hechizo está activo, azul si hay recursos insuficientes." + L["Unknown Item"] = "Objeto desconocido" + L["Unknown Spell"] = "Hechizo desconocido" + L["Warrior cooldown"] = "Reutilización de guerrero" + diff --git a/WeakAurasTemplates/Locales/frFR.lua b/WeakAurasTemplates/Locales/frFR.lua new file mode 100644 index 0000000..47d5ee7 --- /dev/null +++ b/WeakAurasTemplates/Locales/frFR.lua @@ -0,0 +1,155 @@ +if not WeakAuras.IsLibsOK() then return end + +if (GAME_LOCALE or GetLocale()) ~= "frFR" then + return +end + +local L = WeakAuras.L + +-- WeakAuras/Templates + L["(Dwarf)"] = "(Nain)" + L["(Dwarf/Human)"] = "(Nain/Humain)" + L["(Human)"] = "(Humain)" + L["(Night Elf)"] = "(Elfe de la nuit)" + L["(Troll)"] = "(Troll)" + L["(Undead)"] = "(Mort-vivant)" + L["< 4 stacks"] = "< à 4 stacks" + --[[Translation missing --]] + L["5 stacks"] = "5 stacks" + L["Abilities"] = "Capacités" + L["Add Triggers"] = "Ajouter des déclencheurs" + L["Always Active"] = "Toujours actif" + L["Always Show"] = "Toujours afficher" + L["Always show the aura, highlight it if debuffed."] = "Toujours afficher l'aura, surbrillance si absente." + L["Always show the aura, turns grey if on cooldown."] = "Toujours afficher l'aura, devient grise si en recharge." + L["Always show the aura, turns grey if the debuff not active."] = "Toujours afficher l'aura, devient gris si l'affaiblissement n'est pas actif." + L["Always shows highlights if enchant missing."] = "Toujours afficher des reflets si l'enchantement est absent." + L["Always shows the aura, grey if buff not active."] = "Toujours afficher l'aura, devient gris si l'amélioration n'est pas active." + L["Always shows the aura, highlight it if buffed."] = "Toujours afficher l'aura, surbrillance si présente." + L["Always shows the aura, highlight when active, turns blue on insufficient resources."] = "Toujours afficher l'aura, surbrillance si active, bleue si ressources insuffisantes." + L["Always shows the aura, highlight while proc is active, blue on insufficient resources."] = "Toujours afficher l'aura, surbrillance tant que le proc est actif, bleue si ressources insuffisantes." + L["Always shows the aura, highlight while proc is active, blue when not usable."] = "Toujours afficher l'aura, surbrillance tant que le proc est actif, bleue si non utilisable." + L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Toujours afficher l'aura, surbrillance tant que le proc est actif, rouge si pas à portée, bleue si ressources insuffisantes." + L["Always shows the aura, turns blue on insufficient resources."] = "Toujours afficher l'aura, bleue si ressources insuffisantes." + L["Always shows the aura, turns blue when not usable."] = "Toujours afficher l'aura, bleue si non utilisable." + L["Always shows the aura, turns grey if on cooldown."] = "Toujours afficher l'aura, devient grise si en recharge." + L["Always shows the aura, turns grey if the ability is not usable and red when out of range."] = "Toujours afficher l'aura, grise si la technique n'est pas utilisable et rouge si hors de portée." + L["Always shows the aura, turns grey if the ability is not usable."] = "Toujours afficher l'aura, griser si la technique n'est pas utilisable." + L["Always shows the aura, turns red when out of range, blue on insufficient resources."] = "Toujours afficher l'aura, rouge si hors de portée, bleue si ressources insuffisantes." + L["Always shows the aura, turns red when out of range."] = "Toujours afficher l'aura, rouge si hors de portée." + L["Always shows the aura."] = "Toujours afficher l'aura." + L["Back"] = "Retour" + L["Basic Show On Cooldown"] = "Affichage de base en temps de recharge" + --[[Translation missing --]] + L["Basic Show On Ready"] = "Basic Show On Ready" + L["Bloodlust/Heroism"] = "Furie sanguinaire/Héroïsme" + L["buff"] = "amélioration" + L["Buffs"] = "Améliorations" + L["Cancel"] = "Annuler" + L["Cast"] = "Incantation" + L["Charge and Buff Tracking"] = "Suivis des Charges et Amélioration" + L["Charge and Debuff Tracking"] = "Suivis des Charges et Affaiblissement" + L["Charge and Duration Tracking"] = "Suivi des Charges et Durée" + L["Charge Tracking"] = "Suivis des Charges" + L["cooldown"] = "temps de recharge" + L["Cooldown Tracking"] = "Suivi du temps de recharge" + --[[Translation missing --]] + L["Cooldowns"] = "Cooldowns" + L["Create Auras"] = "Créer Auras" + L["debuff"] = "affaiblissement" + L["Debuffs"] = "Affaiblissements" + --[[Translation missing --]] + L["dps buff"] = "dps buff" + L["General"] = "Général" + L["Health"] = "Vie" + --[[Translation missing --]] + L["Highlight while action is queued."] = "Highlight while action is queued." + L["Highlight while active, red when out of range."] = "Mettre en surbrillance pendant qu'il est actif, rouge quand hors de portée." + L["Highlight while active."] = "Mettez en surbrillance pendant qu 'il est actif." + L["Highlight while buffed, red when out of range."] = "En surbrillance quand amélioré, rouge quand hors de portée" + L["Highlight while buffed."] = "Mettez en surbrillance quand amélioré" + L["Highlight while debuffed, red when out of range."] = "En surbrillance quand non-amélioré, rouge quand hors de portée" + L["Highlight while debuffed."] = "Mettez en surbrillance quand non-amélioré." + L["Highlight while spell is active."] = "Mettez en surbrillance quand le sort est actif." + L["Hold CTRL to create multiple auras at once"] = "Maintenir CTRL pour créer plusieurs auras simultanément" + L["Keeps existing triggers intact"] = "Garder intact les déclencheurs existants" + --[[Translation missing --]] + L["Master Channeler Rune"] = "Master Channeler Rune" + --[[Translation missing --]] + L["Max 3"] = "Max 3" + --[[Translation missing --]] + L["Max 4"] = "Max 4" + L["Next"] = "Suivant" + L["Only show the aura if the target has the debuff."] = "Montre l'aura que si la cible a l'affaiblissement." + L["Only show the aura when the item is on cooldown."] = "Afficher uniquement l'aura quand l'objet est en recharge." + L["Only shows if the weapon is enchanted."] = "N'afficher que si l'arme est enchanté" + L["Only shows if the weapon is not enchanted."] = "N'afficher que si l'arme n'est pas enchanté." + L["Only shows the aura if the target has the buff."] = "Montre l'aura que si la cible a l'amélioration." + L["Only shows the aura when the ability is on cooldown."] = "Afficher uniquement l'aura quand la technique est en recharge." + L["Only shows the aura when the ability is ready to use."] = "Afficher uniquement l'aura quand la technique est prête à être utilisée." + L["Other cooldown"] = "Autre temps de recharge" + L["Pet alive"] = "Familier vivant" + L["Pet Behavior"] = "Comportement du familier" + L["PvP Talents"] = "Talents JcJ" + --[[Translation missing --]] + L["regen buff"] = "regen buff" + L["Replace all existing triggers"] = "Remplacer tous les déclencheurs existant" + L["Replace Triggers"] = "Remplacer les déclencheurs" + L["Resources"] = "Ressources" + L["Resources and Shapeshift Form"] = "Ressources et Forme de Changeforme" + --[[Translation missing --]] + L["Rogue cooldown"] = "Rogue cooldown" + L["Runes"] = "Runes" + L["Shapeshift Form"] = "Forme de Changeforme" + L["Show Always, Glow on Missing"] = "Toujours afficher, lorsque la brillance est manquante" + L["Show Charges and Check Usable"] = "Afficher les Charges et Vérifier si Utilisable" + L["Show Charges with Proc Tracking"] = "Afficher les Charges avec le Suivi des Procs" + L["Show Charges with Range Tracking"] = "Afficher les Charges avec Vérification de la Portée" + L["Show Charges with Usable Check"] = "Afficher les Charges avec Vérification si Utilisable" + --[[Translation missing --]] + L["Show Cooldown and Action Queued"] = "Show Cooldown and Action Queued" + L["Show Cooldown and Buff"] = "Afficher les Temps de Recharges et Améliorations" + L["Show Cooldown and Buff and Check for Target"] = "Afficher le Temps de Recharge et l'Amélioration et Vérifier si il y a une Cible" + L["Show Cooldown and Buff and Check Usable"] = "Afficher le Temps de Recharge et l'Amélioration et Vérifier si c'est Utilisable" + L["Show Cooldown and Check for Target"] = "Afficher le Temps de Recharge et Vérifier si il y a une Cible" + L["Show Cooldown and Check for Target & Proc Tracking"] = "Afficher le temps de recharge et Vérifier le Suivi des Cibles et des Procs" + L["Show Cooldown and Check Usable"] = "Afficher le Temps de Recharge et Vérifier si c'est Utilisable" + L["Show Cooldown and Check Usable & Target"] = "Afficher le Temps de Recharge et Vérifier si c'est Utilisable et si il y a une Cible" + --[[Translation missing --]] + L["Show Cooldown and Check Usable, Proc Tracking"] = "Show Cooldown and Check Usable, Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Check Usable, Target & Proc Tracking"] = "Show Cooldown and Check Usable, Target & Proc Tracking" + L["Show Cooldown and Debuff"] = "Afficher le Temps de Recharge et L'Affaiblissement" + L["Show Cooldown and Debuff and Check for Target"] = "Afficher les Temps de Recharge et l'Affaiblissement et Vérifier si il y a une Cible" + --[[Translation missing --]] + L["Show Cooldown and Duration"] = "Show Cooldown and Duration" + --[[Translation missing --]] + L["Show Cooldown and Duration and Check for Target"] = "Show Cooldown and Duration and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Duration and Check Usable"] = "Show Cooldown and Duration and Check Usable" + --[[Translation missing --]] + L["Show Cooldown and Proc Tracking"] = "Show Cooldown and Proc Tracking" + L["Show Cooldown and Totem Information"] = "Afficher le Temps de Rechargement et l'Information du Totem" + --[[Translation missing --]] + L["Show if Enchant Missing"] = "Show if Enchant Missing" + --[[Translation missing --]] + L["Show on Ready"] = "Show on Ready" + --[[Translation missing --]] + L["Show Only if Buffed"] = "Show Only if Buffed" + --[[Translation missing --]] + L["Show Only if Debuffed"] = "Show Only if Debuffed" + --[[Translation missing --]] + L["Show Only if Enchanted"] = "Show Only if Enchanted" + L["Show Only if on Cooldown"] = "Afficher Seulement si en Recharge" + L["Show Totem and Charge Information"] = "Afficher les Informations du Totem et de Charge" + L["Stance"] = "Posture" + L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Suivre la charge et le proc, mettre en surbrillance pendant que le proc est actif, devient rouge lorsque vous êtes hors de portée, bleu lorsque les ressources sont insuffisantes" + L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."] = "Suit la charge et le buff, surligne pendant que le buff est actif, bleu sur les ressources insuffisantes." + L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."] = [=[ +Suit la charge et le debuff, met en surbrillance pendant que le debuff est actif, bleu en cas de ressources insuffisantes.]=] + L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."] = "Suit la charge et la durée du sort, mettez en surbrillance pendant que le sort est actif, bleu en cas de ressources insuffisantes." + L["Unknown Item"] = "Objet inconnu" + L["Unknown Spell"] = "Sort inconnu" + --[[Translation missing --]] + L["Warrior cooldown"] = "Warrior cooldown" + diff --git a/WeakAurasTemplates/Locales/itIT.lua b/WeakAurasTemplates/Locales/itIT.lua new file mode 100644 index 0000000..7512d06 --- /dev/null +++ b/WeakAurasTemplates/Locales/itIT.lua @@ -0,0 +1,210 @@ +if not WeakAuras.IsLibsOK() then return end + +if (GAME_LOCALE or GetLocale()) ~= "itIT" then + return +end + +local L = WeakAuras.L + +-- WeakAuras/Templates + L["(Dwarf)"] = "(Nano)" + L["(Dwarf/Human)"] = "(Nano/Umano)" + L["(Human)"] = "(Umano)" + L["(Night Elf)"] = "(Elfo della Notte)" + --[[Translation missing --]] + L["(Troll)"] = "(Troll)" + L["(Undead)"] = "(Non Morto)" + L["< 4 stacks"] = "< 4 accumuli" + L["5 stacks"] = "5 accumuli" + L["Abilities"] = "Abilità" + L["Add Triggers"] = "Aggiungi Inneschi" + L["Always Active"] = "Sempre Attivo" + L["Always Show"] = "Mostra Sempre" + L["Always show the aura, highlight it if debuffed."] = "Mostra sempre l'aura, evidenziata se c'è il debuff." + L["Always show the aura, turns grey if on cooldown."] = "Mostra sempre l'aura, diventa grigia se in ricarica." + L["Always show the aura, turns grey if the debuff not active."] = "Mostra sempre l'aura, diventa grigia se il debuff non è attivo." + L["Always shows highlights if enchant missing."] = "Mostra sempre gli highlights se manca l'incantesimo." + L["Always shows the aura, grey if buff not active."] = "Mostra sempre l'aura, grigia se il buff non è attivo." + L["Always shows the aura, highlight it if buffed."] = "Mostra sempre l'aura, evidenziata se c'è il buff." + L["Always shows the aura, highlight when active, turns blue on insufficient resources."] = "Mostra sempre l'aura, evidenziata quando attiva, diventa blu se la risorsa è insufficiente." + L["Always shows the aura, highlight while proc is active, blue on insufficient resources."] = "Mostra sempre l'aura, evidenziata se il proc è attivo, blu se la risorsa è insufficiente." + L["Always shows the aura, highlight while proc is active, blue when not usable."] = "Mostra sempre l'aura, evidenzata quando il proc è attivo, blu quando non utilizzabile." + L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Mostra sempre l'aura, evidenziata quando il proc è attivo, rossa quando fuori portata, blu se la risorsa è insufficiente." + L["Always shows the aura, turns blue on insufficient resources."] = "Mostra sempre l'aura, diventa blu se la risorsa è insufficiente." + L["Always shows the aura, turns blue when not usable."] = "Mostra sempre l'aura, diventa blu quando non utilizzablie." + L["Always shows the aura, turns grey if on cooldown."] = "Mostra sempre l'aura, diventa grigia se in ricarica." + L["Always shows the aura, turns grey if the ability is not usable and red when out of range."] = "Mostra sempre l'aura, diventa grigica se l'abilità non è utilizzabile e rossa quando fuori portata." + L["Always shows the aura, turns grey if the ability is not usable."] = "Mostra sempre l'aura, diventa grigia se l'abilità non è utilizzabile." + L["Always shows the aura, turns red when out of range, blue on insufficient resources."] = "Mostra sempre l'aura, diventa rossa quando fuori portata, blu se la risorsa è insufficiente." + L["Always shows the aura, turns red when out of range."] = "Mostra sempre l'aura,, diventa rossa quando fuori portata." + L["Always shows the aura."] = "Mostra sempre l'aura." + L["Back"] = "Indietro" + L["Basic Show On Cooldown"] = "Semplice Mostra in Ricarica" + --[[Translation missing --]] + L["Basic Show On Ready"] = "Basic Show On Ready" + L["Bloodlust/Heroism"] = "Brama di Sangue/Eroismo" + L["buff"] = "buff" + L["Buffs"] = "Buffs" + L["Cancel"] = "Cancella" + L["Cast"] = "Lancia" + L["Charge and Buff Tracking"] = "Monitoraggio di cariche e potenziamenti" + L["Charge and Debuff Tracking"] = "Monitoraggio di cariche e penalità " + L["Charge and Duration Tracking"] = "Monitoraggio della carica e della durata" + L["Charge Tracking"] = "Monitoraggio della carica" + --[[Translation missing --]] + L["cooldown"] = "cooldown" + L["Cooldown Tracking"] = "Monitoraggio del Cooldown " + --[[Translation missing --]] + L["Cooldowns"] = "Cooldowns" + L["Create Auras"] = "Crea aure" + --[[Translation missing --]] + L["debuff"] = "debuff" + --[[Translation missing --]] + L["Debuffs"] = "Debuffs" + --[[Translation missing --]] + L["dps buff"] = "dps buff" + --[[Translation missing --]] + L["General"] = "General" + --[[Translation missing --]] + L["Health"] = "Health" + --[[Translation missing --]] + L["Highlight while action is queued."] = "Highlight while action is queued." + --[[Translation missing --]] + L["Highlight while active, red when out of range."] = "Highlight while active, red when out of range." + --[[Translation missing --]] + L["Highlight while active."] = "Highlight while active." + --[[Translation missing --]] + L["Highlight while buffed, red when out of range."] = "Highlight while buffed, red when out of range." + --[[Translation missing --]] + L["Highlight while buffed."] = "Highlight while buffed." + --[[Translation missing --]] + L["Highlight while debuffed, red when out of range."] = "Highlight while debuffed, red when out of range." + --[[Translation missing --]] + L["Highlight while debuffed."] = "Highlight while debuffed." + --[[Translation missing --]] + L["Highlight while spell is active."] = "Highlight while spell is active." + --[[Translation missing --]] + L["Hold CTRL to create multiple auras at once"] = "Hold CTRL to create multiple auras at once" + --[[Translation missing --]] + L["Keeps existing triggers intact"] = "Keeps existing triggers intact" + --[[Translation missing --]] + L["Master Channeler Rune"] = "Master Channeler Rune" + --[[Translation missing --]] + L["Max 3"] = "Max 3" + --[[Translation missing --]] + L["Max 4"] = "Max 4" + --[[Translation missing --]] + L["Next"] = "Next" + --[[Translation missing --]] + L["Only show the aura if the target has the debuff."] = "Only show the aura if the target has the debuff." + --[[Translation missing --]] + L["Only show the aura when the item is on cooldown."] = "Only show the aura when the item is on cooldown." + --[[Translation missing --]] + L["Only shows if the weapon is enchanted."] = "Only shows if the weapon is enchanted." + --[[Translation missing --]] + L["Only shows if the weapon is not enchanted."] = "Only shows if the weapon is not enchanted." + --[[Translation missing --]] + L["Only shows the aura if the target has the buff."] = "Only shows the aura if the target has the buff." + --[[Translation missing --]] + L["Only shows the aura when the ability is on cooldown."] = "Only shows the aura when the ability is on cooldown." + --[[Translation missing --]] + L["Only shows the aura when the ability is ready to use."] = "Only shows the aura when the ability is ready to use." + --[[Translation missing --]] + L["Other cooldown"] = "Other cooldown" + --[[Translation missing --]] + L["Pet alive"] = "Pet alive" + --[[Translation missing --]] + L["Pet Behavior"] = "Pet Behavior" + --[[Translation missing --]] + L["PvP Talents"] = "PvP Talents" + --[[Translation missing --]] + L["regen buff"] = "regen buff" + --[[Translation missing --]] + L["Replace all existing triggers"] = "Replace all existing triggers" + --[[Translation missing --]] + L["Replace Triggers"] = "Replace Triggers" + --[[Translation missing --]] + L["Resources"] = "Resources" + --[[Translation missing --]] + L["Resources and Shapeshift Form"] = "Resources and Shapeshift Form" + --[[Translation missing --]] + L["Rogue cooldown"] = "Rogue cooldown" + --[[Translation missing --]] + L["Runes"] = "Runes" + --[[Translation missing --]] + L["Shapeshift Form"] = "Shapeshift Form" + --[[Translation missing --]] + L["Show Always, Glow on Missing"] = "Show Always, Glow on Missing" + --[[Translation missing --]] + L["Show Charges and Check Usable"] = "Show Charges and Check Usable" + --[[Translation missing --]] + L["Show Charges with Proc Tracking"] = "Show Charges with Proc Tracking" + --[[Translation missing --]] + L["Show Charges with Range Tracking"] = "Show Charges with Range Tracking" + --[[Translation missing --]] + L["Show Charges with Usable Check"] = "Show Charges with Usable Check" + --[[Translation missing --]] + L["Show Cooldown and Action Queued"] = "Show Cooldown and Action Queued" + --[[Translation missing --]] + L["Show Cooldown and Buff"] = "Show Cooldown and Buff" + --[[Translation missing --]] + L["Show Cooldown and Buff and Check for Target"] = "Show Cooldown and Buff and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Buff and Check Usable"] = "Show Cooldown and Buff and Check Usable" + --[[Translation missing --]] + L["Show Cooldown and Check for Target"] = "Show Cooldown and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Check for Target & Proc Tracking"] = "Show Cooldown and Check for Target & Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Check Usable"] = "Show Cooldown and Check Usable" + --[[Translation missing --]] + L["Show Cooldown and Check Usable & Target"] = "Show Cooldown and Check Usable & Target" + --[[Translation missing --]] + L["Show Cooldown and Check Usable, Proc Tracking"] = "Show Cooldown and Check Usable, Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Check Usable, Target & Proc Tracking"] = "Show Cooldown and Check Usable, Target & Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Debuff"] = "Show Cooldown and Debuff" + --[[Translation missing --]] + L["Show Cooldown and Debuff and Check for Target"] = "Show Cooldown and Debuff and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Duration"] = "Show Cooldown and Duration" + --[[Translation missing --]] + L["Show Cooldown and Duration and Check for Target"] = "Show Cooldown and Duration and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Duration and Check Usable"] = "Show Cooldown and Duration and Check Usable" + --[[Translation missing --]] + L["Show Cooldown and Proc Tracking"] = "Show Cooldown and Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Totem Information"] = "Show Cooldown and Totem Information" + --[[Translation missing --]] + L["Show if Enchant Missing"] = "Show if Enchant Missing" + --[[Translation missing --]] + L["Show on Ready"] = "Show on Ready" + --[[Translation missing --]] + L["Show Only if Buffed"] = "Show Only if Buffed" + --[[Translation missing --]] + L["Show Only if Debuffed"] = "Show Only if Debuffed" + --[[Translation missing --]] + L["Show Only if Enchanted"] = "Show Only if Enchanted" + --[[Translation missing --]] + L["Show Only if on Cooldown"] = "Show Only if on Cooldown" + --[[Translation missing --]] + L["Show Totem and Charge Information"] = "Show Totem and Charge Information" + --[[Translation missing --]] + L["Stance"] = "Stance" + --[[Translation missing --]] + L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources." + --[[Translation missing --]] + L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."] = "Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources." + --[[Translation missing --]] + L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."] = "Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources." + --[[Translation missing --]] + L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."] = "Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources." + --[[Translation missing --]] + L["Unknown Item"] = "Unknown Item" + --[[Translation missing --]] + L["Unknown Spell"] = "Unknown Spell" + --[[Translation missing --]] + L["Warrior cooldown"] = "Warrior cooldown" + diff --git a/WeakAurasTemplates/Locales/koKR.lua b/WeakAurasTemplates/Locales/koKR.lua new file mode 100644 index 0000000..9abff19 --- /dev/null +++ b/WeakAurasTemplates/Locales/koKR.lua @@ -0,0 +1,131 @@ +if not WeakAuras.IsLibsOK() then return end + +if (GAME_LOCALE or GetLocale()) ~= "koKR" then + return +end + +local L = WeakAuras.L + +-- WeakAuras/Templates + L["(Dwarf)"] = "(드워프)" + L["(Dwarf/Human)"] = "(드워프/인간)" + L["(Human)"] = "(인간)" + L["(Night Elf)"] = "(나이트 엘프)" + L["(Troll)"] = "(트롤)" + L["(Undead)"] = "(언데드)" + L["< 4 stacks"] = "< 4중첩" + L["5 stacks"] = "5중첩" + L["Abilities"] = "스킬" + L["Add Triggers"] = "활성 조건 추가" + L["Always Active"] = "항상 활성화" + L["Always Show"] = "항상 표시" + L["Always show the aura, highlight it if debuffed."] = "이 위크오라를 항상 표시하고 디버프에 걸리면 강조합니다." + L["Always show the aura, turns grey if on cooldown."] = "이 위크오라를 항상 표시하며, 쿨타임일땐 회색으로 바뀝니다." + L["Always show the aura, turns grey if the debuff not active."] = "이 위크오라를 항상 표시하고 디버프가 없을땐 회색으로 바뀝니다." + L["Always shows highlights if enchant missing."] = "마법 부여가 없으면 항상 강조 표시" + L["Always shows the aura, grey if buff not active."] = "이 위크오라를 항상 표시하고 버프가 없을땐 회색으로 바뀝니다." + L["Always shows the aura, highlight it if buffed."] = "이 위크오라를 항상 표시하고 버프에 걸리면 강조합니다." + L["Always shows the aura, highlight when active, turns blue on insufficient resources."] = "이 위크오라를 항상 표시, 활성화 시 강조하며, 자원이 부족하면 파란색으로 바뀝니다." + L["Always shows the aura, highlight while proc is active, blue on insufficient resources."] = "이 위크오라를 항상 표시, 발동중에 강조되며, 자원이 부족하면 파란색으로 바뀝니다." + L["Always shows the aura, highlight while proc is active, blue when not usable."] = "이 위크오라를 항상 표시, 발동중에 강조되며, 사용할 수 없으면 파란색으로 바뀝니다." + L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "이 위크오라를 항상 표시, 발동 중에 강조되며, 사정거리를 벗어나면 빨간색으로, 자원이 부족하면 파란색으로 바뀝니다." + L["Always shows the aura, turns blue on insufficient resources."] = "이 위크오라를 항상 표시하며, 자원이 부족하면 파란색으로 바뀝니다." + L["Always shows the aura, turns blue when not usable."] = "이 위크오라를 항상 표시하며, 사용할 수 없을 때는 파란색으로 바뀝니다." + L["Always shows the aura, turns grey if on cooldown."] = "이 위크오라를 항상 표시하며, 쿨타임일땐 회색으로 바뀝니다." + L["Always shows the aura, turns grey if the ability is not usable and red when out of range."] = "이 위크오라를 항상 표시, 스킬을 사용할 수 없으면 회색, 사정거리를 벗어나면 빨간색으로 바뀝니다." + L["Always shows the aura, turns grey if the ability is not usable."] = "이 위크오라를 항상 표시하며, 스킬을 사용할 수 없으면 회색으로 바뀝니다." + L["Always shows the aura, turns red when out of range, blue on insufficient resources."] = "이 위크오라를 항상 표시, 사정거리를 벗어나면 빨간색, 자원이 부족하면 파란색으로 바뀝니다." + L["Always shows the aura, turns red when out of range."] = "이 위크오라를 항상 표시하며, 사정거리를 벗어나면 빨간색으로 바뀝니다." + L["Always shows the aura."] = "이 위크오라를 항상 표시합니다." + L["Back"] = "뒤로" + L["Basic Show On Cooldown"] = "쿨타임일 때 기본형 표시" + L["Basic Show On Ready"] = "준비 완료 시 표시" + L["Bloodlust/Heroism"] = "피의 욕망/영웅심" + L["buff"] = "버프" + L["Buffs"] = "버프" + L["Cancel"] = "취소" + L["Cast"] = "시전" + L["Charge and Buff Tracking"] = "충전량 및 버프 추적" + L["Charge and Debuff Tracking"] = "충전량 및 디버프 추적" + L["Charge and Duration Tracking"] = "충전량 및 지속시간 추적" + L["Charge Tracking"] = "충전량 추적" + L["cooldown"] = "쿨타임" + L["Cooldown Tracking"] = "쿨기 추적" + L["Cooldowns"] = "쿨기" + L["Create Auras"] = "위크오라 생성" + L["debuff"] = "디버프" + L["Debuffs"] = "디버프" + L["dps buff"] = "딜 버프" + L["General"] = "일반" + L["Health"] = "생명력" + L["Highlight while action is queued."] = "동작이 대기중인 동안 강조합니다." + L["Highlight while active, red when out of range."] = "활성화된 동안 강조, 사정거리를 벗어나면 붉은색으로 바뀝니다." + L["Highlight while active."] = "활성화된 동안 강조합니다." + L["Highlight while buffed, red when out of range."] = "버프에 걸렸을 때 강조, 사정거리를 벗어나면 붉은색으로 바뀝니다." + L["Highlight while buffed."] = "버프에 걸렸을 때 강조합니다." + L["Highlight while debuffed, red when out of range."] = "디버프에 걸렸을 때 강조, 사정거리를 벗어나면 붉은색으로 바뀝니다." + L["Highlight while debuffed."] = "디버프에 걸리면 강조합니다." + L["Highlight while spell is active."] = "주문을 사용할 수 있을 때 강조합니다." + L["Hold CTRL to create multiple auras at once"] = "한 번에 여러 위크오라를 만들려면 CTRL 키를 누르세요" + L["Keeps existing triggers intact"] = "활성 조건 그대로 유지" + L["Master Channeler Rune"] = "역술의 대가 룬" + L["Max 3"] = "최대 3" + L["Max 4"] = "최대 4" + L["Next"] = "다음" + L["Only show the aura if the target has the debuff."] = "대상에 디버프가 있을 때만 이 위크오라를 표시합니다." + L["Only show the aura when the item is on cooldown."] = "아이템이 쿨타임일 때만 이 위크오라를 표시합니다." + L["Only shows if the weapon is enchanted."] = "무기에 임시 마법부여가 발라졌을 때만 표시합니다." + L["Only shows if the weapon is not enchanted."] = "무기에 임시 마법부여가 없을 때만 표시합니다." + L["Only shows the aura if the target has the buff."] = "대상에 버프가 있을 때만 이 위크오라를 표시합니다." + L["Only shows the aura when the ability is on cooldown."] = "스킬이 쿨타임일 때만 이 위크오라를 표시합니다." + L["Only shows the aura when the ability is ready to use."] = "스킬을 사용할 수 있을 때만 이 위크오라를 표시합니다." + L["Other cooldown"] = "다른 쿨기" + L["Pet alive"] = "소환수 생존" + L["Pet Behavior"] = "소환수 행동" + L["PvP Talents"] = "명예 특성" + L["regen buff"] = "재생 버프" + L["Replace all existing triggers"] = "모든 활성 조건 교체" + L["Replace Triggers"] = "활성 조건 교체" + L["Resources"] = "자원" + L["Resources and Shapeshift Form"] = "자원과 변신 형태" + L["Rogue cooldown"] = "도적 쿨기" + L["Runes"] = "룬" + L["Shapeshift Form"] = "변신 형태" + L["Show Always, Glow on Missing"] = "항상 표시, 없을때 반짝임" + L["Show Charges and Check Usable"] = "충전량 표시와 사용 가능 여부 검사" + L["Show Charges with Proc Tracking"] = "충전량 표시와 발동 추적" + L["Show Charges with Range Tracking"] = "충전량 표시와 사정거리 추적" + L["Show Charges with Usable Check"] = "충전량 표시와 사용 가능 상태 검사" + L["Show Cooldown and Action Queued"] = "쿨타임과 다음 대기 동작 표시" + L["Show Cooldown and Buff"] = "쿨타임과 버프 표시" + L["Show Cooldown and Buff and Check for Target"] = "쿨타임과 버프 표시 및 대상 확인" + L["Show Cooldown and Buff and Check Usable"] = "쿨타임과 버프 표시 및 사용 가능 검사" + L["Show Cooldown and Check for Target"] = "쿨타임 표시 및 대상 확인" + L["Show Cooldown and Check for Target & Proc Tracking"] = "쿨타임 표시와 대상 검사 및 발동 추적" + L["Show Cooldown and Check Usable"] = "쿨타임 표시 및 사용 가능 상태 검사" + L["Show Cooldown and Check Usable & Target"] = "쿨타임 표시와 사용 가능 상태 및 대상 검사" + L["Show Cooldown and Check Usable, Proc Tracking"] = "쿨타임 표시와 사용 가능 상태 검사, 발동 추적" + L["Show Cooldown and Check Usable, Target & Proc Tracking"] = "쿨타임 표시와 사용 가능 상태, 대상 검사 및 발동 추적" + L["Show Cooldown and Debuff"] = "쿨타임과 디버프 표시" + L["Show Cooldown and Debuff and Check for Target"] = "쿨타임과 디버프 표시 및 대상 검사" + L["Show Cooldown and Duration"] = "쿨타임과 지속시간 표시" + L["Show Cooldown and Duration and Check for Target"] = "쿨타임과 지속시간 표시 및 대상 검사" + L["Show Cooldown and Duration and Check Usable"] = "쿨타임과 지속시간 표시 및 사용 가능 상태 검사" + L["Show Cooldown and Proc Tracking"] = "쿨타임 표시와 발동 추적" + L["Show Cooldown and Totem Information"] = "쿨타임과 토템 정보 표시" + L["Show if Enchant Missing"] = "마법부여가 없으면 표시" + L["Show on Ready"] = "사용 가능하면 표시" + L["Show Only if Buffed"] = "버프에 걸리면 표시" + L["Show Only if Debuffed"] = "디버프에 걸리면 표시" + L["Show Only if Enchanted"] = "마법부여가 되있으면 표시" + L["Show Only if on Cooldown"] = "쿨타임일 때만 표시" + L["Show Totem and Charge Information"] = "토템과 충전량 정보 표시" + L["Stance"] = "태세" + L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "충전량과 발동을 추적하고 발동이 된 동안 강조, 사정거리 밖이면 빨간색, 자원이 부족하면 파란색으로 바뀝니다." + L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."] = "충전량과 버프를 추적하고 버프에 걸려있으면 강조, 자원이 부족하면 파란색으로 바뀝니다." + L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."] = "충전량과 디버프를 추적하고 디버프에 걸려있으면 강조, 자원이 부족하면 파란색으로 바뀝니다." + L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."] = "충전량과 주문의 지속시간을 추적하고 주문이 사용 가능할 때 강조, 자원이 부족하면 파란색으로 바뀝니다." + L["Unknown Item"] = "알 수 없는 아이템" + L["Unknown Spell"] = "알 수 없는 주문" + L["Warrior cooldown"] = "전사 쿨기" + diff --git a/WeakAurasTemplates/Locales/ptBR.lua b/WeakAurasTemplates/Locales/ptBR.lua new file mode 100644 index 0000000..2583d44 --- /dev/null +++ b/WeakAurasTemplates/Locales/ptBR.lua @@ -0,0 +1,219 @@ +if not WeakAuras.IsLibsOK() then return end + +if (GAME_LOCALE or GetLocale()) ~= "ptBR" then + return +end + +local L = WeakAuras.L + +-- WeakAuras/Templates + --[[Translation missing --]] + L["(Dwarf)"] = "(Dwarf)" + --[[Translation missing --]] + L["(Dwarf/Human)"] = "(Dwarf/Human)" + --[[Translation missing --]] + L["(Human)"] = "(Human)" + --[[Translation missing --]] + L["(Night Elf)"] = "(Night Elf)" + --[[Translation missing --]] + L["(Troll)"] = "(Troll)" + --[[Translation missing --]] + L["(Undead)"] = "(Undead)" + --[[Translation missing --]] + L["< 4 stacks"] = "< 4 stacks" + --[[Translation missing --]] + L["5 stacks"] = "5 stacks" + L["Abilities"] = "Habilidades" + L["Add Triggers"] = "Adicionar gatilhos" + L["Always Active"] = "Sempre ativo" + L["Always Show"] = "Mostrar sempre" + L["Always show the aura, highlight it if debuffed."] = "Sempre mostrar a aura, destaque-a se estiver debuffado." + L["Always show the aura, turns grey if on cooldown."] = "Sempre mostrar a aura, torne-a cinza se estiver em recarga." + L["Always show the aura, turns grey if the debuff not active."] = "Sempre mostrar a aura, torne-a cinza se o debuff não estiver ativo." + L["Always shows highlights if enchant missing."] = "Sempre mostrar um highlight se um encantamento estiver faltando." + L["Always shows the aura, grey if buff not active."] = "Sempre mostrar a aura, torne-a cinza se o buff não estiver ativo." + L["Always shows the aura, highlight it if buffed."] = "Sempre mostrar a aura, destaque-a se estiver buffado." + L["Always shows the aura, highlight when active, turns blue on insufficient resources."] = "Sempre mostrar a aura, destaque-a quando estiver ativa, torne-a azul quando não houver recursos suficientes." + L["Always shows the aura, highlight while proc is active, blue on insufficient resources."] = "Sempre mostrar a aura, destaque-a enquanto o proc estiver ativo, torne-a azul quando não houver recursos suficientes." + L["Always shows the aura, highlight while proc is active, blue when not usable."] = "Sempre mostrar a aura, destaque-a quando o proc estiver ativo, torne-a azul quando não for usável." + L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Sempre mostrar a aura, destaque-a quando o proc estiver ativo, torne-a vermelha quando estiver fora de alcance, azul quando não houver recursos suficientes." + L["Always shows the aura, turns blue on insufficient resources."] = "Sempre mostrar a aura, torne-a azul quando não houver recursos suficientes." + L["Always shows the aura, turns blue when not usable."] = "Sempre mostrar a aura, torne-a azul quando não for usável." + L["Always shows the aura, turns grey if on cooldown."] = "Sempre mostrar a aura, torne-a cinza se estiver em tempo de recarga." + L["Always shows the aura, turns grey if the ability is not usable and red when out of range."] = "Sempre mostrar a aura, torne-a cinza se a habilidade não for usável e vermelha quando estiver fora de alcance." + L["Always shows the aura, turns grey if the ability is not usable."] = "Sempre mostrar a aura, torne-a cinza se a habilidade não for usável." + L["Always shows the aura, turns red when out of range, blue on insufficient resources."] = "Sempre mostrar a aura, torne-a vermelha quando estiver fora de alcance, azul quando não houver recursos suficientes." + L["Always shows the aura, turns red when out of range."] = "Sempre mostrar a aura, torne-a vermelha quando estiver fora de alcance." + --[[Translation missing --]] + L["Always shows the aura."] = "Always shows the aura." + L["Back"] = "Voltar" + --[[Translation missing --]] + L["Basic Show On Cooldown"] = "Basic Show On Cooldown" + --[[Translation missing --]] + L["Basic Show On Ready"] = "Basic Show On Ready" + L["Bloodlust/Heroism"] = "Sede de Sangue/Heroísmo" + L["buff"] = "Buff" + L["Buffs"] = "Buffs" + L["Cancel"] = "Cancelar" + L["Cast"] = "Lançar" + L["Charge and Buff Tracking"] = "Carga e Rastreamento de Buff" + L["Charge and Debuff Tracking"] = "Carga e Rastreamento de Debuff" + L["Charge and Duration Tracking"] = "Carga e Rastreamento de Duração" + L["Charge Tracking"] = "Rastreamento de Carga" + L["cooldown"] = "tempo de recarga" + --[[Translation missing --]] + L["Cooldown Tracking"] = "Cooldown Tracking" + --[[Translation missing --]] + L["Cooldowns"] = "Cooldowns" + --[[Translation missing --]] + L["Create Auras"] = "Create Auras" + --[[Translation missing --]] + L["debuff"] = "debuff" + --[[Translation missing --]] + L["Debuffs"] = "Debuffs" + --[[Translation missing --]] + L["dps buff"] = "dps buff" + L["General"] = "Geral" + --[[Translation missing --]] + L["Health"] = "Health" + --[[Translation missing --]] + L["Highlight while action is queued."] = "Highlight while action is queued." + --[[Translation missing --]] + L["Highlight while active, red when out of range."] = "Highlight while active, red when out of range." + --[[Translation missing --]] + L["Highlight while active."] = "Highlight while active." + --[[Translation missing --]] + L["Highlight while buffed, red when out of range."] = "Highlight while buffed, red when out of range." + --[[Translation missing --]] + L["Highlight while buffed."] = "Highlight while buffed." + --[[Translation missing --]] + L["Highlight while debuffed, red when out of range."] = "Highlight while debuffed, red when out of range." + --[[Translation missing --]] + L["Highlight while debuffed."] = "Highlight while debuffed." + --[[Translation missing --]] + L["Highlight while spell is active."] = "Highlight while spell is active." + --[[Translation missing --]] + L["Hold CTRL to create multiple auras at once"] = "Hold CTRL to create multiple auras at once" + --[[Translation missing --]] + L["Keeps existing triggers intact"] = "Keeps existing triggers intact" + --[[Translation missing --]] + L["Master Channeler Rune"] = "Master Channeler Rune" + --[[Translation missing --]] + L["Max 3"] = "Max 3" + --[[Translation missing --]] + L["Max 4"] = "Max 4" + --[[Translation missing --]] + L["Next"] = "Next" + --[[Translation missing --]] + L["Only show the aura if the target has the debuff."] = "Only show the aura if the target has the debuff." + --[[Translation missing --]] + L["Only show the aura when the item is on cooldown."] = "Only show the aura when the item is on cooldown." + --[[Translation missing --]] + L["Only shows if the weapon is enchanted."] = "Only shows if the weapon is enchanted." + --[[Translation missing --]] + L["Only shows if the weapon is not enchanted."] = "Only shows if the weapon is not enchanted." + --[[Translation missing --]] + L["Only shows the aura if the target has the buff."] = "Only shows the aura if the target has the buff." + --[[Translation missing --]] + L["Only shows the aura when the ability is on cooldown."] = "Only shows the aura when the ability is on cooldown." + --[[Translation missing --]] + L["Only shows the aura when the ability is ready to use."] = "Only shows the aura when the ability is ready to use." + --[[Translation missing --]] + L["Other cooldown"] = "Other cooldown" + --[[Translation missing --]] + L["Pet alive"] = "Pet alive" + --[[Translation missing --]] + L["Pet Behavior"] = "Pet Behavior" + --[[Translation missing --]] + L["PvP Talents"] = "PvP Talents" + --[[Translation missing --]] + L["regen buff"] = "regen buff" + --[[Translation missing --]] + L["Replace all existing triggers"] = "Replace all existing triggers" + --[[Translation missing --]] + L["Replace Triggers"] = "Replace Triggers" + --[[Translation missing --]] + L["Resources"] = "Resources" + --[[Translation missing --]] + L["Resources and Shapeshift Form"] = "Resources and Shapeshift Form" + --[[Translation missing --]] + L["Rogue cooldown"] = "Rogue cooldown" + --[[Translation missing --]] + L["Runes"] = "Runes" + --[[Translation missing --]] + L["Shapeshift Form"] = "Shapeshift Form" + --[[Translation missing --]] + L["Show Always, Glow on Missing"] = "Show Always, Glow on Missing" + --[[Translation missing --]] + L["Show Charges and Check Usable"] = "Show Charges and Check Usable" + --[[Translation missing --]] + L["Show Charges with Proc Tracking"] = "Show Charges with Proc Tracking" + --[[Translation missing --]] + L["Show Charges with Range Tracking"] = "Show Charges with Range Tracking" + --[[Translation missing --]] + L["Show Charges with Usable Check"] = "Show Charges with Usable Check" + --[[Translation missing --]] + L["Show Cooldown and Action Queued"] = "Show Cooldown and Action Queued" + --[[Translation missing --]] + L["Show Cooldown and Buff"] = "Show Cooldown and Buff" + --[[Translation missing --]] + L["Show Cooldown and Buff and Check for Target"] = "Show Cooldown and Buff and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Buff and Check Usable"] = "Show Cooldown and Buff and Check Usable" + --[[Translation missing --]] + L["Show Cooldown and Check for Target"] = "Show Cooldown and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Check for Target & Proc Tracking"] = "Show Cooldown and Check for Target & Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Check Usable"] = "Show Cooldown and Check Usable" + --[[Translation missing --]] + L["Show Cooldown and Check Usable & Target"] = "Show Cooldown and Check Usable & Target" + --[[Translation missing --]] + L["Show Cooldown and Check Usable, Proc Tracking"] = "Show Cooldown and Check Usable, Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Check Usable, Target & Proc Tracking"] = "Show Cooldown and Check Usable, Target & Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Debuff"] = "Show Cooldown and Debuff" + --[[Translation missing --]] + L["Show Cooldown and Debuff and Check for Target"] = "Show Cooldown and Debuff and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Duration"] = "Show Cooldown and Duration" + --[[Translation missing --]] + L["Show Cooldown and Duration and Check for Target"] = "Show Cooldown and Duration and Check for Target" + --[[Translation missing --]] + L["Show Cooldown and Duration and Check Usable"] = "Show Cooldown and Duration and Check Usable" + --[[Translation missing --]] + L["Show Cooldown and Proc Tracking"] = "Show Cooldown and Proc Tracking" + --[[Translation missing --]] + L["Show Cooldown and Totem Information"] = "Show Cooldown and Totem Information" + --[[Translation missing --]] + L["Show if Enchant Missing"] = "Show if Enchant Missing" + --[[Translation missing --]] + L["Show on Ready"] = "Show on Ready" + --[[Translation missing --]] + L["Show Only if Buffed"] = "Show Only if Buffed" + --[[Translation missing --]] + L["Show Only if Debuffed"] = "Show Only if Debuffed" + --[[Translation missing --]] + L["Show Only if Enchanted"] = "Show Only if Enchanted" + --[[Translation missing --]] + L["Show Only if on Cooldown"] = "Show Only if on Cooldown" + --[[Translation missing --]] + L["Show Totem and Charge Information"] = "Show Totem and Charge Information" + --[[Translation missing --]] + L["Stance"] = "Stance" + --[[Translation missing --]] + L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources." + --[[Translation missing --]] + L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."] = "Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources." + --[[Translation missing --]] + L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."] = "Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources." + --[[Translation missing --]] + L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."] = "Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources." + --[[Translation missing --]] + L["Unknown Item"] = "Unknown Item" + --[[Translation missing --]] + L["Unknown Spell"] = "Unknown Spell" + --[[Translation missing --]] + L["Warrior cooldown"] = "Warrior cooldown" + diff --git a/WeakAurasTemplates/Locales/ruRU.lua b/WeakAurasTemplates/Locales/ruRU.lua new file mode 100644 index 0000000..ed2d0a0 --- /dev/null +++ b/WeakAurasTemplates/Locales/ruRU.lua @@ -0,0 +1,131 @@ +if not WeakAuras.IsLibsOK() then return end + +if (GAME_LOCALE or GetLocale()) ~= "ruRU" then + return +end + +local L = WeakAuras.L + +-- WeakAuras/Templates + L["(Dwarf)"] = "(Дворф)" + L["(Dwarf/Human)"] = "(Дворф/Человек)" + L["(Human)"] = "(Человек)" + L["(Night Elf)"] = "(Ночной эльф)" + L["(Troll)"] = "(Тролль)" + L["(Undead)"] = "(Нежить)" + L["< 4 stacks"] = "(менее 4 стаков)" + L["5 stacks"] = "(5 стаков)" + L["Abilities"] = "Способности" + L["Add Triggers"] = "Добавить триггеры" + L["Always Active"] = "Всегда активный триггер" + L["Always Show"] = "Показывать всегда" + L["Always show the aura, highlight it if debuffed."] = "Всегда показывает индикацию; выделяет ее, если на цели есть дебафф." + L["Always show the aura, turns grey if on cooldown."] = "Всегда показывает индикацию; становится серой, если предмет восстанавливается." + L["Always show the aura, turns grey if the debuff not active."] = "Всегда показывает индикацию; становится серой, если на цели нет дебаффа." + L["Always shows highlights if enchant missing."] = "Всегда выделять, если отсутствует зачарование." + L["Always shows the aura, grey if buff not active."] = "Всегда показывает индикацию; становится серой, если на цели нет баффа." + L["Always shows the aura, highlight it if buffed."] = "Всегда показывает индикацию; выделяет ее, если на цели есть бафф." + L["Always shows the aura, highlight when active, turns blue on insufficient resources."] = "Всегда показывает индикацию; выделяет ее, когда активна; становится синим при нехватке ресурсов." + L["Always shows the aura, highlight while proc is active, blue on insufficient resources."] = "Всегда показывает индикацию; выделяет ее, когда сработала; становится синим при нехватке ресурсов." + L["Always shows the aura, highlight while proc is active, blue when not usable."] = "Всегда показывает индикацию; выделяет ее, когда сработала; синий, когда нельзя использовать." + L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Всегда показывает индикацию; выделяет ее, когда сработала; становится красным, когда вне зоны действия, синим при нехватке ресурсов." + L["Always shows the aura, turns blue on insufficient resources."] = "Всегда показывает ауру, становится сними при недостаточных ресурсах." + L["Always shows the aura, turns blue when not usable."] = "Всегда показывает ауру, становится синим, когда нельзя использовать." + L["Always shows the aura, turns grey if on cooldown."] = "Всегда показывает ауру, становится серым, если на перезарядке." + L["Always shows the aura, turns grey if the ability is not usable and red when out of range."] = "Всегда показывает ауру, становится серым, если способность нельзя использовать, и красным, когда находится вне зоны действия." + L["Always shows the aura, turns grey if the ability is not usable."] = "Всегда показывает ауру, становится серым, если способность нельзя использовать." + L["Always shows the aura, turns red when out of range, blue on insufficient resources."] = "Всегда показывает ауру, становится красным вне зоны действия, синим при недостаточных ресурсах." + L["Always shows the aura, turns red when out of range."] = "Всегда показывает индикацию; становится красной, если цель вне зоны действия." + L["Always shows the aura."] = "Всегда показывать индикацию." + L["Back"] = "Назад" + L["Basic Show On Cooldown"] = "Показать восстановление" + L["Basic Show On Ready"] = "Основной: Показать по готовности" + L["Bloodlust/Heroism"] = "Жажда крови / Героизм" + L["buff"] = "(бафф)" + L["Buffs"] = "Баффы" + L["Cancel"] = "Отмена" + L["Cast"] = "Применение заклинания" + L["Charge and Buff Tracking"] = "Отслеживание заряда и баффов" + L["Charge and Debuff Tracking"] = "Отслеживание зарядов и дебаффов" + L["Charge and Duration Tracking"] = "Отслеживание заряда и продолжительности" + L["Charge Tracking"] = "Отслеживание заряда" + L["cooldown"] = "(восстановление)" + L["Cooldown Tracking"] = "Отслеживание восстановления" + L["Cooldowns"] = "Восстановление" + L["Create Auras"] = "Создать" + L["debuff"] = "(дебафф)" + L["Debuffs"] = "Дебаффы" + L["dps buff"] = "(бафф урона)" + L["General"] = "Общее" + L["Health"] = "Здоровье" + L["Highlight while action is queued."] = "Выделяет индикацию, если действие в очереди." + L["Highlight while active, red when out of range."] = "Выделяет индикацию, если активно; становится красной, если цель вне зоны действия." + L["Highlight while active."] = "Выделяет индикацию, если активно." + L["Highlight while buffed, red when out of range."] = "Выделяет индикацию, если бафф активен; становится красной, если цель вне зоны действия." + L["Highlight while buffed."] = "Выделяет индикацию, когда на цели есть бафф." + L["Highlight while debuffed, red when out of range."] = "Выделяет индикацию, если дебафф активен; становится красной, если цель вне зоны действия." + L["Highlight while debuffed."] = "Выделяет индикацию, когда на цели есть дебафф." + L["Highlight while spell is active."] = "Выделяет индикацию, если заклинание активно." + L["Hold CTRL to create multiple auras at once"] = "Удерживайте Ctrl для создания нескольких индикаций" + L["Keeps existing triggers intact"] = "Сохраняет существующие триггеры нетронутыми" + L["Master Channeler Rune"] = "(руна Мастер-чаротворец)" + L["Max 3"] = "(3 уровня усиления)" + L["Max 4"] = "(4 уровня усиления)" + L["Next"] = "Далее" + L["Only show the aura if the target has the debuff."] = "Показывает индикацию, только когда на цели есть дебафф." + L["Only show the aura when the item is on cooldown."] = "Показывает индикацию, только когда предмет восстанавливается." + L["Only shows if the weapon is enchanted."] = "Показывать индикацию, если на оружии есть чары." + L["Only shows if the weapon is not enchanted."] = "Показывать индикацию, если на оружии нет чар." + L["Only shows the aura if the target has the buff."] = "Показывает индикацию, только когда на цели есть бафф." + L["Only shows the aura when the ability is on cooldown."] = "Показывает индикацию, только когда способность восстанавливается." + L["Only shows the aura when the ability is ready to use."] = "Показывать индикацию только если способность готова к использованию." + L["Other cooldown"] = "(восстановление, остальные)" + L["Pet alive"] = "Питомец жив" + L["Pet Behavior"] = "Поведение питомца" + L["PvP Talents"] = "PvP таланты" + L["regen buff"] = "(бафф восстановления маны)" + L["Replace all existing triggers"] = "Заменяет все существующие триггеры" + L["Replace Triggers"] = "Заменить триггеры" + L["Resources"] = "Ресурсы" + L["Resources and Shapeshift Form"] = "Ресурсы и облики друида" + L["Rogue cooldown"] = "(восстановление, разбойник)" + L["Runes"] = "Руны" + L["Shapeshift Form"] = "Облик друида" + L["Show Always, Glow on Missing"] = "Показывать всегда, сверкать при отсутствии" + L["Show Charges and Check Usable"] = "Показать заряды и проверить доступность" + L["Show Charges with Proc Tracking"] = "Показать заряды с отслеживанием срабатывания" + L["Show Charges with Range Tracking"] = "Показать заряды с отслеживанием дистанции" + L["Show Charges with Usable Check"] = "Показать заряды с проверкой доступности" + L["Show Cooldown and Action Queued"] = "Показать восстановление и очередь действий" + L["Show Cooldown and Buff"] = "Показать восстановление и бафф" + L["Show Cooldown and Buff and Check for Target"] = "Показать восстановление, бафф и проверить цель" + L["Show Cooldown and Buff and Check Usable"] = "Показать восстановление, бафф и проверить доступность" + L["Show Cooldown and Check for Target"] = "Показать восстановление и проверить цель" + L["Show Cooldown and Check for Target & Proc Tracking"] = "Показать восстановление и проверить цель, отслеживать срабатывание" + L["Show Cooldown and Check Usable"] = "Показать восстановление и проверить доступность" + L["Show Cooldown and Check Usable & Target"] = "Показать восстановление и проверить доступность, цель" + L["Show Cooldown and Check Usable, Proc Tracking"] = "Показать восстановление и проверить доступность, отслеживать срабатывание" + L["Show Cooldown and Check Usable, Target & Proc Tracking"] = "Показать восстановление и проверить доступность, цель, отслеживать срабатывание" + L["Show Cooldown and Debuff"] = "Показать восстановление и дебафф" + L["Show Cooldown and Debuff and Check for Target"] = "Показать восстановление, дебафф и проверить цель" + L["Show Cooldown and Duration"] = "Показать восстановление и длительность" + L["Show Cooldown and Duration and Check for Target"] = "Показать восстановление, длительность и проверить цель" + L["Show Cooldown and Duration and Check Usable"] = "Показать восстановление, длительность и проверить доступность" + L["Show Cooldown and Proc Tracking"] = "Показать восстановление и отслеживание срабатывания" + L["Show Cooldown and Totem Information"] = "Показать восстановление и информацио о тотеме" + L["Show if Enchant Missing"] = "Показать при отсутствии чар" + L["Show on Ready"] = "Показывать готовность" + L["Show Only if Buffed"] = "Показать бафф" + L["Show Only if Debuffed"] = "Показать дебафф" + L["Show Only if Enchanted"] = "Показать только если зачаровано" + L["Show Only if on Cooldown"] = "Показать восстановление" + L["Show Totem and Charge Information"] = "Показать информацию о тотеме и заряде" + L["Stance"] = "Стойка" + L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "Отслеживайте заряд и срабатывание, подсвечивайте, пока срабатывание активно, становится красным, когда вне зоны действия, синим, когда недостаточно ресурсов." + L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."] = "Отслеживает заряд и бафф, подсвечивает, пока бафф активен, синим - недостаточно ресурсов." + L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."] = "Отслеживает заряд и дебафф, подсвечивает, пока дебафф активен, синим - недостаточно ресурсов." + L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."] = "Отслеживает заряд и продолжительность заклинания, подсвечивает, пока заклинание активно, синим - недостаточно ресурсов." + L["Unknown Item"] = "Неизвестный предмет" + L["Unknown Spell"] = "Неизвестное заклинание" + L["Warrior cooldown"] = "(восстановление, воин)" + diff --git a/WeakAurasTemplates/Locales/zhCN.lua b/WeakAurasTemplates/Locales/zhCN.lua new file mode 100644 index 0000000..dc3bfaf --- /dev/null +++ b/WeakAurasTemplates/Locales/zhCN.lua @@ -0,0 +1,131 @@ +if not WeakAuras.IsLibsOK() then return end + +if (GAME_LOCALE or GetLocale()) ~= "zhCN" then + return +end + +local L = WeakAuras.L + +-- WeakAuras/Templates + L["(Dwarf)"] = "(矮人)" + L["(Dwarf/Human)"] = "(矮人/人类)" + L["(Human)"] = "(人类)" + L["(Night Elf)"] = "(暗夜精灵)" + L["(Troll)"] = "(巨魔)" + L["(Undead)"] = "(亡灵)" + L["< 4 stacks"] = "小于4层" + L["5 stacks"] = "5层" + L["Abilities"] = "技能" + L["Add Triggers"] = "添加触发器" + L["Always Active"] = "总是激活" + L["Always Show"] = "总是显示" + L["Always show the aura, highlight it if debuffed."] = "总是显示光环,存在减益时高亮。" + L["Always show the aura, turns grey if on cooldown."] = "总是显示光环,冷却中时变灰。" + L["Always show the aura, turns grey if the debuff not active."] = "总是显示光环,无减益时变灰。" + L["Always shows highlights if enchant missing."] = "如果附魔缺失,总是显示高亮。" + L["Always shows the aura, grey if buff not active."] = "总是显示光环,无增益时变灰。" + L["Always shows the aura, highlight it if buffed."] = "总是显示光环,有增益时高亮。" + L["Always shows the aura, highlight when active, turns blue on insufficient resources."] = "总是显示光环,激活时高亮,资源不足时变蓝。" + L["Always shows the aura, highlight while proc is active, blue on insufficient resources."] = "总是显示光环,激活时高亮,资源不足时变蓝。" + L["Always shows the aura, highlight while proc is active, blue when not usable."] = "总是显示光环,激活时高亮,不可用时变蓝。" + L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "总是显示光环,激活时高亮,超出距离时变红,资源不足时变蓝。" + L["Always shows the aura, turns blue on insufficient resources."] = "总是显示光环,资源不足时变蓝。" + L["Always shows the aura, turns blue when not usable."] = "总是显示光环,不可用时变蓝。" + L["Always shows the aura, turns grey if on cooldown."] = "总是显示光环,冷却中时变灰。" + L["Always shows the aura, turns grey if the ability is not usable and red when out of range."] = "总是显示光环,不可用时变灰,超出距离时变红。" + L["Always shows the aura, turns grey if the ability is not usable."] = "总是显示光环,不可用时变灰。" + L["Always shows the aura, turns red when out of range, blue on insufficient resources."] = "总是显示光环,超出距离时变红,资源不足时变蓝。" + L["Always shows the aura, turns red when out of range."] = "总是显示光环,超出距离时变红。" + L["Always shows the aura."] = "总是显示光环。" + L["Back"] = "返回" + L["Basic Show On Cooldown"] = "仅在冷却中显示" + L["Basic Show On Ready"] = "仅在可用时显示" + L["Bloodlust/Heroism"] = "嗜血/英勇" + L["buff"] = "增益效果" + L["Buffs"] = "增益效果" + L["Cancel"] = "取消" + L["Cast"] = "施放" + L["Charge and Buff Tracking"] = "可用次数充能和增益效果追踪" + L["Charge and Debuff Tracking"] = "可用次数充能和减益效果追踪" + L["Charge and Duration Tracking"] = "充能和持续时间追踪" + L["Charge Tracking"] = "可用次数充能追踪" + L["cooldown"] = "冷却" + L["Cooldown Tracking"] = "冷却追踪" + L["Cooldowns"] = "冷却" + L["Create Auras"] = "创建光环" + L["debuff"] = "减益效果" + L["Debuffs"] = "减益" + L["dps buff"] = "伤害加成" + L["General"] = "一般" + L["Health"] = "生命值" + L["Highlight while action is queued."] = "动作在队列中时高亮" + L["Highlight while active, red when out of range."] = "激活时高亮,超出距离时变红" + L["Highlight while active."] = "激活时高亮" + L["Highlight while buffed, red when out of range."] = "获得增益效果时高亮,超出范围变红显示" + L["Highlight while buffed."] = "获得增益效果时高亮" + L["Highlight while debuffed, red when out of range."] = "获得减益效果时高亮,超出范围变红显示" + L["Highlight while debuffed."] = "获得减益效果时高亮" + L["Highlight while spell is active."] = "当法术激活时高亮" + L["Hold CTRL to create multiple auras at once"] = "按住 CTRL 键来一次性创建多个光环" + L["Keeps existing triggers intact"] = "保持现存触发器完整" + L["Master Channeler Rune"] = "引导大师符文" + L["Max 3"] = "最大 3" + L["Max 4"] = "最大 4" + L["Next"] = "下一个" + L["Only show the aura if the target has the debuff."] = "只有在目标拥有减益效果时才显示此光环" + L["Only show the aura when the item is on cooldown."] = "只有当物品在冷却中时才显示此光环" + L["Only shows if the weapon is enchanted."] = "只有当武器被附魔时才显示" + L["Only shows if the weapon is not enchanted."] = "只有当武器没有被附魔时才显示" + L["Only shows the aura if the target has the buff."] = "只有当目标拥有增益效果是才显示此光环" + L["Only shows the aura when the ability is on cooldown."] = "只有当技能在冷却中时才显示此光环" + L["Only shows the aura when the ability is ready to use."] = "只有当技能可用时才显示此光环" + L["Other cooldown"] = "其他冷却" + L["Pet alive"] = "宠物存活" + L["Pet Behavior"] = "宠物行为" + L["PvP Talents"] = "PvP 天赋" + L["regen buff"] = "法力值恢复速度加成" + L["Replace all existing triggers"] = "替换所有现存的触发器" + L["Replace Triggers"] = "替换触发器" + L["Resources"] = "资源" + L["Resources and Shapeshift Form"] = "资源和变形形态" + L["Rogue cooldown"] = "潜行者冷却" + L["Runes"] = "符文编号" + L["Shapeshift Form"] = "变形形态" + L["Show Always, Glow on Missing"] = "总是显示,缺失时发光" + L["Show Charges and Check Usable"] = "显示可用次数充能并检查可用性" + L["Show Charges with Proc Tracking"] = "显示可用次数充能和触发追踪" + L["Show Charges with Range Tracking"] = "显示可用次数充能和距离追踪" + L["Show Charges with Usable Check"] = "显示可用次数充能和可用性检测结果" + L["Show Cooldown and Action Queued"] = "显示冷却和动作队列中" + L["Show Cooldown and Buff"] = "显示冷却和增益效果" + L["Show Cooldown and Buff and Check for Target"] = "显示冷却和增益效果并检查是否有选中的目标" + L["Show Cooldown and Buff and Check Usable"] = "显示冷却和增益效果并检查可用性" + L["Show Cooldown and Check for Target"] = "显示冷却并检查是否有选中的目标" + L["Show Cooldown and Check for Target & Proc Tracking"] = "显示冷却并检查是否有选中的目标并追踪触发" + L["Show Cooldown and Check Usable"] = "显示冷却并检查可用性" + L["Show Cooldown and Check Usable & Target"] = "显示冷却并检查可用性和是否有选中的目标" + L["Show Cooldown and Check Usable, Proc Tracking"] = "显示冷却并检查可用性和追踪触发" + L["Show Cooldown and Check Usable, Target & Proc Tracking"] = "显示冷却并检查可用性,是否有选中的目标和追踪触发" + L["Show Cooldown and Debuff"] = "显示冷却和减益效果" + L["Show Cooldown and Debuff and Check for Target"] = "显示冷却和减益效果并检查是否有选中的目标" + L["Show Cooldown and Duration"] = "显示冷却和持续时间" + L["Show Cooldown and Duration and Check for Target"] = "显示冷却和持续时间并检查是否有选中的目标" + L["Show Cooldown and Duration and Check Usable"] = "显示冷却和持续时间并检查可用性" + L["Show Cooldown and Proc Tracking"] = "显示冷却并追踪触发" + L["Show Cooldown and Totem Information"] = "显示冷却和图腾信息" + L["Show if Enchant Missing"] = "当附魔缺失时显示" + L["Show on Ready"] = "仅在可用时显示" + L["Show Only if Buffed"] = "仅在获得增益效果时显示" + L["Show Only if Debuffed"] = "仅在获得减益效果时显示" + L["Show Only if Enchanted"] = "仅在已附魔时显示" + L["Show Only if on Cooldown"] = "仅在冷却中显示" + L["Show Totem and Charge Information"] = "显示图腾和可用次数充能信息" + L["Stance"] = "姿态" + L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "追踪可用次数充能和触发,当触发时高亮显示,超出距离时变红显示,资源不足时变蓝显示" + L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."] = "追踪可用次数和增益效果,当增益效果激活时高亮,当没有足够资源是变蓝显示" + L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."] = "追踪可用次数和减益效果,当减益效果激活时高亮,当没有足够资源是变蓝显示" + L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."] = "追踪法术的充能和持续时间,当法术激活时高亮,没有足够的能量时变蓝。" + L["Unknown Item"] = "未知物品" + L["Unknown Spell"] = "未知法术" + L["Warrior cooldown"] = "战士冷却" + diff --git a/WeakAurasTemplates/Locales/zhTW.lua b/WeakAurasTemplates/Locales/zhTW.lua new file mode 100644 index 0000000..8559c4e --- /dev/null +++ b/WeakAurasTemplates/Locales/zhTW.lua @@ -0,0 +1,131 @@ +if not WeakAuras.IsLibsOK() then return end + +if (GAME_LOCALE or GetLocale()) ~= "zhTW" then + return +end + +local L = WeakAuras.L + +-- WeakAuras/Templates + L["(Dwarf)"] = "(矮人)" + L["(Dwarf/Human)"] = "(矮人/人類)" + L["(Human)"] = "(人類)" + L["(Night Elf)"] = "(夜精靈)" + L["(Troll)"] = "(食人妖)" + L["(Undead)"] = "(不死族)" + L["< 4 stacks"] = "< 4層" + L["5 stacks"] = "5層" + L["Abilities"] = "技能" + L["Add Triggers"] = "新增觸發" + L["Always Active"] = "永遠有作用" + L["Always Show"] = "永遠顯示" + L["Always show the aura, highlight it if debuffed."] = "永遠顯示提醒效果,有減益作用時顯著標示。" + L["Always show the aura, turns grey if on cooldown."] = "永遠顯示提醒效果,冷卻中變成灰色。" + L["Always show the aura, turns grey if the debuff not active."] = "永遠顯示提醒效果,沒有減益作用時變成灰色。" + L["Always shows highlights if enchant missing."] = "缺少附魔時,永遠顯示顯著標示。" + L["Always shows the aura, grey if buff not active."] = "永遠顯示提醒效果,沒有增益作用時變成灰色。" + L["Always shows the aura, highlight it if buffed."] = "永遠顯示提醒效果,有增益作用時顯著標示。" + L["Always shows the aura, highlight when active, turns blue on insufficient resources."] = "永遠顯示提醒效果,作用時顯著標示,資源不足時變成藍色。" + L["Always shows the aura, highlight while proc is active, blue on insufficient resources."] = "永遠顯示提醒效果,機率觸發時顯著標示,資源不足時變成藍色。" + L["Always shows the aura, highlight while proc is active, blue when not usable."] = "永遠顯示提醒效果,機率觸發時顯著標示,不可使用時變成藍色。" + L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "永遠顯示提醒效果,機率觸發時顯著標示,超出範圍時變成紅色,資源不足時變成藍色。" + L["Always shows the aura, turns blue on insufficient resources."] = "永遠顯示提醒效果,資源不足時變成藍色。" + L["Always shows the aura, turns blue when not usable."] = "永遠顯示提醒效果,不可使用時變成藍色。" + L["Always shows the aura, turns grey if on cooldown."] = "永遠顯示提醒效果,冷卻中變成灰色。" + L["Always shows the aura, turns grey if the ability is not usable and red when out of range."] = "永遠顯示提醒效果,技能不可使用時變成灰色,超出範圍時變成紅色。" + L["Always shows the aura, turns grey if the ability is not usable."] = "永遠顯示提醒效果,技能不可使用時變成灰色。" + L["Always shows the aura, turns red when out of range, blue on insufficient resources."] = "永遠顯示提醒效果,超出範圍時變成紅色,資源不足時變成藍色。" + L["Always shows the aura, turns red when out of range."] = "永遠顯示提醒效果,超出範圍時變成紅色。" + L["Always shows the aura."] = "永遠顯示提醒效果。" + L["Back"] = "上一步" + L["Basic Show On Cooldown"] = "基本冷卻中顯示" + L["Basic Show On Ready"] = "可使用時基本顯示" + L["Bloodlust/Heroism"] = "嗜血/英勇" + L["buff"] = "種族特長" + L["Buffs"] = "增益 BUFF" + L["Cancel"] = "取消" + L["Cast"] = "施放法術" + L["Charge and Buff Tracking"] = "次數和增益監控" + L["Charge and Debuff Tracking"] = "次數和減益監控" + L["Charge and Duration Tracking"] = "次數和持續時間監控" + L["Charge Tracking"] = "次數監控" + L["cooldown"] = "冷卻" + L["Cooldown Tracking"] = "冷卻監控" + L["Cooldowns"] = "冷卻" + L["Create Auras"] = "建立提醒效果" + L["debuff"] = "減益" + L["Debuffs"] = "減益 DEBUFF/DOT" + L["dps buff"] = "dps增益" + L["General"] = "一般" + L["Health"] = "血量" + L["Highlight while action is queued."] = "顯著標示等待中的動作。" + L["Highlight while active, red when out of range."] = "作用時顯著標示,超出範圍時變成紅色。" + L["Highlight while active."] = "作用時顯著標示。" + L["Highlight while buffed, red when out of range."] = "有增益時顯著標示,超出範圍時變成紅色。" + L["Highlight while buffed."] = "有增益時顯著標示。" + L["Highlight while debuffed, red when out of range."] = "有減益時顯著標示,超出範圍時變成紅色。" + L["Highlight while debuffed."] = "有減益時顯著標示。" + L["Highlight while spell is active."] = "法術作用時顯著標示。" + L["Hold CTRL to create multiple auras at once"] = "按住 CTRL 鍵一次建立多個提醒效果" + L["Keeps existing triggers intact"] = "完整保留已經存在的觸發事件" + L["Master Channeler Rune"] = "大師通靈符文" + L["Max 3"] = "最大 3" + L["Max 4"] = "最大 4" + L["Next"] = "下一步" + L["Only show the aura if the target has the debuff."] = "只在選取目標有減益時才顯示提醒效果。" + L["Only show the aura when the item is on cooldown."] = "只有物品在冷卻中才顯示提醒效果。" + L["Only shows if the weapon is enchanted."] = "只有在武器有附魔時顯示。" + L["Only shows if the weapon is not enchanted."] = "只有在武器沒有附魔時顯示。" + L["Only shows the aura if the target has the buff."] = "只在選取目標有增益時才顯示提醒效果。" + L["Only shows the aura when the ability is on cooldown."] = "只有技能在冷卻中才顯示提醒效果。" + L["Only shows the aura when the ability is ready to use."] = "只有在技能準備好可以使用時才顯示提醒效果。" + L["Other cooldown"] = "其他冷卻時間" + L["Pet alive"] = "寵物活著" + L["Pet Behavior"] = "寵物動作" + L["PvP Talents"] = "PVP 天賦" + L["regen buff"] = "再生增益" + L["Replace all existing triggers"] = "取代所有已經存在的觸發" + L["Replace Triggers"] = "取代觸發" + L["Resources"] = "職業特殊資源" + L["Resources and Shapeshift Form"] = "職業特殊資源和變身形態" + L["Rogue cooldown"] = "盜賊冷卻時間" + L["Runes"] = "符文" + L["Shapeshift Form"] = "變身形態" + L["Show Always, Glow on Missing"] = "永遠顯示,缺少時發光" + L["Show Charges and Check Usable"] = "顯示次數和檢查是否可用" + L["Show Charges with Proc Tracking"] = "顯示包含機率觸發監控的次數" + L["Show Charges with Range Tracking"] = "顯示包含範圍監控的次數" + L["Show Charges with Usable Check"] = "顯示包含檢查是否可用的次數" + L["Show Cooldown and Action Queued"] = "顯示冷卻時間和等待中的動作" + L["Show Cooldown and Buff"] = "顯示冷卻和增益" + L["Show Cooldown and Buff and Check for Target"] = "顯示冷卻和增益並檢查選取目標" + L["Show Cooldown and Buff and Check Usable"] = "顯示冷卻和增益並檢查是否可用" + L["Show Cooldown and Check for Target"] = "顯示冷卻和檢查選取目標" + L["Show Cooldown and Check for Target & Proc Tracking"] = "顯示冷卻並檢查選取目標和機率觸發監控" + L["Show Cooldown and Check Usable"] = "顯示冷卻和檢查是否可用" + L["Show Cooldown and Check Usable & Target"] = "顯示冷卻並檢查是否可用和選取目標" + L["Show Cooldown and Check Usable, Proc Tracking"] = "顯示冷卻並檢查是否可用和機率觸發監控" + L["Show Cooldown and Check Usable, Target & Proc Tracking"] = "顯示冷卻並檢查是否可用和選取目標以及機率觸發監控" + L["Show Cooldown and Debuff"] = "顯示冷卻和減益" + L["Show Cooldown and Debuff and Check for Target"] = "顯示冷卻和減益並檢查選取目標" + L["Show Cooldown and Duration"] = "顯示冷卻時間和持續時間" + L["Show Cooldown and Duration and Check for Target"] = "顯示冷卻時間、持續時間和檢查目標" + L["Show Cooldown and Duration and Check Usable"] = "顯示冷卻時間、持續時間和檢查是否可使用" + L["Show Cooldown and Proc Tracking"] = "顯示冷卻和機率觸發監控" + L["Show Cooldown and Totem Information"] = "顯示冷卻和圖騰資訊" + L["Show if Enchant Missing"] = "缺少附魔時顯示" + L["Show on Ready"] = "可用時顯示" + L["Show Only if Buffed"] = "只在有增益時顯示" + L["Show Only if Debuffed"] = "只在有減益時顯示" + L["Show Only if Enchanted"] = "有附魔時顯示" + L["Show Only if on Cooldown"] = "只有在冷卻中時顯示" + L["Show Totem and Charge Information"] = "顯示圖騰和次數資訊" + L["Stance"] = "姿勢/形態" + L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."] = "監控次數和機率觸發,觸發時顯著標示,超出範圍時變成紅色,資源不足時變成藍色。" + L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."] = "追蹤次數和增益,有增益作用時顯著標示,資源不足時變成藍色。" + L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."] = "追蹤次數和減益,有減益作用時顯著標示,資源不足時變成藍色。" + L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."] = "追蹤法術的可用次數和持續時間,法術作用時顯著標示,資源不足時變成藍色。" + L["Unknown Item"] = "未知的物品" + L["Unknown Spell"] = "未知法術" + L["Warrior cooldown"] = "戰士冷卻時間" + diff --git a/WeakAurasTemplates/TriggerTemplates.lua b/WeakAurasTemplates/TriggerTemplates.lua new file mode 100644 index 0000000..f624b36 --- /dev/null +++ b/WeakAurasTemplates/TriggerTemplates.lua @@ -0,0 +1,1879 @@ +-- Special layout for the New Aura Trigger template page + +local AddonName, TemplatePrivate = ... + +local AceGUI = LibStub("AceGUI-3.0"); +local floor, ceil, tinsert = floor, ceil, tinsert; +local CreateFrame, UnitClass, UnitRace = CreateFrame, UnitClass, UnitRace; + +local WeakAuras = WeakAuras; +local L = WeakAuras.L + +AceGUI:RegisterLayout("WATemplateTriggerLayoutFlyout", function(content, children) + local width = content.width or content:GetWidth() or 0 + local columns = floor(width / 250); + + local rows = columns > 0 and ceil(#children / columns) or 0; + columns = rows > 0 and ceil(#children / rows) or 1; + local relWidth = 1 / columns; + for i = 1, #children do + local child = children[i] + if (not child:IsFullWidth()) then + child:SetRelativeWidth(relWidth); + end + end + local flowLayout = AceGUI:GetLayout("Flow"); + flowLayout(content, children); +end); + +local colors = { + grey = { 0.5, 0.5, 0.5, 1 }, + blue = { 0.5, 0.5, 1, 1 }, + red = { 0.8, 0.1, 0.1, 1 }, + white = { 1, 1, 1, 1 }, + yellow = { 1, 1, 0, 1 }, + green = { 0, 1, 0, 1}, +}; + +local regionColorProperty = { + icon = "color", + aurabar= "barColor", + progresstexture = "foregroundColor", + text = "color", + texture = "color", +}; + +local function changes(property, regionType) + if colors[property] and regionColorProperty[regionType] then + return { + value = colors[property], + property = regionColorProperty[regionType], + }; + elseif property == "glow" and (regionType == "icon" or regionType == "aurabar") then + local subregionPos = regionType == "aurabar" and 1 or 2 + return { + value = true, + property = "sub."..subregionPos..".glow" + }; + elseif TemplatePrivate.Private.regionTypes[regionType].default[property] == nil then + return nil; + elseif property == "cooldownSwipe" then + return { + value = true, + property = "cooldownSwipe", + }; + elseif property == "alpha" then + return { + value = 0.5, + property = "alpha", + }; + elseif property == "inverse" then + return { + value = false, + property = "inverse", + }; + end +end + +local checks = { + spellInRange = { + variable = "spellInRange", + value = 0, + }, + itemInRange = { + variable = "itemInRange", + value = 0, + }, + hasTarget = { + trigger = -1, + variable = "hastarget", + value = 0, + }, + insufficientResources = { + variable = "insufficientResources", + value = 1, + }, + buffedAuraFound = { + variable = "show", + value = 1, + }, + buffedAuraAlways = { + variable = "buffed", + value = 1, + }, + buffedFalseAuraAlways = { + variable = "buffed", + value = 0, + }, + duration = { + variable = "show", + value = 1, + }, + onCooldown = { + variable = "onCooldown", + value = 1, + }, + charges = { + variable = "charges", + op = "==", + value = "0", + }, + usable = { + variable = "spellUsable", + value = 0, + }, + totem = { + variable = "show", + value = 1, + }, + overlayGlow = { + variable = "show", + value = 1, + }, + uninterruptible = { + variable = "interruptible", + value = 0, + }, + enchantMissing = { + variable = "enchanted", + value = 0 + }, + queued = { + variable = "show", + value = 1, + } +} + +local function buildCondition(trigger, check, properties) + local result = {}; + result.check = CopyTable(check); + if (not result.check.trigger) then + result.check.trigger = trigger; + end + + result.changes = {}; + local hasChanges = false; + for index, v in ipairs(properties) do + result.changes[index] = CopyTable(v); + hasChanges = true; + end + return hasChanges and result or nil; +end + +local function missingBuffGreyed(conditions, trigger, regionType) + tinsert(conditions, buildCondition(trigger, checks.buffedFalseAuraAlways, {changes("grey", regionType)})); +end + +local function isNotUsableBlue(conditions, trigger, regionType) + tinsert(conditions, buildCondition(trigger, checks.usable, {changes("blue", regionType)})); +end + +local function insufficientResourcesBlue(conditions, trigger, regionType) + tinsert(conditions, buildCondition(trigger, checks.insufficientResources, {changes("blue", regionType)})); +end + +local function hasChargesGrey(conditions, trigger, regionType) + if regionType == "icon" then + tinsert(conditions, buildCondition(trigger, checks.charges, {changes("cooldownSwipe", regionType)})); + else + tinsert(conditions, buildCondition(trigger, checks.charges, {changes("grey", regionType)})); + end +end + +local function isOnCdGrey(conditions, trigger, regionType) + tinsert(conditions, buildCondition(trigger, checks.onCooldown, {changes("grey", regionType)})); +end + +local function GenericGlow(conditions, trigger, regionType, check) + if regionType == "icon" then + tinsert(conditions, buildCondition(trigger, check, {changes("inverse", regionType), + changes("glow", regionType), + changes("white", regionType)})); + elseif regionType == "aurabar" then + tinsert(conditions, buildCondition(trigger, check, {changes("inverse", regionType), + changes("glow", regionType), + changes("yellow", regionType)})); + elseif regionType == "progresstexture" then + tinsert(conditions, buildCondition(trigger, check, {changes("inverse", regionType), + changes("yellow", regionType)})); + else + tinsert(conditions, buildCondition(trigger, check, {changes("yellow", regionType)})); + end +end + +local function isQueuedGlow(conditions, trigger, regionType) + GenericGlow(conditions, trigger, regionType, checks.queued) +end + +local function isBuffedGlow(conditions, trigger, regionType) + GenericGlow(conditions, trigger, regionType, checks.buffedAuraFound) +end + +local function isDurationGlow(conditions, trigger, regionType) + GenericGlow(conditions, trigger, regionType, checks.duration) +end + +local function isBuffedGlowAuraAlways(conditions, trigger, regionType) + GenericGlow(conditions, trigger, regionType, checks.buffedAuraAlways) +end + +local function totemActiveGlow(conditions, trigger, regionType) + GenericGlow(conditions, trigger, regionType, checks.totem) +end + +local function isMissingEnchantGlow(conditions, trigger, regionType) + tinsert(conditions, buildCondition(trigger, checks.enchantMissing, {changes("glow", regionType)})); +end + +local function overlayGlow(conditions, trigger, regionType) + if regionType == "icon" or regionType == "aurabar" then + tinsert(conditions, buildCondition(trigger, checks.overlayGlow, {changes("glow", regionType)})); + else + tinsert(conditions, buildCondition(trigger, checks.overlayGlow, {changes("yellow", regionType)})); + end +end + +local function uninterruptibleRed(conditions, trigger, regionType) + tinsert(conditions, buildCondition(trigger, checks.uninterruptible, {changes("red", regionType)})); +end + +local function isSpellNotInRangeRed(conditions, trigger, regionType) + tinsert(conditions, buildCondition(trigger, checks.spellInRange, {changes("red", regionType)})); +end + +local function itemInRangeRed(conditions, trigger, regionType) + tinsert(conditions, buildCondition(trigger, checks.itemInRange, {changes("red", regionType)})); +end + +local function createBuffTrigger(triggers, position, item, buffShowOn, isBuff, data) + triggers[position] = { + trigger = { + unit = item.unit or isBuff and "player" or "target", + type = "aura2", + matchesShowOn = buffShowOn, + debuffType = isBuff and "HELPFUL" or "HARMFUL", + ownOnly = not item.forceOwnOnly and true or item.ownOnly, + unitExists = false, + } + }; + + if item.spellIds then + if item.exactSpellId then + triggers[position].trigger.useExactSpellId = true + triggers[position].trigger.auraspellids = {} + for index, spell in ipairs(item.spellIds) do + triggers[position].trigger.auraspellids[index] = tostring(spell) + end + else + triggers[position].trigger.useName = true + triggers[position].trigger.auranames = {} + for index, spell in ipairs(item.spellIds) do + triggers[position].trigger.auranames[index] = tostring(spell) + end + end + else + if item.exactSpellId then + triggers[position].trigger.useExactSpellId = true + triggers[position].trigger.auraspellids = { tostring(item.buffId or item.spell) } + else + triggers[position].trigger.useName = true + triggers[position].trigger.auranames = { tostring(item.buffId or item.spell) } + end + end + + if triggers[position].trigger.unit == "multi" and buffShowOn == "showOnActive" then + local trigger = triggers[position].trigger + trigger.useGroup_count = true + trigger.group_countOperator = ">=" + trigger.group_count = "1" + end + + if (item.unit == "group") then + triggers[position].trigger.name_info = "players"; + end + if (item.unit == "multi") then + triggers[position].trigger.spellId = item.buffId or item.spell; + end + + if item.progressSource then + data.progressSource = { position, item.progressSource } + end + + if item.maxProgress then + data.useAdjustededMax = true + data.adjustedMax = item.maxProgress + end +end + +local function createDurationTrigger(triggers, position, item) + triggers[position] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Combat Log"), + event = "Combat Log", + subeventSuffix = "_CAST_SUCCESS", + use_sourceUnit = true, + sourceUnit = item.unit or "player", + use_spellId = true, + spellId = tostring(item.spell), + duration = tostring(item.duration), + } + }; +end + +local function createTotemTrigger(triggers, position, item) + triggers[position] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Totem"), + event = "Totem", + use_totemName = item.totemNumber == nil, + totemName = GetSpellInfo(item.spell), + } + }; + if (item.totemNumber) then + triggers[position].trigger.use_totemType = true; + triggers[position].trigger.totemType = item.totemNumber; + end +end + +local function createPowerTrigger(triggers, position, item) + triggers[position] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Power"), + event = "Power", + use_unit = true, + unit = "player", + use_powertype = true, + use_showCost = true, + powertype = item.powertype, + }, + }; +end + +local function createHealthTrigger(triggers, position, item) + triggers[position] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Health"), + event = "Health", + unit = "player", + use_unit = true, + use_absorbMode = true, + use_showAbsorb = true, + use_showIncomingHeal = true, + }, + }; +end + +local function createCastTrigger(triggers, position, item) + triggers[position] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Cast"), + event = "Cast", + use_unit = true, + unit = item.unit or "player", + }, + }; +end + +local function createAbilityTrigger(triggers, position, item, genericShowOn) + triggers[position] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Cooldown Progress (Spell)"), + event = "Cooldown Progress (Spell)", + spellName = item.spell, + use_genericShowOn = true, + genericShowOn = genericShowOn, + use_exact_spellName = item.exactSpellId + } + }; + if genericShowOn == "showOnReady" then + triggers[position].trigger.use_track = true + triggers[position].trigger.track = "cooldown" + end +end + +local function createItemTrigger(triggers, position, item, genericShowOn) + triggers[position] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Cooldown Progress (Item)"), + event = "Cooldown Progress (Item)", + use_genericShowOn = true, + genericShowOn = genericShowOn, + itemName = item.spell, + } + }; +end + +local function createOverlayGlowTrigger(triggers, position, item) + triggers[position] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Spell Activation Overlay"), + event = "Spell Activation Overlay", + spellName = item.spell, + } + }; +end + +local function createWeaponEnchantTrigger(triggers, position, item, showOn) + triggers[position] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Weapon Enchant"), + event = "Weapon Enchant", + use_enchant = true, + enchant = tostring(item.enchant), + weapon = item.weapon, + showOn = showOn + } + } +end + +local function createQueuedActionTrigger(triggers, position, item) + triggers[position] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Queued Action"), + event = "Queued Action", + spellName = item.spell + } + } +end + +local function createAbilityAndQueuedActionTrigger(triggers, item) + createAbilityTrigger(triggers, 1, item, "showAlways"); + createQueuedActionTrigger(triggers, 2, item); +end + +local function createAbilityAndDurationTrigger(triggers, item) + createDurationTrigger(triggers, 1, item); + createAbilityTrigger(triggers, 2, item, "showAlways"); +end + +local function createAbilityAndBuffTrigger(triggers, item, data) + createBuffTrigger(triggers, 1, item, "showOnActive", true, data); + createAbilityTrigger(triggers, 2, item, "showAlways"); +end + +local function createAbilityAndDebuffTrigger(triggers, item, data) + createBuffTrigger(triggers, 1, item, "showOnActive", false, data); + createAbilityTrigger(triggers, 2, item, "showAlways"); +end + +local function createAbilityAndOverlayGlowTrigger(triggers, item) + createAbilityTrigger(triggers, 1, item, "showAlways"); + createOverlayGlowTrigger(triggers, 2, item); +end + +-- Create preview thumbnail +local function createThumbnail(parent) + -- Preview frame + local borderframe = CreateFrame("Frame", nil, parent); + borderframe:SetWidth(32); + borderframe:SetHeight(32); + + -- Preview border + local border = borderframe:CreateTexture(nil, "OVERLAY"); + border:SetAllPoints(borderframe); + border:SetTexture("Interface\\BUTTONS\\UI-Quickslot2.blp"); + border:SetTexCoord(0.2, 0.8, 0.2, 0.8); + + -- Main region + local region = CreateFrame("Frame", nil, borderframe); + borderframe.region = region; + + -- Preview children + region.children = {}; + + -- Return preview + return borderframe; +end + +local function subTypesFor(item, regionType) + local types = {}; + local icon = { + target = function() + local thumbnail = createThumbnail(); + local t1 = thumbnail:CreateTexture(nil, "ARTWORK"); + t1:SetTexture([[Interface/Icons/INV_Misc_PocketWatch_01]]); + t1:SetAllPoints(thumbnail); + + thumbnail.elapsed = 0; + thumbnail:SetScript("OnUpdate", function(self, elapsed) + self.elapsed = self.elapsed + elapsed; + if(self.elapsed < 0.5) then + t1:SetVertexColor(1,0,0,1); + elseif(self.elapsed < 1.5) then + t1:SetVertexColor(1,1,1,1); + elseif(self.elapsed < 3) then + -- Do nothing + else + self.elapsed = self.elapsed - 3; + end + end); + return thumbnail; + end, -- 132212, + glow = function() + local thumbnail = createThumbnail(); + local t1 = thumbnail:CreateTexture(nil, "ARTWORK"); + t1:SetTexture([[Interface/Icons/INV_Misc_PocketWatch_01]]); + t1:SetAllPoints(thumbnail); + WeakAuras.ShowOverlayGlow(thumbnail); -- where to call HideOverlayGlow() ? + return thumbnail; + end, -- 571554 + charges = function() + local thumbnail = createThumbnail(); + local t1 = thumbnail:CreateTexture(nil, "ARTWORK"); + t1:SetTexture([[Interface/Icons/INV_Misc_PocketWatch_01]]); + t1:SetAllPoints(thumbnail); + local t2 = thumbnail:CreateFontString(nil, "ARTWORK"); + t2:SetFont(STANDARD_TEXT_FONT, 14, "OUTLINE"); + t2:SetTextColor(1,1,1,1); + t2:SetText("2"); + t2:SetPoint("BOTTOMRIGHT", -2, 2); + return thumbnail; + end, + cd = [[Interface/Icons/INV_Misc_PocketWatch_02]], + cd2 = [[Interface/Icons/INV_Misc_PocketWatch_01]], + }; + local data = {} + local dataGlow = {} + if regionType == "aurabar" then + dataGlow.subRegions = { + [1] = TemplatePrivate.Private.getDefaultGlow(regionType) + } + end + if (item.type == "ability") then + tinsert(types, { + fallback = true, + icon = icon.cd, + title = L["Basic Show On Cooldown"], + description = L["Only shows the aura when the ability is on cooldown."], + createTriggers = function(triggers, item) + createAbilityTrigger(triggers, 1, item, "showOnCooldown"); + end, + }); + tinsert(types, { + icon = icon.cd, + title = L["Basic Show On Cooldown"], + description = L["Only shows the aura when the ability is on cooldown."], + createTriggers = function(triggers, item) + createAbilityTrigger(triggers, 1, item, "showOnCooldown"); + end, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 1, regionType) + end, + }); + tinsert(types, { + icon = icon.cd, + title = L["Basic Show On Ready"], + description = L["Only shows the aura when the ability is ready to use."], + createTriggers = function(triggers, item) + createAbilityTrigger(triggers, 1, item, "showOnReady"); + end, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 1, regionType) + end, + }); + if (item.charges) then + data.cooldownSwipe = false + data.cooldownEdge = true + dataGlow.cooldownSwipe = false + dataGlow.cooldownEdge = true + tinsert(types, { + icon = icon.charges, + title = L["Charge Tracking"], + description = L["Always shows the aura, turns blue on insufficient resources."], + createTriggers = function(triggers, item) + createAbilityTrigger(triggers, 1, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 1, regionType); + hasChargesGrey(conditions, 1, regionType); + end, + data = data, + }); + if (item.duration) then + tinsert(types, { + icon = icon.glow, + title = L["Charge and Duration Tracking"], + description = L["Tracks the charge and the duration of spell, highlight while the spell is active, blue on insufficient resources."], + createTriggers = createAbilityAndDurationTrigger, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 2, regionType); + hasChargesGrey(conditions, 2, regionType); + isDurationGlow(conditions, 1, regionType); + end, + data = dataGlow, + }); + elseif (item.buff) then + tinsert(types, { + icon = icon.glow, + title = L["Charge and Buff Tracking"], + description = L["Tracks the charge and the buff, highlight while the buff is active, blue on insufficient resources."], + createTriggers = createAbilityAndBuffTrigger, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 2, regionType); + hasChargesGrey(conditions, 2, regionType); + isBuffedGlow(conditions, 1, regionType); + end, + data = dataGlow, + }); + elseif(item.debuff) then + tinsert(types, { + icon = icon.glow, + title = L["Charge and Debuff Tracking"], + description = L["Tracks the charge and the debuff, highlight while the debuff is active, blue on insufficient resources."], + createTriggers = createAbilityAndDebuffTrigger, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 2, regionType); + hasChargesGrey(conditions, 2, regionType); + isBuffedGlow(conditions, 1, regionType); + end, + data = dataGlow, + }) + elseif(item.requiresTarget) then + tinsert(types, { + icon = icon.target, + title = L["Show Charges with Range Tracking"], + description = L["Always shows the aura, turns red when out of range, blue on insufficient resources."], + genericShowOn = "showAlways", + createTriggers = function(triggers, item) + createAbilityTrigger(triggers, 1, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 1, regionType); + hasChargesGrey(conditions, 1, regionType); + isSpellNotInRangeRed(conditions, 1, regionType); + end, + data = data, + }); + if (item.usable) then + tinsert(types, { + icon = icon.target, + title = L["Show Charges with Usable Check"], + description = L["Always shows the aura, turns red when out of range, blue on insufficient resources."], + createTriggers = function(triggers, item) + createAbilityTrigger(triggers, 1, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 1, regionType); + hasChargesGrey(conditions, 1, regionType); + isSpellNotInRangeRed(conditions, 1, regionType); + end, + data = data, + }); + end + if (item.overlayGlow) then + tinsert(types, { + icon = icon.glow, + title = L["Show Charges with Proc Tracking"], + description = L["Track the charge and proc, highlight while proc is active, turns red when out of range, blue on insufficient resources."], + createTriggers = createAbilityAndOverlayGlowTrigger, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 1, regionType); + hasChargesGrey(conditions, 1, regionType); + isSpellNotInRangeRed(conditions, 1, regionType); + overlayGlow(conditions, 2, regionType); + end, + data = dataGlow, + }); + end + elseif(item.totem) then + tinsert(types, { + icon = icon.charges, + title = L["Show Totem and Charge Information"], + description = L["Always shows the aura, highlight when active, turns blue on insufficient resources."], + createTriggers = function(triggers, item) + createTotemTrigger(triggers, 1, item); + createAbilityTrigger(triggers, 2, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 2, regionType); + hasChargesGrey(conditions, 2, regionType); + totemActiveGlow(conditions, 1, regionType); + end, + data = dataGlow, + }); + elseif(item.usable) then + tinsert(types, { + icon = icon.charges, + title = L["Show Charges and Check Usable"], + description = L["Always shows the aura, turns blue when not usable."], + createTriggers = function(triggers, item) + createAbilityTrigger(triggers, 1, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 1, regionType); + hasChargesGrey(conditions, 1, regionType); + end, + data = data, + }); + if (item.overlayGlow) then + tinsert(types, { + icon = icon.glow, + title = L["Show Charges with Proc Tracking"], + description = L["Always shows the aura, highlight while proc is active, blue when not usable."], + createTriggers = createAbilityAndOverlayGlowTrigger, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 1, regionType); + hasChargesGrey(conditions, 1, regionType); + overlayGlow(conditions, 2, regionType); + end, + data = dataGlow, + }); + end + end + else -- Ability without charges + tinsert(types, { + icon = icon.cd2, + title = L["Cooldown Tracking"], + description = L["Always shows the aura, turns blue when not usable."], + createTriggers = function(triggers, item) + createAbilityTrigger(triggers, 1, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 1, regionType); + isOnCdGrey(conditions, 1, regionType); + end, + }); + if (item.duration) then + data.cooldownSwipe = false + data.cooldownEdge = true + dataGlow.cooldownSwipe = false + dataGlow.cooldownEdge = true + tinsert(types, { + icon = icon.glow, + title = L["Show Cooldown and Duration"], + description = L["Highlight while spell is active."], + createTriggers = createAbilityAndDurationTrigger, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 2, regionType); + isOnCdGrey(conditions, 2, regionType); + isDurationGlow(conditions, 1, regionType); + end, + data = dataGlow + }); + if (item.usable) then + tinsert(types, { + icon = icon.glow, + title = L["Show Cooldown and Duration and Check Usable"], + description = L["Highlight while active."], + createTriggers = createAbilityAndDurationTrigger, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 2, regionType); + isOnCdGrey(conditions, 2, regionType); + isDurationGlow(conditions, 1, regionType); + end, + data = dataGlow + }); + end + if (item.requiresTarget) then + tinsert(types, { + icon = icon.target, + title = L["Show Cooldown and Duration and Check for Target"], + description = L["Highlight while active, red when out of range."], + createTriggers = createAbilityAndDurationTrigger, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 2, regionType); + isOnCdGrey(conditions, 2, regionType); + isSpellNotInRangeRed(conditions, 2, regionType); + isDurationGlow(conditions, 1, regionType); + end, + data = dataGlow + }); + end + elseif (item.queued) then + tinsert(types, { + icon = icon.glow, + title = L["Show Cooldown and Action Queued"], + description = L["Highlight while action is queued."], + createTriggers = createAbilityAndQueuedActionTrigger, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 1, regionType); + isOnCdGrey(conditions, 1, regionType); + isQueuedGlow(conditions, 2, regionType); + end, + data = dataGlow + }); + elseif (item.buff) then + tinsert(types, { + icon = icon.glow, + title = L["Show Cooldown and Buff"], + description = L["Highlight while buffed."], + createTriggers = createAbilityAndBuffTrigger, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 2, regionType); + isOnCdGrey(conditions, 2, regionType); + isBuffedGlow(conditions, 1, regionType); + end, + data = dataGlow + }); + if (item.usable) then + tinsert(types, { + icon = icon.glow, + title = L["Show Cooldown and Buff and Check Usable"], + description = L["Highlight while buffed."], + createTriggers = createAbilityAndBuffTrigger, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 2, regionType); + isOnCdGrey(conditions, 2, regionType); + isBuffedGlow(conditions, 1, regionType); + end, + data = dataGlow + }); + end + if (item.requiresTarget) then + tinsert(types, { + icon = icon.target, + title = L["Show Cooldown and Buff and Check for Target"], + description = L["Highlight while buffed, red when out of range."], + createTriggers = createAbilityAndBuffTrigger, + createConditions = function(conditions, item, regionType) + if item.usable then + isNotUsableBlue(conditions, 2, regionType); + else + insufficientResourcesBlue(conditions, 2, regionType); + end + isOnCdGrey(conditions, 2, regionType); + isSpellNotInRangeRed(conditions, 2, regionType); + isBuffedGlow(conditions, 1, regionType); + end, + data = dataGlow + }); + end + elseif(item.debuff) then + tinsert(types, { + icon = icon.glow, + title = L["Show Cooldown and Debuff"], + description = L["Highlight while debuffed."], + createTriggers = createAbilityAndDebuffTrigger, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 2, regionType); + isOnCdGrey(conditions, 2, regionType); + isBuffedGlow(conditions, 1, regionType); + end, + data = dataGlow + }); + if (item.requiresTarget) then + tinsert(types, { + icon = icon.target, + title = L["Show Cooldown and Debuff and Check for Target"], + description = L["Highlight while debuffed, red when out of range."], + createTriggers = createAbilityAndDebuffTrigger, + createConditions = function(conditions, item, regionType) + if item.usable then + isNotUsableBlue(conditions, 2, regionType); + else + insufficientResourcesBlue(conditions, 2, regionType); + end + isOnCdGrey(conditions, 2, regionType); + isSpellNotInRangeRed(conditions, 2, regionType); + isBuffedGlow(conditions, 1, regionType); + end, + data = dataGlow + }); + end + elseif(item.totem) then + tinsert(types, { + icon = icon.cd2, + title = L["Show Cooldown and Totem Information"], + description = L["Always shows the aura, turns grey if the ability is not usable."], + createTriggers = function(triggers, item) + createTotemTrigger(triggers, 1, item); + createAbilityTrigger(triggers, 2, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 2, regionType); + isOnCdGrey(conditions, 2, regionType); + totemActiveGlow(conditions, 1, regionType); + end, + data = dataGlow + }); + else + if (item.requiresTarget) then + tinsert(types, { + icon = icon.target, + title = L["Show Cooldown and Check for Target"], + description = L["Always shows the aura, turns red when out of range."], + createTriggers = function(triggers, item) + createAbilityTrigger(triggers, 1, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 1, regionType); + isOnCdGrey(conditions, 1, regionType); + isSpellNotInRangeRed(conditions, 1, regionType); + end, + }); + if (item.overlayGlow) then + tinsert(types, { + icon = icon.glow, + title = L["Show Cooldown and Check for Target & Proc Tracking"], + description = L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."], + createTriggers = createAbilityAndOverlayGlowTrigger, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 1, regionType); + isOnCdGrey(conditions, 1, regionType); + isSpellNotInRangeRed(conditions, 1, regionType); + overlayGlow(conditions, 2, regionType); + end, + data = dataGlow + }); + end + elseif (item.overlayGlow) then + tinsert(types, { + icon = icon.glow, + title = L["Show Cooldown and Proc Tracking"], + description = L["Always shows the aura, highlight while proc is active, blue on insufficient resources."], + createTriggers = createAbilityAndOverlayGlowTrigger, + createConditions = function(conditions, item, regionType) + insufficientResourcesBlue(conditions, 1, regionType); + isOnCdGrey(conditions, 1, regionType); + overlayGlow(conditions, 2, regionType); + end, + data = dataGlow + }); + end + if (item.usable) then + tinsert(types, { + icon = icon.cd2, + title = L["Show Cooldown and Check Usable"], + description = L["Always shows the aura, turns grey if the ability is not usable."], + createTriggers = function(triggers, item) + createAbilityTrigger(triggers, 1, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 1, regionType); + isOnCdGrey(conditions, 1, regionType); + end, + }); + if (item.requiresTarget) then + tinsert(types, { + icon = icon.target, + title = L["Show Cooldown and Check Usable & Target"], + description = L["Always shows the aura, turns grey if the ability is not usable and red when out of range."], + createTriggers = function(triggers, item) + createAbilityTrigger(triggers, 1, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 1, regionType); + isOnCdGrey(conditions, 1, regionType); + isSpellNotInRangeRed(conditions, 1, regionType); + end, + }); + if (item.overlayGlow) then + tinsert(types, { + icon = icon.glow, + title = L["Show Cooldown and Check Usable, Target & Proc Tracking"], + description = L["Always shows the aura, highlight while proc is active, turns red when out of range, blue on insufficient resources."], + createTriggers = createAbilityAndOverlayGlowTrigger, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 1, regionType); + isOnCdGrey(conditions, 1, regionType); + isSpellNotInRangeRed(conditions, 1, regionType); + overlayGlow(conditions, 2, regionType); + end, + data = dataGlow + }); + end + else + if (item.overlayGlow) then + tinsert(types, { + icon = icon.glow, + title = L["Show Cooldown and Check Usable, Proc Tracking"], + description = L["Always shows the aura, highlight while proc is active, blue on insufficient resources."], + createTriggers = createAbilityAndOverlayGlowTrigger, + createConditions = function(conditions, item, regionType) + isNotUsableBlue(conditions, 1, regionType); + isOnCdGrey(conditions, 1, regionType); + overlayGlow(conditions, 2, regionType); + end, + data = dataGlow + }); + end + end + end + end + end + elseif(item.type == "buff") then + data.inverse = false + dataGlow.inverse = false + tinsert(types, { + icon = icon.cd, + title = L["Show Only if Buffed"], + description = L["Only shows the aura if the target has the buff."], + createTriggers = function(triggers, item, data) + createBuffTrigger(triggers, 1, item, "showOnActive", true, data); + end, + data = data, + }); + tinsert(types, { + icon = icon.glow, + title = L["Always Show"], + description = L["Always shows the aura, highlight it if buffed."], + buffShowOn = "showAlways", + createTriggers = function(triggers, item, data) + createBuffTrigger(triggers, 1, item, "showAlways", true, data); + end, + createConditions = function(conditions, item, regionType) + isBuffedGlowAuraAlways(conditions, 1, regionType); + end, + data = dataGlow, + }); + tinsert(types, { + icon = icon.cd2, + title = L["Always Show"], + description = L["Always shows the aura, grey if buff not active."], + createTriggers = function(triggers, item, data) + createBuffTrigger(triggers, 1, item, "showAlways", true, data); + end, + createConditions = function(conditions, item, regionType) + missingBuffGreyed(conditions, 1, regionType); + end, + data = data, + }); + elseif(item.type == "debuff") then + data.inverse = false + dataGlow.inverse = false + tinsert(types, { + icon = icon.cd, + title = L["Show Only if Debuffed"], + description = L["Only show the aura if the target has the debuff."], + createTriggers = function(triggers, item, data) + createBuffTrigger(triggers, 1, item, "showOnActive", false, data); + end, + data = data, + }); + tinsert(types, { + icon = icon.glow, + title = L["Always Show"], + description = L["Always show the aura, highlight it if debuffed."], + createTriggers = function(triggers, item) + createBuffTrigger(triggers, 1, item, "showAlways", false); + end, + createConditions = function(conditions, item, regionType) + isBuffedGlowAuraAlways(conditions, 1, regionType); + end, + data = dataGlow, + }); + tinsert(types, { + icon = icon.cd2, + title = L["Always Show"], + description = L["Always show the aura, turns grey if the debuff not active."], + createTriggers = function(triggers, item, data) + createBuffTrigger(triggers, 1, item, "showAlways", false, data); + end, + createConditions = function(conditions, item, regionType) + missingBuffGreyed(conditions, 1, regionType); + end, + data = data, + }); + elseif(item.type == "item") then + tinsert(types, { + icon = icon.cd, + title = L["Show Only if on Cooldown"], + description = L["Only show the aura when the item is on cooldown."], + createTriggers = function(triggers, item) + createItemTrigger(triggers, 1, item, "showOnCooldown"); + end, + }); + tinsert(types, { + icon = icon.cd, + title = L["Show on Ready"], + description = L["Only shows the aura when the ability is ready to use."], + createTriggers = function(triggers, item) + createItemTrigger(triggers, 1, item, "showOnReady"); + end, + }); + tinsert(types, { + icon = icon.cd2, + title = L["Always Show"], + description = L["Always show the aura, turns grey if on cooldown."], + createTriggers = function(triggers, item) + createItemTrigger(triggers, 1, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + isOnCdGrey(conditions, 1, regionType); + end, + }); + elseif(item.type == "totem") then + tinsert(types, { + fallback = true, + icon = icon.cd2, + title = L["Always Show"], + description = L["Always shows the aura."], + createTriggers = function(triggers, item) + createTotemTrigger(triggers, 1, item); + end, + }); + tinsert(types, { + icon = icon.cd2, + title = L["Always Show"], + description = L["Always shows the aura, turns grey if on cooldown."], + createTriggers = function(triggers, item) + createTotemTrigger(triggers, 1, item); + end, + createConditions = function(conditions, item, regionType) + totemActiveGlow(conditions, 1, regionType); + end, + data = dataGlow + }); + elseif(item.type == "power") then + data.inverse = false + data.icon = false + data.text = false + tinsert(types, { + icon = item.icon, + title = item.title, + createTriggers = function(triggers, item) + createPowerTrigger(triggers, 1, item); + end, + data = data, + }); + elseif(item.type == "health") then + data.inverse = false + data.icon = false + data.text = false + tinsert(types, { + icon = item.icon, + title = item.title, + createTriggers = function(triggers, item) + createHealthTrigger(triggers, 1, item); + end, + data = data, + }); + elseif(item.type == "cast") then + data.inverse = false + tinsert(types, { + fallback = true, + icon = item.icon, + title = item.title, + createTriggers = function(triggers, item) + createCastTrigger(triggers, 1, item); + end, + data = data, + }); + tinsert(types, { + icon = item.icon, + title = item.title, + createTriggers = function(triggers, item) + createCastTrigger(triggers, 1, item); + end, + createConditions = function(conditions, item, regionType) + uninterruptibleRed(conditions, 1, regionType); + end, + data = data, + }); + elseif (item.type == "weaponenchant") then + data.inverse = false + tinsert(types, { + icon = icon.cd, + title = L["Show Only if Enchanted"], + description = L["Only shows if the weapon is enchanted."], + createTriggers = function(triggers, item) + createWeaponEnchantTrigger(triggers, 1, item, "showOnActive"); + end, + data = data, + }); + tinsert(types, { + icon = icon.cd, + title = L["Show if Enchant Missing"], + description = L["Only shows if the weapon is not enchanted."], + createTriggers = function(triggers, item) + createWeaponEnchantTrigger(triggers, 1, item, "showOnMissing"); + end, + data = data, + }); + tinsert(types, { + icon = icon.glow, + title = L["Show Always, Glow on Missing"], + description = L["Always shows highlights if enchant missing."], + createTriggers = function(triggers, item) + createWeaponEnchantTrigger(triggers, 1, item, "showAlways"); + end, + createConditions = function(conditions, item, regionType) + isMissingEnchantGlow(conditions, 1, regionType); + end, + data = dataGlow, + }); + end + + -- filter when createConditions return nothing for this regionType + local fallbacks = {} + for index = #types, 1, -1 do + local type = types[index]; + if type.createConditions then + local conditions = {} + type.createConditions(conditions, item, regionType) + if #conditions == 0 then + tremove(types, index); + end + elseif type.fallback then + tremove(types, index); + tinsert(fallbacks, type) + end + end + + if #types > 0 then + return types + end + return fallbacks +end + +function WeakAuras.CreateTemplateView(Private, frame) + TemplatePrivate.Private = Private + + -- Enrich Display templates with default values + for regionType, regionData in pairs(TemplatePrivate.Private.regionOptions) do + if (regionData.templates) then + for _, item in ipairs(regionData.templates) do + for k, v in pairs(TemplatePrivate.Private.regionTypes[regionType].default) do + if (item.data[k] == nil) then + item.data[k] = v + end + end + end + end + end + + local newView = AceGUI:Create("InlineGroup"); + newView.frame:SetParent(frame); + newView.frame:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -17, 42); + newView.frame:SetPoint("TOPLEFT", frame, "TOPLEFT", 17, -50); + newView.frame:Hide(); + newView:SetLayout("fill"); + + local newViewScroll = AceGUI:Create("ScrollFrame"); + newViewScroll:SetLayout("flow"); + newView:AddChild(newViewScroll); + + local function createConditionsFor(item, subType, regionType) + if (subType.createConditions) then + local conditions = {}; + subType.createConditions(conditions, item, regionType); + return conditions; + end + end + + local function replaceCondition(data, item, subType) + local conditions = createConditionsFor(item, subType, data.regionType); + if conditions then + data.conditions = CopyTable(conditions); + end + end + + local function addCondition(data, item, subType, prevNumTriggers) + local conditions = createConditionsFor(item, subType, data.regionType); + if conditions then + if data.conditions then + local position = #data.conditions + 1; + for i,v in pairs(conditions) do + data.conditions[position] = data.conditions[position] or {}; + if v.check.trigger ~= -1 then + v.check.trigger = v.check.trigger + prevNumTriggers; + end + data.conditions[position] = CopyTable(v); + position = position + 1; + end + else + data.conditions = CopyTable(conditions); + end + end + end + + local function createTriggersFor(item, subType, data) + local triggers = {}; + subType.createTriggers(triggers, item, data); + return triggers; + end + + -- Trigger Template + local function sortedPairs (t, f) + local a = {} + for n in pairs(t) do table.insert(a, n) end + table.sort(a, f) + local i = 0 -- iterator variable + local iter = function () -- iterator function + i = i + 1 + if a[i] == nil then return nil + else return a[i], t[a[i]] + end + end + return iter + end + + local function createSortFunctionFor(table) + return function(a, b) + return table[a].title < table[b].title; + end + end + + local function replaceTrigger(data, item, subType) + local triggers; + if (item.triggers) then + triggers = item.triggers; + else + triggers = createTriggersFor(item, subType, data); + end + + data.triggers = {} + for i, v in pairs(triggers) do + data.triggers[i] = data.triggers[i] or {}; + data.triggers[i].trigger = CopyTable(v.trigger); + data.triggers[i].untrigger = {}; + if (v.untrigger) then + data.triggers[i].untrigger = CopyTable(v.untrigger); + end + end + if (#data.triggers > 1) then -- Multiple triggers + data.triggers.disjunctive = "any"; + data.triggers.activeTriggerMode = -10; + end + end + + local function addTrigger(data, item, subType) + local triggers; + if (item.triggers) then + triggers = item.triggers; + else + triggers = createTriggersFor(item, subType, data); + end + + for i, v in pairs(triggers) do + local position = #data.triggers + 1 + data.triggers[position] = data.triggers[position] or {}; + data.triggers[position].trigger = CopyTable(v.trigger); + data.triggers[position].untrigger = {}; + if (v.untrigger) then + data.triggers[position].untrigger = CopyTable(v.untrigger); + end + end + -- Multiple Triggers, override disjunctive, even if the users set it previously + if (triggers[2]) then + data.triggers.disjunctive = "any"; + data.triggers.activeTriggerMode = -10; + end + end + + local createButtons; + + local function createRegionButton(regionType, regionData, selectedItem) + local button = AceGUI:Create("WeakAurasNewButton"); + button:SetTitle(regionData.displayName); + if(type(regionData.icon) == "string" or type(regionData.icon) == "table") then + button:SetIcon(regionData.templateIcon); + end + button:SetDescription(regionData.description); + button:SetFullWidth(true); + if (regionType == selectedItem) then + button.frame:LockHighlight(true); + end + button:SetClick(function() + createButtons((selectedItem ~= regionType) and regionType); + end); + return button; + end + + local function createRegionFlyout(regionType, regionData) + local group = AceGUI:Create("WeakAurasTemplateGroup"); + group:SetFullWidth(true); + group:SetLayout("WATemplateTriggerLayoutFlyout"); + for _, item in ipairs(regionData.templates) do + local templateButton = AceGUI:Create("WeakAurasNewButton"); + if (item.icon) then + templateButton:SetIcon(item.icon); + else + templateButton:SetThumbnail(regionType, item.data) + end + + templateButton:SetTitle(item.title); + templateButton:SetDescription(item.description); + templateButton:SetClick(function() + newView.data = CopyTable(item.data); + TemplatePrivate.Private.validate(newView.data, TemplatePrivate.Private.data_stub); + newView.data.internalVersion = WeakAuras.InternalVersion(); + newView.data.regionType = regionType; + createButtons(); + end); + group:AddChild(templateButton); + end + return group; + end + + local function createDropdown(member, values) + local selector = AceGUI:Create("Dropdown"); + selector:SetList(values); + selector:SetValue(newView[member]); + selector:SetCallback("OnValueChanged", function(self, callback, v) + newView[member] = v; + createButtons(); + end); + return selector; + end + + local function createSpacer() + local spacer = AceGUI:Create("Label"); + spacer:SetFullWidth(true); + spacer:SetText(" "); + return spacer; + end + + local function createTriggerFlyout(section, fullWidth) + local group = AceGUI:Create("WeakAurasTemplateGroup"); + group:SetFullWidth(true); + newView.chosenItemBatch = {}; + newView.chosenItemButtonsBatch = {}; + group:SetLayout("WATemplateTriggerLayoutFlyout"); + if (section) then + for j, item in sortedPairs(section, createSortFunctionFor(section)) do + local button = AceGUI:Create("WeakAurasNewButton"); + button:SetTitle(item.title); + button:SetDescription(item.description); + if (fullWidth) then + button:SetFullWidth(true); + end + if(item.icon) then + button:SetIcon(item.icon); + end + button:SetClick(function() + if (IsControlKeyDown() and not newView.existingAura) then + if newView.chosenItemBatch[item] then + button.frame:UnlockHighlight(); + newView.chosenItemBatch[item] = nil; + newView.chosenItemButtonsBatch[j] = nil; + else + button.frame:LockHighlight(); + newView.chosenItemBatch[item] = true; + newView.chosenItemButtonsBatch[j] = button; + end + local count = 0; + for _ in pairs(newView.chosenItemBatch) do + count = count + 1; + end + if count == 0 then + newView.batchButton:Hide(); + newView.backButton:ClearAllPoints() + newView.backButton:SetPoint("BOTTOMRIGHT", -147, -23); + else + newView.batchButton:Show(); + newView.backButton:ClearAllPoints() + newView.backButton:SetPoint("BOTTOMRIGHT", -267, -23); + end + else + newView.backButton:ClearAllPoints() + newView.backButton:SetPoint("BOTTOMRIGHT", -147, -23); + local subTypes = subTypesFor(item, newView.data.regionType); + if #subTypes < 2 then + local subType = subTypes[1] or {} + if (newView.existingAura) then + newView.chosenItem = item; + newView.chosenSubType = subType; + createButtons(); + else + replaceTrigger(newView.data, item, subType); + replaceCondition(newView.data, item, subType); + newView.data.id = TemplatePrivate.Private.FindUnusedId(item.title); + newView.data.load = {}; + if (item.load) then + newView.data.load = CopyTable(item.load); + end + if (subType.data) then + WeakAuras.DeepMixin(newView.data, subType.data) + end + newView:CancelClose(); + WeakAuras.NewAura(newView.data, newView.data.regionType, newView.targetId); + end + else + -- create trigger type selection + newView.chosenItem = item; + createButtons(); + end + end + end); + group:AddChild(button); + end + end + return group; + end + + local function createTriggerTypeButtons() + local item = newView.chosenItem; + local group = AceGUI:Create("WeakAurasTemplateGroup"); + group:SetFullWidth(true); + local subTypes = subTypesFor(item, newView.data.regionType); + local subTypesButtons = {} + local lastButton + for k, subType in pairs(subTypes) do + local button = AceGUI:Create("WeakAurasNewButton"); + subTypesButtons[k] = button; + button:SetTitle(subType.title); + button:SetDescription(subType.description); + if subType.icon then + if type(subType.icon) == "function" then + button:SetIcon(subType.icon()); + else + button:SetIcon(subType.icon); + end + end + button:SetFullWidth(true); + button:SetClick(function() + if (newView.batchStep) then + for index, subTypesButton in pairs(subTypesButtons) do + if (index == k) then + subTypesButton.frame:LockHighlight(); + else + subTypesButton.frame:UnlockHighlight(); + end + end + newView.chosenItemBatchSubType[item] = subType; + elseif (newView.existingAura) then + newView.chosenItem = item; + newView.chosenSubType = subType; + createButtons(); + else + replaceTrigger(newView.data, item, subType); + replaceCondition(newView.data, item, subType); + newView.data.id = TemplatePrivate.Private.FindUnusedId(item.title); + newView.data.load = {}; + if (item.load) then + newView.data.load = CopyTable(item.load); + end + if (subType.data) then + WeakAuras.DeepMixin(newView.data, subType.data) + end + newView:CancelClose(); + WeakAuras.NewAura(newView.data, newView.data.regionType, newView.targetId); + end + end); + if newView.batchStep then + button.frame:LockHighlight(); + newView.chosenItemBatchSubType[item] = subType; + if lastButton then + lastButton.frame:UnlockHighlight(); + end + lastButton = button + end + group:AddChild(button); + end + return group; + end + + local function createTriggerButton(section, selectedItem, fullWidth) + local button = AceGUI:Create("WeakAurasNewButton"); + button:SetTitle(section.title); + button:SetDescription(section.description); + if (section.icon) then + button:SetIcon(section.icon); + end + button:SetFullWidth(true); + button:SetClick(function() + createButtons((selectedItem ~= section) and section); + end); + newViewScroll:AddChild(button); + if (section == selectedItem) then + button.frame:LockHighlight(true); + local group = createTriggerFlyout(section.args, fullWidth); + newViewScroll:AddChild(group); + end + end + -- Creates a button + flyout (if the button is selected) for one section + local function createTriggerButtons(templates, selectedItem, fullWidth) + for k, section in ipairs(templates) do + if section.args and next(section.args) then + createTriggerButton(section, selectedItem, fullWidth); + end + end + end + + local function replaceTriggers(data, item, subType) + local function handle(data, item, subType) + replaceTrigger(data, item, subType); + replaceCondition(data, item, subType); + newView:CancelClose(); + WeakAuras.Add(data); + WeakAuras.ClearAndUpdateOptions(data.id) + WeakAuras.FillOptions() + WeakAuras.NewDisplayButton(data); + WeakAuras.UpdateThumbnail(data); + end + for child in TemplatePrivate.Private.TraverseLeafsOrAura(data) do + handle(child, item, subType); + end + WeakAuras.ClearAndUpdateOptions(data.id) + end + + local function addTriggers(data, item, subType) + local function handle(data, item, subType) + local prevNumTriggers = #data.triggers; + addTrigger(data, item, subType); + addCondition(data, item, subType, prevNumTriggers); + newView:CancelClose(); + WeakAuras.Add(data); + WeakAuras.ClearAndUpdateOptions(data.id) + WeakAuras.FillOptions() + WeakAuras.NewDisplayButton(data); + WeakAuras.UpdateThumbnail(data); + end + for child in TemplatePrivate.Private.TraverseLeafsOrAura(data) do + handle(child, item, subType); + end + WeakAuras.ClearAndUpdateOptions(data.id) + end + + local function createLastPage() + local replaceButton = AceGUI:Create("WeakAurasNewButton"); + replaceButton:SetTitle(L["Replace Triggers"]); + replaceButton:SetDescription(L["Replace all existing triggers"]); + replaceButton:SetIcon("Interface\\Icons\\Spell_ChargeNegative"); + replaceButton:SetFullWidth(true); + replaceButton:SetClick(function() + replaceTriggers(newView.data, newView.chosenItem, newView.chosenSubType); + for _,v in pairs({"class", "spec", "talent", "pvptalent", "race", "covenant"}) do + newView.data.load[v] = nil; + newView.data.load["use_"..v] = nil; + end + newView.data.load.class = CopyTable(TemplatePrivate.Private.data_stub.load.class); + newView.data.load.spec = CopyTable(TemplatePrivate.Private.data_stub.load.spec); + if (newView.chosenItem.load) then + WeakAuras.DeepMixin(newView.data.load, newView.chosenItem.load) + end + end); + newViewScroll:AddChild(replaceButton); + + local addButton = AceGUI:Create("WeakAurasNewButton"); + addButton:SetTitle(L["Add Triggers"]); + addButton:SetDescription(L["Keeps existing triggers intact"]); + addButton:SetIcon("Interface\\Icons\\Spell_ChargePositive"); + addButton:SetFullWidth(true); + addButton:SetClick(function() + addTriggers(newView.data, newView.chosenItem, newView.chosenSubType); + end); + newViewScroll:AddChild(addButton); + end + + createButtons = function(selectedItem) -- selectedItem is either a regionType or a trigger section + newViewScroll:ReleaseChildren(); + newView.makeBatchButton:Hide(); + newView.batchButton:Hide(); + newView.batchModeLabel:Hide(); + if (not newView.data) then + -- First step: Show region types + for regionType, regionData in pairs(TemplatePrivate.Private.regionOptions) do + if (regionData.templates) then + local button = createRegionButton(regionType, regionData, selectedItem); + newViewScroll:AddChild(button); + if (regionType == selectedItem) then + local group = createRegionFlyout(regionType, regionData); + newViewScroll:AddChild(group); + end + end + end + newView.backButton:Hide(); + elseif (newView.data and newView.batchStep) then + -- Batch + if (newView.batchStep) then + newView.chosenItemBatchSubType = {}; + for item in pairs(newView.chosenItemBatch) do + local classHeader = AceGUI:Create("Heading"); + classHeader:SetFullWidth(true); + newViewScroll:AddChild(classHeader); + + local button = AceGUI:Create("WeakAurasNewButton"); + button:SetTitle(item.title); + button:SetDescription(item.description); + button:SetFullWidth(true); + if(item.icon) then + button:SetIcon(item.icon); + end + newViewScroll:AddChild(button); + + newView.chosenItem = item; + local typesButtons = createTriggerTypeButtons(); + newViewScroll:AddChild(typesButtons); + end + newView.makeBatchButton:Show() + newView.backButton:ClearAllPoints() + newView.backButton:SetPoint("BOTTOMRIGHT", -267, -23); + end + newView.batchModeLabel:Hide(); + elseif (newView.data and not newView.chosenItem) then + -- Second step: Trigger selection screen + + -- Class + local classSelector = createDropdown("class", WeakAuras.class_types); + newViewScroll:AddChild(classSelector); + + if TemplatePrivate.triggerTemplates.class[newView.class] + and TemplatePrivate.triggerTemplates.class[newView.class][newView.spec] + then + createTriggerButtons(TemplatePrivate.triggerTemplates.class[newView.class][newView.spec], selectedItem); + end + local classHeader = AceGUI:Create("Heading"); + classHeader:SetFullWidth(true); + newViewScroll:AddChild(classHeader); + + createTriggerButton(TemplatePrivate.triggerTemplates.general, selectedItem); + + -- Race + local raceHeader = AceGUI:Create("Heading"); + raceHeader:SetFullWidth(true); + newViewScroll:AddChild(raceHeader); + local raceSelector = createDropdown("race", WeakAuras.race_types); + newViewScroll:AddChild(raceSelector); + newViewScroll:AddChild(createSpacer()); + if (TemplatePrivate.triggerTemplates.race[newView.race]) then + local group = createTriggerFlyout(TemplatePrivate.triggerTemplates.race[newView.race], true) + newViewScroll:AddChild(group); + end + + -- backButton + if (not newView.existingAura) then + newView.backButton:Show(); + end + + -- batchButton + newView.chosenItemBatch = {}; + if not newView.existingAura then + newView.batchModeLabel:Show(); + end + elseif (newView.data and newView.chosenItem and not newView.chosenSubType) then + -- Multi-Type template + local typeHeader = AceGUI:Create("Heading"); + typeHeader:SetFullWidth(true); + newViewScroll:AddChild(typeHeader); + local group = createTriggerTypeButtons(); + newViewScroll:AddChild(group); + newView.backButton:Show(); + else + --Third Step: (only for existing auras): replace or add triggers? + createLastPage(); + newView.backButton:Show(); + end + end + + local batchModeLabel = CreateFrame("Frame", "batchModeLabel", newView.frame); + batchModeLabel:SetSize(300, 20); + local batchModeLabelString = batchModeLabel:CreateFontString(nil, "ARTWORK"); + batchModeLabelString:SetFont(STANDARD_TEXT_FONT, 10); -- "OUTLINE" + batchModeLabelString:SetTextColor(1,1,1,1); + batchModeLabelString:SetText(L["Hold CTRL to create multiple auras at once"]); + batchModeLabelString:SetJustifyH("LEFT") + batchModeLabelString:SetAllPoints(batchModeLabel); + batchModeLabel:SetPoint("BOTTOMLEFT", 10, -23); + newView.batchModeLabel = batchModeLabel; + + local newViewMakeBatch = CreateFrame("Button", nil, newView.frame, "UIPanelButtonTemplate"); + newViewMakeBatch:SetScript("OnClick", function() + local saveData = CopyTable(newView.data); + for item in pairs(newView.chosenItemBatch) do + -- clean data + newView.data = CopyTable(saveData); + -- copy data + local subType = newView.chosenItemBatchSubType[item] + replaceTrigger(newView.data, item, subType); + replaceCondition(newView.data, item, subType); + newView.data.id = TemplatePrivate.Private.FindUnusedId(item.title); + newView.data.load = {}; + if (item.load) then + newView.data.load = CopyTable(item.load); + end + if (subType.data) then + WeakAuras.DeepMixin(newView.data, subType.data) + end + -- create aura + WeakAuras.NewAura(newView.data, newView.data.regionType, newView.targetId); + end + newView:CancelClose(); + end); + newViewMakeBatch:SetPoint("BOTTOMRIGHT", -147, -23); + newViewMakeBatch:SetHeight(20); + newViewMakeBatch:SetWidth(100); + newViewMakeBatch:SetText(L["Create Auras"]); + newView.makeBatchButton = newViewMakeBatch; + newView.makeBatchButton:Hide(); + + local newViewBatch = CreateFrame("Button", nil, newView.frame, "UIPanelButtonTemplate"); + newViewBatch:SetScript("OnClick", function() + newView.batchStep = true; + newView.batchButton:Hide(); + createButtons(); + end); + newViewBatch:SetPoint("BOTTOMRIGHT", -147, -23); + newViewBatch:SetHeight(20); + newViewBatch:SetWidth(100); + newViewBatch:SetText(L["Next"]); + newView.batchButton = newViewBatch; + newView.batchButton:Hide(); + + local newViewBack = CreateFrame("Button", nil, newView.frame, "UIPanelButtonTemplate"); + newViewBack:SetScript("OnClick", function() + if (newView.existingAura) then + if newView.chosenSubType then + newView.chosenSubType = nil; + local subTypes = subTypesFor(newView.chosenItem, newView.data.regionType); + if #subTypes < 2 then -- No subtype selection, go back twice + newView.chosenItem = nil; + end + else + newView.chosenItem = nil; + end + else + if newView.chosenSubType then + newView.chosenSubType = nil; + else + if newView.chosenItem then + newView.chosenItem = nil; + else + newView.data = nil; + end + end + end + newView.batchButton:Hide(); + newView.chosenItemBatch = {}; + newView.batchStep = nil; + newView.backButton:ClearAllPoints() + newView.backButton:SetPoint("BOTTOMRIGHT", -147, -23); + createButtons(); + end); + newViewBack:SetPoint("BOTTOMRIGHT", -147, -23); + newViewBack:SetHeight(20); + newViewBack:SetWidth(100); + newViewBack:SetText(L["Back"]); + newView.backButton = newViewBack; + + local newViewCancel = CreateFrame("Button", nil, newView.frame, "UIPanelButtonTemplate"); + newViewCancel:SetScript("OnClick", function() newView:CancelClose() end); + newViewCancel:SetPoint("BOTTOMRIGHT", -27, -23); + newViewCancel:SetHeight(20); + newViewCancel:SetWidth(100); + newViewCancel:SetText(L["Cancel"]); + + function newView.Open(self, data, targetId) + frame.window = "newView"; + frame:UpdateFrameVisible() + self.targetId = targetId + self.data = data -- Might be nil + if (data) then + newView.existingAura = true; + newView.chosenItem = nil; + newView.chosenSubType = nil; + else + newView.existingAura = false; + newView.chosenItem = nil; + newView.chosenSubType = nil; + newView.batchStep = nil; + newView.chosenItemBatch = {}; + end + newView.class = select(2, UnitClass("player")); + newView.spec = 1 + newView.race = select(2, UnitRace('player')); + + createButtons(); + end + + function newView.CancelClose(self) + frame.window = "default"; + frame:UpdateFrameVisible() + if (not self.data) then + frame:NewAura(); + end + end + + return newView; +end diff --git a/WeakAurasTemplates/TriggerTemplatesDataWrath.lua b/WeakAurasTemplates/TriggerTemplatesDataWrath.lua new file mode 100644 index 0000000..bb20f6d --- /dev/null +++ b/WeakAurasTemplates/TriggerTemplatesDataWrath.lua @@ -0,0 +1,1224 @@ +local AddonName, TemplatePrivate = ... +local WeakAuras = WeakAuras + +-- if not WeakAuras.IsWrath() then return end +local L = WeakAuras.L +local GetSpellInfo, tinsert = GetSpellInfo, tinsert + +-- The templates tables are created on demand +local templates = + { + class = { }, + race = { + Human = {}, + NightElf = {}, + Dwarf = {}, + Gnome = {}, + Draenei = {}, + Orc = {}, + Scourge = {}, + Tauren = {}, + Troll = {}, + BloodElf = {}, + }, + general = { + title = L["General"], + icon = [[Interface/Icons/Spell_Nature_WispSplode]], + args = {} + }, +} + +local manaIcon = "Interface\\Icons\\spell_frost_manarecharge.blp" +local rageIcon = "Interface\\Icons\\ability_racial_bloodrage.blp" +local comboPointsIcon = "Interface\\Icons\\ability_backstab" + +local powerTypes = + { + [0] = { name = MANA, icon = manaIcon }, + [1] = { name = RAGE, icon = rageIcon}, + [2] = { name = FOCUS, icon = "Interface\\Icons\\ability_hunter_focusfire"}, + [3] = { name = ENERGY, icon = "Interface\\Icons\\spell_shadow_shadowworddominate"}, + [4] = { name = COMBAT_TEXT_SHOW_COMBO_POINTS_TEXT, icon = comboPointsIcon}, + } + +-- Collected by WeakAurasTemplateCollector: +-------------------------------------------------------------------------------- + +templates.class.WARRIOR = { + [1] = { + [1] = { + title = L["Buffs"], + args = { + { spell = 469, type = "buff", unit = "player"}, -- Commanding Shout + { spell = 2565, type = "buff", unit = "player"}, -- Shield Block + { spell = 6673, type = "buff", unit = "player"}, -- Battle Shout + { spell = 18499, type = "buff", unit = "player"}, -- Berserker Rage + { spell = 12292, type = "buff", unit = "player"}, -- Death Wish + { spell = 12328, type = "buff", unit = "player"}, -- Sweeping Strikes + { spell = 12317, type = "buff", unit = "player"}, -- Enrage + { spell = 12319, type = "buff", unit = "player"}, -- Flurry + { spell = 12975, type = "buff", unit = "player"}, -- Last Stand + { spell = 23920, type = "buff", unit = "player"}, -- Spell Reflection + { spell = 46913, type = "buff", unit = "player"}, -- Bloodsurge + }, + icon = [[Interface/Icons/Ability_Warrior_BattleShout]] + }, + [2] = { + title = L["Debuffs"], + args = { + { spell = 355, type = "debuff", unit = "target"}, -- Taunt + { spell = 676, type = "debuff", unit = "target"}, -- Disarm + { spell = 694, type = "debuff", unit = "target"}, -- Mocking Blow + { spell = 772, type = "debuff", unit = "target"}, -- Rend + { spell = 1160, type = "debuff", unit = "target"}, -- Demoralizing Shout + { spell = 1715, type = "debuff", unit = "target"}, -- Hamstring + { spell = 5246, type = "debuff", unit = "target"}, -- Intimidating Shout + { spell = 6343, type = "debuff", unit = "target"}, -- Thunder Clap + { spell = 7384, type = "debuff", unit = "target"}, -- Sunder Armor + { spell = 12289, type = "debuff", unit = "target"}, -- Improved Hamstring + { spell = 12294, type = "debuff", unit = "target"}, -- Mortal Strike + { spell = 12797, type = "debuff", unit = "target"}, -- Improved Revenge + { spell = 12809, type = "debuff", unit = "target"}, -- Concussion Blow + }, + icon = [[Interface/Icons/Ability_Warrior_WarCry]] + }, + [3] = { + title = L["Abilities"], + args = { + { spell = 72, type = "ability", debuff = true, requiresTarget = true, form = {1, 2}}, -- Shield Bash + { spell = 78, type = "ability", queued = true}, -- Heroic Strike + { spell = 100, type = "ability", requiresTarget = true, form = 1}, -- Charge + { spell = 355, type = "ability", debuff = true, requiresTarget = true, form = 2}, -- Taunt + { spell = 469, type = "ability", buff = true}, -- Commanding Shout + { spell = 676, type = "ability", debuff = true, requiresTarget = true, form = 2}, -- Disarm + { spell = 694, type = "ability", debuff = true, requiresTarget = true, form = {1, 2}}, -- Mocking Blow + { spell = 772, type = "ability", debuff = true, requiresTarget = true}, -- Rend + { spell = 845, type = "ability", queued = true}, -- Cleave + { spell = 871, type = "ability", buff = true, form = 2}, -- Shield Wall + { spell = 1160, type = "ability", debuff = true}, -- Demoralizing Shout + { spell = 1161, type = "ability", debuff = true}, -- Challenging Shout + { spell = 1464, type = "ability", requiresTarget = true, buff = true, buffId = 46913}, -- Slam + { spell = 1680, type = "ability", buff = true, buffId = 46913, form = 3}, -- Whirlwind + { spell = 1715, type = "ability", requiresTarget = true, form = {1, 2}}, -- Hamstring + { spell = 1719, type = "ability", buff = true, form = 3}, -- Recklessness + { spell = 2565, type = "ability", buff = true, form = 2}, -- Shield Block + { spell = 2687, type = "ability", buff = true}, -- Bloodrage + { spell = 3411, type = "ability", requiresTarget = true, form = 2}, -- Intervene + { spell = 5246, type = "ability", debuff = true, requiresTarget = true}, -- Intimidating Shout + { spell = 5308, type = "ability", requiresTarget = true, form = {1, 3}}, -- Execute + { spell = 6343, type = "ability", debuff = true, form = {1, 2}}, -- Thunder Clap + { spell = 6552, type = "ability", requiresTarget = true, form = 3}, -- Pummel + { spell = 6572, type = "ability", requiresTarget = true, usable = true, form = 2}, -- Revenge + { spell = 6673, type = "ability", buff = true}, -- Battle Shout + { spell = 7384, type = "ability", requiresTarget = true, buff = true, buffId = 60503, form = 1}, -- Overpower + { spell = 7386, type = "ability", requiresTarget = true, debuff = true}, -- Sunder Armor + { spell = 12323, type = "ability", debuff = true, talent = 46}, -- Piercing Howl + { spell = 12328, type = "ability", buff = true, talent = 53}, -- Sweeping Strikes + { spell = 12294, type = "ability", requiresTarget = true, talent = 20}, -- Mortal Strike + { spell = 12809, type = "ability", requiresTarget = true, debuff = true, talent = 94}, -- Concussion Blow + { spell = 12975, type = "ability", buff = true, talent = 86}, -- Last Stand + { spell = 12292, type = "ability", buff = true, talent = 13}, -- Death Wish + { spell = 18499, type = "ability", buff = true}, -- Berserker Rage + { spell = 20230, type = "ability", buff = true, form = 1}, -- Retaliation + { spell = 20252, type = "ability", requiresTarget = true, form = 3}, -- Intercept + { spell = 20243, type = "ability", requiresTarget = true, talent = 102}, -- Devastate + { spell = 23881, type = "ability", requiresTarget = true, talent = 58}, -- Bloodthirst + { spell = 23920, type = "ability", buff = true, form = {1, 2}}, -- Spell Reflection + { spell = 23922, type = "ability", requiresTarget = true, talent = 99}, -- Shield Slam + { spell = 29801, type = "ability", requiresTarget = true, talent = 61}, -- Rampage + { spell = 34428, type = "ability", requiresTarget = true, usable = true}, -- Victory Rush + { spell = 46924, type = "ability", buff = true}, -- Bladestorm + { spell = 55694, type = "ability", buff = true}, -- Enraged Regeneration + { spell = 57755, type = "ability", requiresTarget = true}, -- Heroic Throw + { spell = 60970, type = "ability", talent = 65}, -- Heroic Fury + { spell = 64382, type = "ability", requiresTarget = true, debuff = true, form = 1}, -- Shattering Throw + }, + icon = [[Interface/Icons/Ability_Warrior_SavageBlow]] + }, + [4] = {}, + [5] = {}, + [6] = {}, + [7] = {}, + [8] = { + title = L["Resources"], + args = { + }, + icon = rageIcon, + } + } +} + +templates.class.PALADIN = { + [1] = { + [1] = { + title = L["Buffs"], + args = { + { spell = 498, type = "buff", unit = "player"}, -- Divine Protection + { spell = 642, type = "buff", unit = "player"}, -- Divine Shield + { spell = 1022, type = "buff", unit = "group"}, -- Blessing of Protection + { spell = 1044, type = "buff", unit = "group"}, -- Blessing of Freedom + { spell = 6940, type = "buff", unit = "group"}, -- Blessing of Sacrifice + }, + icon = [[Interface/Icons/Spell_Holy_SealOfProtection]] + }, + [2] = { + title = L["Debuffs"], + args = { + { spell = 853, type = "debuff", unit = "target"}, -- Hammer of Justice + }, + icon = [[Interface/Icons/Spell_Holy_RemoveCurse]] + }, + [3] = { + title = L["Abilities"], + args = { + { spell = 498, type = "ability", buff = true}, -- Divine Protection + { spell = 633, type = "ability"}, -- Lay on Hands + { spell = 642, type = "ability", buff = true}, -- Divine Shield + { spell = 709, type = "ability", buff = true}, -- Righteous Fury + { spell = 853, type = "ability", requiresTarget = true, debuff = true}, -- Hammer of Justice + { spell = 879, type = "ability", requiresTarget = true, usable = true}, -- Exorcism + { spell = 1022, type = "ability", buff = true}, -- Blessing of Protection + { spell = 1044, type = "ability", buff = true}, -- Blessing of Freedom + { spell = 1152, type = "ability"}, -- Purify + { spell = 2812, type = "ability"}, -- Holy Wrath + { spell = 4987, type = "ability"}, -- Cleanse + { spell = 6940, type = "ability"}, -- Blessing of Sacrifice + { spell = 10326, type = "ability", debuff = true, requiresTarget = true, usable = true}, -- Turn Evil + { spell = 19876, type = "ability", buff = true}, -- Shadow Resistance Aura + { spell = 19888, type = "ability", buff = true}, -- Frost Resistance Aura + { spell = 19891, type = "ability", buff = true}, -- Fire Resistance Aura + { spell = 20066, type = "ability", requiresTarget = true, debuff = true, talent = 99}, -- Repentance + { spell = 20164, type = "ability", buff = true}, -- Seal of Justice + { spell = 20165, type = "ability", buff = true}, -- Seal of Light + { spell = 20166, type = "ability", buff = true}, -- Seal of Wisdom + { spell = 20271, type = "ability", buff = true, requiresTarget = true}, -- Judgement + { spell = 20375, type = "ability", buff = true, talent = 88}, -- Seal of Command + { spell = 20473, type = "ability", talent = 17}, -- Holy Shock + { spell = 20925, type = "ability", charges = true, buff = true, talent = 59}, -- Holy Shield + { spell = 53736, type = "ability", buff = true}, -- Seal of Corruption + { spell = 31801, type = "ability", buff = true}, -- Seal of Vengeance + { spell = 24275, type = "ability", requiresTarget = true, usable = true}, -- Hammer of Wrath + { spell = 26573, type = "ability"}, -- Consecration + { spell = 31789, type = "ability"}, -- Righteous Defense + { spell = 31842, type = "ability", buff = true, talent = 20}, -- Divine Illumination + { spell = 31884, type = "ability", buff = true}, -- Avenging Wrath + { spell = 31892, type = "ability", buff = true}, -- Seal of Blood + { spell = 31935, type = "ability", talent = 62}, -- Avenger's Shield + { spell = 35395, type = "ability", requiresTarget = true, talent = 102}, -- Crusader Strike + { spell = 53585, type = "ability", talent = 104}, -- Divine Storm + { spell = 53595, type = "ability", talent = 61}, -- Hammer of the Righteous + }, + icon = [[Interface/Icons/Spell_Holy_SearingLight]] + }, + [4] = {}, + [5] = {}, + [6] = {}, + [7] = {}, + [8] = { + title = L["Resources"], + args = { + }, + icon = manaIcon, + }, + } +} + +templates.class.HUNTER = { + [1] = { + [1] = { + title = L["Buffs"], + args = { + { spell = 136, type = "buff", unit = "pet"}, -- Mend Pet + { spell = 3045, type = "buff", unit = "player"}, -- Rapid Fire + { spell = 5384, type = "buff", unit = "player"}, -- Feign Death + { spell = 6197, type = "buff", unit = "player"}, -- Eagle Eye + { spell = 19621, type = "buff", unit = "pet"}, -- Frenzy + { spell = 24450, type = "buff", unit = "pet"}, -- Prowl + }, + icon = [[Interface/Icons/Ability_Mount_JungleTiger]] + }, + [2] = { + title = L["Debuffs"], + args = { + { spell = 1130, type = "debuff", unit = "target"}, -- Hunter's Mark + { spell = 1513, type = "debuff", unit = "target"}, -- Scare Beast + { spell = 1978, type = "debuff", unit = "target"}, -- Serpent Sting + { spell = 2649, type = "debuff", unit = "target"}, -- Growl + { spell = 2974, type = "debuff", unit = "target"}, -- Wing Clip + { spell = 3034, type = "debuff", unit = "target"}, -- Viper Sting + { spell = 3043, type = "debuff", unit = "target"}, -- Scorpid Sting + { spell = 3355, type = "debuff", unit = "multi"}, -- Freezing Trap + { spell = 5116, type = "debuff", unit = "target"}, -- Concussive Shot + { spell = 24394, type = "debuff", unit = "target"}, -- Intimidation + }, + icon = [[Interface/Icons/Spell_Frost_Stun]] + }, + [3] = { + title = L["Abilities"], + args = { + { spell = 781, type = "ability"}, -- Disengage + { spell = 1130, type = "ability", requiresTarget = true, debuff = true}, -- Hunter's Mark + { spell = 1495, type = "ability", requiresTarget = true, usable = true}, -- Mongoose Bite + { spell = 1499, type = "ability"}, -- Freezing Trap + { spell = 1510, type = "ability"}, -- Volley + { spell = 1513, type = "ability", requiresTarget = true, debuff = true}, -- Scare Beast + { spell = 1543, type = "ability", duration = 30}, -- Flare + { spell = 1978, type = "ability", requiresTarget = true, debuff = true}, -- Serpent Sting + { spell = 2643, type = "ability"}, -- Multi-Shot + { spell = 2649, type = "ability", requiresTarget = true, debuff = true}, -- Growl + { spell = 2973, type = "ability", queued = true}, -- Raptor Strike + { spell = 2974, type = "ability", requiresTarget = true, debuff = true}, -- Wing Clip + { spell = 3034, type = "ability", requiresTarget = true, debuff = true}, -- Viper Sting + { spell = 3043, type = "ability", requiresTarget = true, debuff = true}, -- Scorpid Sting + { spell = 3044, type = "ability", requiresTarget = true}, -- Arcane Shot + { spell = 3045, type = "ability", buff = true}, -- Rapid Fire + { spell = 5116, type = "ability", requiresTarget = true, debuff = true}, -- Concussive Shot + { spell = 5384, type = "ability", buff = true, unit = "player"}, -- Feign Death + { spell = 13795, type = "ability"}, -- Immolation Trap + { spell = 13809, type = "ability"}, -- Frost Trap + { spell = 13813, type = "ability"}, -- Explosive Trap + { spell = 16827, type = "ability", requiresTarget = true}, -- Claw + { spell = 19263, type = "ability", buff = true}, -- Deterrence -TODO + { spell = 19306, type = "ability", requiresTarget = true, usable = true, talent = 96}, -- Counterattack + { spell = 19434, type = "ability", requiresTarget = true, talent = 47}, -- Aimed Shot + { spell = 19386, type = "ability", requiresTarget = true, debuff = true, talent = 100}, -- Wyvern Sting + { spell = 19503, type = "ability", requiresTarget = true, debuff = true, talent = 52}, -- Scatter Shot + { spell = 19574, type = "ability", buff = true, talent = 18}, -- Bestial Wrath + { spell = 19577, type = "ability", requiresTarget = true, debuff = true, talent = 13}, -- Intimidation + { spell = 19801, type = "ability", requiresTarget = true}, -- Tranquilizing Shot + { spell = 20736, type = "ability", requiresTarget = true}, -- Distracting Shot + { spell = 23989, type = "ability", talent = 103}, -- Readiness + { spell = 34120, type = "ability", requiresTarget = true}, -- Steady Shot + { spell = 34477, type = "ability", requiresTarget = true, debuff = true}, -- Misdirection + { spell = 34490, type = "ability", requiresTarget = true, debuff = true, talent = 60}, -- Silencing Shot + { spell = 34600, type = "ability"}, -- Snake Trap + { spell = 53209, type = "ability", requiresTarget = true, talent = 66}, -- Chimera Shot + { spell = 53301, type = "ability", requiresTarget = true, talent = 106}, -- Explosive Shot + { spell = 53351, type = "ability", requiresTarget = true, usable = true}, -- Kill Shot + }, + icon = [[Interface/Icons/INV_Spear_07]] + }, + [4] = {}, + [5] = {}, + [6] = {}, + [7] = {}, + [8] = { + title = L["Resources"], + args = { + }, + icon = manaIcon, + }, + } +} + +templates.class.ROGUE = { + [1] = { + [1] = { + title = L["Buffs"], + args = { + { spell = 2983, type = "buff", unit = "player"}, -- Sprint + { spell = 5171, type = "buff", unit = "player"}, -- Slice and Dice + { spell = 5277, type = "buff", unit = "player"}, -- Evasion + { spell = 13750, type = "buff", unit = "player"}, -- Adrenaline Rush + { spell = 13877, type = "buff", unit = "player"}, -- Blade Fury + { spell = 14177, type = "buff", unit = "player"}, -- Cold Blood + { spell = 14149, type = "buff", unit = "player"}, -- Remorseless + { spell = 14278, type = "buff", unit = "player"}, -- Ghostly Strike + }, + icon = [[Interface/Icons/Ability_Rogue_DualWeild]] + }, + [2] = { + title = L["Debuffs"], + args = { + { spell = 703, type = "debuff", unit = "target"}, -- Garrote + { spell = 8643, type = "debuff", unit = "target"}, -- Kidney SHot + { spell = 14251, type = "debuff", unit = "target"}, -- Riposte + { spell = 11198, type = "debuff", unit = "target"}, -- Expose Armor + { spell = 18425, type = "debuff", unit = "target"}, -- Kick - Silenced + { spell = 17348, type = "debuff", unit = "target"}, -- Hemorrhage + { spell = 14183, type = "debuff", unit = "target"}, -- Premeditation + }, + icon = [[Interface/Icons/Ability_Rogue_Rupture]] + }, + [3] = { + title = L["Abilities"], + args = { + { spell = 53, type = "ability", requiresTarget = true, usable = true}, -- Backstab + { spell = 703, type = "ability", requiresTarget = true, debuff = true}, -- Garrote + { spell = 921, type = "ability", requiresTarget = true, usable = true}, -- Pick Pocket + { spell = 1329, type = "ability", requiresTarget = true, usable = true, talent = 21}, -- Mutilate + { spell = 1725, type = "ability"}, -- Distract + { spell = 1752, type = "ability", requiresTarget = true}, -- Sinister Strike + { spell = 1766, type = "ability", requiresTarget = true}, -- Kick + { spell = 1776, type = "ability", requiresTarget = true, usable = true, debuff = true}, -- Gouge + { spell = 1784, type = "ability", buff = true}, -- Stealth + { spell = 1856, type = "ability", buff = true}, -- Vanish + { spell = 2094, type = "ability", requiresTarget = true, debuff = true}, -- Blind + { spell = 2098, type = "ability", requiresTarget = true}, -- Eviscerate + { spell = 2983, type = "ability", buff = true}, -- Sprint + { spell = 5171, type = "ability", requiresTarget = true, buff = true}, -- Slice and Dice + { spell = 5277, type = "ability", buff = true}, -- Evasion + { spell = 6770, type = "ability", requiresTarget = true, usable = true, debuff = true}, -- Sap + { spell = 8643, type = "ability", requiresTarget = true, usable = true, debuff = true}, -- Kidney Shot + { spell = 8647, type = "ability", requiresTarget = true, debuff = true}, -- Expose Armor + { spell = 13750, type = "ability", buff = true, talent = 61}, -- Adrenaline Rush + { spell = 13877, type = "ability", buff = true, talent = 54}, -- Blade Fury + { spell = 14177, type = "ability", buff = true, talent = 13}, -- Cold Blood + { spell = 14183, type = "ability", requiresTarget = true, debuff = true, talent = 99}, -- Premeditation + { spell = 14185, type = "ability"}, -- Preparation + { spell = 14251, type = "ability", requiresTarget = true, usable = true, debuff = true, talent = 48}, -- Riposte + { spell = 14271, type = "ability", requiresTarget = true, buff = true, talent = 87}, -- Ghostly Strike + { spell = 16511, type = "ability", requiresTarget = true, debuff = true, talent = 95}, -- Hemorrhage + { spell = 31224, type = "ability", buff = true}, -- Cloak of Shadows + { spell = 36554, type = "ability", requiresTarget = true, talent = 102}, -- Shadowstep + { spell = 51662, type = "ability", buff = true, talent = 27}, -- Hunger For Blood + { spell = 51690, type = "ability", buff = true, talent = 68}, -- Killing Spree + { spell = 51713, type = "ability", buff = true, talent = 107}, -- Shadow Dance + { spell = 51723, type = "ability"}, -- Fan of Knives + { spell = 57934, type = "ability", buff = true}, -- Tricks of the Trade + }, + icon = [[Interface/Icons/Ability_Warrior_PunishingBlow]] + }, + [4] = {}, + [5] = {}, + [6] = {}, + [7] = {}, + [8] = { + title = L["Resources"], + args = { + }, + icon = comboPointsIcon, + }, + } +} + +templates.class.PRIEST = { + [1] = { + [1] = { + title = L["Buffs"], + args = { + { spell = 586, type = "buff", unit = "player"}, -- Fade + { spell = 17, type = "buff", unit = "target"}, -- Power Word: Shield + { spell = 21562, type = "buff", unit = "player"}, -- Power Word: Fortitude + { spell = 2096, type = "buff", unit = "player"}, -- Mind Vision + { spell = 1706, type = "buff", unit = "player"}, -- Levitate + }, + icon = [[Interface/Icons/Spell_Holy_PowerWordShield]] + }, + [2] = { + title = L["Debuffs"], + args = { + { spell = 8122, type = "debuff", unit = "target"}, -- Psychic Scream + { spell = 2096, type = "debuff", unit = "target"}, -- Mind Vision + { spell = 589, type = "debuff", unit = "target"}, -- Shadow Word: Pain + { spell = 9484, type = "debuff", unit = "multi" }, -- Shackle Undead + { spell = 34914, type = "debuff", unit = "target", talent = 101}, -- Vampiric Touch + }, + icon = [[Interface/Icons/Spell_Shadow_ShadowWordPain]] + }, + [3] = { + title = L["Abilities"], + args = { + { spell = 17, type = "ability"}, -- Power Word: Shield + { spell = 527, type = "ability"}, -- Purify + { spell = 552, type = "ability"}, -- Abolish Disease + { spell = 585, type = "ability", requireTarget = true}, -- Smite + { spell = 586, type = "ability", buff = true}, -- Fade + { spell = 589, type = "ability", requireTarget = true, debuff = true}, -- Shadow Word: Pain + { spell = 2060, type = "ability"}, -- Greater Heal + { spell = 2061, type = "ability"}, -- Flash Heal + { spell = 6064, type = "ability"}, -- Heal + { spell = 6346, type = "ability", buff = true}, -- Fear Ward + { spell = 8092, type = "ability", requireTarget = true}, -- Mind Blast + { spell = 8122, type = "ability"}, -- Psychic Scream + { spell = 8129, type = "ability", requireTarget = true}, -- Mana Burn + { spell = 10060, type = "ability", buff = true, talent = 19}, -- Power Infusion + { spell = 10947, type = "ability", requireTarget = true}, -- Mind Flay + { spell = 10951, type = "ability", buff = true}, -- Inner Fire + { spell = 14751, type = "ability", buff = true, talent = 8}, -- Inner Focus + { spell = 14914, type = "ability", debuff = true, requireTarget = true}, -- Holy Fire + { spell = 15487, type = "ability", debuff = true, requireTarget = true, talent = 92}, -- Silence + { spell = 33206, type = "ability", buff = true, talent = 22}, -- Pain Suppression + { spell = 32375, type = "ability"}, -- Mass Dispel + { spell = 32379, type = "ability", requireTarget = true}, -- Shadow Word: Death + { spell = 32546, type = "ability"}, -- Binding Heal + { spell = 33076, type = "ability"}, -- Prayer of Mending + { spell = 34433, type = "ability", totem = true}, -- Shadowfiend + { spell = 34861, type = "ability", talent = 61}, -- Circle of Healing + { spell = 34914, type = "ability", debuff = true, requireTarget = true, talent = 101}, -- Vampiric Touch + { spell = 47540, type = "ability", requireTarget = true, talent = 24}, -- Penance + { spell = 47585, type = "ability", buff = true, talent = 105}, -- Dispersion + { spell = 47788, type = "ability", buff = true, talent = 66}, -- Guardian Spirit + { spell = 64843, type = "ability"}, -- Divine Hymn + { spell = 64901, type = "ability"}, -- Hymn of Hope + }, + icon = [[Interface/Icons/Spell_Shadow_UnholyFrenzy]] + }, + [4] = {}, + [5] = {}, + [6] = {}, + [7] = {}, + [8] = { + title = L["Resources"], + args = { + }, + icon = manaIcon, + }, + } +} + +templates.class.SHAMAN = { + [1] = { + [1] = { + title = L["Buffs"], + args = { + { spell = 546, type = "buff", unit = "player"}, -- Water Walking + { spell = 16256, type = "buff", unit = "player", talent = 50}, -- Flurry + }, + icon = [[Interface/Icons/Spell_Frost_WindWalkOn]] + }, + [2] = { + title = L["Debuffs"], + args = { + { spell = 3600, type = "debuff", unit = "target"}, -- Earthbind + }, + icon = [[Interface/Icons/Spell_Fire_FlameShock]] + }, + [3] = { + title = L["Abilities"], + args = { + { spell = 131, type = "ability", buff = true, usable = true}, -- Water Breathing + { spell = 324, type = "ability", buff = true}, -- Lightning Shield + { spell = 331, type = "ability"}, -- Healing Wave + { spell = 403, type = "ability", requireTarget = true}, -- Lightning Bolt + { spell = 421, type = "ability", requireTarget = true}, -- Chain Lightning + { spell = 546, type = "ability", buff = true, usable = true}, -- Water Walking + { spell = 556, type = "ability"}, -- Astral Recall + { spell = 974, type = "ability", buff = true, talent = 100}, -- Earth Shield + { spell = 1064, type = "ability"}, -- Chain Heal + { spell = 1535, type = "ability", totem = true}, -- Fire Nova Totem + { spell = 2008, type = "ability"}, -- Ancestral Spirit + { spell = 2062, type = "ability", totem = true}, -- Earth Elemental Totem + { spell = 2484, type = "ability", totem = true}, -- Earthbind Totem + { spell = 2645, type = "ability", buff = true}, -- Ghost Wolf + { spell = 2825, type = "ability", buff = true}, -- Bloodlust + { spell = 2894, type = "ability", totem = true}, -- Fire Elemental Totem + { spell = 3599, type = "ability", totem = true}, -- Searing Totem + { spell = 3738, type = "ability", totem = true}, -- Wrath of Air Totem + { spell = 5394, type = "ability", totem = true}, -- Healing Stream Totem + { spell = 5675, type = "ability", totem = true}, -- Mana Spring Totem + { spell = 5730, type = "ability", totem = true}, -- Stoneclaw Totem + { spell = 6495, type = "ability", totem = true}, -- Sentry Totem + { spell = 8142, type = "ability", requireTarget = true}, -- Earth Shock + { spell = 8143, type = "ability", requireTarget = true, debuff = true}, -- Frost Shock + { spell = 8017, type = "ability", weaponBuff = true}, -- Rockbiter Weapon -- !! weaponBuff is not supported yet + { spell = 8024, type = "ability", weaponBuff = true}, -- Flametongue Weapon + { spell = 8033, type = "ability", weaponBuff = true}, -- Frostbrand Weapon + { spell = 8050, type = "ability", requireTarget = true, debuff = true}, -- Flame Shock + { spell = 8071, type = "ability", totem = true}, -- Stoneskin Totem + { spell = 8075, type = "ability", totem = true}, -- Strength of Earth Totem + { spell = 8143, type = "ability", totem = true}, -- Tremor Totem + --{ spell = 8166, type = "ability", totem = true}, -- Poison Cleansing Totem + { spell = 8170, type = "ability", totem = true}, -- Disease Cleansing Totem + { spell = 8177, type = "ability", totem = true}, -- Grounding Totem + { spell = 8181, type = "ability", totem = true}, -- Frost Resistance Totem + { spell = 8184, type = "ability", totem = true}, -- Fire Resistance Totem + { spell = 8190, type = "ability", totem = true}, -- Magma Totem + { spell = 8227, type = "ability", totem = true}, -- Flametongue Totem + { spell = 8512, type = "ability", totem = true}, -- Windfury Totem + --{ spell = 8835, type = "ability", totem = true}, -- Grace of Air Totem + { spell = 10595, type = "ability", totem = true}, -- Nature Resistance Totem + --{ spell = 15107, type = "ability", totem = true}, -- Windwall Totem + { spell = 16246, type = "ability", buff = true, talent = 6}, -- Clearcasting + { spell = 16166, type = "ability", buff = true, talent = 17}, -- Elemental Mastery + { spell = 16188, type = "ability", buff = true, talent = 93}, -- Nature Swiftness + { spell = 16190, type = "ability", totem = true, talent = 96}, -- Mana Tide Totem + { spell = 17364, type = "ability", debuff = true, talent = 59}, -- Stormstrike + { spell = 20608, type = "ability"}, -- Reincarnation + { spell = 24398, type = "ability", buff = true}, -- Water Shield + --{ spell = 25908, type = "ability", totem = true}, -- Tranquil Air Totem + { spell = 30706, type = "ability", totem = true, talent = 20}, -- Totem of Wrath + { spell = 30823, type = "buff", talent = 61}, -- Shamanistic Rage + { spell = 32182, type = "ability", buff = true}, -- Heroism + { spell = 51514, type = "ability", requireTarget = true}, -- Hex + { spell = 51505, type = "ability", requireTarget = true}, -- Lava Burst + { spell = 51490, type = "ability", talent = 23}, -- Thunderstorm + { spell = 51533, type = "ability", buff = true, talent = 65}, -- Feral Spirit + { spell = 61295, type = "ability", talent = 105}, -- Riptide + }, + icon = [[Interface/Icons/Spell_Holy_SealOfMight]] + }, + [4] = {}, + [5] = {}, + [6] = {}, + [7] = {}, + [8] = { + title = L["Resources"], + args = { + }, + icon = [[Interface/Icons/Spell_Lightning_LightningBolt01]], + }, + } +} + +templates.class.MAGE = { + [1] = { + [1] = { + title = L["Buffs"], + args = { + { spell = 130, type = "buff", unit = "player"}, -- Slow Fall + { spell = 543, type = "buff", unit = "player"}, -- Fire Ward + { spell = 604, type = "buff", unit = "player"}, -- Dampen Magic + { spell = 1008, type = "buff", unit = "player"}, -- Amplify Magic + { spell = 1459, type = "buff", unit = "player"}, -- Arcane Intellect + { spell = 1463, type = "buff", unit = "player"}, -- Mana Shield + { spell = 6143, type = "buff", unit = "player"}, -- Frost Ward + { spell = 12042, type = "buff", unit = "player"}, -- Arcane Power + { spell = 12536, type = "buff", unit = "player"}, -- Clearcasting + { spell = 45438, type = "buff", unit = "player"}, -- Ice Block + }, + icon = [[Interface/Icons/Spell_Nature_StarFall]] + }, + [2] = { + title = L["Debuffs"], + args = { + { spell = 122, type = "debuff", unit = "target"}, -- Frost Nova + { spell = 118, type = "debuff", unit = "multi" }, -- Polymorph + { spell = 11071, type = "debuff", unit = "target"}, -- Frostbite + { spell = 11103, type = "debuff", unit = "target"}, -- Impact + { spell = 11180, type = "debuff", unit = "target"}, -- Winter's Chill + }, + icon = [[Interface/Icons/Spell_Frost_FrostNova]] + }, + [3] = { + title = L["Abilities"], + args = { + { spell = 66, type = "ability", buff = true, buffId = 32612}, -- Invisibility + { spell = 116, type = "ability", requiresTarget = true}, -- Frostbolt + { spell = 118, type = "ability", debuff = true, requireTarget = true}, -- Polymorph + { spell = 120, type = "ability"}, -- Cone of Cold + { spell = 122, type = "ability"}, -- Frost Nova + { spell = 130, type = "ability", buff = true}, -- Slow Fall + { spell = 168, type = "ability", buff = true}, -- Frost Armor + { spell = 475, type = "ability"}, -- Remove Curse + { spell = 543, type = "ability", buff = true}, -- Fire Ward + { spell = 1449, type = "ability"}, -- Arcane Explosion + { spell = 1463, type = "ability", buff = true}, -- Mana Shield + { spell = 1953, type = "ability"}, -- Blink + { spell = 2120, type = "ability"}, -- Flamestrike + { spell = 2136, type = "ability", requiresTarget = true}, -- Fire Blast + { spell = 2139, type = "ability", requiresTarget = true}, -- Counterspell + { spell = 2855, type = "ability", debuff = true, requireTarget = true}, -- Detect Magic + { spell = 2948, type = "ability", requiresTarget = true}, -- Scorch + { spell = 5143, type = "ability", requiresTarget = true}, -- Arcane Missiles + { spell = 6117, type = "ability", buff = true}, -- Mage Armor + { spell = 6143, type = "ability", buff = true}, -- Frost Ward + { spell = 10187, type = "ability"}, -- Blizzard + { spell = 11113, type = "ability", debuff = true, talent = 55}, -- Blast Wave + { spell = 11129, type = "ability", buff = true, talent = 59}, -- Combustion + { spell = 11426, type = "ability", buff = true, talent = 99}, -- ice Barrier + { spell = 11958, type = "ability", talent = 95}, -- Cold Snap + { spell = 12042, type = "ability", buff = true, talent = 16}, -- Arcane Power + { spell = 12043, type = "ability", buff = true, talent = 13}, -- Presence of Mind + { spell = 12051, type = "ability"}, -- Evocation + { spell = 12472, type = "ability", buff = true, talent = 89}, -- Icy Veins + { spell = 18809, type = "ability", requiresTarget = true}, -- Pyroblast + { spell = 25304, type = "ability", requiresTarget = true}, -- Frostbolt + { spell = 30449, type = "ability", requiresTarget = true}, -- Spellsteal + { spell = 30451, type = "ability", requiresTarget = true}, -- Arcane Blast + { spell = 30482, type = "ability", buff = true}, -- Molten Armor + { spell = 31661, type = "ability", buff = true}, -- Dragon's Breath + { spell = 31687, type = "ability", totem = true, talent = 102}, -- Summon Water Elemental + { spell = 34589, type = "ability", requireTarget = true, debuff = true, talent = 23}, -- Slow + { spell = 45438, type = "ability", buff = true}, -- Ice Block + { spell = 44614, type = "ability", requiresTarget = true, debuff = true}, -- Frostfire Bolt + { spell = 44457, type = "ability", buff = true, talent = 67}, -- Living Bomb + { spell = 44425, type = "ability", requiresTarget = true, talent = 27}, -- Arcane Barrage + { spell = 44572, type = "ability", requiresTarget = true, debuff = true, usable = true, talent = 107}, -- Deep Freeze + }, + icon = [[Interface/Icons/Spell_Nature_Purge]] + }, + [4] = {}, + [5] = {}, + [6] = {}, + [7] = {}, + [8] = { + title = L["Resources"], + args = { + }, + icon = manaIcon, + }, + } +} + +templates.class.WARLOCK = { + [1] = { + [1] = { + title = L["Buffs"], + args = { + { spell = 126, type = "buff", unit = "player"}, -- Eye of Kilrogg + { spell = 687, type = "buff", unit = "player"}, -- Demon Skin + { spell = 755, type = "buff", unit = "pet"}, -- Health Funnel + { spell = 5697, type = "buff", unit = "player"}, -- Unending Breath + { spell = 6229, type = "buff", unit = "player"}, -- Shadow Ward + { spell = 7870, type = "buff", unit = "pet"}, -- Lesser Invisibility + { spell = 18094, type = "buff", unit = "player"}, -- Nightfall + { spell = 19028, type = "buff", unit = "player", talent = 59}, -- Soul Link + { spell = 20707, type = "buff", unit = "group"}, -- Soulstone + }, + icon = [[Interface/Icons/Spell_Shadow_SoulGem]] + }, + [2] = { + title = L["Debuffs"], + args = { + { spell = 172, type = "debuff", unit = "target"}, -- Corruption + { spell = 348, type = "debuff", unit = "target"}, -- Immolate + { spell = 603, type = "debuff", unit = "target"}, -- Curse of Doom + { spell = 702, type = "debuff", unit = "target"}, -- Curse of Weakness + --{ spell = 704, type = "debuff", unit = "target"}, -- Curse of Recklessness + { spell = 710, type = "debuff", unit = "multi"}, -- Banish + { spell = 980, type = "debuff", unit = "target"}, -- Curse of Agony + { spell = 1098, type = "debuff", unit = "multi"}, -- Enslave Demon + { spell = 1490, type = "debuff", unit = "target"}, -- Curse of the Elements + { spell = 1714, type = "debuff", unit = "target"}, -- Curse of Tongues + { spell = 6358, type = "debuff", unit = "target"}, -- Seduction + { spell = 6789, type = "debuff", unit = "target" }, -- Death Coil + { spell = 6360, type = "debuff", unit = "target"}, -- Whiplash + --{ spell = 17862, type = "debuff", unit = "target"}, -- Curse of Shadow + { spell = 18223, type = "debuff", unit = "target", talent = 15}, -- Curse of Exhaustion + --{ spell = 18265, type = "debuff", unit = "target", talent = 14}, -- Siphon Life + { spell = 30108, type = "debuff", unit = "target", talent = 21}, -- Unstable Affliction + { spell = 48181, type = "debuff", unit = "target", talent = 26}, -- Haunt + }, + icon = [[Interface/Icons/Spell_Shadow_CurseOfSargeras]] + }, + [3] = { + title = L["Abilities"], + args = { + { spell = 172, type = "ability", requiresTarget = true, debuff = true}, -- Corruption + { spell = 348, type = "ability", requiresTarget = true, debuff = true}, -- Immolate + { spell = 686, type = "ability", requiresTarget = true}, -- Shadow Bolt + { spell = 698, type = "ability"}, -- Ritual of Summoning + { spell = 710, type = "ability", requiresTarget = true, debuff = true}, -- Banish + { spell = 980, type = "ability", requiresTarget = true, debuff = true}, -- Agony + { spell = 1120, type = "ability", requiresTarget = true}, -- Drain Soul + { spell = 3110, type = "ability", requiresTarget = true}, -- Firebolt + { spell = 3716, type = "ability", requiresTarget = true}, -- Consuming Shadows + { spell = 5138, type = "ability", requiresTarget = true}, -- Drain Mana + { spell = 5484, type = "ability"}, -- Howl of Terror + { spell = 5676, type = "ability", requiresTarget = true}, -- Searing Pain + { spell = 5740, type = "ability"}, -- Rain of Fire + { spell = 5782, type = "ability", requiresTarget = true, debuff = true}, -- Fear + { spell = 6353, type = "ability", requiresTarget = true}, -- Soul Fire + { spell = 6358, type = "ability", requiresTarget = true}, -- Seduction + { spell = 6360, type = "ability", requiresTarget = true}, -- Whiplash + { spell = 6789, type = "ability", requiresTarget = true}, -- Death Coil + { spell = 7814, type = "ability", requiresTarget = true}, -- Lash of Pain + { spell = 7870, type = "ability"}, -- Lesser Invisibility + { spell = 17962, type = "ability", requiresTarget = true, usable = true, talent = 98}, -- Conflagrate + { spell = 17926, type = "ability", requiresTarget = true}, -- Death Coil + { spell = 18288, type = "ability", buff = true, talent = 9}, -- Amplify Curse + { spell = 18708, type = "ability", talent = 28}, -- Fel Domination + --{ spell = 18877, type = "ability", requiresTarget = true, debuff = true, talent = 88}, -- Shadowburn + { spell = 30108, ability = "ability", debuff = true, requiresTarget = true, talent = 21}, -- Unstable Affliction + { spell = 30283, type = "ability", debuff = true, talent = 101}, -- Fel Domination + { spell = 48181, type = "ability", requiresTarget = true, debuff = true, talent = 26}, -- Haunt + { spell = 59672, type = "ability", buff = true, talent = 66}, -- Metamorphosis + { spell = 50796, type = "ability", requiresTarget = true, talent = 105}, -- Chaos Bolt + { spell = 47897, type = "ability"}, -- Shadowflame + { spell = 48020, type = "ability"}, -- Demonic Circle: Teleport + }, + icon = [[Interface/Icons/Spell_Fire_Fireball02]] + }, + [4] = {}, + [5] = {}, + [6] = {}, + [7] = {}, + [8] = { + title = L["Resources"], + args = { + }, + icon = "Interface\\Icons\\inv_misc_gem_amethyst_02", + }, + } +} + +templates.class.DRUID = { + [1] = { + [1] = { + title = L["Buffs"], + args = { + { spell = 774, type = "buff", unit = "player", talent = 9 }, -- Rejuvenation + { spell = 5487, type = "buff", unit = "player"}, -- Bear Form + { spell = 8936, type = "buff", unit = "player"}, -- Regrowth + { spell = 783, type = "buff", unit = "player"}, -- Travel Form + { spell = 768, type = "buff", unit = "player"}, -- Cat Form + { spell = 22812, type = "buff", unit = "player"}, -- Barkskin + { spell = 1850, type = "buff", unit = "player"}, -- Dash + { spell = 5215, type = "buff", unit = "player"}, -- Prowl + { spell = 29166, type = "buff", unit = "group"}, -- Innervate + { spell = 33763, type = "buff", unit = "player"}, -- Lifebloom + }, + icon = [[Interface/Icons/Spell_Nature_StoneClawTotem]] + }, + [2] = { + title = L["Debuffs"], + args = { + { spell = 339, type = "debuff", unit = "multi"}, -- Entangling Roots + { spell = 770, type = "debuff", unit = "target"}, -- Faerie Fire + { spell = 5211, type = "debuff", unit = "target", talent = 10 }, -- Mighty Bash + { spell = 1079, type = "debuff", unit = "target", talent = 7 }, -- Rip + { spell = 6795, type = "debuff", unit = "target"}, -- Growl + { spell = 2637, type = "debuff", unit = "multi"}, -- Hibernate + { spell = 5570, type = "debuff", unit = "target", talent = 8}, -- Insect Swarm + { spell = 8921, type = "debuff", unit = "target"}, -- Moonfire + }, + icon = [[Interface/Icons/Ability_Druid_Bash]] + }, + [3] = { + title = L["Abilities"], + args = { + { spell = 99, type = "ability", debuff = true}, -- Demoralizing Roar + { spell = 339, type = "ability", requiresTarget = true, debuff = true}, -- Entangling Roots + { spell = 740, type = "ability", duration = 10}, -- Tranquility + { spell = 768, type = "ability"}, -- Cat Form + { spell = 770, type = "ability", requiresTarget = true, debuff = true}, -- Faerie Fire + { spell = 783, type = "ability"}, -- Travel Form + { spell = 1066, type = "ability"}, -- Aquatic Form + { spell = 1079, type = "ability", requiresTarget = true, form = 3}, -- Rip + { spell = 1082, type = "ability", requiresTarget = true, form = 3}, -- Claw + { spell = 1822, type = "ability", requiresTarget = true, debuff = true, form = 3}, -- Rake + { spell = 1850, type = "ability", buff = true}, -- Dash + { spell = 2637, type = "ability", requiresTarget = true, debuff = true}, -- Hibernate + { spell = 2782, type = "ability"}, -- Remove Curse + { spell = 2893, type = "ability"}, -- Abolish Poison + { spell = 2908, type = "ability", requiresTarget = true}, -- Soothe + { spell = 2912, type = "ability", requiresTarget = true}, -- Starfire + { spell = 5176, type = "ability", requiresTarget = true}, -- Wrath + { spell = 5209, type = "ability", form = 1}, -- Challenging Roar + { spell = 5211, type = "ability", requiresTarget = true, talent = 6, form = 1}, -- Mighty Bash + { spell = 5215, type = "ability", buff = true}, -- Prowl + { spell = 5221, type = "ability", requiresTarget = true, form = 3}, -- Shred + { spell = 5229, type = "ability", buff = true, form = 1}, -- Enrage + { spell = 5487, type = "ability"}, -- Bear Form + { spell = 5570, type = "ability", requiresTarget = true, debuff = true, talent = 8}, -- Insect Swarm + { spell = 6785, type = "ability", requiresTarget = true, form = 3}, -- Ravage + { spell = 6795, type = "ability", debuff = true, requiresTarget = true, form = 1}, -- Growl + { spell = 6807, type = "ability", queued = true, form = 1}, -- Maul + { spell = 8921, type = "ability", requiresTarget = true, debuff = true}, -- Moonfire + { spell = 8946, type = "ability"}, -- Cure Poison + { spell = 8983, type = "ability", requiresTarget = true, debuff = true, form = 1}, -- Buff + { spell = 9634, type = "ability"}, -- Dire Bear Form + { spell = 9846, type = "ability", buff = true, form = 3}, -- Tiger's Fury + { spell = 16689, type = "ability", buff = true, talent = 2}, -- Nature's Grasp + { spell = 16914, type = "ability"}, -- Hurricane + { spell = 16979, type = "ability", form = 1, talent = 47}, -- Feral Charge + { spell = 17116, type = "ability", buff = true, talent = 91}, -- Nature's Swiftness + { spell = 18562, type = "ability", talent = 97}, -- Swiftmend + { spell = 20484, type = "ability"}, -- Rebirth + { spell = 22568, type = "ability", form = 3}, -- Ferocious Bite + { spell = 22570, type = "ability", debuff = true, form = 3}, -- Maim + { spell = 22812, type = "ability", buff = true}, -- Barkskin + { spell = 22842, type = "ability", buff = true, form = 1}, -- Frenzied Regeneration + { spell = 24858, type = "ability", talent = 18}, -- Moonkin Form + { spell = 26997, type = "ability", form = 1}, -- Swipe + { spell = 27006, type = "ability", requiresTarget = true, debuff = true, form = 3}, -- Pounce + { spell = 33831, type = "ability", talent = 21}, -- Force of Nature + { spell = 42389, type = "ability", talent = 61, form = {1, 3}}, -- Mangle + { spell = 48438, type = "ability", talent = 103}, -- Wild Growth + { spell = 50464, type = "ability"}, -- Nourish + { spell = 48505, type = "ability", talent = 24}, -- Starfall + { spell = 50334, type = "ability", buff = true, talent = 67}, -- Berserk + }, + icon = [[Interface/Icons/Ability_Druid_Mangle.tga]] -- check + }, + [4] = {}, + [5] = {}, + [6] = {}, + [7] = {}, + [8] = { + title = L["Resources and Shapeshift Form"], + args = { + }, + icon = manaIcon, + }, + }, +} +templates.class.DEATHKNIGHT = { + [1] = { + [1] = { + title = L["Buffs"], + args = { + { spell = 3714, type = "buff", unit = "player"}, -- Path of Frost + { spell = 48707, type = "buff", unit = "player"}, -- Anti-Magic Shell + { spell = 48792, type = "buff", unit = "player"}, -- Icebound Fortitude + { spell = 49039, type = "buff", unit = "player"}, -- Lichborne + { spell = 49182, type = "buff", unit = "player", talent = 21}, -- Blade Barrier + { spell = 49188, type = "buff", unit = "player", talent = 50}, -- Rime + { spell = 49200, type = "buff", unit = "player", talent = 52}, -- Acclimation + { spell = 50421, type = "buff", unit = "player", talent = 9}, -- Scent of Blood + { spell = 50447, type = "buff", unit = "player", talent = 7}, -- Bloody Vengeance + { spell = 50880, type = "buff", unit = "player", talent = 62}, -- Icy Talons + { spell = 51123, type = "buff", unit = "player", talent = 63}, -- Killing Machine + { spell = 51124, type = "buff", unit = "player"}, -- Killing Machine + { spell = 53365, type = "buff", unit = "player"}, -- Unholy Strength + { spell = 55233, type = "buff", unit = "player"}, -- Vampiric Blood + { spell = 57330, type = "buff", unit = "player"}, -- Horn of Winter + { spell = 59052, type = "buff", unit = "player"}, -- Rime + { spell = 66799, type = "buff", unit = "player", talent = 111}, -- Desolation + }, + icon = [[Interface/Icons/Spell_DeathKnight_Butcher2]] + }, + [2] = { + title = L["Debuffs"], + args = { + { spell = 45524, type = "debuff", unit = "target"}, -- Chains of Ice + { spell = 48743, type = "debuff", unit = "player"}, -- Death Pact + { spell = 49194, type = "debuff", unit = "target", talent = 88}, -- Unholy Blight + { spell = 50040, type = "debuff", unit = "target", buffId = 50436, talent = 68}, -- Chilblains + { spell = 51099, type = "debuff", unit = "target", buffId = 51726, talent = 102}, -- Ebon Plaguebringer + { spell = 51399, type = "debuff", unit = "target"}, -- Death Grip + { spell = 55095, type = "debuff", unit = "target"}, -- Frost Fever + { spell = 55666 , type = "debuff", unit = "target", talent = 110}, -- Desecration + { spell = 56222, type = "debuff", unit = "target"}, -- Dark Command + { spell = 59879, type = "debuff", unit = "target"}, -- Blood Plague + }, + icon = [[Interface/Icons/Spell_DeathKnight_BloodPlague]] + }, + [3] = { + title = L["Abilities"], + args = { + { spell = 3714, type = "ability", buff = true}, -- Path of Frost + { spell = 42650, type = "ability"}, -- Army of the Dead + { spell = 43265, type = "ability", debuff = true}, -- Death and Decay + { spell = 45462, type = "ability", requiresTarget = true, debuff = true, buffId = 59879}, -- Plague Strike + { spell = 45524, type = "ability", debuff = true, requiresTarget = true}, -- Chains of Ice + { spell = 45529, type = "ability", buff = true}, -- Blood Tap + { spell = 45902, type = "ability", requiresTarget = true}, -- Blood Strike + { spell = 46585, type = "ability"}, -- Raise Dead + { spell = 47476, type = "ability", debuff = true,requiresTarget = true}, -- Strangulate + { spell = 47528, type = "ability", requiresTarget = true}, -- Mind Freeze + { spell = 47541, type = "ability", requiresTarget = true}, -- Death Coil + { spell = 48707, type = "ability", buff = true}, -- Anti-Magic Shell + { spell = 48743, type = "ability"}, -- Death Pact + { spell = 48792, type = "ability", buff = true}, -- Icebound Fortitude + { spell = 48982, type = "ability", talent = 4}, -- Rune Tap + { spell = 49005, type = "ability", debuff = true, requiresTarget = true, talent = 10}, -- Mark of Blood + { spell = 49016, type = "ability", buff = true, requiresTarget = true, talent = 13}, -- Unholy Frenzy + { spell = 49028, type = "ability", buff = true, requiresTarget = true, talent = 19}, -- Dancing Rune Weapon + { spell = 49039, type = "ability", buff = true, talent = 66}, -- Lichborne + { spell = 49143, type = "ability", requiresTarget = true, talent = 44}, -- Frost Strike + { spell = 49158, type = "ability", talent = 87}, -- Corpse Explosion + { spell = 49184, type = "ability", requiresTarget = true, talent = 48}, -- Howling Blast + { spell = 49203, type = "ability", debuff = true, talent = 54}, -- Hungering Cold + { spell = 57330, type = "ability", buff = true}, -- Horn of Winter + { spell = 61999, type = "ability"}, -- Raise Ally + { spell = 63560, type = "ability", unit = "pet", buff = true, talent = 105}, -- Ghoul Frenzy + { spell = 66198, type = "ability", requiresTarget = true}, -- Obliterate + }, + icon = [[Interface/Icons/Spell_Shadow_AntiMagicShell]] + }, + [4] = {}, + [5] = {}, + [6] = {}, + [7] = {}, + [8] = { + title = L["Resources"], + args = { + }, + icon = "Interface\\PlayerFrame\\UI-PlayerFrame-Deathknight-SingleRune", + }, + } +} + +-- General Section +tinsert(templates.general.args, { + title = L["Health"], + icon = "Interface\\Icons\\inv_potion_54", + type = "health" +}); +tinsert(templates.general.args, { + title = L["Cast"], + icon = [[Interface/Icons/Spell_Shadow_SoothingKiss]], + type = "cast" +}); +tinsert(templates.general.args, { + title = L["Always Active"], + icon = "Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura78", + triggers = {[1] = { trigger = { + type = WeakAuras.GetTriggerCategoryFor("Conditions"), + event = "Conditions", + use_alwaystrue = true}}} +}); + +tinsert(templates.general.args, { + title = L["Pet alive"], + icon = "Interface\\Icons\\ability_hunter_pet_raptor", + triggers = {[1] = { trigger = { + type = WeakAuras.GetTriggerCategoryFor("Conditions"), + event = "Conditions", + use_HasPet = true}}} +}); + +tinsert(templates.general.args, { + title = L["Pet Behavior"], + icon = "Interface\\Icons\\ability_defend.blp", + triggers = {[1] = { trigger = { + type = WeakAuras.GetTriggerCategoryFor("Pet Behavior"), + event = "Pet Behavior", + use_behavior = true, + behavior = "assist"}}} +}); + +tinsert(templates.general.args, { + spell = 2825, type = "buff", unit = "player", + forceOwnOnly = true, + ownOnly = nil, + overideTitle = L["Bloodlust/Heroism"], + spellIds = {2825, 32182}} +); + +-- Meta template for Power triggers +local function createSimplePowerTemplate(powertype) + local power = { + title = powerTypes[powertype].name, + icon = powerTypes[powertype].icon, + type = "power", + powertype = powertype, + } + return power; +end + +------------------------------- +-- Hardcoded trigger templates +------------------------------- + +-- Warrior +tinsert(templates.class.WARRIOR[1][8].args, { + title = L["Stance"], + icon = [[Interface/Icons/Ability_Warrior_OffensiveStance]], + triggers = {[1] = { trigger = { + type = WeakAuras.GetTriggerCategoryFor("Stance/Form/Aura"), + event = "Stance/Form/Aura"}}} +}) +for j, id in ipairs({2457, 71, 2458}) do + local title, _, icon = GetSpellInfo(id) + if title then + tinsert(templates.class.WARRIOR[1][8].args, { + title = title, + icon = icon, + triggers = { + [1] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Stance/Form/Aura"), + event = "Stance/Form/Aura", + use_form = true, + form = { single = j } + } + } + } + }); + end +end + +tinsert(templates.class.WARRIOR[1][8].args, createSimplePowerTemplate(1)); +tinsert(templates.class.PALADIN[1][8].args, createSimplePowerTemplate(0)); +tinsert(templates.class.HUNTER[1][8].args, createSimplePowerTemplate(0)); +tinsert(templates.class.ROGUE[1][8].args, createSimplePowerTemplate(3)); +tinsert(templates.class.ROGUE[1][8].args, createSimplePowerTemplate(4)); +tinsert(templates.class.PRIEST[1][8].args, createSimplePowerTemplate(0)); +tinsert(templates.class.SHAMAN[1][8].args, createSimplePowerTemplate(0)); +tinsert(templates.class.MAGE[1][8].args, createSimplePowerTemplate(0)); +tinsert(templates.class.WARLOCK[1][8].args, createSimplePowerTemplate(0)); +tinsert(templates.class.DRUID[1][8].args, createSimplePowerTemplate(0)); +tinsert(templates.class.DRUID[1][8].args, createSimplePowerTemplate(1)); +tinsert(templates.class.DRUID[1][8].args, createSimplePowerTemplate(3)); +tinsert(templates.class.DRUID[1][8].args, createSimplePowerTemplate(4)); + +-- Shapeshift Form +tinsert(templates.class.DRUID[1][8].args, { + title = L["Shapeshift Form"], + icon = [[Interface/Icons/Ability_Racial_BearForm]], + triggers = {[1] = { trigger = { + type = WeakAuras.GetTriggerCategoryFor("Stance/Form/Aura"), + event = "Stance/Form/Aura"}}} +}); +for j, id in ipairs({5487, 1066, 768, 783, 33891, 24858}) do + local title, _, icon = GetSpellInfo(id) + if title then + tinsert(templates.class.DRUID[1][8].args, { + title = title, + icon = icon, + triggers = { + [1] = { + trigger = { + type = WeakAuras.GetTriggerCategoryFor("Stance/Form/Aura"), + event = "Stance/Form/Aura", + use_form = true, + form = { single = j == 6 and 5 or j } -- 6 is Moonkin, which is form 5 + } + } + } + }); + end +end + + +------------------------------ +-- Hardcoded race templates +------------------------------- + +-- Will of Survive +tinsert(templates.race.Human, { spell = 59752, type = "ability" }); +-- Stoneform +tinsert(templates.race.Dwarf, { spell = 20594, type = "ability", buff = true, titleSuffix = L["cooldown"]}); +tinsert(templates.race.Dwarf, { spell = 20594, type = "buff", unit = "player", titleSuffix = L["buff"]}); +-- Shadow Meld +tinsert(templates.race.NightElf, { spell = 58984, type = "ability", buff = true, titleSuffix = L["cooldown"]}); +tinsert(templates.race.NightElf, { spell = 58984, type = "buff", titleSuffix = L["buff"]}); +-- Escape Artist +tinsert(templates.race.Gnome, { spell = 20589, type = "ability" }); + +-- Blood Fury +tinsert(templates.race.Orc, { spell = 20572, type = "ability", titleSuffix = L["cooldown"]}); +tinsert(templates.race.Orc, { spell = 20572, type = "buff", unit = "player", titleSuffix = L["buff"]}); +--Cannibalize +tinsert(templates.race.Scourge, { spell = 20577, type = "ability", titleSuffix = L["cooldown"]}); +tinsert(templates.race.Scourge, { spell = 20578, type = "buff", unit = "player", titleSuffix = L["buff"]}); +-- Will of the Forsaken +tinsert(templates.race.Scourge, { spell = 7744, type = "ability", buff = true, titleSuffix = L["cooldown"]}); +tinsert(templates.race.Scourge, { spell = 7744, type = "buff", unit = "player", titleSuffix = L["buff"]}); +-- War Stomp +tinsert(templates.race.Tauren, { spell = 20549, type = "ability", debuff = true, titleSuffix = L["cooldown"]}); +tinsert(templates.race.Tauren, { spell = 20549, type = "debuff", titleSuffix = L["debuff"]}); +--Beserking +tinsert(templates.race.Troll, { spell = 26297, type = "ability", buff = true, titleSuffix = L["cooldown"]}); +tinsert(templates.race.Troll, { spell = 26297, type = "buff", unit = "player", titleSuffix = L["buff"]}); +-- Arcane Torrent +tinsert(templates.race.BloodElf, { spell = 28730, type = "ability", debuff = true, titleSuffix = L["cooldown"]}); +-- Gift of the Naaru +tinsert(templates.race.Draenei, { spell = 28880, type = "ability", buff = true, titleSuffix = L["cooldown"]}); +tinsert(templates.race.Draenei, { spell = 28880, type = "buff", unit = "player", titleSuffix = L["buff"]}); + +------------------------------ +-- Helper code for options +------------------------------- + +-- Enrich items from spell, set title +local function handleItem(item) + if (item.spell) then + local name, icon, _; + if (item.type == "item") then + name, _, _, _, _, _, _, _, _, icon = GetItemInfo(item.spell); + if (name == nil) then + name = L["Unknown Item"] .. " " .. tostring(item.spell); + end + else + name, _, icon = GetSpellInfo(item.spell); + if (name == nil) then + name = L["Unknown Spell"] .. " " .. tostring(item.spell); + end + end + if (icon and not item.icon) then + item.icon = icon; + end + + item.title = item.overideTitle or name or ""; + if (item.titleSuffix) then + item.title = item.title .. " " .. item.titleSuffix; + end + if (item.titlePrefix) then + item.title = item.titlePrefix .. item.title; + end + if (item.titleItemPrefix) then + local prefix = GetItemInfo(item.titleItemPrefix); + if (prefix) then + item.title = prefix .. "-" .. item.title; + end + end + end + if (item.talent) then + item.load = item.load or {}; + if type(item.talent) == "table" then + item.load.talent = { multi = {} }; + for _,v in pairs(item.talent) do + item.load.talent.multi[v] = true; + end + item.load.use_talent = false; + else + item.load.talent = { + single = item.talent, + multi = {}, + }; + item.load.use_talent = true; + end + end + if (item.pvptalent) then + item.load = item.load or {}; + item.load.use_pvptalent = true; + item.load.pvptalent = { + single = item.pvptalent, + multi = {}, + } + end + if (item.covenant) then + item.load = item.load or {} + item.load.use_covenant = true + item.load.covenant = { + single = item.covenant, + multi = {} + } + end + if (item.bonusItemId) then + item.load = item.load or {} + item.load.use_item_bonusid_equipped = true + item.load.item_bonusid_equipped = tostring(item.bonusItemId) + end + -- form field is lazy handled by a usable condition + if item.form then + item.usable = true + end +end + +local function addLoadCondition(item, loadCondition) + -- No need to deep copy here, templates are read-only + item.load = item.load or {}; + for k, v in pairs(loadCondition) do + item.load[k] = v; + end +end + +local function enrichDatabase() + for className, class in pairs(templates.class) do + for specIndex, spec in pairs(class) do + for _, section in pairs(spec) do + local loadCondition = { + use_class = true, class = { single = className, multi = {} }, + }; + for itemIndex, item in pairs(section.args or {}) do + handleItem(item) + addLoadCondition(item, loadCondition); + end + end + end + end + + for raceName, race in pairs(templates.race) do + local loadCondition = { + use_race = true, race = { single = raceName, multi = {} } + }; + for _, item in pairs(race) do + handleItem(item) + addLoadCondition(item, loadCondition); + end + end + + for _, item in pairs(templates.general.args) do + handleItem(item) + end +end + +enrichDatabase() + + +TemplatePrivate.triggerTemplates = templates diff --git a/WeakAurasTemplates/WeakAurasTemplates.toc b/WeakAurasTemplates/WeakAurasTemplates.toc new file mode 100644 index 0000000..df31920 --- /dev/null +++ b/WeakAurasTemplates/WeakAurasTemplates.toc @@ -0,0 +1,19 @@ +## Interface: 33000 +## Title: WeakAuras Templates +## Author: The WeakAuras Team +## Version: 5.19.12 +## Notes: Templates for WeakAuras +## Notes-esES: Plantillas para WeakAuras +## Notes-esMX: Plantillas para WeakAuras +## X-Category: Interface Enhancements +## Globe-Main: WeakAuras +## DefaultState: Enabled +## LoadOnDemand: 1 +## Dependencies: WeakAuras, WeakAurasOptions + +locales.xml + +TriggerTemplates.lua +TriggerTemplatesDataWrath.lua + +AceGUI-Widgets\AceGUIContainer-WeakAurasTemplateGroup.lua diff --git a/WeakAurasTemplates/locales.xml b/WeakAurasTemplates/locales.xml new file mode 100644 index 0000000..508b8b5 --- /dev/null +++ b/WeakAurasTemplates/locales.xml @@ -0,0 +1,16 @@ + + +