2
0
Fork 0
mirror of https://github.com/kwsch/PKHeX synced 2025-02-24 11:27:08 +00:00

Bounds check on invalid encounter

Magmortar from Gen3 in Gen4+ somehow requests learnset; just give it species 0.
This commit is contained in:
Kurt 2024-02-26 00:02:46 -06:00
parent 645d65bf3b
commit aa841aebe9
8 changed files with 8 additions and 8 deletions

View file

@ -17,7 +17,7 @@ public sealed class LearnSource1RB : ILearnSource<PersonalInfo1>
private const LearnEnvironment Game = RB;
private const int MaxSpecies = Legal.MaxSpeciesID_1;
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species];
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species < Learnsets.Length ? species : 0];
public bool TryGetPersonal(ushort species, byte form, [NotNullWhen(true)] out PersonalInfo1? pi)
{

View file

@ -17,7 +17,7 @@ public sealed class LearnSource1YW : ILearnSource<PersonalInfo1>
private const LearnEnvironment Game = YW;
private const int MaxSpecies = Legal.MaxSpeciesID_1;
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species];
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species < Learnsets.Length ? species : 0];
public bool TryGetPersonal(ushort species, byte form, [NotNullWhen(true)] out PersonalInfo1? pi)
{

View file

@ -18,7 +18,7 @@ public sealed class LearnSource2C : ILearnSource<PersonalInfo2>, IEggSource
private const int MaxSpecies = Legal.MaxSpeciesID_2;
private const LearnEnvironment Game = C;
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species];
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species < Learnsets.Length ? species : 0];
public bool TryGetPersonal(ushort species, byte form, [NotNullWhen(true)] out PersonalInfo2? pi)
{

View file

@ -18,7 +18,7 @@ public sealed class LearnSource2GS : ILearnSource<PersonalInfo2>, IEggSource
private const int MaxSpecies = Legal.MaxSpeciesID_2;
private const LearnEnvironment Game = GS;
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species];
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species < Learnsets.Length ? species : 0];
public bool TryGetPersonal(ushort species, byte form, [NotNullWhen(true)] out PersonalInfo2? pi)
{

View file

@ -18,7 +18,7 @@ public sealed class LearnSource3E : LearnSource3, ILearnSource<PersonalInfo3>, I
private const byte Generation = 3;
private const int CountTM = 50;
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species];
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species < Learnsets.Length ? species : 0];
internal PersonalInfo3 this[ushort species] => Personal[species];
public bool TryGetPersonal(ushort species, byte form, [NotNullWhen(true)] out PersonalInfo3? pi)

View file

@ -18,7 +18,7 @@ public sealed class LearnSource3FR : LearnSource3, ILearnSource<PersonalInfo3>,
private const byte Generation = 3;
private const int CountTM = 50;
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species];
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species < Learnsets.Length ? species : 0];
internal PersonalInfo3 this[ushort species] => Personal[species];
public bool TryGetPersonal(ushort species, byte form, [NotNullWhen(true)] out PersonalInfo3? pi)

View file

@ -18,7 +18,7 @@ public sealed class LearnSource3LG : LearnSource3, ILearnSource<PersonalInfo3>,
private const byte Generation = 3;
private const int CountTM = 50;
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species];
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species < Learnsets.Length ? species : 0];
internal PersonalInfo3 this[ushort species] => Personal[species];
public bool TryGetPersonal(ushort species, byte form, [NotNullWhen(true)] out PersonalInfo3? pi)

View file

@ -18,7 +18,7 @@ public sealed class LearnSource3RS : LearnSource3, ILearnSource<PersonalInfo3>,
private const byte Generation = 3;
private const int CountTM = 50;
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species];
public Learnset GetLearnset(ushort species, byte form) => Learnsets[species < Learnsets.Length ? species : 0];
public bool TryGetPersonal(ushort species, byte form, [NotNullWhen(true)] out PersonalInfo3? pi)
{