From cafcd3df2e7f0cbea36bc91862af918c2e4e0499 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 27 Sep 2020 18:19:10 -0700 Subject: [PATCH] Change affixed ribbon-mark check to also consider ribbons --- PKHeX.Core/Legality/Verifiers/MarkVerifier.cs | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/PKHeX.Core/Legality/Verifiers/MarkVerifier.cs b/PKHeX.Core/Legality/Verifiers/MarkVerifier.cs index ea7f112dd..536ae9281 100644 --- a/PKHeX.Core/Legality/Verifiers/MarkVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/MarkVerifier.cs @@ -19,6 +19,8 @@ public override void Verify(LegalityAnalysis data) VerifyNoMarksPresent(data, m); else VerifyMarksPresent(data, m); + + VerifyAffixedRibbonMark(data, m); } private void VerifyNoMarksPresent(LegalityAnalysis data, IRibbonIndex m) @@ -54,14 +56,6 @@ private void VerifyMarksPresent(LegalityAnalysis data, IRibbonIndex m) hasOne = true; } - - if (m is PK8 pk8 && pk8.AffixedRibbon != -1) - { - if (pk8.AffixedRibbon > (int)RibbonIndex.MarkSlump) - data.AddLine(GetInvalid(string.Format(LRibbonMarkingAffixedF_0, pk8.AffixedRibbon))); - else if (!hasOne) - data.AddLine(GetInvalid(string.Format(LRibbonMarkingAffixedF_0, (RibbonIndex)pk8.AffixedRibbon))); - } } private static bool VerifyMarking(LegalityAnalysis data, RibbonIndex mark) @@ -79,5 +73,20 @@ private static bool VerifyMarking(LegalityAnalysis data, RibbonIndex mark) } return true; } + + private void VerifyAffixedRibbonMark(LegalityAnalysis data, IRibbonIndex m) + { + if (!(m is PK8 pk8)) + return; + + var affix = pk8.AffixedRibbon; + if (affix == -1) // None + return; + + if ((byte)affix > (int)RibbonIndex.MarkSlump) + data.AddLine(GetInvalid(string.Format(LRibbonMarkingAffixedF_0, affix))); + else if (!pk8.GetRibbonIndex((RibbonIndex)affix)) + data.AddLine(GetInvalid(string.Format(LRibbonMarkingAffixedF_0, (RibbonIndex)affix))); + } } }