private IEnumerator DoScoring() { WaitForSeconds betweenScoringDelay = new WaitForSeconds(kBetweenScoringDelay); while (PlayerScores.HasPendingScores) { AudioConstants.Instance.ScoreAdded.PlaySFX(); PlayerScores.StepConvertPendingScoresToScores(); if (!PlayerScores.HasPendingScores || PlayerScores.HasWinner) { break; } yield return(betweenScoringDelay); } if (PlayerScores.HasWinner) { GameNotifications.OnGameWon.Invoke(); AudioConstants.Instance.Win.PlaySFX(randomPitchRange: 0.0f); } yield return(new WaitForSeconds(kEndScoringDelay)); transition_.AnimateOut(() => { Finish(); }); }
private void HideImmediate(Action callback = null) { if (!showing_) { return; } transition_.AnimateOut(() => { showing_ = false; if (callback != null) { callback.Invoke(); } }); }
private void RefreshControlsTab() { bool show = AtLeastOnePlayerReady; if (show == controlsTabShowing_) { return; } if (!controlsContainer_.activeSelf) { controlsContainer_.SetActive(true); } controlsTabShowing_ = show; if (controlsTabShowing_) { controlsTransition_.AnimateIn(); } else { controlsTransition_.AnimateOut(); } }
private void LeavePlayerCustomization() { // unregister all players who aren't ready foreach (IndividualPlayerCustomizationView view in views_.Where(v => !v.IsReady)) { RegisteredPlayers.Remove(view.Player); } viewTransition_.AnimateOut(() => { if (continueCallback_ != null) { continueCallback_.Invoke(); continueCallback_ = null; } }); controlsTransition_.AnimateOut(); AnimateOutReadyToFight(); }
private void CheckIfAllPlayersReady() { // if not all ready if (views_.Any(v => !v.Ready)) { return; } // animation would go here I think transition_.AnimateOut(() => { if (allPlayersReadyCallback_ != null) { allPlayersReadyCallback_.Invoke(); allPlayersReadyCallback_ = null; } ObjectPoolManager.Recycle(this); }); }
private void AnimateOutReadyToFight() { readyToFightTransition_.AnimateOut(); }