示例#1
0
    public void Train()
    {
        var army = new Army();

        army.Add(Unit.Type.Attack, int.Parse(AttackUnits.text));
        army.Add(Unit.Type.Defence, int.Parse(DefenceUnits.text));
        army.Add(Unit.Type.Speed, int.Parse(SpeedUnits.text));

        Base.StartTrain(army);
    }
示例#2
0
 public void AddUnits(UnitType unitType, int amount)
 {
     if (!Army.ContainsKey(unitType))
     {
         Army.Add(unitType, 0);
     }
     Army[unitType] += amount;
 }
示例#3
0
文件: Player.cs 项目: FoKycHuK/CVARC
 public void AddUnits(UnitType unitType, int amount)
 {
     if (!Army.ContainsKey(unitType))
     {
         Army.Add(unitType, 0);
     }
     Army[unitType] += amount;
     OnArmyUpdated(unitType, Army[unitType]);
     OnUnitsAdded(unitType, amount);
 }
示例#4
0
    public void Attack()
    {
        var army = new Army();

        army.Add(Unit.Type.Attack, int.Parse(AttackUnits.text));
        army.Add(Unit.Type.Defence, int.Parse(DefenceUnits.text));
        army.Add(Unit.Type.Speed, int.Parse(SpeedUnits.text));

        if (!Base.Army.Has(army))
        {
            throw new Exception("You do not have enough units.");
        }

        Base.Army.Remove(army);

        if (!EnemyBase.CanDefendAgainst(army))
        {
            Game.Grid.Remove(EnemyBase);
            Base.Army.Add(army);
            Base.Resources.Add(Settings.Battle.VictoryReward);
        }
    }
示例#5
0
        IEnumerable <Army> ArmyPermutations(Army army)
        {
            var possibleSpeeds = army.Where(kvp => kvp.Value > 0).Select(kvp => ArmyStats.TravelSpeed[kvp.Key]).Distinct();

            foreach (var speed in possibleSpeeds)
            {
                var permutation = new Army();
                foreach (var unit in army.Where(kvp => ArmyStats.TravelSpeed[kvp.Key] <= speed))
                {
                    permutation.Add(unit.Key, unit.Value);
                }

                yield return(permutation);
            }
        }
示例#6
0
        private void Train(Base @base)
        {
            var count = @base.Resources.Divide(Settings.Train.Price) / 2;
            var army  = new Army();

            var price = Settings.Train.Price;

            price.Multiply(count);

            army.Add(Unit.Type.Attack, count);

            if (@base.Resources.IsEnough(price) && @base.Army.Count + army.Count < @base.UnitLimit())
            {
                @base.StartTrain(army);
            }
        }
示例#7
0
        public void Add(string name, string dignity, int salary)
        {
            var soldier = new SoldierViewModel();

            soldier.Dignity = dignity;
            soldier.Name    = name;
            soldier.Salary  = salary;

            soldier.PropertyChanged += Soldier_OnNotifyPropertyChanged;
            soldier.DeleteHandler   += Soldier_OnDelete;
            Soldiers.Add(soldier);

            SelectedIndex = Soldiers.IndexOf(soldier);

            army.Add(soldier);
        }
示例#8
0
    public void FinishTrain()
    {
        foreach (var building in Barracks)
        {
            if (!building.Training)
            {
                continue;
            }

            var units = building.Army;
            var count = units.Count;
            var price = Settings.Train.Price.Clone();

            price.Multiply(count);

            Army.Add(units);

            building.Trained(this);
        }
    }
示例#9
0
        static public void Run()
        {
            int  armyQuantity = 0;
            Army army         = new Army();

            Squad   elfSquad      = new Squad(Race.elf);
            Squad   minotaurSquad = new Squad(Race.minotaur);
            Squad   centaurSquad  = new Squad(Race.centaur);
            Squad   knightSquad   = new Squad(Race.knight);
            Squad   orcSquad      = new Squad(Race.orc);
            Squad   cyclopsSquad  = new Squad(Race.cyclops);
            Squad   cyclopsSquad2 = new Squad(Race.cyclops);
            Squad   elfSquad2     = new Squad(Race.elf);
            Soldier hydra         = new Soldier(Race.hydra);
            Soldier dragon        = new Soldier(Race.dragon);

            //Создание войс и добавление количества воинов каждой расы в состав армии
            var orcSoldiers = Enumerable.Range(1, 4).Select(x => new Soldier(Race.orc));

            orcSquad.AddAll(orcSoldiers);
            armyQuantity += Enumerable.Range(1, 4).Select(x => new Soldier(Race.orc)).Count();


            var elfSoldiers = Enumerable.Range(1, 12).Select(x => new Soldier(Race.elf));

            elfSquad.AddAll(elfSoldiers);
            armyQuantity += Enumerable.Range(1, 12).Select(x => new Soldier(Race.elf)).Count();

            var elfSoldiers2 = Enumerable.Range(1, 6).Select(x => new Soldier(Race.elf));

            elfSquad2.AddAll(elfSoldiers2);
            elfSquad.Add(elfSquad2);
            armyQuantity += Enumerable.Range(1, 6).Select(x => new Soldier(Race.elf)).Count();


            var minotaurSoldiers = Enumerable.Range(1, 5).Select(x => new Soldier(Race.minotaur));

            minotaurSquad.AddAll(minotaurSoldiers);
            armyQuantity += Enumerable.Range(1, 5).Select(x => new Soldier(Race.minotaur)).Count();

            var centaurSoldiers = Enumerable.Range(1, 5).Select(x => new Soldier(Race.centaur));

            centaurSquad.AddAll(centaurSoldiers);
            armyQuantity += Enumerable.Range(1, 5).Select(x => new Soldier(Race.centaur)).Count();

            var knightSoldiers = Enumerable.Range(1, 20).Select(x => new Soldier(Race.knight));

            knightSquad.AddAll(knightSoldiers);
            armyQuantity += Enumerable.Range(1, 10).Select(x => new Soldier(Race.knight)).Count();

            var cyclopsSoldiers = Enumerable.Range(1, 8).Select(x => new Soldier(Race.cyclops));

            cyclopsSquad.AddAll(cyclopsSoldiers);
            armyQuantity += Enumerable.Range(1, 8).Select(x => new Soldier(Race.cyclops)).Count();

            var cyclopsSoldiers2 = Enumerable.Range(1, 4).Select(x => new Soldier(Race.cyclops));

            cyclopsSquad2.AddAll(cyclopsSoldiers2);
            cyclopsSquad.Add(cyclopsSquad2);
            armyQuantity += Enumerable.Range(1, 4).Select(x => new Soldier(Race.cyclops)).Count();


            army.Add(hydra);
            army.Add(dragon);
            army.Add(elfSquad);
            army.Add(minotaurSquad);
            army.Add(centaurSquad);
            army.Add(knightSquad);
            army.Add(orcSquad);
            army.Add(cyclopsSquad);
            army.Display();
            Console.WriteLine("\n\n\tОбщее количество войск : {0} ", armyQuantity);
        }
示例#10
0
 public void addToArmy(Unit u)
 {
     Army.Add(u);
     Micro.assignUnit(u);
 }
示例#11
0
        static World ConstructNewZealand()
        {
            World world = new World(1000, 1000);

            string[] regions = new string[]
            {
                "Hawkes Bay",
                "Auckland",
                "New Plymouth",
                "Wellington",
                "Nelson",
                "Marlborough",
                "Westland",
                "Canterbury",
                "Otago",
                "Southland"
            };

            Random randomNumberGenerator = new Random();

            for (int i = 0; i < regions.Length; i++)
            {
                string regionName = regions[i];
                Region region     = new Region(world);
                world.Regions.Add(region);
                int tileWidth      = randomNumberGenerator.Next(2, 10);
                int tileHeight     = randomNumberGenerator.Next(2, 10);
                int regionModifier = i * 10;
                for (int width = 0; width < tileWidth; width++)
                {
                    for (int height = 0; height < tileHeight; height++)
                    {
                        int  tileType     = randomNumberGenerator.Next(0, Enum.GetValues(typeof(Tile.TileTypeEnum)).Length);
                        int  resourceType = randomNumberGenerator.Next(0, Enum.GetValues(typeof(Tile.ResourceTypeEnum)).Length);
                        Tile tile         = new Tile(regionModifier + width, regionModifier + height, (Tile.TileTypeEnum)tileType, (Tile.ResourceTypeEnum)resourceType, region);
                        region.Add(tile);
                    }
                }
            }



            Player playerOne = new Player("Player One");

            world.Players.Add(playerOne);

            Tile tileOne = world.TileGrid[1, 1];
            Army armyOne = new Army("armyOne", tileOne, playerOne);

            tileOne.Add(armyOne);
            playerOne.Armies.Add(armyOne);
            int regimentCount = randomNumberGenerator.Next(0, 10);

            for (int i = 0; i < regimentCount; i++)
            {
                Regiment regiment = new Regiment(1000, new UnitType());
                armyOne.Add(regiment);
            }


            Player playerTwo = new Player("Player Two");

            world.Players.Add(playerTwo);

            Tile tileTwo = world.TileGrid[2, 2];
            Army armyTwo = new Army("armyTwo", tileOne, playerTwo);

            tileTwo.Add(armyTwo);
            playerTwo.Armies.Add(armyOne);
            int playerTwoRegimentCount = randomNumberGenerator.Next(0, 10);

            for (int i = 0; i < playerTwoRegimentCount; i++)
            {
                Regiment regiment = new Regiment(1000, new UnitType());
                armyOne.Add(regiment);
            }

            return(world);
        }