コード例 #1
0
        public bool MoveFocusFigure(IBoardCell moveToCell)
        {
            if (!HasFocusFigure || moveToCell.Status != BoardCellStatus.AvailableForMove)
            {
                return(false);
            }

            ResetCellStatusToEmpty(_focusFigure.PlacedCell);
            ResetAvailableCellsToEmpty();

            RemoveFigure(moveToCell);
            FigureController.MoveFigure(_focusFigure, moveToCell);

            if (!GameModel.GameDef.Validator.ValidateResult())
            {
                Debug.LogWarning("Game complete");
                OnCompleteGame?.Invoke(this, EventArgs.Empty);
                return(true);
            }

            var figure = _focusFigure;

            Reset();

            FigurePostTurnLogicManager.ActivateFigurePostTurnLogic(figure);
            return(true);
        }
コード例 #2
0
        private void TransformFigure(IFigureEntity figure, IFigureDef figureDef)
        {
            var cell = figure.PlacedCell;
            var team = figure.Team;

            FigureController.RemoveFigure(figure);

            var newTransformFigure = FigureCreator.Create(figureDef, team);

            FigureController.MoveFigure(newTransformFigure, cell);
        }
コード例 #3
0
        private void ArrangementFigures(IGameDef gameDef)
        {
            foreach (var startInfoFigureDef in gameDef.StartInfoFigureDefs)
            {
                var figureDef    = startInfoFigureDef.Def;
                var team         = startInfoFigureDef.Team;
                var figureEntity = FigureCreator.Create(figureDef, team);

                var cell = BoardModel.GetCell(startInfoFigureDef.StartCol, startInfoFigureDef.StartRow);
                FigureController.MoveFigure(figureEntity, cell);
            }
        }