Skip to content

Commit 9c711e0

Browse files
author
LocalIdentity
committed
Khatals Blessing
Change mod to be auto calced from highest flask charge life flask Also only applies when you have a life flask and if it's an attack
1 parent 0981c41 commit 9c711e0

5 files changed

Lines changed: 9 additions & 5 deletions

File tree

src/Data/ModCache.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10196,7 +10196,7 @@ c["On Killing a Poisoned Enemy, nearby Enemies are Poisoned"]={nil,"On Killing a
1019610196
c["On Killing a Poisoned Enemy, nearby Enemies are Poisoned and nearby Allies Regenerate 200 Life per second"]={nil,"On Killing a Poisoned Enemy, nearby Enemies are Poisoned and nearby Allies Regenerate 200 Life per second "}
1019710197
c["On Killing a Rare monster, a random Linked Minion gains its Modifiers for 60 seconds"]={nil,"On Killing a Rare monster, a random Linked Minion gains its Modifiers for 60 seconds "}
1019810198
c["On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50%"]={nil,"On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50% "}
10199-
c["On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50% For each Charge removed this way, that Attack gains +2% to Damage over time Multiplier"]={{[1]={[1]={type="Multiplier",var="KhatalsFlaskChargesRemoved"},[2]={neg=true,skillType=57,type="SkillType"},flags=0,keywordFlags=0,name="DotMultiplier",type="BASE",value=2}},nil}
10199+
c["On non-channelling Attack, set a Life Flask with greater than 50% of maximum Charges remaining to 50% For each Charge removed this way, that Attack gains +2% to Damage over time Multiplier"]={{[1]={[1]={floor=true,percent=50,stat="LifeFlaskCharges",type="PercentStat"},[2]={neg=true,skillType=57,type="SkillType"},[3]={skillType=1,type="SkillType"},flags=0,keywordFlags=0,name="DotMultiplier",type="BASE",value=2}},nil}
1020010200
c["Only affects Passives in Large Ring"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="radiusIndex",value=8}}},nil}
1020110201
c["Only affects Passives in Massive Ring"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="radiusIndex",value=10}}},nil}
1020210202
c["Only affects Passives in Medium Ring"]={{[1]={flags=0,keywordFlags=0,name="JewelData",type="LIST",value={key="radiusIndex",value=7}}},nil}

src/Modules/CalcOffence.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,7 @@ function calcs.offence(env, actor, activeSkill)
526526

527527
-- set flask scaling
528528
output.LifeFlaskRecovery = env.itemModDB.multipliers["LifeFlaskRecovery"]
529+
output.LifeFlaskCharges = env.itemModDB.multipliers["LifeFlaskCharges"]
529530

530531
if modDB.conditions["AffectedByEnergyBlade"] then
531532
local dmgMod = calcLib.mod(skillModList, skillCfg, "EnergyBladeDamage")

src/Modules/CalcSetup.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -871,9 +871,13 @@ function calcs.initEnv(build, mode, override, specEnv)
871871
end
872872
if item.base.subType == "Life" then
873873
local highestLifeRecovery = env.itemModDB.multipliers["LifeFlaskRecovery"] or 0
874+
local highestCharges = env.itemModDB.multipliers["LifeFlaskCharges"] or 0
874875
if item.flaskData.lifeTotal > highestLifeRecovery then
875876
env.itemModDB.multipliers["LifeFlaskRecovery"] = item.flaskData.lifeTotal
876877
end
878+
if item.flaskData.chargesMax > highestCharges then
879+
env.itemModDB.multipliers["LifeFlaskCharges"] = item.flaskData.chargesMax
880+
end
877881
end
878882
item = nil
879883
elseif item and item.type == "Tincture" then

src/Modules/ConfigOptions.lua

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1889,9 +1889,6 @@ Huge sets the radius to 11.
18891889
{ var = "conditionEnemyLightningResZero", type = "check", label = "Enemy hit you with ^xADAA47Light. Damage^7?", ifFlag = "Condition:HaveTrickstersSmile", tooltip = "This option sets whether or not the enemy has hit you with ^xADAA47Lightning Damage^7 in the last 4 seconds.", apply = function(val, modList, enemyModList)
18901890
enemyModList:NewMod("LightningResist", "OVERRIDE", 0, "Config", { type = "Condition", var = "Effective"}, { type = "ActorCondition", actor = "enemy", var = "HaveTrickstersSmile" })
18911891
end },
1892-
{ var = "multiplierKhatalsFlaskChargesRemoved", type = "count", label = "Khatal's Weeping # of Flask Charges removed:", ifMult = "KhatalsFlaskChargesRemoved", apply = function(val, modList, enemyModList)
1893-
modList:NewMod("Multiplier:KhatalsFlaskChargesRemoved", "BASE", val, "Config", { type = "Condition", var = "Effective" })
1894-
end },
18951892
{ var = "maniaDebuffsCount", type = "countAllowZero", label = "# of Mania Stacks", ifFlag = "Condition:CanInflictMania", defaultState = 15, tooltip = "Mania Stacks apply:\n\t4% inc Damage Taken per stack\n\t2% reduced Action Speed per stack\n\t10% reduced ^xE05030Life ^7and ^x88FFFFEnergy Shield ^7Recovery Rate per stack", apply = function(val, modList, enemyModList)
18961893
val = m_min(val, 15)
18971894
enemyModList:NewMod("DamageTaken", "INC", val * 4, val.." Mania Stacks", { type = "GlobalEffect", effectType = "Debuff" }, { type = "Condition", var = "AfflictedByMania" })

src/Modules/ModParser.lua

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3341,7 +3341,9 @@ local specialModList = {
33413341
["gain a flask charge when you deal a critical strike"] = { mod("FlaskChargeOnCritChance", "BASE", 100) },
33423342
["gain a flask charge when you deal a critical strike while affected by precision"] = { mod("FlaskChargeOnCritChance", "BASE", 100, { type = "Condition", var = "AffectedByPrecision" }) },
33433343
["gain a flask charge when you deal a critical strike while at maximum frenzy charges"] = { mod("FlaskChargeOnCritChance", "BASE", 100, { type = "StatThreshold", stat = "FrenzyCharges", thresholdStat = "FrenzyChargesMax" }) },
3344-
["on non%-channelling attack, set a life flask with greater than %d+%% of maximum charges remaining to %d+%% for each charge removed this way, that attack gains %+(%d+)%% to damage over time multiplier"] = function(num) return{ mod("DotMultiplier", "BASE", num, { type = "Multiplier", var = "KhatalsFlaskChargesRemoved" }, { type = "SkillType", skillType = SkillType.Channel, neg = true }) } end,
3344+
["on non%-channelling attack, set a life flask with greater than %d+%% of maximum charges remaining to (%d+)%% for each charge removed this way, that attack gains %+(%d+)%% to damage over time multiplier"] = function(chargesConsumedPercent, _, damage) return {
3345+
mod("DotMultiplier", "BASE", tonumber(damage), { type = "PercentStat", stat = "LifeFlaskCharges", percent = 100 - chargesConsumedPercent, floor = true }, { type = "SkillType", skillType = SkillType.Channel, neg = true }, { type = "SkillType", skillType = SkillType.Attack })
3346+
} end,
33453347
["enemies poisoned by you cannot deal critical strikes"] = { mod("EnemyModifier", "LIST", { mod = flag("NeverCrit", { type = "Condition", var = "Poisoned" }) }), mod("EnemyModifier", "LIST", { mod = flag("Condition:NeverCrit", { type = "Condition", var = "Poisoned" })}) },
33463348
["marked enemy cannot deal critical strikes"] = { mod("EnemyModifier", "LIST", { mod = flag("NeverCrit", { type = "Condition", var = "Marked" }) }), mod("EnemyModifier", "LIST", { mod = flag("Condition:NeverCrit", { type = "Condition", var = "Marked" })}) },
33473349
["marked enemy cannot evade attacks"] = { mod("EnemyModifier", "LIST", { mod = flag("CannotEvade", { type = "Condition", var = "Marked" }) }) },

0 commit comments

Comments
 (0)