mirror of
https://github.com/kwsch/PKHeX
synced 2024-09-21 14:51:55 +00:00
Fix shedinja logic
Can have egg moves, and locations are irrelevant
This commit is contained in:
parent
7269c97699
commit
213578163e
2 changed files with 10 additions and 22 deletions
|
@ -141,26 +141,6 @@ namespace PKHeX
|
|||
? new LegalityCheck(Severity.Valid, $"Matches #{MatchedWC6.CardID.ToString("0000")} ({MatchedWC6.CardTitle})")
|
||||
: new LegalityCheck(Severity.Invalid, "Not a valid Wonder Card gift.");
|
||||
}
|
||||
if (pk6.Species == 292) // Shedinja
|
||||
{
|
||||
if (pk6.Ball != 4)
|
||||
return new LegalityCheck(Severity.Invalid, "Invalid Shedinja ball.");
|
||||
if (pk6.Egg_Location != 0)
|
||||
return new LegalityCheck(Severity.Invalid, "Shedinja should not have an Egg Met date/location.");
|
||||
if (pk6.XY) // XY
|
||||
{
|
||||
return Legal.ValidMet_XY.Contains(pk6.Met_Location)
|
||||
? new LegalityCheck(Severity.Valid, "Valid X/Y Shedinja.")
|
||||
: new LegalityCheck(Severity.Invalid, "Invalid X/Y location for Shedinja.");
|
||||
}
|
||||
if (pk6.AO)
|
||||
{
|
||||
return Legal.ValidMet_AO.Contains(pk6.Met_Location)
|
||||
? new LegalityCheck(Severity.Valid, "Valid OR/AS Shedinja.")
|
||||
: new LegalityCheck(Severity.Invalid, "Invalid OR/AS location for Shedinja.");
|
||||
}
|
||||
return new LegalityCheck(Severity.Invalid, "Invalid Shedinja encounter.");
|
||||
}
|
||||
if (pk6.WasEgg)
|
||||
{
|
||||
// Check Hatch Locations
|
||||
|
|
|
@ -211,6 +211,8 @@ namespace PKHeX
|
|||
|
||||
private static int getBaseSpecies(PK6 pk6, int skipOption = 0)
|
||||
{
|
||||
if (pk6.Species == 292)
|
||||
return 290;
|
||||
DexLevel[] evos = Evolves[pk6.Species].Evos;
|
||||
switch (skipOption)
|
||||
{
|
||||
|
@ -295,9 +297,15 @@ namespace PKHeX
|
|||
}
|
||||
private static IEnumerable<DexLevel> getValidPreEvolutions(PK6 pk6)
|
||||
{
|
||||
var evos = Evolves[pk6.Species].Evos;
|
||||
List<DexLevel> dl = new List<DexLevel> { new DexLevel { Species = pk6.Species, Level = pk6.CurrentLevel } };
|
||||
int lvl = pk6.CurrentLevel;
|
||||
if (pk6.Species == 292 && pk6.Met_Level + 1 <= lvl && lvl >= 20)
|
||||
return new List<DexLevel>
|
||||
{
|
||||
new DexLevel { Species = 292, Level = lvl },
|
||||
new DexLevel { Species = 290, Level = lvl-1 }
|
||||
};
|
||||
var evos = Evolves[pk6.Species].Evos;
|
||||
List<DexLevel> dl = new List<DexLevel> { new DexLevel { Species = pk6.Species, Level = lvl } };
|
||||
foreach (DexLevel evo in evos)
|
||||
{
|
||||
if (lvl >= pk6.Met_Level && lvl >= evo.Level)
|
||||
|
|
Loading…
Reference in a new issue