Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions src/Modules/CalcTriggers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -763,7 +763,16 @@ local function defaultTriggerHandler(env, config)
end
end

if trigRate ~= nil and not actor.mainSkill.skillFlags.globalTrigger and not config.ignoreSourceRate then
if env.player.mainSkill.activeEffect.grantedEffect.name == "Doom Blast" and env.build.configTab.input["doomBlastSource"] == "vixen" then
local vixens = env.data.skills["SupportUniqueCastCurseOnCurse"]
local vixensCD = vixens and vixens.levels[1].cooldown / icdr
output.EffectiveSourceRate = calcMultiSpellRotationImpact(env, {{ uuid = cacheSkillUUID(env.player.mainSkill, env), icdr = icdr}}, trigRate, vixensCD)
output.VixensTooMuchCastSpeedWarn = vixensCD > (1 / trigRate)
if breakdown then
t_insert(breakdown.EffectiveSourceRate, s_format("%.2f / %.2f = %.2f ^8(Vixen's trigger cooldown)", vixensCD * icdr, icdr, vixensCD))
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))
end
elseif trigRate ~= nil and not actor.mainSkill.skillFlags.globalTrigger and not config.ignoreSourceRate then
output.EffectiveSourceRate = trigRate
else
output.EffectiveSourceRate = output.TriggerRateCap
Expand All @@ -778,12 +787,9 @@ local function defaultTriggerHandler(env, config)

--If spell count is missing the skill likely comes from a unique and /or triggers it self
if output.EffectiveSourceRate ~= 0 then
if config.triggerName == "Doom Blast" and env.build.configTab.input["doomBlastSource"] == "vixen" then
if env.player.mainSkill.activeEffect.grantedEffect.name == "Doom Blast" and env.build.configTab.input["doomBlastSource"] == "vixen" then
local overlaps = m_max(env.player.modDB:Sum("BASE", nil, "Multiplier:CurseOverlaps") or 1, 1)
output.SkillTriggerRate = m_min(output.EffectiveSourceRate * overlaps, output.TriggerRateCap)
local vixens = env.data.skills["SupportUniqueCastCurseOnCurse"]
local vixensCD = vixens and vixens.levels[1].cooldown
output.VixensTooMuchCastSpeedWarn = (vixensCD / icdr) > (1 / trigRate)
output.SkillTriggerRate = m_min(output.TriggerRateCap, output.EffectiveSourceRate * overlaps)
if breakdown then
breakdown.SkillTriggerRate = {
s_format("min(%.2f, %.2f * %d)", output.TriggerRateCap, output.EffectiveSourceRate, overlaps)
Expand Down Expand Up @@ -1203,6 +1209,7 @@ local configTable = {
end,
["doom blast"] = function(env)
env.player.mainSkill.skillData.ignoresTickRate = true
env.player.mainSkill.skillData.sourceRateIsFinal = true
return {useCastRate = true,
customTriggerName = "Doom Blast triggering Hex: ",
triggerSkillCond = function(env, skill) return skill.skillTypes[SkillType.Hex] and slotMatch(env, skill) end}
Expand Down
1 change: 0 additions & 1 deletion src/Modules/ConfigOptions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -638,7 +638,6 @@ Huge sets the radius to 11.
{ 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)
modList:NewMod("TotalVaalRejuvenationTotemLife", "BASE", val, "Config")
end },

-- Section: Map modifiers/curses
{ section = "Map Modifiers and Player Debuffs", col = 2 },
{ var = "multiplierSextant", type = "count", label = "# of Sextants affecting the area", ifMult = "Sextant", apply = function(val, modList, enemyModList)
Expand Down