Skip to content

Commit dfcb650

Browse files
Add support for Witchhunter's Sorcery Ward and Ceremonial Ablution (#1963)
* add support for Sorcery Ward aegis calcs and Ceremonial Ablution * clean up * percentStat * export * better parsing and restriction * clean up --------- Co-authored-by: LocalIdentity <31035929+LocalIdentity@users.noreply.github.com>
1 parent cee77f2 commit dfcb650

5 files changed

Lines changed: 34 additions & 3 deletions

File tree

src/Classes/SkillsTab.lua

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,19 @@ local SkillsTabClass = newClass("SkillsTab", "UndoHandler", "ControlHost", "Cont
184184
self:AddUndoState()
185185
self.build.buildFlag = true
186186
end)
187+
self.controls.groupEnabled.tooltipFunc = function(tooltip)
188+
if tooltip:CheckForUpdate(self.build.outputRevision, self.displayGroup) then
189+
if self.displayGroup then
190+
local calcFunc, calcBase = self.build.calcsTab:GetMiscCalculator(self.build)
191+
if calcFunc then
192+
self.displayGroup.enabled = not self.displayGroup.enabled
193+
local output = calcFunc()
194+
self.displayGroup.enabled = not self.displayGroup.enabled
195+
self.build:AddStatComparesToTooltip(tooltip, calcBase, output, self.displayGroup.enabled and "^7Disabling this group will give you:" or "^7Enabling this group will give you:")
196+
end
197+
end
198+
end
199+
end
187200
self.controls.includeInFullDPS = new("CheckBoxControl", { "LEFT", self.controls.groupEnabled, "RIGHT" }, { 145, 0, 20 }, "Include in Full DPS:", function(state)
188201
self.displayGroup.includeInFullDPS = state
189202
self:AddUndoState()

src/Data/ModCache.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5320,7 +5320,7 @@ c["Grants Skill: Ruzhan's Reckoning"]={nil,nil}
53205320
c["Grants Skill: Ruzhan's Trap"]={nil,nil}
53215321
c["Grants Skill: Ruzhan, the Blazing Sword"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="SummonFireDjinnPlayer"}}},nil}
53225322
c["Grants Skill: Shattering Concoction"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="ShatteringConcoctionPlayer"}}},nil}
5323-
c["Grants Skill: Sorcery Ward"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="SorceryWardPlayer"}}},nil}
5323+
c["Grants Skill: Sorcery Ward"]={{[1]={flags=0,keywordFlags=0,name="Condition:SorceryWard",type="FLAG",value=true},[2]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="SorceryWardPlayer"}}},nil}
53245324
c["Grants Skill: Spear Throw"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="SpearThrowPlayer"}}},nil}
53255325
c["Grants Skill: Summon Infernal Hound"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="SummonInfernalHoundPlayer"}}},nil}
53265326
c["Grants Skill: Supporting Fire"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="SupportingFirePlayer"}}},nil}
@@ -6044,7 +6044,7 @@ c["Skills which require Glory generate 5 Glory every 2 seconds Enemies in your P
60446044
c["Slam Skills have 8% increased Area of Effect"]={{[1]={[1]={skillType=93,type="SkillType"},flags=0,keywordFlags=0,name="AreaOfEffect",type="INC",value=8}},nil}
60456045
c["Slam Skills you use yourself cause an additional Aftershock"]={nil,"Slam Skills you use yourself cause an additional Aftershock "}
60466046
c["Slam Skills you use yourself have 30% increased Aftershock Area of Effect"]={nil,"Slam Skills you use yourself have 30% increased Aftershock Area of Effect "}
6047-
c["Sorcery Ward's Barrier can also take Physical and Chaos Damage from Hits"]={nil,"Sorcery Ward's Barrier can also take Physical and Chaos Damage from Hits "}
6047+
c["Sorcery Ward's Barrier can also take Physical and Chaos Damage from Hits"]={{[1]={flags=0,keywordFlags=0,name="Condition:CeremonialAblution",type="FLAG",value=true}},nil}
60486048
c["Soul Eater"]={{[1]={flags=0,keywordFlags=0,name="Condition:CanHaveSoulEater",type="FLAG",value=true}},nil}
60496049
c["Spear Skills inflict a Bloodstone Lance on Hit, up to a maximum of 30 on each target"]={nil,"Spear Skills inflict a Bloodstone Lance on Hit, up to a maximum of 30 on each target "}
60506050
c["Spell Skills have 10% reduced Area of Effect"]={{[1]={flags=0,keywordFlags=131072,name="AreaOfEffect",type="INC",value=-10}},nil}

src/Data/Skills/other.lua

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7478,6 +7478,12 @@ skills["SorceryWardPlayer"] = {
74787478
label = "Sorcery Ward",
74797479
incrementalEffectiveness = 0.054999999701977,
74807480
statDescriptionScope = "sorcery_ward",
7481+
statMap = {
7482+
["aegis_unique_shield_max_value_from_%_armour_evasion"] = {
7483+
mod("ElementalAegisValue", "MAX", nil, 0, 0, { type = "Condition", var = "SorceryWard" }, { type = "Condition", var = "CeremonialAblution", neg = true }, { type = "PercentStat", statList = { "Armour", "Evasion" }, percent = 1 }, { type = "GlobalEffect", effectType = "Buff" }),
7484+
mod("AegisValue", "MAX", nil, 0, 0, { type = "Condition", var = "SorceryWard" }, { type = "Condition", var = "CeremonialAblution" }, { type = "PercentStat", statList = { "Armour", "Evasion" }, percent = 1 }, { type = "GlobalEffect", effectType = "Buff" }),
7485+
},
7486+
},
74817487
baseFlags = {
74827488
},
74837489
constantStats = {

src/Export/Skills/other.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,12 @@ statMap = {
524524
#skill SorceryWardPlayer
525525
#set SorceryWardPlayer
526526
#flags
527+
statMap = {
528+
["aegis_unique_shield_max_value_from_%_armour_evasion"] = {
529+
mod("ElementalAegisValue", "MAX", nil, 0, 0, { type = "Condition", var = "SorceryWard" }, { type = "Condition", var = "CeremonialAblution", neg = true }, { type = "PercentStat", statList = { "Armour", "Evasion" }, percent = 1 }, { type = "GlobalEffect", effectType = "Buff" }),
530+
mod("AegisValue", "MAX", nil, 0, 0, { type = "Condition", var = "SorceryWard" }, { type = "Condition", var = "CeremonialAblution" }, { type = "PercentStat", statList = { "Armour", "Evasion" }, percent = 1 }, { type = "GlobalEffect", effectType = "Buff" }),
531+
},
532+
},
527533
#mods
528534
#skillEnd
529535

src/Modules/ModParser.lua

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3212,7 +3212,13 @@ local specialModList = {
32123212
mod("Multiplier:MainHandDamageToAllies", "BASE", num),
32133213
} end,
32143214
["projectile damage builds pin"] = { flag("CanPin", nil, ModFlag.Projectile) },
3215-
["totems you place grant embankment auras"] = { flag("Condition:StrategicEmbankments") },
3215+
["totems you place grant embankment auras"] = { flag("Condition:StrategicEmbankments") },
3216+
-- Witchhunter
3217+
["grants skill: sorcery ward"] = {
3218+
flag("Condition:SorceryWard"),
3219+
mod("ExtraSkill", "LIST", { skillId = "SorceryWardPlayer", level = 1 }),
3220+
},
3221+
["sorcery ward's barrier can also take physical and chaos damage from hits"] = { flag("Condition:CeremonialAblution") },
32163222
-- Warrior - Smith of Kitava
32173223
["body armour grants armour also applies to (%a+) damage taken from hits"] = function(_, dmgType) return {
32183224
mod("ArmourAppliesTo"..firstToUpper(dmgType).."DamageTaken", "BASE", 100, { type = "ItemCondition", itemSlot = "Body Armour", rarityCond = "NORMAL" })

0 commit comments

Comments
 (0)