Exemplo n.º 1
0
        /// <summary>Care3Spots</summary>
        /// <param name="mapToUse"></param>
        public static void CalculateDistanceToOpponentBorderCare3(BotMap mapToUse, BotMap mapToWriteIn)
        {
            var opponentTerritories  = mapToUse.AllOpponentTerritories;
            var blockedTerritories   = mapToUse.GetNeutralTerritories();
            var annotadedTerritories = CalculateDistances(mapToUse, opponentTerritories, blockedTerritories);

            foreach (var territory in annotadedTerritories.Keys)
            {
                var territoryDistance  = annotadedTerritories[territory];
                var territoryToWriteIn = mapToWriteIn.Territories[territory.ID];
                territoryToWriteIn.DistanceToOpponentBorder = territoryDistance;
            }
        }
Exemplo n.º 2
0
        /// <summary>Care4Spots</summary>
        /// <param name="mapToUse"></param>
        public static void CalculateDistanceToOpponentBorderCare4(BotMap mapToUse, BotMap mapToWriteIn)
        {
            var importantOpponentTerritories = new List <BotTerritory>();

            foreach (var opponentTerritory in mapToUse.AllOpponentTerritories)
            {
                if (opponentTerritory.AttackTerritoryValue >= TerritoryValueCalculator.LOWEST_MEDIUM_PRIORITY_VALUE)
                {
                    importantOpponentTerritories.Add(opponentTerritory);
                }
            }
            var blockedTerritories   = mapToUse.GetNeutralTerritories();
            var annotadedTerritories = CalculateDistances(mapToUse, importantOpponentTerritories, blockedTerritories);

            foreach (var territory in annotadedTerritories.Keys)
            {
                var territoryDistance  = annotadedTerritories[territory];
                var territoryToWriteIn = mapToWriteIn.Territories[territory.ID];
                territoryToWriteIn.DistanceToImportantOpponentBorder = territoryDistance;
            }
        }
Exemplo n.º 3
0
        /// <summary>Care2Spots</summary>
        /// <param name="mapToUse"></param>
        public static void CalculateDistanceToHighlyImportantExpansionTerritories(BotMap mapToUse, BotMap mapToWriteIn)
        {
            var highlyImportantTerritories = new List <BotTerritory>();

            foreach (var neutralTerritory in mapToUse.GetNeutralTerritories())
            {
                if (neutralTerritory.Bonuses.Any(o => o.ExpansionValueCategory == 1 && o.GetExpansionValue() >= 100))
                {
                    highlyImportantTerritories.Add(neutralTerritory);
                }
            }
            var blockedTerritories   = mapToUse.AllOpponentTerritories;
            var annotadedTerritories = CalculateDistances(mapToUse, highlyImportantTerritories, blockedTerritories);

            foreach (var territory in annotadedTerritories.Keys)
            {
                var territoryDistance  = annotadedTerritories[territory];
                var territoryToWriteIn = mapToWriteIn.Territories[territory.ID];
                territoryToWriteIn.DistanceToHighlyImportantSpot = territoryDistance;
            }
        }