public static IBattleAttack Build(AttackName attackName)
        {
            switch (attackName)
            {
            case AttackName.Stab:
                return(new Stab("Stab", 5));

            default:
                return(null);
            }
        }
        private void ApplyModifier(PokemonCard pokemon)
        {
            var attack = pokemon.Attacks.FirstOrDefault(x => x.Name.ToLower() == AttackName.ToLower());

            if (attack != null)
            {
                attack.DamageModifier = new DamageModifier(NewDamage, Turns);

                if (SelfDamageBoost > 0)
                {
                    var effect = attack.Effects.OfType <DamageEffect>().FirstOrDefault(e => e.TargetingMode == TargetingMode.YourActive || e.TargetingMode == TargetingMode.Self);

                    if (effect != null)
                    {
                        effect.DamageModifier = new DamageModifier(SelfDamageBoost, Turns);
                    }
                }
            }
        }