Misc egg related additions

Closes #1257
Disallow static encounters that aren't eggs or are for eggs (mismatch)
Check egg encounter level for IsWithinRange
Check egg met level while still is egg
This commit is contained in:
Kurt
2017-06-27 22:08:16 -07:00
parent 5ebfd10a0a
commit e1d0867a51
3 changed files with 9 additions and 0 deletions

View File

@@ -332,6 +332,8 @@ private static IEnumerable<EncounterStatic> GetMatchingStaticEncounters(PKM pkm,
{
if (e.Nature != Nature.Random && pkm.Nature != (int)e.Nature)
continue;
if (pkm.WasEgg ^ e.EggEncounter)
continue;
if (pkm.Gen3 && e.EggLocation != 0) // Gen3 Egg
{
if (pkm.Format == 3 && pkm.IsEgg && e.EggLocation != pkm.Met_Location)

View File

@@ -149,6 +149,9 @@ private static CheckResult VerifyEncounterEggLevelLoc(PKM pkm, int eggLevel, int
}
private static CheckResult VerifyUnhatchedEgg(PKM pkm, int tradeLoc)
{
var eggLevel = pkm.Format < 5 ? 0 : 1;
if (pkm.Met_Level != eggLevel)
return new CheckResult(Severity.Invalid, string.Format(V52, eggLevel), CheckIdentifier.Encounter);
if (pkm.Egg_Location == tradeLoc)
return new CheckResult(Severity.Invalid, V62, CheckIdentifier.Encounter);

View File

@@ -18,7 +18,11 @@ private static bool IsWithinRange(this IEncounterable encounter, int lvl)
public static bool IsWithinRange(this IEncounterable encounter, PKM pkm)
{
if (pkm.HasOriginalMetLocation)
{
if (encounter.EggEncounter)
return pkm.CurrentLevel == Legal.GetEggHatchLevel(pkm);
return pkm.CurrentLevel == pkm.Met_Level;
}
return encounter.IsWithinRange(pkm.CurrentLevel);
}
}