Example #1
0
 public AttackAction(LbCard attacker, LbCard target)
 {
     _attacker  = attacker;
     _target    = target;
     ActionTime = 3000;
     AddTime    = DateTime.Now;
 }
Example #2
0
 // Custom CanPlay for hunter
 private bool CanPlay(LbCard card, bool ignorePlay = false)
 {
     if (!card.CanPlay && !ignorePlay) return false;
     switch (card.Id)
     {
         // Unleash Hounds
         case "EX1_538":
             if (Game.Player.HasCardInField("NEW1_019") && Game.Enemy.MinionsInField >= 2)
                 return true;
             return Game.Enemy.MinionsInField >= 3;
         // Lance Carrier
         case "AT_084":
             return (Game.Player.MinionsInField > 0);
         // IronBeak Owl
         case "CS2_203":
             return (Game.Enemy.MinionsInField > 0);
         // Abusive Sergeant
         case "CS2_188":
             return (Game.Player.MinionsThatCanAttack > 0);
         // Eaglehorn Bow
         case "EX1_536":
             return !Game.Player.HasWeapon;
         default:
             return true;
     }
 }
Example #3
0
 public static void NukeMinion(LbCard target)
 {
     foreach (var card in Game.Player.Field)
     {
         if (!card.CanAttack()) continue;
         card.Attack(target);
     }
 }
Example #4
0
 private static bool CheckCard(LbCard card, LbCard best)
 {
     if (card.Rule != null)
     {
         return(card.CanPlay && card.Rule.Met && (best == null || best.Value() < card.Value()));
     }
     API.Utility.DumpCustomRule(card);
     return(false);
 }
Example #5
0
 public static LbCard BestKillerFor(LbCard target)
 {
     LbCard best = null;
     foreach (var card in Game.Player.Field)
     {
         if (card.CanKill(target) && card.CanAttack() && (best == null || best.Value() > card.Value()))
             best = card;
     }
     return best;
 }
Example #6
0
 public static void NukeMinion(LbCard target)
 {
     foreach (var card in Game.Player.Field)
     {
         if (!card.CanAttack())
         {
             continue;
         }
         card.Attack(target);
     }
 }
Example #7
0
        public static LbCard BestKillerFor(LbCard target)
        {
            LbCard best = null;

            foreach (var card in Game.Player.Field)
            {
                if (card.CanKill(target) && card.CanAttack() && (best == null || best.Value() > card.Value()))
                {
                    best = card;
                }
            }
            return(best);
        }
Example #8
0
        internal static LbCard BestCardToPlay()
        {
            var    cardsInHand = Game.Player.Hand;
            LbCard best        = null;

            foreach (var card in cardsInHand)
            {
                if (CheckCard(card, best))
                {
                    best = card;
                }
            }
            return(best);
        }
Example #9
0
        private LbCard BestPlay()
        {
            var    cardsInHand = Game.Player.Hand;
            LbCard best        = null;

            foreach (var card in cardsInHand)
            {
                if (CanPlay(card) && (best == null || best.Value() < card.Value()))
                {
                    best = card;
                }
            }
            return(best);
        }
Example #10
0
        internal static LbCard BestPlay(bool coin)
        {
            var    cardsInHand = Game.Player.Hand;
            LbCard best        = null;

            foreach (var card in cardsInHand)
            {
                if (CanPlay(card) && (best == null || best.Value() < card.Value()))
                {
                    best = card;
                }
            }
            return(best);
        }
Example #11
0
        private static List <LbCard> KillersFor(LbCard target)
        {
            var myField = Game.Player.Field;
            var killers = new List <LbCard>();

            foreach (var card in myField)
            {
                if (!card.CanKill(target))
                {
                    continue;
                }
                killers.Add(card);
            }
            return(killers);
        }
Example #12
0
 internal static LbCard BestKillerFor(LbCard target)
 {
     if (Game.Enemy.HasTauntMinion && !target.HasTaunt)
         return null;
     LbCard best = null;
     var myField = Game.Player.Field;
     foreach (var card in myField)
     {
         if (!card.CanAttack() || !card.CanKill(target))
             continue;
         if (best == null || (best.Value() > card.Value()) ||
             (best.RemainingHealth <= target.AttackDamage && card.RemainingHealth > target.AttackDamage))
             best = card;
     }
     return best;
 }
Example #13
0
        // Custom CanPlay for hunter
        internal static bool CanPlay(LbCard card)
        {
            if (!card.CanPlay)
            {
                return(false);
            }
            switch (card.Id)
            {
            // Unleash Hounds
            case "EX1_538":
                if (Game.Player.HasCardInField("NEW1_019") && Game.Enemy.MinionsInField >= 2)
                {
                    return(true);
                }
                return(Game.Enemy.MinionsInField >= 3);

            // Lance Carrier
            case "AT_084":
                return(Game.Player.MinionsInField > 0);

            // IronBeak Owl
            case "CS2_203":
                return(Game.Enemy.MinionsInField > 0);

            // Abusive Sergeant
            case "CS2_188":
                return(Game.Player.MinionsThatCanAttack > 0);

            // Eaglehorn Bow
            case "EX1_536":
                return(!Game.Player.HasWeapon);

            // The Coin
            case "GAME_005":
                foreach (var handc in Game.Player.Hand)
                {
                    if (handc.Cost == (Game.Player.CurrentMana + 1) && CanPlay(handc))
                    {
                        return(true);
                    }
                }
                return(false);

            default:
                return(true);
            }
        }
Example #14
0
        internal static LbCard GetLowestEnemyTaunt()
        {
            LbCard lowestTaunt = null;

            foreach (var card in Game.Enemy.Field)
            {
                if (!card.HasTaunt)
                {
                    continue;
                }
                if (lowestTaunt == null || (card.RemainingHealth < lowestTaunt.RemainingHealth))
                {
                    lowestTaunt = card;
                }
                else if (lowestTaunt.RemainingHealth == card.RemainingHealth &&
                         lowestTaunt.AttackDamage < card.AttackDamage)
                {
                    lowestTaunt = card;
                }
            }
            return(lowestTaunt);
        }
Example #15
0
        internal static LbCard BestKillerFor(LbCard target)
        {
            if (Game.Enemy.HasTauntMinion && !target.HasTaunt)
            {
                return(null);
            }
            LbCard best    = null;
            var    myField = Game.Player.Field;

            foreach (var card in myField)
            {
                if (!card.CanAttack() || !card.CanKill(target))
                {
                    continue;
                }
                if (best == null || (best.Value() > card.Value()) ||
                    (best.RemainingHealth <= target.AttackDamage && card.RemainingHealth > target.AttackDamage))
                {
                    best = card;
                }
            }
            return(best);
        }
Example #16
0
        // Custom CanPlay for hunter
        internal static bool CanPlay(LbCard card)
        {
            if (!card.CanPlay) return false;
            switch (card.Id)
            {
                // Unleash Hounds
                case "EX1_538":
                    if (Game.Player.HasCardInField("NEW1_019") && Game.Enemy.MinionsInField >= 2)
                        return true;
                    return Game.Enemy.MinionsInField >= 3;
                // Lance Carrier
                case "AT_084":
                    return (Game.Player.MinionsInField > 0);
                // IronBeak Owl
                case "CS2_203":
                    return (Game.Enemy.MinionsInField > 0);
                // Abusive Sergeant
                case "CS2_188":
                    return (Game.Player.MinionsThatCanAttack > 0);
                // Eaglehorn Bow
                case "EX1_536":
                    return !Game.Player.HasWeapon;
                // The Coin
                case "GAME_005":
                    foreach (var handc in Game.Player.Hand)
                    {
                        if (handc.Cost == (Game.Player.CurrentMana + 1) && CanPlay(handc))
                        {
                            return true;
                        }
                    }
                    return false;

                default:
                    return true;
            }
        }
Example #17
0
        // Custom CanPlay for hunter
        private bool CanPlay(LbCard card, bool ignorePlay = false)
        {
            if (!card.CanPlay && !ignorePlay)
            {
                return(false);
            }
            switch (card.Id)
            {
            // Unleash Hounds
            case "EX1_538":
                if (Game.Player.HasCardInField("NEW1_019") && Game.Enemy.MinionsInField >= 2)
                {
                    return(true);
                }
                return(Game.Enemy.MinionsInField >= 3);

            // Lance Carrier
            case "AT_084":
                return(Game.Player.MinionsInField > 0);

            // IronBeak Owl
            case "CS2_203":
                return(Game.Enemy.MinionsInField > 0);

            // Abusive Sergeant
            case "CS2_188":
                return(Game.Player.MinionsThatCanAttack > 0);

            // Eaglehorn Bow
            case "EX1_536":
                return(!Game.Player.HasWeapon);

            default:
                return(true);
            }
        }
Example #18
0
 public PlayCardAction(LbCard source)
 {
     _source    = source;
     ActionTime = 3000;
     AddTime    = DateTime.Now;
 }
Example #19
0
 private static bool CheckCard(LbCard card, LbCard best)
 {
     if (card.Rule != null)
         return card.CanPlay && card.Rule.Met && (best == null || best.Value() < card.Value());
     API.Utility.DumpCustomRule(card);
     return false;
 }
Example #20
0
 private static List<LbCard> KillersFor(LbCard target)
 {
     var myField = Game.Player.Field;
     var killers = new List<LbCard>();
     foreach (var card in myField)
     {
         if (!card.CanKill(target)) continue;
         killers.Add(card);
     }
     return killers;
 }