Exemplo n.º 1
0
        private static void VerifyMiscEggCommon(LegalityAnalysis data)
        {
            var pkm = data.pkm;

            if (pkm.Move1_PPUps > 0 || pkm.Move2_PPUps > 0 || pkm.Move3_PPUps > 0 || pkm.Move4_PPUps > 0)
            {
                data.AddLine(GetInvalid(LEggPPUp, CheckIdentifier.Egg));
            }
            if (pkm.Move1_PP != pkm.GetMovePP(pkm.Move1, 0) || pkm.Move2_PP != pkm.GetMovePP(pkm.Move2, 0) || pkm.Move3_PP != pkm.GetMovePP(pkm.Move3, 0) || pkm.Move4_PP != pkm.GetMovePP(pkm.Move4, 0))
            {
                data.AddLine(GetInvalid(LEggPP, CheckIdentifier.Egg));
            }

            var EncounterMatch = data.EncounterOriginal;
            var HatchCycles    = (EncounterMatch as EncounterStatic)?.EggCycles;

            if (HatchCycles == 0 || HatchCycles == null)
            {
                HatchCycles = pkm.PersonalInfo.HatchCycles;
            }
            if (pkm.CurrentFriendship > HatchCycles)
            {
                data.AddLine(GetInvalid(LEggHatchCycles, CheckIdentifier.Egg));
            }

            if (pkm.Format >= 6 && EncounterMatch is EncounterEgg && !pkm.Moves.SequenceEqual(pkm.RelearnMoves))
            {
                var moves = string.Join(", ", LegalityAnalysis.GetMoveNames(pkm.Moves));
                var msg   = string.Format(LMoveFExpect_0, moves);
                data.AddLine(GetInvalid(msg, CheckIdentifier.Egg));
            }
        }
Exemplo n.º 2
0
        private static void VerifyMiscEggCommon(LegalityAnalysis data)
        {
            var pkm = data.pkm;

            if (pkm.Move1_PPUps > 0 || pkm.Move2_PPUps > 0 || pkm.Move3_PPUps > 0 || pkm.Move4_PPUps > 0)
            {
                data.AddLine(GetInvalid(LEggPPUp, Egg));
            }
            if (pkm.Move1_PP != pkm.GetMovePP(pkm.Move1, 0) || pkm.Move2_PP != pkm.GetMovePP(pkm.Move2, 0) || pkm.Move3_PP != pkm.GetMovePP(pkm.Move3, 0) || pkm.Move4_PP != pkm.GetMovePP(pkm.Move4, 0))
            {
                data.AddLine(GetInvalid(LEggPP, Egg));
            }

            var EncounterMatch = data.EncounterOriginal;
            var HatchCycles    = EncounterMatch is EncounterStatic s ? s.EggCycles : 0;

            if (HatchCycles == 0) // no value set
            {
                HatchCycles = pkm.PersonalInfo.HatchCycles;
            }
            if (pkm.CurrentFriendship > HatchCycles)
            {
                data.AddLine(GetInvalid(LEggHatchCycles, Egg));
            }

            if (pkm.Format >= 6 && EncounterMatch is EncounterEgg && !pkm.Moves.SequenceEqual(pkm.RelearnMoves))
            {
                var moves = string.Join(", ", LegalityAnalysis.GetMoveNames(pkm.Moves));
                var msg   = string.Format(LMoveFExpect_0, moves);
                data.AddLine(GetInvalid(msg, Egg));
            }

            if (pkm is PK8 pk8)
            {
                if (pk8.HasAnyMoveRecordFlag())
                {
                    data.AddLine(GetInvalid(LEggRelearnFlags, Egg));
                }
                if (pk8.StatNature != pk8.Nature)
                {
                    data.AddLine(GetInvalid(LEggNature, Egg));
                }
            }
        }