diff --git a/src/Data/Skills/act_dex.lua b/src/Data/Skills/act_dex.lua index c9877de2e7..cbde4d9800 100644 --- a/src/Data/Skills/act_dex.lua +++ b/src/Data/Skills/act_dex.lua @@ -9121,7 +9121,10 @@ skills["VoltaicMarkPlayer"] = { statDescriptionScope = "thaumaturgist_mark", statMap = { ["thaumaturgist_mark_enemies_shocked_chance_+%_final"] = { - mod("EnemyShockChance", "MORE", nil, 0, 0, { type = "GlobalEffect", effectType = "Curse" }), + mod("SelfShockChance", "MORE", nil, 0, 0, { type = "GlobalEffect", effectType = "Curse" }), + }, + ["thaumaturgist_mark_enemy_shock_effect_+%_taken"] = { + mod("SelfShockMagnitude", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Curse" }), }, }, baseFlags = { diff --git a/src/Export/Skills/act_dex.txt b/src/Export/Skills/act_dex.txt index d811cbf6b0..a547a6b47f 100644 --- a/src/Export/Skills/act_dex.txt +++ b/src/Export/Skills/act_dex.txt @@ -609,7 +609,10 @@ statMap = { #flags spell statMap = { ["thaumaturgist_mark_enemies_shocked_chance_+%_final"] = { - mod("EnemyShockChance", "MORE", nil, 0, 0, { type = "GlobalEffect", effectType = "Curse" }), + mod("SelfShockChance", "MORE", nil, 0, 0, { type = "GlobalEffect", effectType = "Curse" }), + }, + ["thaumaturgist_mark_enemy_shock_effect_+%_taken"] = { + mod("SelfShockMagnitude", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Curse" }), }, }, #mods diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index 42a348a894..b663671711 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -4640,8 +4640,8 @@ function calcs.offence(env, actor, activeSkill) local hitAvg = hitMin + (hitMax - hitMin) / 2 local critAvg = critMin + (critMax - critMin) / 2 local base = skillModList:Sum("BASE", cfg, "Enemy"..ailment.."Chance", "AilmentChance") + enemyDB:Sum("BASE", nil, "Self"..ailment.."Chance") - local inc = skillModList:Sum("INC", cfg, "Enemy"..ailment.."Chance", "AilmentChance") - local more = skillModList:More(cfg, "Enemy"..ailment.."Chance", "AilmentChance") + local inc = skillModList:Sum("INC", cfg, "Enemy"..ailment.."Chance", "AilmentChance") + enemyDB:Sum("INC", nil, "Self"..ailment.."Chance") + local more = skillModList:More(cfg, "Enemy"..ailment.."Chance", "AilmentChance") * enemyDB:More(nil, "Self"..ailment.."Chance") local hitElementalAilmentChance = hitAvg / enemyThreshold * data.gameConstants[ailment .. "ChanceMultiplier"] hitElementalAilmentChance = (hitElementalAilmentChance + base) * (1 + inc / 100) * more local critElementalAilmentChance = critAvg / enemyThreshold * data.gameConstants[ailment .. "ChanceMultiplier"] @@ -4742,7 +4742,7 @@ function calcs.offence(env, actor, activeSkill) local incDur = skillModList:Sum("INC", cfg, "Enemy"..ailment.."Duration", "EnemyElementalAilmentDuration", "EnemyAilmentDuration") + enemyDB:Sum("INC", nil, "Self"..ailment.."Duration", "SelfElementalAilmentDuration", "SelfAilmentDuration") local moreDur = skillModList:More(cfg, "Enemy"..ailment.."Duration", "EnemyElementalAilmentDuration", "EnemyAilmentDuration") * enemyDB:More(nil, "Self"..ailment.."Duration", "SelfElementalAilmentDuration", "SelfAilmentDuration") output[ailment.."Duration"] = ailmentData[ailment].duration * (1 + incDur / 100) * moreDur * debuffDurationMult - output[ailment.."EffectMod"] = calcLib.mod(skillModList, cfg, "Enemy"..ailment.."Magnitude", "AilmentMagnitude") + output[ailment.."EffectMod"] = calcLib.mod(skillModList, cfg, "Enemy"..ailment.."Magnitude", "AilmentMagnitude") * calcLib.mod(enemyDB, cfg, "Self"..ailment.."Magnitude", "AilmentMagnitude") if breakdown then local maximum = globalOutput["Maximum"..ailment] or ailmentData[ailment].max local current = m_max(m_min(globalOutput["Current"..ailment] or 0, maximum), 0) diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 1252ffe8cc..55a1416ea8 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -2813,9 +2813,9 @@ function calcs.perform(env, skipEHP) -- if not, use the generic modifiers -- Scorch/Sap/Brittle do not have guaranteed sources from hits, and therefore will only end up in this bit of code if it's not supposed to apply the skillModList, which is bad if ailment ~= "Scorch" and ailment ~= "Sap" and ailment ~= "Brittle" and not env.player.mainSkill.skillModList:Flag(nil, "Cannot"..ailment) and hitFlag and modDB:Flag(nil, "ChecksHighestDamage") then - effect = effect * calcLib.mod(env.player.mainSkill.skillModList, env.player.mainSkill.skillModList.skillCfg, "Enemy"..ailment.."Magnitude", "AilmentMagnitude") + effect = effect * calcLib.mod(env.player.mainSkill.skillModList, env.player.mainSkill.skillModList.skillCfg, "Enemy"..ailment.."Magnitude", "AilmentMagnitude") * calcLib.mod(enemyDB, nil, "Self"..ailment.."Magnitude", "AilmentMagnitude") else - effect = effect * calcLib.mod(env.player.mainSkill.skillModList, env.player.mainSkill.skillModList.skillCfg, "Enemy"..ailment.."Magnitude", "AilmentMagnitude") + effect = effect * calcLib.mod(env.player.mainSkill.skillModList, env.player.mainSkill.skillModList.skillCfg, "Enemy"..ailment.."Magnitude", "AilmentMagnitude") * calcLib.mod(enemyDB, nil, "Self"..ailment.."Magnitude", "AilmentMagnitude") end modDB:NewMod(ailment.."Override", "BASE", effect, mod.source, mod.flags, mod.keywordFlags, unpack(mod)) if mod.name == ailment.."Minimum" then diff --git a/src/Modules/CalcSections.lua b/src/Modules/CalcSections.lua index 5073da58e8..4fc51f7bad 100644 --- a/src/Modules/CalcSections.lua +++ b/src/Modules/CalcSections.lua @@ -1289,7 +1289,7 @@ return { { label = "Player modifiers", notFlag = "attack", modName = { "EnemyShockMagnitude", "AilmentMagnitude", "ShockAsThoughDealing" }, cfg = "skill" }, { label = "Main hand modifiers", flag = "weapon1Attack", modName = { "EnemyShockMagnitude", "AilmentMagnitude", "ShockAsThoughDealing" }, cfg = "weapon1" }, { label = "Off hand modifiers", flag = "weapon2Attack", modName = { "EnemyShockMagnitude", "AilmentMagnitude", "ShockAsThoughDealing" }, cfg = "weapon2" }, - { label = "Enemy modifiers", modName = "SelfShockEffect", enemy = true }, + { label = "Enemy modifiers", modName = "SelfShockMagnitude", enemy = true }, }, }, { label = "Chance to Shock", bgCol = colorCodes.SHOCKBG, flag = "shock", { format = "{0:output:ShockChance}%", { breakdown = "MainHand.ShockChance" },