Esempio n. 1
0
 private void HighlightMove(Move move)
 {
     SetSquareColour(BoardRepresentation.CoordFromIndex(move.StartSquare),
                     boardTheme.lightSquares.moveFromHighlight, boardTheme.darkSquares.moveFromHighlight);
     SetSquareColour(BoardRepresentation.CoordFromIndex(move.TargetSquare),
                     boardTheme.lightSquares.moveToHighlight, boardTheme.darkSquares.moveToHighlight);
 }
Esempio n. 2
0
        private IEnumerator AnimateMove(Move move, Board board)
        {
            float       t = 0;
            const float moveAnimDuration = 0.15f;
            var         startCoord       = BoardRepresentation.CoordFromIndex(move.StartSquare);
            var         targetCoord      = BoardRepresentation.CoordFromIndex(move.TargetSquare);
            var         pieceT           = squarePieceRenderers[startCoord.fileIndex, startCoord.rankIndex].transform;
            var         startPos         = PositionFromCoord(startCoord);
            var         targetPos        = PositionFromCoord(targetCoord);

            SetSquareColour(BoardRepresentation.CoordFromIndex(move.StartSquare),
                            boardTheme.lightSquares.moveFromHighlight, boardTheme.darkSquares.moveFromHighlight);

            while (t <= 1)
            {
                yield return(null);

                t += Time.deltaTime * 1 / moveAnimDuration;
                pieceT.position = Vector3.Lerp(startPos, targetPos, t);
            }

            UpdatePosition(board);
            ResetSquareColours();
            pieceT.position = startPos;
        }
Esempio n. 3
0
        public void HighlightLegalMoves(Board board, Coord fromSquare)
        {
            if (showLegalMoves)
            {
                var moves = moveGenerator.GenerateMoves(board);

                for (var i = 0; i < moves.Count; i++)
                {
                    var move = moves[i];
                    if (move.StartSquare == BoardRepresentation.IndexFromCoord(fromSquare))
                    {
                        var coord = BoardRepresentation.CoordFromIndex(move.TargetSquare);
                        SetSquareColour(coord, boardTheme.lightSquares.legal, boardTheme.darkSquares.legal);
                    }
                }
            }
        }