thanks for teaching us Grade 4th math. atleast I applied bessel differential equations/Bessel functions to mine and confused everyone on LINE.
Assumptions: No PD or Frenzy
Logical attack speed levels for a 1000ms attack speed hero:
> Berserk_levels <- seq(0.1,0.3,0.05)
 909.0909 869.5652 833.3333 800.0000 769.2308
So the first three all get rounded to 1000ms and the last two gets rounded to 800ms?
This seems quite weird to me; that a Bersek 1/5 in some cases could be identical to a 3/5 ?
Is this really how it works?
Ok just to revive this tread a little.
I'm curious about the example given by Peziv of GR.
GR's attack speed is 750ms but since everything is rounded up isn't the base speed also?
What I'm interested in is, if I roll a 5/5 zerk on GR, will his attack speed be 600ms?
or will the base speed of 750ms be rounded up to 800ms and in that case even with 5/5 zerk will he remain at 800ms?
Edited by KurNt2014 at 8-24-2014 05:15 PM
Peziv replied at 8-1-2014 12:33 PM static/image/common/back.gif
Nope. IGG made it so it's always rounded up! That's how how much they've rigged it.
The term "rounding up" is a bit misleading in this context, as it is no actual rounding in the mathematical sense, although it yields the same effect. What the app does, is to check every 200ms (it was 100ms before), if there is any action to do. In programming terminology, this is called an "event loop". If an action is avaible (it's time his finally come), this action is performed, and then the next time for this action (attack, effect expiry, cooldown, etc) is calculated based off the actual (event loop) time . A simple example may clarify this:
Let us assume a Ninja (800ms attack speed) with zerk 5/5 (30% speed buff). His attack speed would be 800ms/(1+30%) = 615ms. For simplicity, we start the example at time t=0ms.
* His first attack is scheduled to happen at 615ms.
* The event loop at 200ms resolution will step through the list of events at 200ms, 400ms, 600ms, but finds nothing to do.
* At t=800ms, the event loop finds the ninja's attack, performes it, and schedules the next attack at t+615ms = 1415ms.
* the event loop steps through the list at 1000ms, 1200ms, 1400ms, and finds nothing to do.
* at t=1600ms, the event loop again finds ninja's attack, performs it, and schedules the next attack at t=2215ms.
* repeat, repeat, repeat
In the end effect, ninjas attack will happen only every 800ms instead of 615ms, given the impression, the timing is rounded up, and effectively rendering zerk useless.
The basic mistake, IGG's developers made, is that they based the "next event time" off the event loops timing, instead of the scheduled timing. This results in ninja's attacks being scheduled at 615ms, 1415ms, 2215ms, and so on, being performed at 800ms, 1600ms, 2400ms.
If they however based the next event time on the original timing, the first time is still 615ms, performed at 800ms, but the next attack is at 615ms+615ms=1230ms, which is executed at 1400ms! Third attack is at 1845ms, executated at 2000ms, 400ms faster than the current, buggy method!
I hope, this helps to clarify, why and where IGG screwed with the "basic stats change", and what is the real explanation behind this mystical attack speed rounding. I'm thinking about making a comparison chart, to show the differing effects of the different methods.
Edit: Clarified term "event loop".
Thank you for finally clarifying that. I don't think anyone or many people really understood how attack speed actually works without making big assumptions.
So your suggestion to use the "original time" would fix attack speed and make it the most accurate it can be right? Would this have an impact on devices that run Bluestacks? IGG mentioned that they apparently changed the loop to improve the performance of CC. Do you buy that?
I'd be great if you made a thread about this and added in that comparison graph!
I guess in effect it's still always rounded up right? Even though that's not entirely correct.
Sorry I only just saw the reply.
Or you can check it here: https://castle-clash.bitbucket.io/#attackRate
Keep it simple silly