Flag contest stats if sheen is present on gen5+ origin

This commit is contained in:
Kurt 2021-02-27 20:02:18 -08:00
parent f9bbf30d50
commit c27697c919

View File

@ -12,20 +12,20 @@ public override void Verify(LegalityAnalysis data)
if (pkm.Format <= 4)
return; // legal || not present
if (pkm is IContestStats s && s.HasContestStats() && !CanHaveContestStats(pkm, data.Info.Generation))
if (pkm is IContestStats s && s.HasContestStats() && !CanHaveContestStats(pkm, s, data.Info.Generation))
data.AddLine(GetInvalid(LegalityCheckStrings.LContestZero));
// some encounters have contest stats built in. they're already checked by the initial encounter match.
}
private static bool CanHaveContestStats(PKM pkm, int generation) => generation switch
private static bool CanHaveContestStats(PKM pkm, IContestStats s, int generation) => generation switch
{
1 => false,
2 => false,
3 => true,
4 => true,
5 => pkm.Format >= 6, // ORAS Contests
6 => !pkm.IsUntraded || pkm.AO,
5 => s.CNT_Sheen == 0 && pkm.Format >= 6, // ORAS Contests
6 => s.CNT_Sheen == 0 && (!pkm.IsUntraded || pkm.AO),
_ => false,
};
}