IEnumerator bossFightGameLoop() { endMeteorSetPiece(false); startShootingSetPiece(); yield return(new WaitUntil(() => bulletStreakCounter.consecutiveBulletsDestroyed == 3)); endShootingSetPiece(); demonAnimationManager.meteorBeginningAnim(); yield return(new WaitUntil(() => meteorDestroyed)); if (lastDestructionMode == meteorDestroyer.metoerDestructionModes.successful) { endMeteorSetPiece(false); damageManager.enableDamage(); playerBulletLauncher.enableShooting(); float waitTime = Time.time + 10; yield return(new WaitUntil(() => damageManager.isDead || Time.time >= waitTime)); if (!damageManager.isDead) { damageManager.disableDamage(); startShootingSetPiece(); } } else { endMeteorSetPiece(); startShootingSetPiece(); } }