mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-10-02 18:06:49 -05:00
Revise naive ability deferral logic for gen9
Closes #4221 HA->1->2 requires a 2-step check
This commit is contained in:
@@ -353,7 +353,14 @@ private EncounterMatchRating IsMatchDeferred(PKM pk)
|
||||
}
|
||||
else if (Ability.IsSingleValue(out int index) && 1 << index != num) // Fixed regular ability
|
||||
{
|
||||
if (Ability is OnlyFirst or OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
var a = Ability;
|
||||
if (a is OnlyHidden)
|
||||
{
|
||||
if (!AbilityVerifier.CanAbilityPatch(9, PersonalTable.SV.GetFormEntry(Species, Form), pk.Species))
|
||||
return DeferredErrors;
|
||||
a = num == 1 ? OnlyFirst : OnlySecond;
|
||||
}
|
||||
if (a is OnlyFirst or OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
return DeferredErrors;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,7 +236,14 @@ private EncounterMatchRating IsMatchDeferred(PKM pk)
|
||||
}
|
||||
else if (Ability.IsSingleValue(out int index) && 1 << index != num) // Fixed regular ability
|
||||
{
|
||||
if (Ability is OnlyFirst or OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
var a = Ability;
|
||||
if (a is OnlyHidden)
|
||||
{
|
||||
if (!AbilityVerifier.CanAbilityPatch(9, PersonalTable.SV.GetFormEntry(Species, Form), pk.Species))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
a = num == 1 ? OnlyFirst : OnlySecond;
|
||||
}
|
||||
if (a is OnlyFirst or OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -365,7 +365,14 @@ private EncounterMatchRating IsMatchDeferred(PKM pk)
|
||||
}
|
||||
else if (Ability.IsSingleValue(out int index) && 1 << index != num) // Fixed regular ability
|
||||
{
|
||||
if (Ability is AbilityPermission.OnlyFirst or AbilityPermission.OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
var a = Ability;
|
||||
if (a is AbilityPermission.OnlyHidden)
|
||||
{
|
||||
if (!AbilityVerifier.CanAbilityPatch(9, PersonalTable.SV.GetFormEntry(Species, Form), pk.Species))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
a = num == 1 ? AbilityPermission.OnlyFirst : AbilityPermission.OnlySecond;
|
||||
}
|
||||
if (a is AbilityPermission.OnlyFirst or AbilityPermission.OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,7 +217,14 @@ private EncounterMatchRating IsMatchDeferred(PKM pk)
|
||||
}
|
||||
else if (Ability.IsSingleValue(out int index) && 1 << index != num) // Fixed regular ability
|
||||
{
|
||||
if (Ability is AbilityPermission.OnlyFirst or AbilityPermission.OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
var a = Ability;
|
||||
if (a is AbilityPermission.OnlyHidden)
|
||||
{
|
||||
if (!AbilityVerifier.CanAbilityPatch(9, PersonalTable.SV.GetFormEntry(Species, Form), pk.Species))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
a = num == 1 ? AbilityPermission.OnlyFirst : AbilityPermission.OnlySecond;
|
||||
}
|
||||
if (a is AbilityPermission.OnlyFirst or AbilityPermission.OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,7 +258,14 @@ private EncounterMatchRating IsMatchDeferred(PKM pk)
|
||||
}
|
||||
else if (Ability.IsSingleValue(out int index) && 1 << index != num) // Fixed regular ability
|
||||
{
|
||||
if (Ability is OnlyFirst or OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
var a = Ability;
|
||||
if (a is OnlyHidden)
|
||||
{
|
||||
if (!AbilityVerifier.CanAbilityPatch(9, PersonalTable.SV.GetFormEntry(Species, Form), pk.Species))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
a = num == 1 ? OnlyFirst : OnlySecond;
|
||||
}
|
||||
if (a is OnlyFirst or OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -289,7 +289,14 @@ private EncounterMatchRating IsMatchDeferred(PKM pk)
|
||||
}
|
||||
else if (Ability.IsSingleValue(out int index) && 1 << index != num) // Fixed regular ability
|
||||
{
|
||||
if (Ability is OnlyFirst or OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
var a = Ability;
|
||||
if (a is OnlyHidden)
|
||||
{
|
||||
if (!AbilityVerifier.CanAbilityPatch(9, PersonalTable.SV.GetFormEntry(Species, Form), pk.Species))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
a = num == 1 ? OnlyFirst : OnlySecond;
|
||||
}
|
||||
if (a is OnlyFirst or OnlySecond && !AbilityVerifier.CanAbilityCapsule(9, PersonalTable.SV.GetFormEntry(Species, Form)))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user