//Ход игры для игроков public void Manage(IBoardElementController figure) { switch (figure.ElementName) { case "pawn": //Снимаем подсветку с выбранных boardManager.ResetSelected(); //Запоминаем и подсвечиваем выбранную фигуру playerManager.Select(figure); //Вычисляем координаты куда согласно правилам может сходить фигура List <(int, int)> cells = figure.Rule.GetPositions(figure.X, figure.Y, playerManager.AllFiguresKeys, boardManager.Board.Size); //Подсвечиваем найденные координаты boardManager.Select(cells); break; //Клетки обычно некликабельны. Если клетка кликабельна - значит выбрана фигура и клетка доступна для перемещения на нее case "cell": //Двигаем фигуру playerManager.MoveFigureTo(figure.GetCoordinates()); //Снимаем подсветку с ранее выбранных клеток boardManager.ResetSelected(); //Проверям условие победы CheckWin(); break; } }
public IBoardElementController BuildBoardElement(int x, int y, Transform parent) { GameObject o = Object.Instantiate(Prefab); o.transform.SetParent(parent, false); IBoardElementController bec = o.GetComponent <IBoardElementController>(); bec.SetCoordinates((x, y)); BESpartanCell cell = bec.GameObject.GetComponent <BESpartanCell>(); cell.SetImages(GetCellSprites(x, y)); return(bec); }
public IBoardElementController BuildPlayerFigure(int x, int y, Transform parent, IPlayer player) { GameObject o = Object.Instantiate(Prefab); o.transform.SetParent(parent, false); IBoardElementController bec = o.GetComponent <IBoardElementController>(); bec.SetCoordinates((x, y)); BoardElementPawn cell = bec.GameObject.GetComponent <BoardElementPawn>(); cell.Setup(player.Color, queen); return(bec); }
public IBoardElementController BuildPlayerFigure(int x, int y, Transform parent, IPlayer player) { GameObject o = Object.Instantiate(Prefab); o.transform.SetParent(parent, false); IBoardElementController bec = o.GetComponent <IBoardElementController>(); bec.SetCoordinates((x, y)); BESpartanFigure cell = bec.GameObject.GetComponent <BESpartanFigure>(); if (player.Color == black) { cell.SetImages(blackPawn, blackPawnSelected, blackQueen, blackQueenSelected); } if (player.Color == red) { cell.SetImages(whitePawn, whitePawnSelected, whiteQueen, whiteQueenSelected); } return(bec); }
//Ход игры для AI public IEnumerator ManageAI(IBoardElementController figure, (int x, int y) cell)
private void Awake() { controller = GetComponent <IBoardElementController>(); }
private void Manage(IBoardElementController element) { gameMode.Manage(element); }