Is there a good way to figure out the attack cooldown of heroes? (This is the main question. Below is some information that may help figure it out if no one knows.)
One way I believe that works is from the change of "fast" to "very fast" for the description of a unit's attack speed. When it changes, the unit's current attack speed has just dropped below 1.00.
Assuming that there are no agility bonuses or attack speed modifiers affecting the unit, the attack cooldown can be determined by taking the agility of the unit as soon as its attack speed reaches "very fast" with 1 + (((agility/2) - 1)/100) for games with 2% attack speed per agility (normal map) or 1 + (((agility) - 1)/100) for games with 1% attack speed per agility (maps modified like Dota and such).
For example, in Dota, Morphling has 70 agility. He will have "fast" attack speed. If Morphling gets 71 agility (possibly by leveling and then convert 2 agility to strength), he will become "very fast". Taking 71 agility, 1 + (((71) - 1)/100)=1.70. This is his attack cooldown, which can be confirmed on Dota forums.
Unfortunately this method won't work if the hero starts off with very fast and unable to reduce its agility for maps that are not 2% attack speed. Using attack speed bonus modifiers are not reliable because they won't show the true current attack speed. This means it is possible for a unit with "very fast" in green to attack slower than a unit with a gray "fast".
When the attack speed is colored green, the method cannot be used because the attack speed doesn't follow 1% or 2% per agility. Instead it seems to be a changing value between 2% and 3%.
And that's it for what I have learned but am unable to apply in certain situations. Hopefully someone can use it to figure out how to figure out attack cooldowns without being able to go into world edit to view the values.
One way I believe that works is from the change of "fast" to "very fast" for the description of a unit's attack speed. When it changes, the unit's current attack speed has just dropped below 1.00.
Assuming that there are no agility bonuses or attack speed modifiers affecting the unit, the attack cooldown can be determined by taking the agility of the unit as soon as its attack speed reaches "very fast" with 1 + (((agility/2) - 1)/100) for games with 2% attack speed per agility (normal map) or 1 + (((agility) - 1)/100) for games with 1% attack speed per agility (maps modified like Dota and such).
For example, in Dota, Morphling has 70 agility. He will have "fast" attack speed. If Morphling gets 71 agility (possibly by leveling and then convert 2 agility to strength), he will become "very fast". Taking 71 agility, 1 + (((71) - 1)/100)=1.70. This is his attack cooldown, which can be confirmed on Dota forums.
Unfortunately this method won't work if the hero starts off with very fast and unable to reduce its agility for maps that are not 2% attack speed. Using attack speed bonus modifiers are not reliable because they won't show the true current attack speed. This means it is possible for a unit with "very fast" in green to attack slower than a unit with a gray "fast".
When the attack speed is colored green, the method cannot be used because the attack speed doesn't follow 1% or 2% per agility. Instead it seems to be a changing value between 2% and 3%.
And that's it for what I have learned but am unable to apply in certain situations. Hopefully someone can use it to figure out how to figure out attack cooldowns without being able to go into world edit to view the values.