Exemplo n.º 1
0
        private BattleArmyDTO GetArmy(int userCityId, List <UnitType> attackPriority)
        {
            var userArmy    = new BattleArmyDTO();
            var userArchers = this.archersRepo.AllAsNoTracking().Where(x => x.CityId == userCityId).To <BattleUnitDTO>().FirstOrDefault();

            userArchers.Type           = UnitType.Archers;
            userArchers.AttackPriority = attackPriority;

            var userInfantry = this.infatryRepo.AllAsNoTracking().Where(x => x.CityId == userCityId).To <BattleUnitDTO>().FirstOrDefault();

            userInfantry.Type           = UnitType.Infantry;
            userInfantry.AttackPriority = attackPriority;

            var userCavalry = this.calalryRepo.AllAsNoTracking().Where(x => x.CityId == userCityId).To <BattleUnitDTO>().FirstOrDefault();

            userCavalry.Type           = UnitType.Cavalry;
            userCavalry.AttackPriority = attackPriority;

            var userArtillery = this.artilleryRepo.AllAsNoTracking().Where(x => x.CityId == userCityId).To <BattleUnitDTO>().FirstOrDefault();

            userArtillery.Type           = UnitType.Artillery;
            userArtillery.AttackPriority = attackPriority;

            userArmy.Army.Add(userArchers);
            userArmy.Army.Add(userInfantry);
            userArmy.Army.Add(userCavalry);
            userArmy.Army.Add(userArtillery);

            return(userArmy);
        }
Exemplo n.º 2
0
        private static void UpdateBattleResult(string attackerId, string defenderId, BattleArmyDTO attackerArmy, BattleArmyDTO opponentArmy, BattleResult battleResult)
        {
            battleResult.Winner = attackerArmy.TotalArmyCount > 0 ? attackerId : defenderId;
            battleResult.AttackerArchersLost   = battleResult.AttackerArchers - attackerArmy.Army.FirstOrDefault(x => x.Type == UnitType.Archers).Count;
            battleResult.AttackerArtilleryLost = battleResult.AttackerArtillery - attackerArmy.Army.FirstOrDefault(x => x.Type == UnitType.Artillery).Count;
            battleResult.AttackerCavalryLost   = battleResult.AttackerCavalry - attackerArmy.Army.FirstOrDefault(x => x.Type == UnitType.Cavalry).Count;
            battleResult.AttackerInfantryLost  = battleResult.AttackerInfantry - attackerArmy.Army.FirstOrDefault(x => x.Type == UnitType.Infantry).Count;

            battleResult.DefenderArchersLost   = battleResult.DefenderArchers - opponentArmy.Army.FirstOrDefault(x => x.Type == UnitType.Archers).Count;
            battleResult.DefenderArtilleryLost = battleResult.DefenderArtillery - opponentArmy.Army.FirstOrDefault(x => x.Type == UnitType.Artillery).Count;
            battleResult.DefenderCavalryLost   = battleResult.DefenderCavalry - opponentArmy.Army.FirstOrDefault(x => x.Type == UnitType.Cavalry).Count;
            battleResult.DefenderInfantryLost  = battleResult.DefenderInfantry - opponentArmy.Army.FirstOrDefault(x => x.Type == UnitType.Infantry).Count;
        }
Exemplo n.º 3
0
        private BattleResult SetInitialBattleResultData(BattleArmyDTO userArmy, BattleArmyDTO opponentArmy, string attackerId, string defenderId)
        {
            var battleResult = new BattleResult();

            battleResult.Attacker          = attackerId;
            battleResult.Defender          = defenderId;
            battleResult.BattleType        = "Arena";
            battleResult.AttackerArchers   = userArmy.Army.FirstOrDefault(x => x.Type == UnitType.Archers).Count;
            battleResult.AttackerArtillery = userArmy.Army.FirstOrDefault(x => x.Type == UnitType.Artillery).Count;
            battleResult.AttackerCavalry   = userArmy.Army.FirstOrDefault(x => x.Type == UnitType.Cavalry).Count;
            battleResult.AttackerInfantry  = userArmy.Army.FirstOrDefault(x => x.Type == UnitType.Infantry).Count;
            battleResult.DefenderArchers   = opponentArmy.Army.FirstOrDefault(x => x.Type == UnitType.Archers).Count;
            battleResult.DefenderArtillery = opponentArmy.Army.FirstOrDefault(x => x.Type == UnitType.Artillery).Count;
            battleResult.DefenderCavalry   = opponentArmy.Army.FirstOrDefault(x => x.Type == UnitType.Cavalry).Count;
            battleResult.DefenderInfantry  = opponentArmy.Army.FirstOrDefault(x => x.Type == UnitType.Infantry).Count;

            return(battleResult);
        }
Exemplo n.º 4
0
        private static BattleUnitDTO SelectDefendingUnit(List <UnitType> attackPriority, BattleArmyDTO defenderArmy)
        {
            BattleUnitDTO defendingUnit = null;

            for (int i = 0; i < 4; i++)
            {
                defendingUnit = defenderArmy.Army.FirstOrDefault(x => x.Type == attackPriority[i] && x.Count > 0);
                if (defendingUnit != null)
                {
                    break;
                }
            }

            return(defendingUnit);
        }