Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add proper support for DPS with Scourge Arrow, Divine Ire, Flameblast and Incinerate #6245

Merged
merged 3 commits into from
Aug 13, 2023

Conversation

LocalIdentity
Copy link
Contributor

Channelling skills that used stages did not have their hit rate modified by the time it took to channel those stages
This PR adds hitTimeMultiplier values for Scourge Arrow, Divine Ire, Flameblast and Incinerate
Snipe is handled in it's own PR
This shows the channel time in the sidebar along with the correct hit rate for these skills
This also fixes the skills not working correctly when added to Full DPS such as Divine Ire Totems
Fixes #3771
image

Adds boxes to the config page to set the number of nearby enemies for Divine Ire to calculate the correct charge rate
image

Channeling skills that used stages did not have their hit rate modified by the time it took to channel those stages
This PR adds `hitTimeMultiplier` values for Scourge Arrow, Divine Ire, Flameblast and Incinerate
Snipe is handled in it's own PR
This shows the channel time in the sidebar along with the correct hit rate for these skills
Adds boxes to the config page to set the number of nearby enemies for Divine Ire to calculate the correct charge rate
Comment on lines 2058 to 2077
if skillData.hitTimeOverride and not skillData.triggeredOnDeath then
breakdown.HitSpeed = { }
t_insert(breakdown.HitSpeed, s_format("1 / %.2f ^8(hit time override)", output.HitTime))
t_insert(breakdown.HitSpeed, s_format("= %.2f", output.HitSpeed))
elseif skillData.hitTimeMultiplier and output.Time and not skillData.triggeredOnDeath then
breakdown.HitTime = { }
if m_floor(skillData.hitTimeMultiplier) ~= skillData.hitTimeMultiplier then
t_insert(breakdown.HitTime, s_format(colorCodes.CUSTOM.."NOTE: First stage has a %.2fx channel time multiplier", skillData.hitTimeMultiplier - m_floor(skillData.hitTimeMultiplier)))
end
t_insert(breakdown.HitTime, s_format("%.2f ^8(cast time)", output.Time))
t_insert(breakdown.HitTime, s_format("x %.2f ^8(channel time multiplier)", skillData.hitTimeMultiplier))
t_insert(breakdown.HitTime, s_format("= %.2f", output.HitTime))
breakdown.HitSpeed = { }
if output.Cooldown then
t_insert(breakdown.HitSpeed, s_format("1 / (%.2f + %.2f) ^8(hit time + cooldown)", output.HitTime, output.Cooldown))
else
t_insert(breakdown.HitSpeed, s_format("1 / %.2f ^8(hit time)", output.HitTime))
end
t_insert(breakdown.HitSpeed, s_format("= %.2f", output.HitSpeed))
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thoughts on moving this part into a lambda instead of copying it below?

@LocalIdentity LocalIdentity merged commit 10ca12b into dev Aug 13, 2023
2 checks passed
@LocalIdentity LocalIdentity deleted the add_channel-stages-dps branch August 13, 2023 07:05
@Paliak Paliak mentioned this pull request Aug 15, 2023
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature, calculation, or mod
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Divine Ire Release DPS
2 participants