Exemplo n.º 1
0
 private void OnWinnerFound(BlobColor color)
 {
     _winPopup.Show(color, Mathf.CeilToInt(_time.ElapsedTime), () =>
     {
         _winPopup.gameObject.SetActive(false);
         _game.StartNewGame();
     });
     _winPopup.gameObject.SetActive(true);
 }
Exemplo n.º 2
0
        private string PickColorText(BlobColor color)
        {
            switch (color)
            {
            case BlobColor.Blue:
                return(_blueColorText);

            case BlobColor.Red:
                return(_redColorText);

            default:
                return(color.ToString());
            }
        }
Exemplo n.º 3
0
        void ITickable.Tick()
        {
            var colliders = _blobsQuery.ToComponentDataArray <CircleColliderComponent>(Allocator.TempJob);

            int redCount  = 0;
            int blueCount = 0;

            for (var i = 0; i < colliders.Length; i++)
            {
                var collider = colliders[i];
                if (collider.Group == CollisionLayer.Blue)
                {
                    blueCount++;
                }
                else if (collider.Group == CollisionLayer.Red)
                {
                    redCount++;
                }
            }

            var currentWinningColor = redCount > blueCount ? BlobColor.Red : BlobColor.Blue;

            if (currentWinningColor != WinningColor)
            {
                _winningColor = currentWinningColor;
                WinningColorChangedEvent?.Invoke(WinningColor);
            }

            _winningColor = currentWinningColor;

            if (redCount == 0 || blueCount == 0)
            {
                if (redCount == blueCount)
                {
                    WinnerFoundEvent?.Invoke(BlobColor.None);
                }
                else if (!_winnerFound)
                {
                    _winnerFound = true;
                    WinnerFoundEvent?.Invoke(redCount > blueCount ? BlobColor.Red : BlobColor.Blue);
                }
            }
            else
            {
                _winnerFound = false;
            }

            colliders.Dispose();
        }
Exemplo n.º 4
0
 private void OnWinningColorChanged(BlobColor color)
 {
     _label.SetValue(PickColorText(color));
 }
Exemplo n.º 5
0
 public void Show(BlobColor winnerColor, int simulationDuration, Action okButtonCallback)
 {
     _okButtonCallback = okButtonCallback;
     _winnerColorLabel.SetValue(winnerColor.ToString());
     _simulationTimeLabel.SetValue(simulationDuration.ToString());
 }