Heroes of the Storm

Fixing decaying slows and CC reduction interaction.

HeroesoftheStorm 5 - Fixing decaying slows and CC reduction interaction.

For those unaware, there is currently a bug where CC reduction is applied multiple times to abilities that have decaying slows. Why is this? Because of the way decaying slows are done. They're not a single slow that changes its movespeed factor, no, it's a single small slow that has multiple stacks.

On the case shown yesterday, someone realized that Sonya's Wrath of the berserker (50% CC reduction) made her almost immune to Johanna's Punish. The specifics of this issue is that Punish is 6 stacks of a 10% slow. So now, when you apply a 2 second slow with 6 stacks, Wrath reduces it by 50% (1s) for the first stack, 50% (0.5s) for the second stack, 50% (0.25s) for the third stack… until the 6th stack lowers it to 0.03125s. This is even worse if you have Subdue, as that makes it have 8 stacks for a duration of 0.0078125s.

So today I started trying to make the change needed for the ability, at first I thought to make it the most unelegant way possible: just check if you have 50% CC reduction and increase the duration from 2 to 64 seconds and forcing the stack removal to be 0.16125 instead. But that's not good enough. Specifically because it'll currently need 2 different cases for 50% and 75%, but if they wanted to create different percentages it'll create a ton of code debt.

The final solution? Make Punish only apply a 60% slow. At the end of the slow, apply a 50% slow. At the end of that slow, apply a 40% slow, etc.


Now, someone with a keen eye could see an issue with that implementation. What happens if you Punish Imperius and he cleanses the slow immediately afterwards? Well, you'll lose the 60% slow immediately, but the 50%-40%-etc would continue as normal. So what did I do to fix that? Make Punish apply two different slows, but the second one does not change your movespeed at all. So now if a player uses a slow cleanse on the target, since the second slow gets removed, make all the other applications check for that second slow to be present, and if it isn't, do not apply the next step of the decaying slow.

Read:  Developer AMA from July 18, 2019 - Roundup (Text + Video)

TL;DR: The current effect of decaying slows makes CC reduction effects basically immune to them. It currently works like this, and I fixed it with this code.

If you fail to see what's the difference look at the character sheet, specifically the MS turning red. On the first clip the slow is a blink and you'll miss it, while on the second one it lasts for 1 second as it should.

Source: Original link

© Post "Fixing decaying slows and CC reduction interaction." for game Heroes of the Storm.

Top-10 Best Video Games of 2018 So Far

2018 has been a stellar year for video game fans, and there's still more to come. The list for the Best Games of So Far!

Top-10 Most Anticipated Video Games of 2019

With 2018 bringing such incredible titles to gaming, it's no wonder everyone's already looking forward to 2019's offerings. All the best new games slated for a 2019 release, fans all over the world want to dive into these anticipated games!

You Might Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *