public IEnumerable <Action> Do(HeroController controller, TurnState turn, TacticScore tacticScore)
        {
            var target = turn.Enemy;

            var threat       = new ThreatTable(target);
            var sorted       = threat.OrderBy(x => x.Value);
            var keyValuePair = sorted.Last();
            var unit         = keyValuePair.Key;

            foreach (var item in sorted)
            {
                Console.Error.WriteLine(item.ToDebugString());
            }

            yield return(() => controller.Attack(unit, "Smackdown."));
        }
        public IEnumerable <Action> Do(HeroController controller, TurnState turn, TacticScore tacticScore)
        {
            var msg = turn.Enemy.Hero.HealthPercentage > 30 ? "FIGHT ME." : "You die now.";

            yield return(() => controller.AttackNearest("HERO", msg));
        }
        public IEnumerable <Action> Do(HeroController controller, TurnState turn, TacticScore tacticScore)
        {
            var leader = turn.My.Trash.FurthestForwardsOrDefault() ?? turn.My.Tower;

            yield return(() => controller.MoveBehind(leader, 2, "March!"));
        }
 public IEnumerable <Action> Do(HeroController controller, TurnState turn, TacticScore tacticScore)
 {
     yield return(() => controller.Move(turn.My.Tower));
 }
 public IEnumerable <Action> Do(HeroController controller, TurnState turn, TacticScore tacticScore)
 {
     yield return(() => controller.AttackNearest("HERO"));
 }
 public IEnumerable <Action> Do(HeroController controller, TurnState turn, TacticScore tacticScore)
 {
     yield return(() => controller.Attack(turn.Enemy.Hero, "You can't hide from me"));
 }