From 391c6d4af6f1b87513dfd3a0ec442521bac5b4e5 Mon Sep 17 00:00:00 2001 From: Kurt Date: Fri, 6 Aug 2021 15:34:28 -0700 Subject: [PATCH] Use Generation property when available --- PKHeX.Core/Legality/Verifiers/LanguageVerifier.cs | 8 ++++---- PKHeX.Core/Legality/Verifiers/MemoryVerifier.cs | 8 +++++--- PKHeX.Core/Legality/Verifiers/Ribbons/RibbonVerifier.cs | 7 +++---- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/PKHeX.Core/Legality/Verifiers/LanguageVerifier.cs b/PKHeX.Core/Legality/Verifiers/LanguageVerifier.cs index f36ecf8bb..2ca119128 100644 --- a/PKHeX.Core/Legality/Verifiers/LanguageVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/LanguageVerifier.cs @@ -15,16 +15,16 @@ public override void Verify(LegalityAnalysis data) int originalGeneration = data.Info.Generation; int currentLanguage = pkm.Language; int maxLanguageID = Legal.GetMaxLanguageID(originalGeneration); - - if (!IsValidLanguageID(currentLanguage, maxLanguageID, pkm, data.EncounterMatch)) + var enc = data.EncounterMatch; + if (!IsValidLanguageID(currentLanguage, maxLanguageID, pkm, enc)) { data.AddLine(GetInvalid(string.Format(LOTLanguage, $"<={(LanguageID)maxLanguageID}", (LanguageID)currentLanguage))); return; } // Korean Gen4 games can not trade with other Gen4 languages, but can use Pal Park with any Gen3 game/language. - if (pkm.Format == 4 && pkm.Gen4 && !IsValidG4Korean(currentLanguage) - && !(data.EncounterMatch is EncounterTrade4 {Species: (int)Species.Pikachu or (int)Species.Magikarp}) // ger magikarp / eng pikachu + if (pkm.Format == 4 && enc.Generation == 4 && !IsValidG4Korean(currentLanguage) + && enc is not EncounterTrade4PID {Species: (int)Species.Pikachu or (int)Species.Magikarp} // ger magikarp / eng pikachu ) { bool kor = currentLanguage == (int)LanguageID.Korean; diff --git a/PKHeX.Core/Legality/Verifiers/MemoryVerifier.cs b/PKHeX.Core/Legality/Verifiers/MemoryVerifier.cs index 9f7919188..b745c78e4 100644 --- a/PKHeX.Core/Legality/Verifiers/MemoryVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/MemoryVerifier.cs @@ -84,13 +84,15 @@ private CheckResult VerifyCommonMemory(PKM pkm, int handler, int gen, LegalInfo if (gen == 6 && !Memories.CanHaveIntensity(memory.MemoryID, memory.Intensity)) { - if (pkm.Gen6 || (pkm.Gen7 && memory.MemoryID != 0)) // todo: memory intensity checks for gen8 + var encGen = info.EncounterMatch.Generation; + if (encGen == 6 || (encGen == 7 && memory.MemoryID != 0)) // todo: memory intensity checks for gen8 return GetInvalid(string.Format(LMemoryIndexIntensityMin, memory.Handler, Memories.GetMinimumIntensity(memory.MemoryID))); } if (gen == 6 && memory.MemoryID != 4 && !Memories.CanHaveFeeling(memory.MemoryID, memory.Feeling)) { - if (pkm.Gen6 || (pkm.Gen7 && memory.MemoryID != 0)) // todo: memory feeling checks for gen8 + var encGen = info.EncounterMatch.Generation; + if (encGen == 6 || (encGen == 7 && memory.MemoryID != 0)) // todo: memory feeling checks for gen8 return GetInvalid(string.Format(LMemoryFeelInvalid, memory.Handler)); } @@ -191,7 +193,7 @@ private void VerifyOTMemory(LegalityAnalysis data) break; // {0} became {1}’s friend when it arrived via Link Trade at... {2}. {4} that {3}. - case 4 when pkm.Gen6: + case 4 when Info.Generation == 6: // gen8 applies this memory erroneously data.AddLine(GetInvalid(string.Format(LMemoryArgBadOTEgg, L_XOT))); return; diff --git a/PKHeX.Core/Legality/Verifiers/Ribbons/RibbonVerifier.cs b/PKHeX.Core/Legality/Verifiers/Ribbons/RibbonVerifier.cs index f152ab5e9..49a20fc53 100644 --- a/PKHeX.Core/Legality/Verifiers/Ribbons/RibbonVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/Ribbons/RibbonVerifier.cs @@ -354,8 +354,7 @@ private static IEnumerable GetInvalidRibbons7Any(PKM pkm, IRibbonS } } - private static IEnumerable GetInvalidRibbons8Any(PKM pkm, IRibbonSetCommon8 s8, - IEncounterTemplate enc) + private static IEnumerable GetInvalidRibbons8Any(PKM pkm, IRibbonSetCommon8 s8, IEncounterTemplate enc) { if (!pkm.InhabitedGeneration(8) || !((PersonalInfoSWSH)PersonalTable.SWSH[pkm.Species]).IsPresentInGame) { @@ -371,7 +370,7 @@ private static IEnumerable GetInvalidRibbons7Any(PKM pkm, IRibbonS const int memChampion = 27; { bool hasChampMemory = (pkm.Format == 8 && pkm is IMemoryHT {HT_Memory: memChampion}) || - (pkm.Gen8 && pkm is IMemoryOT {OT_Memory: memChampion}); + (enc.Generation == 8 && pkm is IMemoryOT {OT_Memory: memChampion}); if (hasChampMemory && !s8.RibbonChampionGalar) yield return new RibbonResult(nameof(s8.RibbonChampionGalar)); } @@ -393,7 +392,7 @@ private static IEnumerable GetInvalidRibbons7Any(PKM pkm, IRibbonS const int strongest = 30; if (pkm is IMemoryOT {OT_Memory: strongest} || pkm is IMemoryHT {HT_Memory: strongest}) { - if (pkm.Gen8 || !IsAllowedBattleFrontier(pkm.Species) || pkm is IRibbonSetCommon6 {RibbonBattlerSkillful: false}) + if (enc.Generation == 8 || !IsAllowedBattleFrontier(pkm.Species) || pkm is IRibbonSetCommon6 {RibbonBattlerSkillful: false}) yield return new RibbonResult(nameof(s8.RibbonTowerMaster)); } }