diff --git a/OpenRA.Mods.Common/AI/HackyAI.cs b/OpenRA.Mods.Common/AI/HackyAI.cs index 96211449fc..9ba3e77f65 100644 --- a/OpenRA.Mods.Common/AI/HackyAI.cs +++ b/OpenRA.Mods.Common/AI/HackyAI.cs @@ -192,8 +192,6 @@ namespace OpenRA.Mods.Common.AI public object Create(ActorInitializer init) { return new HackyAI(this, init); } } - public class Enemy { public int Aggro; } - public enum BuildingType { Building, Defense, Refinery } public sealed class HackyAI : ITick, IBot, INotifyDamage @@ -232,7 +230,6 @@ namespace OpenRA.Mods.Common.AI BitArray resourceTypeIndices; - Cache aggro = new Cache(_ => new Enemy()); List builders = new List(); List unitsHangingAroundTheBase = new List(); @@ -559,45 +556,6 @@ namespace OpenRA.Mods.Common.AI World.IssueOrder(orders.Dequeue()); } - internal Actor ChooseEnemyTarget() - { - if (Player.WinState != WinState.Undefined) - return null; - - var liveEnemies = World.Players - .Where(p => Player != p && Player.Stances[p] == Stance.Enemy && p.WinState == WinState.Undefined); - - if (!liveEnemies.Any()) - return null; - - var leastLikedEnemies = liveEnemies - .GroupBy(e => aggro[e].Aggro) - .MaxByOrDefault(g => g.Key); - - var enemy = (leastLikedEnemies != null) ? - leastLikedEnemies.Random(Random) : liveEnemies.FirstOrDefault(); - - // Pick something worth attacking owned by that player - var target = World.ActorsHavingTrait() - .Where(a => a.Owner == enemy) - .ClosestTo(World.Map.CenterOfCell(GetRandomBaseCenter())); - - if (target == null) - { - /* Assume that "enemy" has nothing. Cool off on attacks. */ - aggro[enemy].Aggro = aggro[enemy].Aggro / 2 - 1; - Log.Write("debug", "Bot {0} couldn't find target for player {1}", Player.ClientIndex, enemy.ClientIndex); - - return null; - } - - // Bump the aggro slightly to avoid changing our mind - if (leastLikedEnemies.Count() > 1) - aggro[enemy].Aggro++; - - return target; - } - internal Actor FindClosestEnemy(WPos pos) { return World.Actors.Where(isEnemyUnit).ClosestTo(pos); @@ -1091,9 +1049,6 @@ namespace OpenRA.Mods.Common.AI if (!e.Attacker.Info.HasTraitInfo()) return; - if (e.Damage > 0) - aggro[e.Attacker.Owner].Aggro += e.Damage; - // Protected harvesters or building if ((self.Info.HasTraitInfo() || self.Info.HasTraitInfo()) && Player.Stances[e.Attacker.Owner] == Stance.Enemy)