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)); } } }