Change affixed ribbon-mark check to also consider ribbons

This commit is contained in:
Kurt 2020-09-27 18:19:10 -07:00
parent fb4734472b
commit cafcd3df2e

View File

@ -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)));
}
}
}