public override void Apply(GameActor actor) { // Only set this if we haven't already set it or other, mutually exclusive values. if (!actor.DesiredMovement.DesiredRotationAngle.HasValue && !actor.DesiredMovement.DesiredRotationRate.HasValue) { float speedModifier = Reflex.ModifierParams.SpeedModifier; float turnSpeed = speedModifier * actor.CalcTurnSpeed(); float turnAcceleration = speedModifier * actor.CalcTurnAcceleration(); actor.DesiredMovement.SetDesiredRotationAngle(Heading, turnSpeed * RotationRateModifier, turnAcceleration); } }