Exemple #1
0
        private IEnumerator WaitForShowHideCompletion(TurnDisplay display, System.Action callback)
        {
            while (display != null && display.IsShowingOrHiding)
            {
                yield return(null);
            }

            callback?.Invoke();
        }
Exemple #2
0
        private void OnPlayerTurnChanged(int player)
        {
            TurnDisplay currentDisplay = m_displays[player];

            currentDisplay.Show();

            int         prevPlayer  = (player + 1) % GameRules.k_playerCount;
            TurnDisplay prevDisplay = m_displays[prevPlayer];

            prevDisplay.Hide();
        }
Exemple #3
0
        private void Start()
        {
            Game.OnWonEvent += OnWon;
            Game.OnPlayerTurnChangedEvent += OnPlayerTurnChanged;

            for (int pdx = 0; pdx < m_displays.Length; ++pdx)
            {
                TurnDisplay display = m_displays[pdx];
                display.SetColor(pdx);
            }
        }
Exemple #4
0
        private void OnWon()
        {
            TurnDisplay display = m_displays[Game.CurrentPlayer];

            StartCoroutine(WaitForShowHideCompletion(display, () =>
            {
                if (display == null)
                {
                    return;
                }

                SineWaveRotator displayRotator = display.GetComponent <SineWaveRotator>();
                if (displayRotator != null)
                {
                    displayRotator.Play();
                }
            }));
        }