diff --git a/Source/Modules/ModuleBCSAirbags.cs b/Source/Modules/ModuleBCSAirbags.cs index 866dc53..905efe6 100644 --- a/Source/Modules/ModuleBCSAirbags.cs +++ b/Source/Modules/ModuleBCSAirbags.cs @@ -261,7 +261,7 @@ private void SetupPartIcon() } } - private void StopAltitudeCoroutine() + private void StopAltitudeCoroutine() { if (altitudeCoroutine != null) { @@ -323,7 +323,7 @@ private void PlayAnimation(Animation anim, string animationName, float start, fl // Coroutines public IEnumerator AltitudeCoroutine() { - yield return new WaitUntil(ShouldDeploy); + while (!ShouldDeploy()) yield return new WaitForFixedUpdate(); part.stackIcon.SetIconColor(XKCDColors.Yellow); if (nodeCoroutine == null) nodeCoroutine = StartCoroutine(NodeCoroutine()); } @@ -331,7 +331,7 @@ public IEnumerator AltitudeCoroutine() public IEnumerator NodeCoroutine() { StopAltitudeCoroutine(); - yield return new WaitUntil(NodeDetached); + while (!NodeDetached()) yield return new WaitForFixedUpdate(); bool isAboveWater = vessel.terrainAltitude <= 0; if ((isAboveWater && !deployAboveWater) || (!isAboveWater && !deployAboveLand)) Disarm(); diff --git a/Source/Modules/ModuleDecoupleAtAltitude.cs b/Source/Modules/ModuleDecoupleAtAltitude.cs index e23eaff..36f48eb 100644 --- a/Source/Modules/ModuleDecoupleAtAltitude.cs +++ b/Source/Modules/ModuleDecoupleAtAltitude.cs @@ -106,7 +106,8 @@ protected bool ShouldJetison() public IEnumerator AltitudeDecouple() { - yield return new WaitUntil(ShouldJetison); + while (!ShouldJetison()) yield return new WaitForFixedUpdate(); + Decouple(); } }