Skip to content

Commit 04aa69a

Browse files
Rename Otherworldly Appendages to Cryogenesis, add new stats
3.28 replaces the old graft damage reduction stats with: - Int single highest attribute: all added damage treated as Lightning - Dex single highest attribute: all added damage treated as Cold Updated tree data (all 4 variants), added ModParser entries, single-highest-attribute conditions in CalcPerform, and flat added damage redirection in CalcOffence.
1 parent fb6cd05 commit 04aa69a

7 files changed

Lines changed: 45 additions & 26 deletions

File tree

src/Modules/CalcOffence.lua

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3047,14 +3047,35 @@ function calcs.offence(env, actor, activeSkill)
30473047

30483048
runSkillFunc("postCritFunc")
30493049

3050+
-- Check for added damage redirection (Cryogenesis)
3051+
local addedDamageRedirectType = nil
3052+
if skillModList:Flag(cfg, "AllAddedDamageAsLightning") then
3053+
addedDamageRedirectType = "Lightning"
3054+
elseif skillModList:Flag(cfg, "AllAddedDamageAsCold") then
3055+
addedDamageRedirectType = "Cold"
3056+
end
3057+
30503058
-- Calculate base hit damage
30513059
for _, damageType in ipairs(dmgTypeList) do
30523060
local damageTypeMin = damageType.."Min"
30533061
local damageTypeMax = damageType.."Max"
30543062
local baseMultiplier = activeSkill.activeEffect.grantedEffectLevel.baseMultiplier or skillData.baseMultiplier or 1
30553063
local damageEffectiveness = activeSkill.activeEffect.grantedEffectLevel.damageEffectiveness or skillData.damageEffectiveness or 1
3056-
local addedMin = skillModList:Sum("BASE", cfg, damageTypeMin) + enemyDB:Sum("BASE", cfg, "Self"..damageTypeMin)
3057-
local addedMax = skillModList:Sum("BASE", cfg, damageTypeMax) + enemyDB:Sum("BASE", cfg, "Self"..damageTypeMax)
3064+
local addedMin, addedMax
3065+
if addedDamageRedirectType then
3066+
if damageType == addedDamageRedirectType then
3067+
addedMin, addedMax = 0, 0
3068+
for _, srcType in ipairs(dmgTypeList) do
3069+
addedMin = addedMin + skillModList:Sum("BASE", cfg, srcType.."Min") + enemyDB:Sum("BASE", cfg, "Self"..srcType.."Min")
3070+
addedMax = addedMax + skillModList:Sum("BASE", cfg, srcType.."Max") + enemyDB:Sum("BASE", cfg, "Self"..srcType.."Max")
3071+
end
3072+
else
3073+
addedMin, addedMax = 0, 0
3074+
end
3075+
else
3076+
addedMin = skillModList:Sum("BASE", cfg, damageTypeMin) + enemyDB:Sum("BASE", cfg, "Self"..damageTypeMin)
3077+
addedMax = skillModList:Sum("BASE", cfg, damageTypeMax) + enemyDB:Sum("BASE", cfg, "Self"..damageTypeMax)
3078+
end
30583079
local addedMult = calcLib.mod(skillModList, cfg, "Added"..damageType.."Damage", "AddedDamage")
30593080
local baseMin = ((source[damageTypeMin] or 0) + (source[damageType.."BonusMin"] or 0)) * baseMultiplier + addedMin * damageEffectiveness * addedMult
30603081
local baseMax = ((source[damageTypeMax] or 0) + (source[damageType.."BonusMax"] or 0)) * baseMultiplier + addedMax * damageEffectiveness * addedMult

src/Modules/CalcPerform.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,8 @@ local function doActorAttribsConditions(env, actor)
395395
condList["StrHighestAttribute"] = output.Str >= output.Dex and output.Str >= output.Int
396396
condList["IntHighestAttribute"] = output.Int >= output.Str and output.Int >= output.Dex
397397
condList["DexHighestAttribute"] = output.Dex >= output.Str and output.Dex >= output.Int
398+
condList["IntSingleHighestAttribute"] = output.Int > output.Str and output.Int > output.Dex
399+
condList["DexSingleHighestAttribute"] = output.Dex > output.Str and output.Dex > output.Int
398400
end
399401
end
400402

@@ -457,6 +459,8 @@ local function doActorAttribsConditions(env, actor)
457459
condList["StrHighestAttribute"] = output.Str >= output.Dex and output.Str >= output.Int
458460
condList["IntHighestAttribute"] = output.Int >= output.Str and output.Int >= output.Dex
459461
condList["DexHighestAttribute"] = output.Dex >= output.Str and output.Dex >= output.Int
462+
condList["IntSingleHighestAttribute"] = output.Int > output.Str and output.Int > output.Dex
463+
condList["DexSingleHighestAttribute"] = output.Dex > output.Str and output.Dex > output.Int
460464
end
461465
end
462466

src/Modules/ModParser.lua

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5258,6 +5258,12 @@ local specialModList = {
52585258
["consecrated path and purifying flame create profane ground instead of consecrated ground"] = {
52595259
flag("Condition:CreateProfaneGround"),
52605260
},
5261+
["if intelligence is your single highest attribute, all added damage is treated as added lightning damage"] = {
5262+
flag("AllAddedDamageAsLightning", { type = "Condition", var = "IntSingleHighestAttribute" }),
5263+
},
5264+
["if dexterity is your single highest attribute, all added damage is treated as added cold damage"] = {
5265+
flag("AllAddedDamageAsCold", { type = "Condition", var = "DexSingleHighestAttribute" }),
5266+
},
52615267
["you have consecrated ground around you while stationary if strength is your highest attribute"] = {
52625268
flag("Condition:OnConsecratedGround", { type = "Condition", var = "StrHighestAttribute" }, { type = "Condition", var = "Stationary" }),
52635269
},

src/TreeData/3_27/tree.lua

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14450,17 +14450,14 @@ return {
1445014450
},
1445114451
[52855]= {
1445214452
["skill"]= 52855,
14453-
["name"]= "Otherworldly Appendages",
14453+
["name"]= "Cryogenesis",
1445414454
["icon"]= "Art/2DArt/SkillIcons/passives/AtlasTrees/BreachNotable4.png",
1445514455
["isNotable"]= true,
1445614456
["ascendancyName"]= "Breachlord",
1445714457
["isBloodline"]= true,
1445814458
["stats"]= {
14459-
"Take 15% less Lightning Damage with at least one Eshgraft grafted to you",
14460-
"Take 15% less Cold Damage with at least one Tulgraft grafted to you",
14461-
"Take 15% less Physical Damage with at least one Uulgraft grafted to you",
14462-
"Take 15% less Fire Damage with at least one Xophgraft grafted to you",
14463-
"Nearby Enemies take 100% increased Damage from Graft Skills"
14459+
"If Intelligence is your single highest Attribute, all added Damage is treated as added Lightning Damage",
14460+
"If Dexterity is your single highest Attribute, all added Damage is treated as added Cold Damage"
1446414461
},
1446514462
["group"]= 26,
1446614463
["orbit"]= 3,

src/TreeData/3_27_alternate/tree.lua

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15057,17 +15057,14 @@ return {
1505715057
},
1505815058
[52855]= {
1505915059
["skill"]= 52855,
15060-
["name"]= "Otherworldly Appendages",
15060+
["name"]= "Cryogenesis",
1506115061
["icon"]= "Art/2DArt/SkillIcons/passives/AtlasTrees/BreachNotable4.png",
1506215062
["isNotable"]= true,
1506315063
["ascendancyName"]= "Breachlord",
1506415064
["isBloodline"]= true,
1506515065
["stats"]= {
15066-
"Take 15% less Lightning Damage with at least one Eshgraft grafted to you",
15067-
"Take 15% less Cold Damage with at least one Tulgraft grafted to you",
15068-
"Take 15% less Physical Damage with at least one Uulgraft grafted to you",
15069-
"Take 15% less Fire Damage with at least one Xophgraft grafted to you",
15070-
"Nearby Enemies take 100% increased Damage from Graft Skills"
15066+
"If Intelligence is your single highest Attribute, all added Damage is treated as added Lightning Damage",
15067+
"If Dexterity is your single highest Attribute, all added Damage is treated as added Cold Damage"
1507115068
},
1507215069
["group"]= 31,
1507315070
["orbit"]= 3,

src/TreeData/3_27_ruthless/tree.lua

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14438,17 +14438,14 @@ return {
1443814438
},
1443914439
[52855]= {
1444014440
["skill"]= 52855,
14441-
["name"]= "Otherworldly Appendages",
14441+
["name"]= "Cryogenesis",
1444214442
["icon"]= "Art/2DArt/SkillIcons/passives/AtlasTrees/BreachNotable4.png",
1444314443
["isNotable"]= true,
1444414444
["ascendancyName"]= "Breachlord",
1444514445
["isBloodline"]= true,
1444614446
["stats"]= {
14447-
"Take 15% less Lightning Damage with at least one Eshgraft grafted to you",
14448-
"Take 15% less Cold Damage with at least one Tulgraft grafted to you",
14449-
"Take 15% less Physical Damage with at least one Uulgraft grafted to you",
14450-
"Take 15% less Fire Damage with at least one Xophgraft grafted to you",
14451-
"Nearby Enemies take 100% increased Damage from Graft Skills"
14447+
"If Intelligence is your single highest Attribute, all added Damage is treated as added Lightning Damage",
14448+
"If Dexterity is your single highest Attribute, all added Damage is treated as added Cold Damage"
1445214449
},
1445314450
["group"]= 26,
1445414451
["orbit"]= 3,

src/TreeData/3_27_ruthless_alternate/tree.lua

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15058,17 +15058,14 @@ return {
1505815058
},
1505915059
[52855]= {
1506015060
["skill"]= 52855,
15061-
["name"]= "Otherworldly Appendages",
15061+
["name"]= "Cryogenesis",
1506215062
["icon"]= "Art/2DArt/SkillIcons/passives/AtlasTrees/BreachNotable4.png",
1506315063
["isNotable"]= true,
1506415064
["ascendancyName"]= "Breachlord",
1506515065
["isBloodline"]= true,
1506615066
["stats"]= {
15067-
"Take 15% less Lightning Damage with at least one Eshgraft grafted to you",
15068-
"Take 15% less Cold Damage with at least one Tulgraft grafted to you",
15069-
"Take 15% less Physical Damage with at least one Uulgraft grafted to you",
15070-
"Take 15% less Fire Damage with at least one Xophgraft grafted to you",
15071-
"Nearby Enemies take 100% increased Damage from Graft Skills"
15067+
"If Intelligence is your single highest Attribute, all added Damage is treated as added Lightning Damage",
15068+
"If Dexterity is your single highest Attribute, all added Damage is treated as added Cold Damage"
1507215069
},
1507315070
["group"]= 31,
1507415071
["orbit"]= 3,

0 commit comments

Comments
 (0)