private bool onAirSupplyUpdated(DivingEvents.AirSupplyUpdated evt) { float num = evt.AirSupply * DivingAirPanel.AirSupplySlice; if (num > 0f) { if (prevAirSupply > num) { for (int i = 0; i < mutableData.LowAirThresholds.Length; i++) { if (Mathf.Abs(num - mutableData.LowAirThresholds[i].AirSupplyThreshold) < Mathf.Epsilon) { lowAirWarningDuration = mutableData.LowAirThresholds[i].AnimDuration; elapsedLowAirWarningTime = 0f; desiredAnimIndex = gaspingSwimAnimIndex; break; } } } else { if (prevAirSupply < num) { desiredAnimIndex = defaultSwimAnimIndex; lowAirWarningDuration = 0f; } else if (lowAirWarningDuration > 0f) { elapsedLowAirWarningTime += Time.deltaTime; if (elapsedLowAirWarningTime >= lowAirWarningDuration) { desiredAnimIndex = defaultSwimAnimIndex; lowAirWarningDuration = 0f; } } float @float = animator.GetFloat(AnimationHashes.Params.LowAirAnimChooser); @float = Mathf.Lerp(@float, desiredAnimIndex, mutableData.LowAirAnimSmoothing * Time.deltaTime); @float = Mathf.Clamp01(@float); animator.SetFloat(AnimationHashes.Params.LowAirAnimChooser, @float); } prevAirSupply = num; } else { desiredAnimIndex = defaultSwimAnimIndex; } return(false); }
private bool onAirSupplyUpdated(DivingEvents.AirSupplyUpdated evt) { updateAirSupplyGauge(evt.AirSupply); return(false); }