public void HandleThreats() { List <Task> tasks = new List <Task>(); List <Creature> threatsToRemove = new List <Creature>(); foreach (Creature threat in Threats) { if (threat != null && !threat.IsDead) { if (!Designations.IsDesignation(threat.Physics, DesignationType.Attack)) { var g = new KillEntityTask(threat.Physics, KillEntityTask.KillType.Auto); Designations.AddEntityDesignation(threat.Physics, DesignationType.Attack, null, g); tasks.Add(g); } else { threatsToRemove.Add(threat); } } else { threatsToRemove.Add(threat); } } foreach (Creature threat in threatsToRemove) { Threats.Remove(threat); } TaskManager.AssignTasksGreedy(tasks, Minions); }
public void HandleThreats() { List <Task> tasks = new List <Task>(); List <Creature> threatsToRemove = new List <Creature>(); foreach (Creature threat in Threats) { if (threat != null && !threat.IsDead) { Task g = new KillEntityTask(threat.Physics, KillEntityTask.KillType.Auto); if (!IsTaskAssigned(g)) { if (!AttackDesignations.Contains(threat.Physics)) { AttackDesignations.Add(threat.Physics); } tasks.Add(g); } else { threatsToRemove.Add(threat); } } else { threatsToRemove.Add(threat); } } foreach (Creature threat in threatsToRemove) { Threats.Remove(threat); } TaskManager.AssignTasks(tasks, Minions); }