public override bool ActivatePostTurnLogic(IFigureEntity figure)
        {
            //сначала проверяем была срублена фигура на прошлом ходу
            var prevRemovedFigure = GameMoveTurnManager.GetRemovedFigure(figure.PlacedCell);

            if (prevRemovedFigure == null)
            {
                return(false);
            }

            //расчитываем возможные ходы по новой
            var moveTurnData = GameMoveTurnManager.CalculateMovesTurn(figure);

            foreach (var data in moveTurnData)
            {
                if (!data.HasRemovedFigure)
                {
                    data.MoveToCell.Status = BoardCellStatus.Empty;
                    continue;
                }

                GameMaster.SetFocusFigure(figure);
                GameMaster.IsBlockFocused = true;
                SwitchTurn(false, false);
                return(true);
            }

            return(false);
        }
Beispiel #2
0
        public bool SetAndActivateFocusFigure(IFigureEntity figure)
        {
            if (!SetFocusFigure(figure))
            {
                return(false);
            }

            ResetAvailableCellsToEmpty();
            GameMoveTurnManager.CalculateMovesTurn(figure);

            return(true);
        }