Global speed boosts in b31 can be cheesy to the point of being, well, broken. This is because speeds are multiplicative, so combining them results in exponential global speed increase. For example, n global speed boosts of 50% increases global speed to base_speed * 1.5^n. For n=4, this gives a 506% global speed.
Global speed is broken in the current svn too. It can go negative(!), and it completely breaks a few speed talents.
So, here's what I propose. It requires introducing a new internal speed parameter: global_speed_add. Don't worry, players don't need to know about it; it will just be a part of global speed and should "just work".
- - global_speed (base of 1): negative global_speed changes will be multiplicative as is currently done in b31.
- global_speed_add (base of 0): positive global_speed will be additive.
- effective global speed will be: global_speed * (1 + global_speed_add)