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