public void UpdateStepProgress(float deltaTime, float stepSpeed, float shuffleDistance, SpineboyFootplanter.FootMovement forwardMovement, SpineboyFootplanter.FootMovement backwardMovement) { if (this.IsStepInProgress) { this.lerp += deltaTime * stepSpeed; float f = this.worldPosNext.x - this.worldPosPrev.x; float num2 = Mathf.Sign(f); float num3 = Mathf.Abs(f); SpineboyFootplanter.FootMovement movement = (num2 <= 0f) ? backwardMovement : forwardMovement; this.worldPos.x = Mathf.Lerp(this.worldPosPrev.x, this.worldPosNext.x, movement.xMoveCurve.Evaluate(this.lerp)); float num4 = Mathf.Lerp(this.worldPosPrev.y, this.worldPosNext.y, this.lerp); if (num3 > shuffleDistance) { float num5 = Mathf.Clamp((float)(num3 * 0.5f), (float)1f, (float)2f); this.worldPos.y = num4 + ((movement.raiseCurve.Evaluate(this.lerp) * movement.maxRaise) * num5); } else { this.lerp += Time.deltaTime; this.worldPos.y = num4; } if (this.lerp > 1f) { this.lerp = 1f; } } }
public static float GetNewDisplacement(float otherLegDisplacementFromCenter, float comfyDistance, float minimumFootDistanceX, float maxNewStepDisplacement, SpineboyFootplanter.FootMovement forwardMovement, SpineboyFootplanter.FootMovement backwardMovement) { SpineboyFootplanter.FootMovement movement = (Mathf.Sign(otherLegDisplacementFromCenter) >= 0f) ? backwardMovement : forwardMovement; float num = UnityEngine.Random.Range(movement.minDistanceCompensate, movement.maxDistanceCompensate); float f = otherLegDisplacementFromCenter * num; if ((Mathf.Abs(f) <= maxNewStepDisplacement) && (Mathf.Abs(otherLegDisplacementFromCenter) >= minimumFootDistanceX)) { return(f); } return((comfyDistance * Mathf.Sign(f)) * num); }