Make LibGroupTalents work now, but still requires regressions

Arguments might still shut be shared from the original call for custom auras.
More functions need to be added to prototypes.
Documentation is needed soon.
This commit is contained in:
NoM0Re
2025-02-06 21:31:45 +01:00
parent 91641b31f2
commit d3c8a9bf3e
29 changed files with 426 additions and 449 deletions
+8 -2
View File
@@ -1079,6 +1079,10 @@ local function TriggerInfoApplies(triggerInfo, unit)
end
end
if triggerInfo.hostility and WeakAuras.GetPlayerReaction(unit) ~= triggerInfo.hostility then
return false
end
if triggerInfo.unit == "group" then
local isPet = WeakAuras.UnitIsPet(unit)
if triggerInfo.includePets == "PetsOnly" and not isPet then
@@ -1872,10 +1876,12 @@ end
Private.LibGroupTalentsWrapper.Register(function(unit)
Private.StartProfileSystem("bufftrigger2")
local deactivatedTriggerInfos = {}
RecheckActiveForUnitType("group", unit, deactivatedTriggerInfos)
RecheckActiveForUnitType("group", unit .. "pet", deactivatedTriggerInfos)
RecheckActiveForUnitType("group", WeakAuras.unitToPetUnit[unit], deactivatedTriggerInfos)
DeactivateScanFuncs(deactivatedTriggerInfos)
Private.StopProfileSystem("bufftrigger2")
end)
@@ -2482,7 +2488,7 @@ function BuffTrigger.Add(data)
local effectiveIgnoreSelf = (groupTrigger or trigger.unit == "nameplate") and trigger.ignoreSelf
local effectiveRaidRole = groupTrigger and trigger.useRaidRole and trigger.raid_role or nil
local effectiveClass = groupTrigger and trigger.useClass and trigger.class
local effectiveSpecId = groupTrigger and trigger.useActualSpec and trigger.actualSpec
local effectiveSpecId = groupTrigger and trigger.useActualSpec and trigger.actualSpec or nil
local effectiveIgnoreDead = groupTrigger and trigger.ignoreDead
local effectiveIgnoreDisconnected = groupTrigger and trigger.ignoreDisconnected
local effectiveIgnoreInvisible = groupTrigger and trigger.ignoreInvisible
+1
View File
@@ -52,6 +52,7 @@ do
"LibDBIcon-1.0",
"LibGetFrame-1.0",
"LibSerialize",
"LibGroupTalents-1.0",
}
for _, lib in ipairs(StandAloneLibs) do
if not lib then
+42 -46
View File
@@ -2,8 +2,11 @@ if not WeakAuras.IsLibsOK() then return end
local AddonName, Private = ...
local timer = WeakAuras.timer;
local eventLock = false
-- Lua APIs
local unpack = unpack
-- WoW APIs
local UnitName, UnitIsUnit, UnitClass, GetNumGroupMembers = UnitName, UnitIsUnit, UnitClass, GetNumGroupMembers
local nameToGlyphs = {}
local nameToSpecMap = {}
@@ -23,60 +26,47 @@ Private.LibGroupTalentsWrapper = {
local LibGroupTalents = LibStub("LibGroupTalents-1.0")
if LibGroupTalents then
local frame = CreateFrame("Frame")
frame:RegisterEvent("PLAYER_LOGIN")
frame:RegisterEvent("RAID_ROSTER_UPDATE")
frame:RegisterEvent("PARTY_MEMBERS_CHANGED")
--- LibGroupTalents callback for talents and glyphs
function Private.LibGroupTalentsWrapper:LibGroupTalentsCallback(_, _, unit)
if not unit then
return
end
local function ProcessEvent()
eventLock = false
local unitName = UnitName(unit)
local ownName = UnitName("player")
nameToUnitMap = {}
nameToUnitMap[ownName] = "player"
local numMembers
local numMembers = GetNumGroupMembers()
local units
if IsInRaid() then
numMembers = GetNumGroupMembers()
units = WeakAuras.raidUnits
else
numMembers = GetNumPartyMembers()
units = WeakAuras.partyUnits
end
for i = 1, numMembers do
local unit = units[i]
local name = UnitName(unit)
nameToUnitMap[name] = unit
end
for name in pairs(nameToSpecMap) do
if not nameToUnitMap[name] then
nameToSpecMap[name] = nil
nameToGlyphs[name] = nil
local groupUnit = units[i]
if groupUnit then
local groupUnitName = UnitName(groupUnit)
if groupUnitName then
nameToUnitMap[groupUnitName] = groupUnit
end
end
end
end
nameToUnitMap[ownName] = "player"
frame:SetScript("OnEvent", function()
if not eventLock then
eventLock = true
timer:ScheduleTimer(ProcessEvent, 1.5)
for storedName in pairs(nameToSpecMap) do
if not nameToUnitMap[storedName] then
nameToSpecMap[storedName] = nil
nameToGlyphs[storedName] = nil
end
end
end)
--- LibGroupTalents callback for talents and glyphs
function Private.LibGroupTalentsWrapper:LibGroupTalentsCallback(_, _, unit)
local unitName = UnitName(unit)
-- Update specialization data
local specInfo = { LibGroupTalents:GetUnitTalentSpec(unit) }
if specInfo and #specInfo > 0 then
nameToSpecMap[unitName] = specInfo
local class = select(2, UnitClass(unit))
if specInfo and #specInfo > 0 and class then
nameToSpecMap[unitName] = class .. specInfo[1]
end
-- Update glyphs
local glyphs = { LibGroupTalents:GetUnitGlyphs(unit) }
if glyphs and #glyphs > 0 then
nameToGlyphs[unitName] = {}
@@ -85,9 +75,10 @@ if LibGroupTalents then
end
end
-- Notify subscribers
for _, f in ipairs(subscribers) do
f(nameToUnitMap[unitName])
if nameToUnitMap[unitName] then
for _, f in ipairs(subscribers) do
f(nameToUnitMap[unitName])
end
end
end
@@ -99,12 +90,17 @@ if LibGroupTalents then
function Private.LibGroupTalentsWrapper.SpecForUnit(unit)
local unitName = UnitName(unit)
if nameToSpecMap[unitName] and nameToSpecMap[unitName][1] then
return nameToSpecMap[unitName] and nameToSpecMap[unitName][1]
local class = select(2, UnitClass(unit))
if nameToSpecMap[unitName] then
return nameToSpecMap[unitName]
end
if UnitIsUnit(unit, "player") then
return LibGroupTalents:GetUnitTalentSpec(unit)
if UnitIsUnit(unit, "player") and class then
local specInfo = LibGroupTalents:GetUnitTalentSpec(unit)
if specInfo and #specInfo > 0 then
return class .. specInfo[1]
end
end
end
@@ -126,14 +122,14 @@ if LibGroupTalents then
function Private.LibGroupTalentsWrapper.CheckGlyphForUnit(unit, glyphId)
local unitName = UnitName(unit)
if nameToGlyphs[unitName] and nameToGlyphs[unitName][glyphId] then
return true
return true
end
if UnitIsUnit(unit, "player") then
local glyphs = { LibGroupTalents:GetUnitGlyphs(unit) }
for _, id in ipairs(glyphs) do
if id == glyphId then
return true
return true
end
end
end
+28 -2
View File
@@ -1669,7 +1669,7 @@ L["Requested display not authorized"] = "Angeforderte Anzeige ist nicht autorisi
L["Requesting display information from %s ..."] = "Requesting display information from %s ..."
L["Require Valid Target"] = "Erfordert gültiges Ziel"
--[[Translation missing --]]
L["Requires syncing the specialization via LibSpecialization."] = "Requires syncing the specialization via LibSpecialization."
L["Requires syncing the specialization via LibGroupTalents."] = "Requires syncing the specialization via LibGroupTalents."
--[[Translation missing --]]
L["Resilience (%)"] = "Resilience (%)"
--[[Translation missing --]]
@@ -2338,4 +2338,30 @@ L["Zoom"] = "Zoom"
--[[Translation missing --]]
L["Zoom Animation"] = "Zoom Animation"
L["Zul'Gurub"] = "Zul'Gurub"
L["Affliction"] = "Gebrechen"
L["Arcane"] = "Arkan"
L["Arms"] = "Waffen"
L["Assassination"] = "Meucheln"
L["Balance"] = "Gleichgewicht"
L["Beast Mastery"] = "Tierherrschaft"
L["Blood"] = "Blut"
L["Combat"] = "Kampf"
L["Demonology"] = "Dämonologie"
L["Destruction"] = "Zerstörung"
L["Discipline"] = "Disziplin"
L["Elemental"] = "Elementar"
L["Enhancement"] = "Verstärkung"
L["Feral Combat"] = "Wilder Kampf"
L["Fire"] = "Feuer"
L["Frost"] = "Frost"
L["Fury"] = "Furor"
L["Holy"] = "Heilig"
L["Hybrid"] = "Hybride"
L["Marksmanship"] = "Treffsicherheit"
L["Protection"] = "Schutz"
L["Restoration"] = "Wiederherstellung"
L["Retribution"] = "Vergeltung"
L["Shadow"] = "Schatten"
L["Subtlety"] = "Täuschung"
L["Survival"] = "Überleben"
L["Unholy"] = "Unheilig"
+28 -2
View File
@@ -1105,7 +1105,7 @@ L["Requested display does not exist"] = "Requested display does not exist"
L["Requested display not authorized"] = "Requested display not authorized"
L["Requesting display information from %s ..."] = "Requesting display information from %s ..."
L["Require Valid Target"] = "Require Valid Target"
L["Requires syncing the specialization via LibSpecialization."] = "Requires syncing the specialization via LibSpecialization."
L["Requires syncing the specialization via LibGroupTalents."] = "Requires syncing the specialization via LibGroupTalents."
L["Resilience (%)"] = "Resilience (%)"
L["Resilience Rating"] = "Resilience Rating"
L["Resist"] = "Resist"
@@ -1519,7 +1519,33 @@ L["Zone Name"] = "Zone Name"
L["Zoom"] = "Zoom"
L["Zoom Animation"] = "Zoom Animation"
L["Zul'Gurub"] = "Zul'Gurub"
L["Affliction"] = "Affliction"
L["Arcane"] = "Arcane"
L["Arms"] = "Arms"
L["Assassination"] = "Assassination"
L["Balance"] = "Balance"
L["Beast Mastery"] = "Beast Mastery"
L["Blood"] = "Blood"
L["Combat"] = "Combat"
L["Demonology"] = "Demonology"
L["Destruction"] = "Destruction"
L["Discipline"] = "Discipline"
L["Elemental"] = "Elemental"
L["Enhancement"] = "Enhancement"
L["Feral Combat"] = "Feral Combat"
L["Fire"] = "Fire"
L["Frost"] = "Frost"
L["Fury"] = "Fury"
L["Holy"] = "Holy"
L["Hybrid"] = "Hybrid"
L["Marksmanship"] = "Marksmanship"
L["Protection"] = "Protection"
L["Restoration"] = "Restoration"
L["Retribution"] = "Retribution"
L["Shadow"] = "Shadow"
L["Subtlety"] = "Subtlety"
L["Survival"] = "Survival"
L["Unholy"] = "Unholy"
-- Make missing translations available
setmetatable(WeakAuras.L, {__index = function(self, key)
+28 -2
View File
@@ -1051,7 +1051,7 @@ L["Requested display does not exist"] = "El aura requerida no existe"
L["Requested display not authorized"] = "El aura requerida no está autorizada"
L["Requesting display information from %s ..."] = "Solicitando información de visualización de %s..."
L["Require Valid Target"] = "Requiere Objetivo Válido"
L["Requires syncing the specialization via LibSpecialization."] = "Requiere sincronizar la especialización mediante LibSpecialization."
L["Requires syncing the specialization via LibGroupTalents."] = "Requiere sincronizar la especialización mediante LibGroupTalents."
L["Resilience (%)"] = "Temple (%)"
L["Resilience Rating"] = "Índice de temple"
L["Resist"] = "Resistir"
@@ -1457,4 +1457,30 @@ L["Zone Name"] = "Nombre de zona"
L["Zoom"] = "Zoom"
L["Zoom Animation"] = "Animación de zoom"
L["Zul'Gurub"] = "Zul'Gurub"
L["Affliction"] = "Aflicción"
L["Arcane"] = "Arcano"
L["Arms"] = "Armas"
L["Assassination"] = "Asesinato"
L["Balance"] = "Equilibrio"
L["Beast Mastery"] = "Dominio de bestias"
L["Blood"] = "Sangre"
L["Combat"] = "Combate"
L["Demonology"] = "Demonología"
L["Destruction"] = "Destrucción"
L["Discipline"] = "Disciplina"
L["Elemental"] = "Elemental"
L["Enhancement"] = "Mejora"
L["Feral Combat"] = "Combate Feral"
L["Fire"] = "Fuego"
L["Frost"] = "Escarcha"
L["Fury"] = "Furia"
L["Holy"] = "Sagrado"
L["Hybrid"] = "Híbrido"
L["Marksmanship"] = "Puntería"
L["Protection"] = "Protección"
L["Restoration"] = "Restauración"
L["Retribution"] = "Reprensión"
L["Shadow"] = "Sombras"
L["Subtlety"] = "Sutileza"
L["Survival"] = "Supervivencia"
L["Unholy"] = "Profano"
+28 -2
View File
@@ -1052,7 +1052,7 @@ L["Requested display does not exist"] = "El aura requerida no existe"
L["Requested display not authorized"] = "El aura requerida no está autorizada"
L["Requesting display information from %s ..."] = "Solicitando información de visualización de %s..."
L["Require Valid Target"] = "Requiere Objetivo Válido"
L["Requires syncing the specialization via LibSpecialization."] = "Requiere sincronizar la especialización mediante LibSpecialization."
L["Requires syncing the specialization via LibGroupTalents."] = "Requiere sincronizar la especialización mediante LibGroupTalents."
L["Resilience (%)"] = "Temple (%)"
L["Resilience Rating"] = "Índice de temple"
L["Resist"] = "Resistir"
@@ -1458,4 +1458,30 @@ L["Zone Name"] = "Nombre de zona"
L["Zoom"] = "Zoom"
L["Zoom Animation"] = "Animación de zoom"
L["Zul'Gurub"] = "Zul'Gurub"
L["Affliction"] = "Aflicción"
L["Arcane"] = "Arcano"
L["Arms"] = "Armas"
L["Assassination"] = "Asesinato"
L["Balance"] = "Balance"
L["Beast Mastery"] = "Bestias"
L["Blood"] = "Sangre"
L["Combat"] = "Combate"
L["Demonology"] = "Demonología"
L["Destruction"] = "Destrucción"
L["Discipline"] = "Disciplina"
L["Elemental"] = "Elemental"
L["Enhancement"] = "Mejora"
L["Feral Combat"] = "Combate feral"
L["Fire"] = "Fuego"
L["Frost"] = "Escarcha"
L["Fury"] = "Furia"
L["Holy"] = "Sagrado"
L["Hybrid"] = "Híbrido"
L["Marksmanship"] = "Puntería"
L["Protection"] = "Protección"
L["Restoration"] = "Restauración"
L["Retribution"] = "Reprensión"
L["Shadow"] = "Sombra"
L["Subtlety"] = "Sutileza"
L["Survival"] = "Supervivencia"
L["Unholy"] = "Profano"
+28 -2
View File
@@ -1509,7 +1509,7 @@ L["Requested display not authorized"] = "L'affichage demandé n'est pas autoris
L["Requesting display information from %s ..."] = "Demande des informations de l'affichage depuis %s ..."
L["Require Valid Target"] = "Exige une cible valide"
--[[Translation missing --]]
L["Requires syncing the specialization via LibSpecialization."] = "Requires syncing the specialization via LibSpecialization."
L["Requires syncing the specialization via LibGroupTalents."] = "Requires syncing the specialization via LibGroupTalents."
--[[Translation missing --]]
L["Resilience (%)"] = "Resilience (%)"
--[[Translation missing --]]
@@ -2128,4 +2128,30 @@ L["Zoom"] = "Zoom"
--[[Translation missing --]]
L["Zoom Animation"] = "Zoom Animation"
L["Zul'Gurub"] = "Zul'Gurub"
L["Affliction"] = "Affliction"
L["Arcane"] = "Arcane"
L["Arms"] = "Armes"
L["Assassination"] = "Assassinat"
L["Balance"] = "Equilibre"
L["Beast Mastery"] = "Maîtrise des bêtes"
L["Blood"] = "Sang"
L["Combat"] = "Combat"
L["Demonology"] = "Démonologie"
L["Destruction"] = "Destruction"
L["Discipline"] = "Discipline"
L["Elemental"] = "Elémentaire"
L["Enhancement"] = "Amélioration"
L["Feral Combat"] = "Combat farouche"
L["Fire"] = "Feu"
L["Frost"] = "Givre"
L["Fury"] = "Fureur"
L["Holy"] = "Sacré"
L["Hybrid"] = "Hybride"
L["Marksmanship"] = "Précision"
L["Protection"] = "Protection"
L["Restoration"] = "Restauration"
L["Retribution"] = "Vindicte"
L["Shadow"] = "Ombre"
L["Subtlety"] = "Finesse"
L["Survival"] = "Survie"
L["Unholy"] = "Impie"
+28 -2
View File
@@ -1832,7 +1832,7 @@ L["Requesting display information from %s ..."] = "Requesting display informatio
--[[Translation missing --]]
L["Require Valid Target"] = "Require Valid Target"
--[[Translation missing --]]
L["Requires syncing the specialization via LibSpecialization."] = "Requires syncing the specialization via LibSpecialization."
L["Requires syncing the specialization via LibGroupTalents."] = "Requires syncing the specialization via LibGroupTalents."
--[[Translation missing --]]
L["Resilience (%)"] = "Resilience (%)"
--[[Translation missing --]]
@@ -2637,4 +2637,30 @@ L["Zoom"] = "Zoom"
L["Zoom Animation"] = "Zoom Animation"
--[[Translation missing --]]
L["Zul'Gurub"] = "Zul'Gurub"
L["Affliction"] = "Affliction"
L["Arcane"] = "Arcane"
L["Arms"] = "Arms"
L["Assassination"] = "Assassination"
L["Balance"] = "Balance"
L["Beast Mastery"] = "Beast Mastery"
L["Blood"] = "Blood"
L["Combat"] = "Combat"
L["Demonology"] = "Demonology"
L["Destruction"] = "Destruction"
L["Discipline"] = "Discipline"
L["Elemental"] = "Elemental"
L["Enhancement"] = "Enhancement"
L["Feral Combat"] = "Feral Combat"
L["Fire"] = "Fire"
L["Frost"] = "Frost"
L["Fury"] = "Fury"
L["Holy"] = "Holy"
L["Hybrid"] = "Hybrid"
L["Marksmanship"] = "Marksmanship"
L["Protection"] = "Protection"
L["Restoration"] = "Restoration"
L["Retribution"] = "Retribution"
L["Shadow"] = "Shadow"
L["Subtlety"] = "Subtlety"
L["Survival"] = "Survival"
L["Unholy"] = "Unholy"
+28 -2
View File
@@ -1105,7 +1105,7 @@ L["Requested display does not exist"] = "요청한 디스플레이가 존재하
L["Requested display not authorized"] = "요청한 디스플레이가 올바르지 않습니다"
L["Requesting display information from %s ..."] = "%s의 디스플레이 정보 요청 중 ..."
L["Require Valid Target"] = "유효한 대상 필요"
L["Requires syncing the specialization via LibSpecialization."] = "LibSpecialization을 통해 전문화를 동기화해야 합니다."
L["Requires syncing the specialization via LibGroupTalents."] = "LibGroupTalents을 통해 전문화를 동기화해야 합니다."
L["Resilience (%)"] = "탄력 (%)"
L["Resilience Rating"] = "탄력도"
L["Resist"] = "저항"
@@ -1514,4 +1514,30 @@ L["Zone Name"] = "지역 이름"
L["Zoom"] = "확대"
L["Zoom Animation"] = "확대 애니메이션"
L["Zul'Gurub"] = "줄구룹"
L["Affliction"] = "고통"
L["Arcane"] = "비전"
L["Arms"] = "무기"
L["Assassination"] = "암살"
L["Balance"] = "조화"
L["Beast Mastery"] = "야수"
L["Blood"] = "혈기"
L["Combat"] = "전투"
L["Demonology"] = "악마"
L["Destruction"] = "파괴"
L["Discipline"] = "수양"
L["Elemental"] = "정기"
L["Enhancement"] = "고양"
L["Feral Combat"] = "야성"
L["Fire"] = "화염"
L["Frost"] = "냉기"
L["Fury"] = "분노"
L["Holy"] = "신성"
L["Hybrid"] = "하이브리드"
L["Marksmanship"] = "사격"
L["Protection"] = "방어"
L["Restoration"] = "복원"
L["Retribution"] = "징벌"
L["Shadow"] = "암흑"
L["Subtlety"] = "잠행"
L["Survival"] = "생존"
L["Unholy"] = "부정"
+28 -2
View File
@@ -1828,7 +1828,7 @@ L["Requested display not authorized"] = "Exibição requerida não autorizada"
L["Requesting display information from %s ..."] = "Requesting display information from %s ..."
L["Require Valid Target"] = "Requer um alvo válido"
--[[Translation missing --]]
L["Requires syncing the specialization via LibSpecialization."] = "Requires syncing the specialization via LibSpecialization."
L["Requires syncing the specialization via LibGroupTalents."] = "Requires syncing the specialization via LibGroupTalents."
--[[Translation missing --]]
L["Resilience (%)"] = "Resilience (%)"
--[[Translation missing --]]
@@ -2562,4 +2562,30 @@ L["Zoom"] = "Zoom"
L["Zoom Animation"] = "Zoom Animation"
--[[Translation missing --]]
L["Zul'Gurub"] = "Zul'Gurub"
L["Affliction"] = "Affliction"
L["Arcane"] = "Arcane"
L["Arms"] = "Arms"
L["Assassination"] = "Assassination"
L["Balance"] = "Balance"
L["Beast Mastery"] = "Beast Mastery"
L["Blood"] = "Blood"
L["Combat"] = "Combat"
L["Demonology"] = "Demonology"
L["Destruction"] = "Destruction"
L["Discipline"] = "Discipline"
L["Elemental"] = "Elemental"
L["Enhancement"] = "Enhancement"
L["Feral Combat"] = "Feral Combat"
L["Fire"] = "Fire"
L["Frost"] = "Frost"
L["Fury"] = "Fury"
L["Holy"] = "Holy"
L["Hybrid"] = "Hybrid"
L["Marksmanship"] = "Marksmanship"
L["Protection"] = "Protection"
L["Restoration"] = "Restoration"
L["Retribution"] = "Retribution"
L["Shadow"] = "Shadow"
L["Subtlety"] = "Subtlety"
L["Survival"] = "Survival"
L["Unholy"] = "Unholy"
+28 -2
View File
@@ -1083,7 +1083,7 @@ L["Requested display does not exist"] = "Запрошенная индикаци
L["Requested display not authorized"] = "Запрошенная индикация не разрешена"
L["Requesting display information from %s ..."] = "Запрос информации об индикации от %s ..."
L["Require Valid Target"] = "Требуется допустимая цель"
L["Requires syncing the specialization via LibSpecialization."] = "Требуется синхронизация специализации через LibSpecialization."
L["Requires syncing the specialization via LibGroupTalents."] = "Требуется синхронизация специализации через LibGroupTalents."
L["Resilience (%)"] = "Устойчивость (%)"
--[[Translation missing --]]
L["Resilience Rating"] = "Resilience Rating"
@@ -1503,4 +1503,30 @@ L["Zone Name"] = "Название игровой зоны"
L["Zoom"] = "Масштаб"
L["Zoom Animation"] = "Анимация масштаба"
L["Zul'Gurub"] = "Зул'Гуруб"
L["Affliction"] = "Колдовство"
L["Arcane"] = "Тайная магия"
L["Arms"] = "Оружие"
L["Assassination"] = "Убийство"
L["Balance"] = "Баланс"
L["Beast Mastery"] = "Чувство зверя"
L["Blood"] = "Кровь"
L["Combat"] = "Бой"
L["Demonology"] = "Демонология"
L["Destruction"] = "Разрушение"
L["Discipline"] = "Послушание"
L["Elemental"] = "Укрощение стихии"
L["Enhancement"] = "Совершенствование"
L["Feral Combat"] = "Сила зверя"
L["Fire"] = "Огонь"
L["Frost"] = "Лед"
L["Fury"] = "Неистовство"
L["Holy"] = "Свет"
L["Hybrid"] = "Гибрид"
L["Marksmanship"] = "Стрельба"
L["Protection"] = "Защита"
L["Restoration"] = "Исцеление"
L["Retribution"] = "Возмездие"
L["Shadow"] = "Темная магия"
L["Subtlety"] = "Скрытность"
L["Survival"] = "Выживание"
L["Unholy"] = "Нечестивость"
+28 -2
View File
@@ -1113,7 +1113,7 @@ L["Requested display does not exist"] = "请求接收的图示不存在"
L["Requested display not authorized"] = "请求接收的图示没有授权"
L["Requesting display information from %s ..."] = "请求来 %s 的图示信息"
L["Require Valid Target"] = "需要有效目标"
L["Requires syncing the specialization via LibSpecialization."] = "需要通过LibSpecialization同步专精。"
L["Requires syncing the specialization via LibGroupTalents."] = "需要通过LibGroupTalents同步专精。"
L["Resilience (%)"] = "韧性 (%)"
L["Resilience Rating"] = "韧性等级"
L["Resist"] = "抵抗"
@@ -1523,4 +1523,30 @@ L["Zone Name"] = "地图名称"
L["Zoom"] = "缩放"
L["Zoom Animation"] = "缩放动画"
L["Zul'Gurub"] = "祖尔格拉布"
L["Affliction"] = "痛苦"
L["Arcane"] = "奥术"
L["Arms"] = "武器"
L["Assassination"] = "刺杀"
L["Balance"] = "平衡"
L["Beast Mastery"] = "野兽控制"
L["Blood"] = "鲜血"
L["Combat"] = "战斗"
L["Demonology"] = "恶魔学识"
L["Destruction"] = "毁灭"
L["Discipline"] = "戒律"
L["Elemental"] = "元素战斗"
L["Enhancement"] = "增强"
L["Feral Combat"] = "野性战斗"
L["Fire"] = "火焰"
L["Frost"] = "冰霜"
L["Fury"] = "狂怒"
L["Holy"] = "神圣"
L["Hybrid"] = "混合"
L["Marksmanship"] = "射击"
L["Protection"] = "防护"
L["Restoration"] = "恢复"
L["Retribution"] = "惩戒"
L["Shadow"] = "暗影魔法"
L["Subtlety"] = "敏锐"
L["Survival"] = "生存技能"
L["Unholy"] = "邪恶"
+28 -2
View File
@@ -1077,7 +1077,7 @@ L["Requested display does not exist"] = "需求的提醒效果不存在"
L["Requested display not authorized"] = "需求的提醒效果沒有授權"
L["Requesting display information from %s ..."] = "正在請求來自於 %s 的顯示資訊..."
L["Require Valid Target"] = "需要有效目標"
L["Requires syncing the specialization via LibSpecialization."] = "需要透由LibSpecialization同步專精。"
L["Requires syncing the specialization via LibGroupTalents."] = "需要透由LibGroupTalents同步專精。"
L["Resilience (%)"] = "韌性 (%)"
L["Resilience Rating"] = "韌性等級"
L["Resist"] = "抵抗"
@@ -1488,4 +1488,30 @@ L["Zone Name"] = "區域名稱"
L["Zoom"] = "縮放"
L["Zoom Animation"] = "縮放動畫"
L["Zul'Gurub"] = "祖爾格拉布"
L["Affliction"] = "痛苦"
L["Arcane"] = "秘法"
L["Arms"] = "武器"
L["Assassination"] = "刺殺"
L["Balance"] = "平衡"
L["Beast Mastery"] = "野獸控制"
L["Blood"] = "血魄"
L["Combat"] = "戰鬥"
L["Demonology"] = "惡魔學識"
L["Destruction"] = "毀滅"
L["Discipline"] = "戒律"
L["Elemental"] = "元素"
L["Enhancement"] = "增強"
L["Feral Combat"] = "野性戰鬥"
L["Fire"] = "火焰"
L["Frost"] = "冰霜"
L["Fury"] = "狂怒"
L["Holy"] = "神聖"
L["Hybrid"] = "混合"
L["Marksmanship"] = "射擊"
L["Protection"] = "防護"
L["Restoration"] = "恢復"
L["Retribution"] = "懲戒"
L["Shadow"] = "暗影"
L["Subtlety"] = "敏銳"
L["Survival"] = "生存"
L["Unholy"] = "穢邪"
+3 -3
View File
@@ -1576,7 +1576,7 @@ Private.event_prototypes = {
values = "spec_types_all",
store = true,
conditionType = "select",
desc = L["Requires syncing the specialization via LibSpecialization."],
desc = L["Requires syncing the specialization via LibGroupTalents."],
},
{
name = "classification",
@@ -2099,7 +2099,7 @@ Private.event_prototypes = {
enable = function(trigger)
return trigger.unit == "group" or trigger.unit == "raid" or trigger.unit == "party"
end,
desc = L["Requires syncing the specialization via LibSpecialization."],
desc = L["Requires syncing the specialization via LibGroupTalents."],
},
{
name = "raid_role",
@@ -2470,7 +2470,7 @@ Private.event_prototypes = {
enable = function(trigger)
return trigger.unit == "group" or trigger.unit == "raid" or trigger.unit == "party"
end,
desc = L["Requires syncing the specialization via LibSpecialization."],
desc = L["Requires syncing the specialization via LibGroupTalents."],
},
{
name = "raid_role",
+32 -42
View File
@@ -3252,50 +3252,40 @@ WeakAuras.StopMotion.animation_types = {
progress = L["Progress"]
}
Private.spec_types_all = {
-- Death Knight
L["Blood"],
L["Frost"],
L["Unholy"],
-- Druid
L["Balance"],
L["Feral Combat"],
L["Guardian"],
L["Restoration"],
-- Hunter
L["Beast Mastery"],
L["Marksmanship"],
L["Survival"],
-- Mage
L["Arcane"],
L["Fire"],
L["Frost"],
-- Paladin
L["Holy"],
L["Protection"],
L["Retribution"],
-- Priest
L["Discipline"],
L["Holy"],
L["Shadow"],
-- Rogue
L["Assassination"],
L["Combat"],
L["Subtlety"],
-- Shaman
L["Elemental"],
L["Enhancement"],
L["Restoration"],
-- Warlock
L["Affliction"],
L["Demonology"],
L["Destruction"],
-- Warrior
L["Arms"],
L["Fury"],
L["Protection"],
local classIcons = {
DRUID = "Interface\\Icons\\Ability_Druid_Maul",
HUNTER = "Interface\\Icons\\INV_Weapon_Bow_07",
MAGE = "Interface\\Icons\\INV_Staff_13",
PALADIN = "Interface\\Icons\\INV_Hammer_01",
PRIEST = "Interface\\Icons\\INV_Staff_30",
ROGUE = "Interface\\Icons\\INV_ThrowingKnife_04",
SHAMAN = "Interface\\Icons\\Spell_Nature_BloodLust",
WARLOCK = "Interface\\Icons\\Spell_Nature_FaerieFire",
WARRIOR = "Interface\\Icons\\INV_Sword_27",
DEATHKNIGHT = "Interface\\Icons\\Spell_Deathknight_ClassIcon",
}
local specs = {
DEATHKNIGHT = { L["Blood"], L["Frost"], L["Unholy"] },
DRUID = { L["Balance"], L["Feral Combat"], L["Guardian"], L["Restoration"] },
HUNTER = { L["Beast Mastery"], L["Marksmanship"], L["Survival"] },
MAGE = { L["Arcane"], L["Fire"], L["Frost"] },
PALADIN = { L["Holy"], L["Protection"], L["Retribution"] },
PRIEST = { L["Discipline"], L["Holy"], L["Shadow"] },
ROGUE = { L["Assassination"], L["Combat"], L["Subtlety"] },
SHAMAN = { L["Elemental"], L["Enhancement"], L["Restoration"] },
WARLOCK = { L["Affliction"], L["Demonology"], L["Destruction"] },
WARRIOR = { L["Arms"], L["Fury"], L["Protection"] }
}
Private.spec_types_all = {}
for class, specList in pairs(specs) do
for _, specName in ipairs(specList) do
Private.spec_types_all[class .. specName] = "|T" .. classIcons[class] .. ":0|t |c" ..
WA_GetClassColor(class) .. specName .. "|r"
end
end
Private.talent_types_specific = {}
Private.talents_ids = {
DEATHKNIGHT = {{48979,48997,49182,48978,49004,55107,48982,48987,49467,48985,49145,49015,48977,49006,49005,48988,53137,49027,49016,50365,62905,49018,55233,49189,55050,49023,61154,49028}, {49175,49455,49042,55061,49140,49226,50880,49039,51468,51123,49149,49137,49186,49471,49796,55610,49024,49188,50040,49203,50384,65661,54639,51271,49200,49143,50187,49202,49184}, {51745,48962,55129,49036,48963,49588,48965,49013,51459,49158,49146,49219,55620,49194,49220,49223,55666,49224,49208,52143,66799,51052,50391,63560,49032,49222,49217,51099,55090,50117,49206}},