コード例 #1
0
        public static bool SpawnFigure(PlayerServiceReference.BaseUnitPackage unit, Enums.Piece piece)
        {
            for (int i = 0; i < 8; ++i)
            {
                if (Figures[-1, i] == null)
                {
                    Figure figureOnBoard = FigureManager.CreateFigure(unit, piece);

                    //if (CheckForUpgrades(figureOnBoard, true).Count != 0)
                    //    return true;

                    figureOnBoard.Untargetable = true;
                    figureOnBoard.Owner        = Owner;
                    figureOnBoard.OnDeath     += f =>
                    {
                        Figures[f.Position.Row, f.Position.Column] = null;
                        _activeAllyFigures.Remove(f);
                        if (_activeAllyFigures.Count == 0)
                        {
                            TakeDamage();
                        }
                    };
                    figureOnBoard.OnMove += MoveFigure;
                    figureOnBoard.OnSell += figure => SellFigure(figure);

                    AllFigures.Add(figureOnBoard);
                    SpawnChessFigure(AllFigures.Count - 1, -1, i);
                    return(true);
                }
            }
            return(false);
        }
コード例 #2
0
        public static Figure CreateFigure(PlayerServiceReference.BaseUnitPackage unitPackage, Enums.Piece piece)
        {
            Unit unit = CreateUnit(unitPackage.Name);

            return(CreateFigure(unit, piece));
        }
コード例 #3
0
 public static int CalculateFinalCost(PlayerServiceReference.BaseUnitPackage unit, Enums.Piece piece)
 {
     return(CalculateFinalCost(unit.Cost, piece));
 }