diff --git a/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic.cs b/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic.cs index d9fb72001..bfdb3939d 100644 --- a/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic.cs +++ b/PKHeX.Core/Legality/Encounters/EncounterStatic/EncounterStatic.cs @@ -130,25 +130,16 @@ public PKM ConvertToPKM(ITrainerInfo sav, EncounterCriteria criteria) protected virtual void SetPINGA(PKM pk, EncounterCriteria criteria) { - int gender = criteria.GetGender(Gender, pk.PersonalInfo); + var pi = pk.PersonalInfo; + int gender = criteria.GetGender(Gender, pi); int nature = (int)criteria.GetNature(Nature); - int ability = GetRandomAbility(); // use criteria? + int ability = criteria.GetAbility(Ability, pi); var pidtype = GetPIDType(); PIDGenerator.SetRandomWildPID(pk, pk.Format, nature, ability, gender, pidtype); SetIVs(pk); } - private int GetRandomAbility() - { - return Ability switch - { - 0 => Util.Rand.Next(2), - -1 => Util.Rand.Next(3), - _ => (Ability >> 1) - }; - } - private void SetEggMetData(PKM pk, ITrainerInfo tr, DateTime today) { pk.Met_Location = Math.Max(0, EncounterSuggestion.GetSuggestedEggMetLocation(pk)); diff --git a/PKHeX.Core/Legality/Encounters/EncounterTrade/EncounterTrade.cs b/PKHeX.Core/Legality/Encounters/EncounterTrade/EncounterTrade.cs index acdc470de..f2bad3236 100644 --- a/PKHeX.Core/Legality/Encounters/EncounterTrade/EncounterTrade.cs +++ b/PKHeX.Core/Legality/Encounters/EncounterTrade/EncounterTrade.cs @@ -153,9 +153,10 @@ protected virtual void ApplyDetails(ITrainerInfo sav, EncounterCriteria criteria protected virtual void SetPINGA(PKM pk, EncounterCriteria criteria) { - int gender = criteria.GetGender(Gender, pk.PersonalInfo); + var pi = pk.PersonalInfo; + int gender = criteria.GetGender(Gender, pi); int nature = (int)criteria.GetNature(Nature); - int ability = Ability >> 1; + int ability = criteria.GetAbility(Ability, pi); PIDGenerator.SetRandomWildPID(pk, Generation, nature, ability, gender); pk.Nature = nature; diff --git a/PKHeX.Core/Legality/Encounters/EncounterTrade/EncounterTradePID.cs b/PKHeX.Core/Legality/Encounters/EncounterTrade/EncounterTradePID.cs index 85f16adc7..d9cb04409 100644 --- a/PKHeX.Core/Legality/Encounters/EncounterTrade/EncounterTradePID.cs +++ b/PKHeX.Core/Legality/Encounters/EncounterTrade/EncounterTradePID.cs @@ -16,9 +16,10 @@ public sealed class EncounterTradePID : EncounterTrade protected override void SetPINGA(PKM pk, EncounterCriteria criteria) { - int gender = criteria.GetGender(PKX.GetGenderFromPID(Species, PID), pk.PersonalInfo); + var pi = pk.PersonalInfo; + int gender = criteria.GetGender(PKX.GetGenderFromPID(Species, PID), pi); int nature = (int)criteria.GetNature(Nature); - int ability = Ability >> 1; + int ability = criteria.GetAbility(Ability, pi); pk.PID = PID; pk.Nature = nature;