Curses, people. Use my research!
http://www.staredit.net/wiki/Unit_SpeedsDivide the datedit top speed by 256 to get the move rate in pixels per frame, if it uses flingy.dat to move. If it uses iscript.bin, the speed is listed there. Certain units (ling, hyd, ult, goon, gol) all use a sequence which moves 4, then 2, then 8, then 8, or something along those lines per frame. That means they have an average speed, and thus have some fraction listed. Broods are annoying, since they have a random wait. Any speed upgrade increases an iscript.bin move by 2, and the flingy.dat speed by a set amount and double the accel/turn radius.
Ensnare cancels the speed upgrade, or cuts the speed in half. Thus an ensnared Yggsdrasill would move at the speed of a normal overlord, a fenix would move speed 4, and a dt would move at 2.5. Not sure of the effects of snare on turn radius/accel, but it probably halves them.
http://www.staredit.net/topic/6791/Attack speeds are mostly random, but they, for the most part, follow the cooldown. A few exceptions are the upgradeable attack speed folks like terran marine and zergling, those with strange attack patterns like corsair, infested kerrigan, and ultralisk, then those with no real listed cooldown at all, like reavers' scarabs and carriers' interceptors. The listed "FPA" is "frames per attack".
Also, a little more info on what I know:
Iscript.bin is located in the mpq. To extract it, use pyice and you can open up each unit's individual sequence iscripts. One of them will be the move sequence, which then tells you something like move 4, wait 1, move 4, wait 1, etc. The wait 1 is just a frame, and the move 4 is 4 pixels, which is why most ground units move at 4 pixels/frame. There's also attack sequence information, which can tell you exactly which units can "force attack" through hypers, and why. Dragoons have a "DragoonGndAttkInit" which lasts 5 frames, then starts "DragoonGndAttkRpt" which plays 2 frames, and THEN finally attacks. So that's a 7 frame delay from when you order the unit to attack. Obviously plenty of time for hypers to interrupt the dragoon from attacking.
Conversely, a vulture's attack sequence looks like this:
VultureGndAttkInit:
wait 1
attackwith 1
gotorepeatattk
goto VultureGndAttkToIdle
wait a frame, then attack. Hypers can't stop that.
Post has been edited 1 time(s), last time on Feb 9 2010, 6:43 am by rockz.
"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"