This issue is pretty much [Confirmed].
I don't know what else is required... Maybe some screenshots?
And I also retreat my assumption on my previous post. I've got a new one, and this time I'm pretty much sure it is all correct.
W3 DotA version:
 |
 |
Moment before the Undying casts his Decay on 4 dummy enemies:
- Undying has 100/568 HP (17,6%) |
Moment after the Undying casts his Decay on 4 dummy enemies:
- Undying has 404/872 HP (46,3%) |
Steps to obtain these values:
- Decay hits 4 heroes
- 4 str is transfered per hero
- Each str is evaluates to 19 HP
- 4 * 4 * 19 = 304 HP in total
- Increase MaxHP and CurrentHP individually
- (100 + 304) / (568 + 304) HP
- 404/872 HP
Dota 2 version:
 |
 |
Moment before the Undying casts his Decay on 4 dummy enemies:
- Undying has 100/568 HP (17,6%) |
Moment after the Undying casts his Decay on 4 dummy enemies:
- Undying has 546/872 HP (62,6%) |
Steps to obtain these values (this will be crazy):
- Decay hits 4 heroes
- 4 str is transfered per hero
- Each str is evaluates to 19 HP
- Dota 2: "Decay hits all of them at once, but noooo, I will take them all seperately, and one by one, and I'll do it in such a wrong way that it will be damn hard for you to find it how!"
- 4 * 19 = 76 HP per hero
- Increase only the CurrentHP first
- (100 + 76) / 568 HP
- 176/568 HP
- Now, calculate (MaxHP + 76) / MaxHP = 1,1338...
- Multiply both MaxHP and the CurrentHP with this value
- (176 * 1,1338...) / (568 * 1,1338...) HP
- 199,55.../644 HP
- Now, don't you ever round it like normal people do, get the int(), get the flat value
- 199/644 HP
- Repeat the steps above 3 more times...
- (199 + 76) / 644 HP
- 275/644 HP
- ??? / (644 + 76) HP
- 307,45.../720 HP
- 307/720 HP
- 383/720 HP
- ??? / (720 + 76) HP
- 423,43.../796 HP
- 423/796 HP
- 499/796 HP
- 546,64.../872 HP
- 546/872 HP
If I do not ever round, and use exact values for the calculation, the result is: 548,408.../872 HP
If I round using the conventional method, the result is: 549,930.../872 HP
So, the basic formula for single Decay instance is:
NewCurrentHP = int((CurrentHP + 76) / MaxHP * (MaxHP + 76))
NewMaxHP = MaxHP + 76
And if Decay inflicts more than one hero, then it does this again and again.
I don't know anything about programming, but making it like this should be a lot harder than simply increasing x and y by z.
This is too complicated and wrong.
And I want to add that each time the "
Increase only the CurrentHP first" occurs, if the CurrentHP hits the quota, then you'll end up with MaxHP after the process is done.
So, if you get damaged for ~70 HP, you can get fully healed by casting decay on a single hero target.
And ~250 missing HP
(not 4*76, since it is complicated) gets fully healed when you hit 4 heroes at once.
And getting fully healed is never possible on DotA
, unless you were already at MaxHP of course...