diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index c89a4200fd..157399ab62 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -3047,14 +3047,35 @@ function calcs.offence(env, actor, activeSkill) runSkillFunc("postCritFunc") + -- Check for added damage redirection (Cryogenesis) + local addedDamageRedirectType = nil + if skillModList:Flag(cfg, "AllAddedDamageAsLightning") then + addedDamageRedirectType = "Lightning" + elseif skillModList:Flag(cfg, "AllAddedDamageAsCold") then + addedDamageRedirectType = "Cold" + end + -- Calculate base hit damage for _, damageType in ipairs(dmgTypeList) do local damageTypeMin = damageType.."Min" local damageTypeMax = damageType.."Max" local baseMultiplier = activeSkill.activeEffect.grantedEffectLevel.baseMultiplier or skillData.baseMultiplier or 1 local damageEffectiveness = activeSkill.activeEffect.grantedEffectLevel.damageEffectiveness or skillData.damageEffectiveness or 1 - local addedMin = skillModList:Sum("BASE", cfg, damageTypeMin) + enemyDB:Sum("BASE", cfg, "Self"..damageTypeMin) - local addedMax = skillModList:Sum("BASE", cfg, damageTypeMax) + enemyDB:Sum("BASE", cfg, "Self"..damageTypeMax) + local addedMin, addedMax + if addedDamageRedirectType then + if damageType == addedDamageRedirectType then + addedMin, addedMax = 0, 0 + for _, srcType in ipairs(dmgTypeList) do + addedMin = addedMin + skillModList:Sum("BASE", cfg, srcType.."Min") + enemyDB:Sum("BASE", cfg, "Self"..srcType.."Min") + addedMax = addedMax + skillModList:Sum("BASE", cfg, srcType.."Max") + enemyDB:Sum("BASE", cfg, "Self"..srcType.."Max") + end + else + addedMin, addedMax = 0, 0 + end + else + addedMin = skillModList:Sum("BASE", cfg, damageTypeMin) + enemyDB:Sum("BASE", cfg, "Self"..damageTypeMin) + addedMax = skillModList:Sum("BASE", cfg, damageTypeMax) + enemyDB:Sum("BASE", cfg, "Self"..damageTypeMax) + end local addedMult = calcLib.mod(skillModList, cfg, "Added"..damageType.."Damage", "AddedDamage") local baseMin = ((source[damageTypeMin] or 0) + (source[damageType.."BonusMin"] or 0)) * baseMultiplier + addedMin * damageEffectiveness * addedMult local baseMax = ((source[damageTypeMax] or 0) + (source[damageType.."BonusMax"] or 0)) * baseMultiplier + addedMax * damageEffectiveness * addedMult diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 05b2d161b5..a4a7745fd1 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -395,6 +395,8 @@ local function doActorAttribsConditions(env, actor) condList["StrHighestAttribute"] = output.Str >= output.Dex and output.Str >= output.Int condList["IntHighestAttribute"] = output.Int >= output.Str and output.Int >= output.Dex condList["DexHighestAttribute"] = output.Dex >= output.Str and output.Dex >= output.Int + condList["IntSingleHighestAttribute"] = output.Int > output.Str and output.Int > output.Dex + condList["DexSingleHighestAttribute"] = output.Dex > output.Str and output.Dex > output.Int end end @@ -457,6 +459,8 @@ local function doActorAttribsConditions(env, actor) condList["StrHighestAttribute"] = output.Str >= output.Dex and output.Str >= output.Int condList["IntHighestAttribute"] = output.Int >= output.Str and output.Int >= output.Dex condList["DexHighestAttribute"] = output.Dex >= output.Str and output.Dex >= output.Int + condList["IntSingleHighestAttribute"] = output.Int > output.Str and output.Int > output.Dex + condList["DexSingleHighestAttribute"] = output.Dex > output.Str and output.Dex > output.Int end end diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index fd91130b3e..16062c62f1 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -5258,6 +5258,12 @@ local specialModList = { ["consecrated path and purifying flame create profane ground instead of consecrated ground"] = { flag("Condition:CreateProfaneGround"), }, + ["if intelligence is your single highest attribute, all added damage is treated as added lightning damage"] = { + flag("AllAddedDamageAsLightning", { type = "Condition", var = "IntSingleHighestAttribute" }), + }, + ["if dexterity is your single highest attribute, all added damage is treated as added cold damage"] = { + flag("AllAddedDamageAsCold", { type = "Condition", var = "DexSingleHighestAttribute" }), + }, ["you have consecrated ground around you while stationary if strength is your highest attribute"] = { flag("Condition:OnConsecratedGround", { type = "Condition", var = "StrHighestAttribute" }, { type = "Condition", var = "Stationary" }), }, diff --git a/src/TreeData/3_27/tree.lua b/src/TreeData/3_27/tree.lua index 6f3f9332e3..e9216e971e 100644 --- a/src/TreeData/3_27/tree.lua +++ b/src/TreeData/3_27/tree.lua @@ -14450,17 +14450,14 @@ return { }, [52855]= { ["skill"]= 52855, - ["name"]= "Otherworldly Appendages", + ["name"]= "Cryogenesis", ["icon"]= "Art/2DArt/SkillIcons/passives/AtlasTrees/BreachNotable4.png", ["isNotable"]= true, ["ascendancyName"]= "Breachlord", ["isBloodline"]= true, ["stats"]= { - "Take 15% less Lightning Damage with at least one Eshgraft grafted to you", - "Take 15% less Cold Damage with at least one Tulgraft grafted to you", - "Take 15% less Physical Damage with at least one Uulgraft grafted to you", - "Take 15% less Fire Damage with at least one Xophgraft grafted to you", - "Nearby Enemies take 100% increased Damage from Graft Skills" + "If Intelligence is your single highest Attribute, all added Damage is treated as added Lightning Damage", + "If Dexterity is your single highest Attribute, all added Damage is treated as added Cold Damage" }, ["group"]= 26, ["orbit"]= 3, diff --git a/src/TreeData/3_27_alternate/tree.lua b/src/TreeData/3_27_alternate/tree.lua index 3589c96d75..7f8d2335d8 100644 --- a/src/TreeData/3_27_alternate/tree.lua +++ b/src/TreeData/3_27_alternate/tree.lua @@ -15057,17 +15057,14 @@ return { }, [52855]= { ["skill"]= 52855, - ["name"]= "Otherworldly Appendages", + ["name"]= "Cryogenesis", ["icon"]= "Art/2DArt/SkillIcons/passives/AtlasTrees/BreachNotable4.png", ["isNotable"]= true, ["ascendancyName"]= "Breachlord", ["isBloodline"]= true, ["stats"]= { - "Take 15% less Lightning Damage with at least one Eshgraft grafted to you", - "Take 15% less Cold Damage with at least one Tulgraft grafted to you", - "Take 15% less Physical Damage with at least one Uulgraft grafted to you", - "Take 15% less Fire Damage with at least one Xophgraft grafted to you", - "Nearby Enemies take 100% increased Damage from Graft Skills" + "If Intelligence is your single highest Attribute, all added Damage is treated as added Lightning Damage", + "If Dexterity is your single highest Attribute, all added Damage is treated as added Cold Damage" }, ["group"]= 31, ["orbit"]= 3, diff --git a/src/TreeData/3_27_ruthless/tree.lua b/src/TreeData/3_27_ruthless/tree.lua index 6ea05e0d86..b8b41268d6 100644 --- a/src/TreeData/3_27_ruthless/tree.lua +++ b/src/TreeData/3_27_ruthless/tree.lua @@ -14438,17 +14438,14 @@ return { }, [52855]= { ["skill"]= 52855, - ["name"]= "Otherworldly Appendages", + ["name"]= "Cryogenesis", ["icon"]= "Art/2DArt/SkillIcons/passives/AtlasTrees/BreachNotable4.png", ["isNotable"]= true, ["ascendancyName"]= "Breachlord", ["isBloodline"]= true, ["stats"]= { - "Take 15% less Lightning Damage with at least one Eshgraft grafted to you", - "Take 15% less Cold Damage with at least one Tulgraft grafted to you", - "Take 15% less Physical Damage with at least one Uulgraft grafted to you", - "Take 15% less Fire Damage with at least one Xophgraft grafted to you", - "Nearby Enemies take 100% increased Damage from Graft Skills" + "If Intelligence is your single highest Attribute, all added Damage is treated as added Lightning Damage", + "If Dexterity is your single highest Attribute, all added Damage is treated as added Cold Damage" }, ["group"]= 26, ["orbit"]= 3, diff --git a/src/TreeData/3_27_ruthless_alternate/tree.lua b/src/TreeData/3_27_ruthless_alternate/tree.lua index 1d126324c5..42a4b7938f 100644 --- a/src/TreeData/3_27_ruthless_alternate/tree.lua +++ b/src/TreeData/3_27_ruthless_alternate/tree.lua @@ -15058,17 +15058,14 @@ return { }, [52855]= { ["skill"]= 52855, - ["name"]= "Otherworldly Appendages", + ["name"]= "Cryogenesis", ["icon"]= "Art/2DArt/SkillIcons/passives/AtlasTrees/BreachNotable4.png", ["isNotable"]= true, ["ascendancyName"]= "Breachlord", ["isBloodline"]= true, ["stats"]= { - "Take 15% less Lightning Damage with at least one Eshgraft grafted to you", - "Take 15% less Cold Damage with at least one Tulgraft grafted to you", - "Take 15% less Physical Damage with at least one Uulgraft grafted to you", - "Take 15% less Fire Damage with at least one Xophgraft grafted to you", - "Nearby Enemies take 100% increased Damage from Graft Skills" + "If Intelligence is your single highest Attribute, all added Damage is treated as added Lightning Damage", + "If Dexterity is your single highest Attribute, all added Damage is treated as added Cold Damage" }, ["group"]= 31, ["orbit"]= 3,