Ejemplo n.º 1
0
 /// <summary>
 /// Remove animation of checker.
 /// </summary>
 private void CompleteRemoveAnimation(CheckerVisual view, Vector3 stackPosition, int Id)
 {
     view.transform.DOKill();
     view.transform.DOLocalMove(stackPosition, 0.2f).SetEase(Ease.InExpo);
     _checkersViews.Remove(Id);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Board initialization.
        /// </summary>
        public void OnBoardPrepared(List <Square> squaresInitialPositions, List <Checker> checkersInitialPositions)
        {
            _isBoardPreparing = true;

            InitCheckersStacks();

            _squareSize = squaresInitialPositions.Max(square => square.Position.Y) + 1;

            int blackCounter = 0, whiteCounter = 0;

            foreach (var square in squaresInitialPositions)
            {
                SquareVisual squareView;

                if (square.Color == SquareColor.White)
                {
                    squareView = WhiteSquares[whiteCounter];
                    whiteCounter++;
                }
                else
                {
                    squareView = BlackSquares[blackCounter];
                    squareView.ShadowRenderer.enabled = false;
                    blackCounter++;
                }

                squareView.transform.localPosition = SquareScreenPosition(square.Position);

                squareView.Init(square.Id);
                _squaresViews[square.Id] = squareView;

                if (square.Color == SquareColor.Black && _blackSquareColor == Color.clear)
                {
                    _blackSquareColor = squareView.SquareMaterial.color;
                }
            }

            float intervalWhite = 0.15f, intervalBlack = 0.15f;

            int CheckerCounter = 0;

            foreach (var checker in checkersInitialPositions)
            {
                CheckerVisual checkerView = Checkers[CheckerCounter];

                checkerView.SuperCheckerRenderer.enabled = false;

                if (checker.Color == CheckerColor.White)
                {
                    checkerView.CheckerRenderer.material = new Material(_whiteCheckerMaterial);                      //(_choosenCheckerColor == CheckerColor.White) ? new Material(_whiteCheckerMaterial) : new Material(_blackCheckerMaterial);
                    checkerView.transform.localPosition  = new Vector3(_startPositionForWhite.position.x, _startPositionForWhite.position.y + intervalWhite, _startPositionForWhite.position.z);
                    intervalWhite += 0.15f;
                }
                else
                {
                    checkerView.CheckerRenderer.material = new Material(_blackCheckerMaterial);                     //(_choosenCheckerColor == CheckerColor.Black) ? new Material(_whiteCheckerMaterial) : new Material(_blackCheckerMaterial);
                    checkerView.transform.localPosition  = new Vector3(_startPositionForBlack.position.x, _startPositionForBlack.position.y + intervalBlack, _startPositionForBlack.position.z);
                    intervalBlack += 0.15f;
                }
                CheckerCounter++;
                checkerView.Init(checker.Id);
                _checkersViews[checker.Id]          = checkerView;
                checkerView.CheckerCollider.enabled = true;
            }

            StartCoroutine(StartAnimation(checkersInitialPositions));
        }