public override void ReadData() { if (autoWind) { if (showDebug) { Debug.Log(base.name + " Auto Wind Compare vectors"); } Vector3 referenceVector = base.transform.TransformDirection(new Vector3(1f, 0f, 0f)); Vector3 normal = base.transform.TransformDirection(new Vector3(0f, 0f, 1f)); float num; for (num = Math3d.SignedVectorAngle(referenceVector, initialWorldVectorX, normal); num - windAngle < -180f; num += 360f) { } while (num - windAngle > 180f) { num -= 360f; } windAngle = num; catapultWindCount = windAngle / 360f; } dataWindCount = catapultWindCount; windRadius = windCoreRadius + radius; localTargetPos = base.transform.InverseTransformPoint(target.position); Vector2 vector = localTargetPos.SetZ(0f); float num2 = Mathf.Acos(windRadius / vector.magnitude); Vector2 vector2 = vector.Rotate(0f - num2).normalized *windRadius; float num3 = Math2d.NormalizeAnglePositive(Math2d.SignedAngle(new Vector2(0f, 1f), vector2) * ((float)Math.PI / 180f)); float num4 = num3 / ((float)Math.PI * 2f); int num5 = Mathf.RoundToInt(catapultWindCount - num4); float num6 = num4 + (float)num5 + 2f; exitWindPos = new Vector3(vector2.x, vector2.y, num6 * windThickness); if (autoWind) { if (showDebug) { Debug.Log(base.name + " Auto Wind Calc Total Length"); } straightT = 0.9f; float num7 = num6 * 2f * (float)Math.PI * windRadius / straightT; lengthChange = totalLen - num7; totalLen = num7; } else { straightT = num6 * 2f * (float)Math.PI * windRadius / totalLen; } straightNormal = vector2.normalized; straightBinormal = Vector3.Cross((vector - vector2).normalized, straightNormal); }