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