diff --git a/PKHeX.Core/Legality/Encounters/EncounterMisc/EncounterEgg.cs b/PKHeX.Core/Legality/Encounters/EncounterMisc/EncounterEgg.cs index 6a3d7165f..8914e53e0 100644 --- a/PKHeX.Core/Legality/Encounters/EncounterMisc/EncounterEgg.cs +++ b/PKHeX.Core/Legality/Encounters/EncounterMisc/EncounterEgg.cs @@ -34,7 +34,7 @@ public PKM ConvertToPKM(ITrainerInfo sav, EncounterCriteria criteria) pk.Nickname = SpeciesName.GetSpeciesNameGeneration(Species, lang, gen); pk.CurrentLevel = Level; pk.Version = (int)version; - pk.Ball = (int)Ball.Poke; + pk.Ball = (int)BallBreedLegality.GetDefaultBall(Version, Species); pk.OT_Friendship = pk.PersonalInfo.BaseFriendship; SetEncounterMoves(pk, version); diff --git a/PKHeX.Core/Legality/Verifiers/Ball/BallBreedLegality.cs b/PKHeX.Core/Legality/Verifiers/Ball/BallBreedLegality.cs index cb350288c..4b4766848 100644 --- a/PKHeX.Core/Legality/Verifiers/Ball/BallBreedLegality.cs +++ b/PKHeX.Core/Legality/Verifiers/Ball/BallBreedLegality.cs @@ -1037,5 +1037,23 @@ internal static class BallBreedLegality (int)Phione, }; + + /// + /// Gets a legal value for a bred egg encounter. + /// + /// Version the egg was created on. + /// Species the egg contained. + /// Valid ball to hatch with. + /// Not all things can hatch with a Poké Ball! + public static Ball GetDefaultBall(GameVersion version, int species) + { + if (GameVersion.BDSP.Contains(version)) + { + if (BanInheritedExceptSafari_BDSP.Contains(species)) + return Ball.Safari; + } + + return Ball.Poke; + } } }