Skip to content

Commit 0b79956

Browse files
PaliakLocalIdentity
andauthored
Another attempt at correct Doom Blast calculations (#6676)
* FIX: misc fulldps issues * FIX: cleanup dead code * FIX: doom blast calcs * FIX: spellcheck * FIX: use curse cast rate in curse replacement mode * FIX: apply min mod on source rate * FIX: move Doom Blast source config to eff dps * FIX: modify Doom Blast to better match spreadsheet https://docs.google.com/spreadsheets/d/1J-yVLmDhKqKNE8QecsPnZgNR2TDGDm41f-1tdC_BxQA/edit#gid=1230763965 * FIX: make vixen's mode defualt * FIX: move doom blast options to skill options * Move to alphabetical order * FIX: another attempt at correctly implementing doom blast * FIX: remove duplicate warn * FIX: implement the suggested formula * FIX: incorrect matching if doom blast not coming from a gem * Revert "FIX: implement the suggested formula" This reverts commit e65e1f5. --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent 883a3f8 commit 0b79956

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

src/Modules/CalcTriggers.lua

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,16 @@ local function defaultTriggerHandler(env, config)
763763
end
764764
end
765765

766-
if trigRate ~= nil and not actor.mainSkill.skillFlags.globalTrigger and not config.ignoreSourceRate then
766+
if env.player.mainSkill.activeEffect.grantedEffect.name == "Doom Blast" and env.build.configTab.input["doomBlastSource"] == "vixen" then
767+
local vixens = env.data.skills["SupportUniqueCastCurseOnCurse"]
768+
local vixensCD = vixens and vixens.levels[1].cooldown / icdr
769+
output.EffectiveSourceRate = calcMultiSpellRotationImpact(env, {{ uuid = cacheSkillUUID(env.player.mainSkill, env), icdr = icdr}}, trigRate, vixensCD)
770+
output.VixensTooMuchCastSpeedWarn = vixensCD > (1 / trigRate)
771+
if breakdown then
772+
t_insert(breakdown.EffectiveSourceRate, s_format("%.2f / %.2f = %.2f ^8(Vixen's trigger cooldown)", vixensCD * icdr, icdr, vixensCD))
773+
t_insert(breakdown.EffectiveSourceRate, s_format("%.2f ^8(Simulated trigger rate of a curse socketed in Vixen's given ^7%.2f ^8CD and ^7%.2f ^8source rate)", output.EffectiveSourceRate, vixensCD, trigRate))
774+
end
775+
elseif trigRate ~= nil and not actor.mainSkill.skillFlags.globalTrigger and not config.ignoreSourceRate then
767776
output.EffectiveSourceRate = trigRate
768777
else
769778
output.EffectiveSourceRate = output.TriggerRateCap
@@ -778,12 +787,9 @@ local function defaultTriggerHandler(env, config)
778787

779788
--If spell count is missing the skill likely comes from a unique and /or triggers it self
780789
if output.EffectiveSourceRate ~= 0 then
781-
if config.triggerName == "Doom Blast" and env.build.configTab.input["doomBlastSource"] == "vixen" then
790+
if env.player.mainSkill.activeEffect.grantedEffect.name == "Doom Blast" and env.build.configTab.input["doomBlastSource"] == "vixen" then
782791
local overlaps = m_max(env.player.modDB:Sum("BASE", nil, "Multiplier:CurseOverlaps") or 1, 1)
783-
output.SkillTriggerRate = m_min(output.EffectiveSourceRate * overlaps, output.TriggerRateCap)
784-
local vixens = env.data.skills["SupportUniqueCastCurseOnCurse"]
785-
local vixensCD = vixens and vixens.levels[1].cooldown
786-
output.VixensTooMuchCastSpeedWarn = (vixensCD / icdr) > (1 / trigRate)
792+
output.SkillTriggerRate = m_min(output.TriggerRateCap, output.EffectiveSourceRate * overlaps)
787793
if breakdown then
788794
breakdown.SkillTriggerRate = {
789795
s_format("min(%.2f, %.2f * %d)", output.TriggerRateCap, output.EffectiveSourceRate, overlaps)
@@ -1203,6 +1209,7 @@ local configTable = {
12031209
end,
12041210
["doom blast"] = function(env)
12051211
env.player.mainSkill.skillData.ignoresTickRate = true
1212+
env.player.mainSkill.skillData.sourceRateIsFinal = true
12061213
return {useCastRate = true,
12071214
customTriggerName = "Doom Blast triggering Hex: ",
12081215
triggerSkillCond = function(env, skill) return skill.skillTypes[SkillType.Hex] and slotMatch(env, skill) end}

src/Modules/ConfigOptions.lua

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,6 @@ Huge sets the radius to 11.
638638
{ var = "TotalVaalRejuvenationTotemLife", type = "integer", label = "Total Vaal Rejuvenation Totem Life:", ifSkill = { "Vaal Rejuvenation Totem" }, ifMod = "takenFromVaalRejuvenationTotemsBeforeYou", tooltip = "The total life of your Vaal Rejuvenation Totems that can be taken before yours", apply = function(val, modList, enemyModList)
639639
modList:NewMod("TotalVaalRejuvenationTotemLife", "BASE", val, "Config")
640640
end },
641-
642641
-- Section: Map modifiers/curses
643642
{ section = "Map Modifiers and Player Debuffs", col = 2 },
644643
{ var = "multiplierSextant", type = "count", label = "# of Sextants affecting the area", ifMult = "Sextant", apply = function(val, modList, enemyModList)

0 commit comments

Comments
 (0)