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); }
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; }
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); } } } }