Difference between revisions of "Movement Scaler"

ADVERTISEMENT
From Diablo Wiki
Jump to: navigation, search
(Created page with "==What is Movement Scaler?== Movement Scalar is the base stat used in Diablo III which is used to judged your walking rate amongst other things. ==Calculating the Heroes Movem...")
 
Line 23: Line 23:
 
  MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus
 
  MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus
  
This basicly means you can have a capped value which cannot go above a certain amount and a bonus which is totally uncapped. Lets look at the capped total:
+
This basically means you can have a capped value which cannot go above a certain amount and a bonus which is totally uncapped. Lets look at the capped total:
  
 
  MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)
 
  MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)
  
Basicly this means you take whatever is lowest, 1.25 or the MovementScalarSubTotal.  
+
Basically this means you take whatever is lowest, 1.25 or the MovementScalarSubTotal.  
  
 
Working out the MovementScalarSubtotal:
 
Working out the MovementScalarSubtotal:

Revision as of 23:06, 27 March 2012

What is Movement Scaler?

Movement Scalar is the base stat used in Diablo III which is used to judged your walking rate amongst other things.


Calculating the Heroes Movement Rates

The forumulae used in Diablo III are as follows:

  • MovementScalar (Fixed per Hero class)
  • WalkingRate (Fixed per Hero class)
  • StrafingRate (Fixed per Hero class)
  • SprintingRate (Fixed per Hero class)
  • RunningRate (Fixed per Hero class)
  • MovementBonusTotal (Starts at 0)
  • MovementScalarReductionPercent
  • MovementScalarReductionResistance
  • MovementScalarUncappedBonus


First step is to calculate the Movement Scalar Total which is done by the following formula:

MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus

This basically means you can have a capped value which cannot go above a certain amount and a bonus which is totally uncapped. Lets look at the capped total:

MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)

Basically this means you take whatever is lowest, 1.25 or the MovementScalarSubTotal.

Working out the MovementScalarSubtotal:

MovementScalarSubtotal = Max(0.1, MovementScalar) * (1 + MovementBonusTotal) * (1 - MovementScalarReductionPercent * (1 - Min(1, MovementScalarReductionResistance)))

Breaking that down:

Calc1 = 1 - Min(1, MovementScalarReductionResistance)

This makes sure the worst you can get here is a 0, best 1. So even if you set the ReductionResistance to 9999 it'll end up being 0. Although in theory you can have a negative value but Blizzard will no doubt prevent that somewhere else in their code if it matters.

Calc2 = (1 - MovementScalarReductionPercent * Calc1 )

A percent will be a value between 0.00 and 1.00 so all this does is take whatever the resistance is and take the percentage (as the name gives away). So if your ReductionResistance was 50% and your ReductionPercentage was 50% you'll end up with 25%.

Calc3 = (1 + MovementBonusTotal)

This just gives you a minimum of 1.

Calc4 = Max(0.1, MovementScalar)

Now this is the one we've been waiting for, just how does the MovementScalar change the speed of our character? 0.1 is the default, so anything above that is a perk!

  • Default: 0.1 * 1 * 1 * 1 = 0.1; This would be full speed.
  • Full Resistance: 0.1 * 1 * 0 * 0 = 0; You would be unable to move.
  • Some buff: 0.1 * 1.25 * 1 * 1 = 1.125; 25% increase (easy to show with 10 * 125% = 12.5);

Now back to the original formula:

MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)

So we now know the best bonus is 1.25 which is the same as 250% in game bonus to run speed! No point going above that then guys and girls, 250% is your limit!

MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus

This is then used for the following Formulae:

  • WalkingRateTotal = WalkingRate * MovementScalarTotal
  • StrafingRateTotal = StrafingRate * MovementScalarTotal
  • SprintingRateTotal = SprintingRate * MovementScalarTotal
  • RunningRateTotal = RunningRate * MovementScalarTotal


So as you can see the MovementScalar is just a percentage speed increase!