mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-08-28 00:44:45 -05:00
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:
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user