// Update is called once per frame void FixedUpdate() { if (m_paused) { return; } if (!tutorialOver) { var spinManager = m_currentGame[0].GetComponent <SpinManager>(); if (spinManager.VelocityManager.GetCurrentVelocity() > 50f) { tutorialOver = true; m_healthManager.Unpause(); gameStartTime = Time.time; StartMiniGame(1); } } if (tutorialOver) { m_score = (int)(Time.time - gameStartTime); var minutes = (int)(m_score / 60); var seconds = m_score % 60; ScoreText.text = $"{minutes}:{seconds:00}"; if (m_healthManager.GetHP() < 0) { Die(); } m_difficultyModifier += DIFFICULTY_SCALE_SPEED * Time.deltaTime; m_healthManager.CurrentDifficultyMultiplier = m_difficultyModifier; var states = new List <HealthState>(); // Check any spinners for health updates for (var i = 0; i < m_currentGame.Count; i++) { var game = m_currentGame[i]; if (game == null) { continue; } var spinManager = game.GetComponent <SpinManager>(); if (spinManager == null) { continue; } switch (spinManager.SpinState) { case SpinState.ReallyFine: if (spinManager.VelocityManager.GetCurrentVelocity() > 50f) { NotificationSystem.CancelAlert(i, AlertLevel.High); } break; case SpinState.Fine: if (spinManager.VelocityManager.GetCurrentVelocity() > 50f) { NotificationSystem.CancelAlert(i, AlertLevel.High); } break; case SpinState.Bad: if (spinManager.VelocityManager.GetCurrentVelocity() < 25f) { NotificationSystem.IndefiniteAlert(i, AlertLevel.High); } break; case SpinState.ReallyBad: if (spinManager.VelocityManager.GetCurrentVelocity() < 25f) { NotificationSystem.IndefiniteAlert(i, AlertLevel.High); } break; } states.Add(spinManager.GetHealthState()); } // Assuming we want the worst performance of all current spinners to be what affects our hp var worstState = HealthState.Fine; /* for (var i = 0; i < states.Count; i++) * { * var state = states[i]; * switch (worstState) * { * case HealthState.Fine: * if (state == HealthState.NotFine || state == HealthState.Empty) * { * worstState = state; * } * break; * case HealthState.NotFine: * if (state == HealthState.Empty) * { * worstState = state; * } * break; * case HealthState.Empty: * break; * } * }*/ var current = doggy == 1 ? 0 : 1; var hello105 = states.Count == 1 ? 0 : current; m_healthManager.SetHealthState(states[hello105]); if (waitingForNewGame) { startNewGameTimer -= 1 * Time.fixedDeltaTime; if (startNewGameTimer < 0f) { waitingForNewGame = false; if (doubleSpinnerTimer < 0f) { StartSpinner(newGameSide); leaveSpinnerTimer = LEAVE_SPINNER_TIMER_INTERVAL; doingDoubleSpinner = true; newGameSide = (newGameSide + 1) % 2; } else { StartMiniGame(newGameSide); } } } if (doingDoubleSpinner) { leaveSpinnerTimer -= 1 * Time.fixedDeltaTime; if (leaveSpinnerTimer < 0f) { doingDoubleSpinner = false; doubleSpinnerTimer = DOUBLE_SPINNER_TIMER_INTERVAL; FinishMiniGame(newGameSide, 50); doggy = doggy * -1; } } doubleSpinnerTimer -= 1 * Time.fixedDeltaTime; } }