This is a guide on the effects of speed on combat. The original version was written by user jenx and can be found on the ToME forums here.
Hits Per Turn
The game mechanics use energy to track all this. 100% global speed gives you 1000 energy points per turn (EPT), and a regular attack costs 1000 energy points per hit (EPH).
So for a normal character at 100% global speed, with regular 100% attack speed, and with a regular weapon at 100% weapon speed, you simply get exactly 1 hit per turn (1000 EPT / 1000 EPH = 1.00 HPT).
Naturally, we can eliminate 1000 from this formula, as the 1000 number is arbitrary. The hits per turn formula is therefore simply
Hits Per Turn = Global_Speed x Weapon_Speed x Attack_Speed
All percentages should be multiplied by 100. So as an example:
- Global Speed = 200%
- Weapon Speed = 143%
- Attack Speed = 90%
We then get: Hits Per Turn = 2.00 x 1.43 x 0.9 = 2.57 Hits Per Turn
However, I find it helpful to think using 1000 energy, so I'll stick with this in the calculations below. Weapon speed and Attack speed both affect Energy per Hit (EPH). We will look at these first.
Weapon speed is listed on the weapon as 100% for regular melee weapons, and 125% for bows. Anything above 100% is "faster" and anything below 100% is "slower". Note this is a change from older versions!
This percentage is divided by the energy per hit (EPH). Thus a bow at 125% weapon speed costs 1000 EPH / 1.25 = 800 EPH.
Example 1: Regular bow/sling at 125% weapon speed. 1000 EPT / 800 EPH = 1.25 HPT.
Example 2: Quick weapon at 111% weapon speed. 1000 EPT / 900 EPH = 1.11 HPT
Therefore, if all other speeds are 100%, your weapon speed translates directly into hits per turn - just divide by 100. When combining weapon speed and attack speed, use weapon speed as a multiplier. The multiplier is 1 / (weapon speed x 100). For example, with a bow at 125% speed, your multiplier will be: 1 / (125% x 100) = 1 / 1.25 = 0.8. The multiplier will be demonstrated in the section combining weapon and attack speed.
Attack speed also reduces/increases the amount of energy per hit EPH. Attack speed is reduced/increased by many talents, such as, , and equipment differences (e.g. gloves vs gauntlets, amulets of enraging, etc). So at 5/5 for at talent level 1.3 gives 65% increase in attack speed. To calculate the energy required, divide 1000 by 1 + the percent increase. So 65% increase gives 1000 / 1.65 = 606 energy points per hit.
Some talents decrease attack speed, such as Precise Strikes and Aim. In this case, the EPH increases.
Example 3: Rapid shot gives 65% attack speed increase and an (hypothetical) bow at 100% weapon speed (as they have lower than this, see next section). 1000 EPT / 606 EPH = 1.65 HPT.
Combining Weapon and Attack Speed
Attack speed and weapon speed stack, so, using the above example, Rapid Shot at 5/5 gives me 606 EPH and weapon speed of 125% gives (1/1.25)=0.8 x 606 = 485 EPH. Thus the hits per turn are 1000 EPT / 485 EPH = 2.06 HPT.
However, when weapon speed is below 100%, as in Precise Strikes with a regular weapon, or for, EPH is not multiplied again (otherwise it would be calculated twice in the equation).
So when using Precise Strikes with a 10% decrease in attack speed with no other mods, you have: 1000 EPT / (1 - 0.1) = 1111 EPH. Thus the hits per turn are 1000 EPT / 1111 EPH = 0.9 HPT.
Example 4: Precise Strikes at 10% decrease to attack speed, with regular weapon (100% weapon speed). 1000 EPT / (1 - 0.1) = 1111 EPH. 1000 EPT / 1111 EPH = 0.9 HPT.
Example 5: Rapid Shot at 65% increase to attack speed, with swiftstrike bow at 143% weapon speed. 1000 EPT / (1/1.43) x 606 EPH = 2.36 HPT
Example 6: Rapid Shot at 65% increase to attack speed, with Precise Strikes 10% decrease to attack speed. With swiftstrike bow at 143% weapon speed. 1000 EPT / (1/1.43) x (1/(1.65 x 0.9)) = 1000 EPT / 471 EPH = 2.12 HPT. This makes sense, as it is slightly lower HPT than without precise strikes.
Global speed increases the amount of energy per turn EPT. So 40% increase gives you 1400 EPT. So you get more time (= energy) to do stuff.
Equipment and talents can increase global speed, some temporarily and some permanently.
Eden's Guile for instance, gives you a temporary increase to global speed. In this case we'll use 29%. We simply then change EPT to 1290 and calculate accordingly. This is where we see significant changes to HPT.
Example 7: Eden's Guile at 129% global speed, regular weapon. 1290 EPT / 1000 EPH = 1.29 HPT.
Example 8: Eden's Guile at 129% global speed, regular bow/sling shooter at 125% weapon speed. 1290 EPT / 800 EPH = 1.61 HPT
Example 9: Eden's Guile at 129% global speed, swiftstrike shooter at 143% weapon speed, Rapid shot at 65% increase attack speed. 1290 EPT / 424 EPH = 3.04 HPT.
Example 10: Blinding Speed at 141% increase, swiftstrike shooter at 143% weapon speed, Rapid Shot at 65% increase attack speed. 1410 EPT / 424 EPH = 3.31 HPT
Movement is not directly related to hits per turn, but it does effect the amount of energy. Moving one square takes 1000 energy. If movement speed is greater than 100%, less than 1000 energy is used per turn in movement, leaving some left over. This can accumulate over turns until enough is available for an extra hit per turn.
Theoretical Maximum for HPT
This is hard to estimate precisely. The below may also be out of date, as new artifacts have been created since this was written.
I think it would be a Yeek Archer: Yeek (global speed 15% increase) + global speed prodigy (15% increase), Rapid Shot with extra talent point + Ring of War Master + enraging amulet at 10% increase would give close to 100% attack speed increase I think. Randart sling with double swiftstrike for 166% attack speed (is this possible?) and 5% global speed increase, with offhand blazebringer ego at 5% global speed increase. Blinding Speed (but not with extra talent point, as to get global speed prodigy you need 20 in equi, which requires 2 unlocks, and we've spent 2 already), so 41% increase, to base of 140% global speed of yeek 15% + prodigy 15% + sling 5% + offhand 5%, giving total (temporary) global speed of 97.4% increase.
That is, hypothetically, you might get temporary 97.4% increase in global speed, 100% increase in attack speed, and 60% increase in weapon speed!
This would give then, using generic formula above 1.974 * (1 + 1) / 0.6 = 6.58 hits per turn!
The other class that might outdo this even is a Yeek Brawler, but I'll leave it to someone else to calculate.
The 3.31 HPT (example 10 above) with max Blinding Speed, Swiftstrike, and max Rapid Shot, can be achieved by an archer by about lvl 17, if you save class points for this effect, and find a swiftstrike, which are quite rare. When your ammo has on hit effects, this means you increase your chance of landing one of these per turn.
When do I get my extra hits per turn?
You have to accumulate the energy to the point when you have enough to do more than one action per turn. For example, you have weapon speed of 125% and no other modifier. This translates to energy use of 80% (1/1.25). So in turn one you'll accumulate 200 energy, then 400, then 600, then 800. At this stage, you use 800 for your first shot, using up your spare energy and then you get your second shot. You can see this by putting on a regen infusion, and shooting randomly, and seeing when you get two shots per turn.
So then, can you assume that you have to wait, in such an example when HPT = 1.25, for 4 turns before an extra shot? No, because the complication is that you can accumulate energy from all sorts of places. You might have movement speed increase, and so you move, giving you some spare energy each move. Move 3 times, to pump up your stock, and then shoot twice. Hard to coordinate, but it happens. So in practice, the extra shot appears anywhere in the 5 turn period.
The clock addon (note: not compatible with current version) by lukep, and the many forums posts on speed and on Rapid Shot vs Aim, and some code delving, and running lots of archers, finally gave me the tools to figure this out properly I hope.