From b3ceb93ecefdcf77e1395d18962e83f16235b675 Mon Sep 17 00:00:00 2001 From: ReignOfComputer Date: Sun, 26 Feb 2017 23:55:22 +0800 Subject: [PATCH] Gen 7 Item Legality Checks For https://github.com/kwsch/PKHeX/issues/891. --- PKHeX.WinForms/MainWindow/Main.cs | 2 + PKHeX/Legality/Analysis.cs | 3 + PKHeX/Legality/Checks.cs | 100 ++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+) diff --git a/PKHeX.WinForms/MainWindow/Main.cs b/PKHeX.WinForms/MainWindow/Main.cs index 3dc283f48..efd93ffc8 100644 --- a/PKHeX.WinForms/MainWindow/Main.cs +++ b/PKHeX.WinForms/MainWindow/Main.cs @@ -2814,6 +2814,8 @@ private void validateComboBox2(object sender, EventArgs e) pkm.Nature = CB_Nature.SelectedIndex; updateRandomPID(sender, e); } + if (sender == CB_HeldItem && SAV.Generation == 7) + updateLegality(); } updateNatureModification(sender, null); updateIVs(null, null); // updating Nature will trigger stats to update as well diff --git a/PKHeX/Legality/Analysis.cs b/PKHeX/Legality/Analysis.cs index 05aea68f1..75750bef0 100644 --- a/PKHeX/Legality/Analysis.cs +++ b/PKHeX/Legality/Analysis.cs @@ -175,6 +175,9 @@ private void updateChecks() verifyMisc(); verifyGender(); + if (pkm.Format == 7) + verifyItem(); + verifyVersionEvolution(); // SecondaryChecked = true; } diff --git a/PKHeX/Legality/Checks.cs b/PKHeX/Legality/Checks.cs index 9b1c31a71..e82e2a00d 100644 --- a/PKHeX/Legality/Checks.cs +++ b/PKHeX/Legality/Checks.cs @@ -69,6 +69,106 @@ private void verifyGender() // return; } } + + private void verifyItem() + { + int[] unreleasedItems = + { + 16, // Cherish Ball + 64, // Fluffy Tail + 65, // Blue Flute + 66, // Yellow Flute + 67, // Red Flute + 68, // Black Flute + 69, // White Flute + 70, // Shoal Salt + 71, // Shoal Shell + 99, // Root Fossil + 100, // Claw Fossil + 101, // Helix Fossil + 102, // Dome Fossil + 103, // Old Amber + 111, // Odd Keystone + 164, // Razz Berry + 166, // Nanab Berry + 167, // Wepear Berry + 175, // Cornn Berry + 176, // Magost Berry + 177, // Rabuta Berry + 178, // Nomel Berry + 179, // Spelon Berry + 180, // Pamtre Berry + 181, // Watmel Berry + 182, // Durin Berry + 183, // Belue Berry + 208, // Enigma Berry + 209, // Micle Berry + 210, // Custap Berry + 211, // Jaboca Berry + 212, // Rowap Berry + 215, // Macho Brace + 260, // Red Scarf + 261, // Blue Scarf + 262, // Pink Scarf + 263, // Green Scarf + 264, // Yellow Scarf + 548, // Fire Gem + 549, // Water Gem + 550, // Electric Gem + 551, // Grass Gem + 552, // Ice Gem + 553, // Fighting Gem + 554, // Poison Gem + 555, // Ground Gem + 556, // Flying Gem + 557, // Psychic Gem + 558, // Bug Gem + 559, // Rock Gem + 560, // Ghost Gem + 561, // Dragon Gem + 562, // Dark Gem + 563, // Steel Gem + 657, // Gardevoirite + 658, // Ampharosite + 662, // Mewtwonite X + 663, // Mewtwonite Y + 664, // Blazikenite + 665, // Medichamite + 666, // Houndoominite + 667, // Aggronite + 668, // Banettite + 669, // Tyranitarite + 674, // Abomasite + 680, // Heracronite + 681, // Mawilite + 682, // Manectite + 684, // Latiasite + 685, // Latiosite + 710, // Jaw Fossil + 711, // Sail Fossil + 715, // Fairy Gem + 752, // Swamperite + 753, // Sceptilite + 755, // Altarianite + 756, // Galladite + 757, // Audinite + 761, // Steelixite + 762, // Pidgeotite + 764, // Diancite + 767, // Cameruptite + 768, // Lopunnite + 770, // Beeddrillite + 802, // Marshadium Z + 836, // Pikashunium Z + }; + + if (unreleasedItems.Contains(pkm.HeldItem)) + { + AddLine(Severity.Invalid, "Held item is unreleased for Gen 7.", CheckIdentifier.Form); + return; + } + } + private void verifyECPID() { if (pkm.EncryptionConstant == 0)