From 8bb5990fad86ed471e3b8be20b3f86b3bc61f714 Mon Sep 17 00:00:00 2001 From: NoM0Re Date: Sun, 12 Jan 2025 18:20:40 +0100 Subject: [PATCH] from retail --- WeakAuras/Modernize.lua | 16 +++++++-- WeakAuras/Prototypes.lua | 75 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 2 deletions(-) diff --git a/WeakAuras/Modernize.lua b/WeakAuras/Modernize.lua index 2c6aa5e..528fcbd 100644 --- a/WeakAuras/Modernize.lua +++ b/WeakAuras/Modernize.lua @@ -1324,6 +1324,20 @@ function Private.Modernize(data) "rangedhasterating_operator", "spellhasterating", "spellhasterating_operator", + "spellpenpercent", + "spellpenpercent_operator", + "armorpenpercent", + "armorpenpercent_operator", + "armorpenrating", + "armorpenrating_operator", + "resiliencerating", + "resiliencerating_operator", + "resiliencepercent", + "resiliencepercent_operator", + "expertisebonus", + "expertisebonus_operator", + "expertiserating", + "expertiserating_operator", "resistancefire", "resistancefire_operator", "resistancenature", @@ -1371,9 +1385,7 @@ function Private.Modernize(data) }, ["Location"] = { "zone", - "zone_operator", "subzone", - "subzone_operator", } } for _, triggerData in ipairs(data.triggers) do diff --git a/WeakAuras/Prototypes.lua b/WeakAuras/Prototypes.lua index c035585..1120dcc 100644 --- a/WeakAuras/Prototypes.lua +++ b/WeakAuras/Prototypes.lua @@ -6520,6 +6520,81 @@ Private.event_prototypes = { limit = 2 }, }, + { + name = "expertiserating", + display = L["Expertise Rating"], + type = "number", + init = "GetCombatRating(CR_EXPERTISE)", + store = true, + conditionType = "number", + }, + { + name = "expertisebonus", + display = L["Expertise Bonus"], + type = "number", + init = "GetCombatRatingBonus(CR_EXPERTISE)", + store = true, + conditionType = "number", + }, + { + name = "armorpenrating", + display = L["Armor Peneration Rating"], + type = "number", + init = "GetCombatRating(CR_ARMOR_PENETRATION)", + store = true, + conditionType = "number", + }, + { + name = "armorpenpercent", + display = L["Armor Peneration Percent"], + type = "number", + init = "GetArmorPenetration()", + store = true, + conditionType = "number", + }, + { + name = "resiliencerating", + display = L["Resilience Rating"], + type = "number", + init = [[ + local melee = GetCombatRating(CR_CRIT_TAKEN_MELEE); + local ranged = GetCombatRating(CR_CRIT_TAKEN_RANGED); + local spell = GetCombatRating(CR_CRIT_TAKEN_SPELL); + return math.min(melee, ranged, spell); + ]], + store = true, + conditionType = "number", + }, + { + name = "resiliencepercent", + display = L["Resilience Percent"], + type = "number", + init = [[ + local ratings = { + melee = {value = GetCombatRating(CR_CRIT_TAKEN_MELEE), ratingType = CR_CRIT_TAKEN_MELEE}, + ranged = {value = GetCombatRating(CR_CRIT_TAKEN_RANGED), ratingType = CR_CRIT_TAKEN_RANGED}, + spell = {value = GetCombatRating(CR_CRIT_TAKEN_SPELL), ratingType = CR_CRIT_TAKEN_SPELL}, + }; + local lowest = ratings.melee; + if ratings.ranged.value < lowest.value then + lowest = ratings.ranged; + end + if ratings.spell.value < lowest.value then + lowest = ratings.spell; + end + return GetCombatRatingBonus(lowest.ratingType); + ]], + store = true, + conditionType = "number", + }, + { + name = "spellpenpercent", + display = L["Spell Peneration Percent"], + type = "number", + init = "GetSpellPenetration()", + store = true, + conditionType = "number", + }, { type = "header", name = "resistanceHeader",