Ejemplo n.º 1
0
        private void StatBoostTypeMove(RBYPokemon Attacker, RBYPokemon Defender, AttackType atk, int accuracy, bool sec = false)
        {
            var query = atk.Stats.Where(p => p.Boost < StatBoostDegree.MeDown);

            if (query.Count() != 0 && !sec)
            {
                Defender.LastDmg = 0;
                Defender.NonDmgHit();
                if (!HitOrMiss(Attacker.Accuracy, Defender.Evasion, accuracy) || Defender.IsMisted && !Unhittable(Defender))
                {
                    Displayer.AtkMissed();
                    return;
                }
            }

            foreach (var p in atk.Stats)
            {
                if (p.Boost < StatBoostDegree.MeDown)
                {
                    Defender.IncreaseStage(p.Stat, DetermineStatDegree(p.Boost));
                }
                else
                {
                    Attacker.IncreaseStage(p.Stat, DetermineStatDegree(p.Boost));
                }
            }
        }