public void UpdateFacingToTarget() { if (target != null && targetVisible) { Vector3 vector = AimOffset(target); if (peekIndex != 0) { Vector3 position = eyePos.transform.position; Vector3.Distance(vector, position); Vector3 vector2 = Vector3.Cross((vector - position).normalized, Vector3.up); vector += vector2 * visibilityOffsets[peekIndex]; } Vector3 vector3 = (vector - eyePos.transform.position).normalized; if (currentAmmoGravity != 0f) { float num = 0.2f; if (target is BasePlayer) { float num2 = Mathf.Clamp01(target.WaterFactor()) * 1.8f; if (num2 > num) { num = num2; } } vector = target.transform.position + Vector3.up * num; float angle = GetAngle(eyePos.transform.position, vector, currentAmmoVelocity, currentAmmoGravity); Vector3 normalized = (vector.XZ3D() - eyePos.transform.position.XZ3D()).normalized; vector3 = Quaternion.LookRotation(normalized) * Quaternion.Euler(angle, 0f, 0f) * Vector3.forward; } aimDir = vector3; } UpdateAiming(); }