mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-10-02 14:36:54 -05:00
Check battleversion state for past-gen master rank ribbon
This commit is contained in:
@@ -178,7 +178,7 @@ private static IEnumerable<RibbonResult> GetInvalidRibbons(PKM pkm, int gen)
|
||||
if (pkm is IRibbonSetCommon8 s8)
|
||||
{
|
||||
bool inhabited8 = gen <= 8;
|
||||
var iterate = inhabited8 ? GetInvalidRibbons8Any(pkm, s8) : GetInvalidRibbonsNone(s8.RibbonBits(), s8.RibbonNames());
|
||||
var iterate = inhabited8 ? GetInvalidRibbons8Any(pkm, s8, gen) : GetInvalidRibbonsNone(s8.RibbonBits(), s8.RibbonNames());
|
||||
foreach (var z in iterate)
|
||||
yield return z;
|
||||
}
|
||||
@@ -363,7 +363,7 @@ private static IEnumerable<RibbonResult> GetInvalidRibbons7Any(PKM pkm, IRibbonS
|
||||
}
|
||||
}
|
||||
|
||||
private static IEnumerable<RibbonResult> GetInvalidRibbons8Any(PKM pkm, IRibbonSetCommon8 s8)
|
||||
private static IEnumerable<RibbonResult> GetInvalidRibbons8Any(PKM pkm, IRibbonSetCommon8 s8, int gen)
|
||||
{
|
||||
if (!pkm.InhabitedGeneration(8) || !((PersonalInfoSWSH)PersonalTable.SWSH[pkm.Species]).IsPresentInGame)
|
||||
{
|
||||
@@ -382,7 +382,8 @@ private static IEnumerable<RibbonResult> GetInvalidRibbons8Any(PKM pkm, IRibbonS
|
||||
yield return new RibbonResult(nameof(s8.RibbonChampionGalar));
|
||||
|
||||
// Legends cannot compete in Ranked, thus cannot reach Master Rank and obtain the ribbon.
|
||||
if (s8.RibbonMasterRank && Legal.Legends.Contains(pkm.Species))
|
||||
// Past gen Pokemon can get the ribbon only if they've been reset.
|
||||
if (s8.RibbonMasterRank && (Legal.Legends.Contains(pkm.Species) || gen != 8 && pkm is IBattleVersion v && v.BattleVersion == 0))
|
||||
yield return new RibbonResult(nameof(s8.RibbonMasterRank));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user