mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-05-11 06:05:04 -05:00
Fix encounter ability comparison
-1 is the 'no fixed ability parameters defined' Closes #2041 (optimize abilitynumber check for early return)
This commit is contained in:
parent
8e950e83b3
commit
fdc4dd2811
|
|
@ -55,7 +55,7 @@ private CheckResult VerifyAbility(LegalityAnalysis data, IReadOnlyList<int> abil
|
|||
{
|
||||
var EncounterMatch = data.EncounterMatch;
|
||||
var eabil = GetEncounterFixedAbilityNumber(EncounterMatch);
|
||||
if (eabil > 0)
|
||||
if (eabil >= 0)
|
||||
return VerifyFixedAbility(data, abilities, AbilityState.CanMismatch, eabil, abilnum);
|
||||
|
||||
var gen = data.Info.Generation;
|
||||
|
|
@ -77,7 +77,7 @@ private CheckResult VerifyAbility345(LegalityAnalysis data, IReadOnlyList<int> a
|
|||
|
||||
var EncounterMatch = data.EncounterMatch;
|
||||
int eabil = GetEncounterFixedAbilityNumber(EncounterMatch);
|
||||
if (eabil > 0)
|
||||
if (eabil >= 0)
|
||||
return VerifyFixedAbility(data, abilities, state, eabil, abilnum);
|
||||
|
||||
int gen = data.Info.Generation;
|
||||
|
|
@ -236,14 +236,18 @@ private CheckResult VerifyAbility5(LegalityAnalysis data, IReadOnlyList<int> abi
|
|||
private CheckResult VerifyAbility6(LegalityAnalysis data)
|
||||
{
|
||||
var pkm = data.pkm;
|
||||
if (pkm.AbilityNumber != 4)
|
||||
return VALID;
|
||||
|
||||
// hidden abilities
|
||||
var EncounterMatch = data.EncounterMatch;
|
||||
if (EncounterMatch is EncounterSlot slot && pkm.AbilityNumber == 4)
|
||||
if (EncounterMatch is EncounterSlot slot)
|
||||
{
|
||||
bool valid = slot.Permissions.DexNav || slot.Type == SlotType.FriendSafari || slot.Type == SlotType.Horde;
|
||||
if (!valid)
|
||||
return GetInvalid(V300);
|
||||
}
|
||||
if (Legal.Ban_NoHidden6.Contains(pkm.SpecForm) && pkm.AbilityNumber == 4)
|
||||
if (Legal.Ban_NoHidden6.Contains(pkm.SpecForm))
|
||||
return GetInvalid(V112);
|
||||
|
||||
return VALID;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user