Use criteria for getting ability

This commit is contained in:
Kurt
2020-06-21 18:16:34 -05:00
parent fc4ba1df35
commit 7e69202669
3 changed files with 9 additions and 16 deletions

View File

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

View File

@@ -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;

View File

@@ -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;