From b3ceb93ecefdcf77e1395d18962e83f16235b675 Mon Sep 17 00:00:00 2001 From: ReignOfComputer Date: Sun, 26 Feb 2017 23:55:22 +0800 Subject: [PATCH 1/5] 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 @@ namespace PKHeX.WinForms 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 @@ namespace PKHeX.Core 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 @@ namespace PKHeX.Core // 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) From 4072f0d2cac8ce9bbc58db0cdc7e7432f4aab650 Mon Sep 17 00:00:00 2001 From: ReignOfComputer Date: Mon, 27 Feb 2017 00:08:28 +0800 Subject: [PATCH 2/5] Shortcut Max Level IMO this is useful, for your consideration :) --- PKHeX.WinForms/MainWindow/Main.Designer.cs | 1 + PKHeX.WinForms/MainWindow/Main.cs | 9 +++++++++ PKHeX/Resources/text/shortcuts.txt | 1 + 3 files changed, 11 insertions(+) diff --git a/PKHeX.WinForms/MainWindow/Main.Designer.cs b/PKHeX.WinForms/MainWindow/Main.Designer.cs index 0ccc901dd..aa098b9d1 100644 --- a/PKHeX.WinForms/MainWindow/Main.Designer.cs +++ b/PKHeX.WinForms/MainWindow/Main.Designer.cs @@ -938,6 +938,7 @@ this.TB_Level.Size = new System.Drawing.Size(22, 20); this.TB_Level.TabIndex = 8; this.TB_Level.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_Level.Click += new System.EventHandler(this.clickLevel); this.TB_Level.TextChanged += new System.EventHandler(this.updateEXPLevel); // // MT_Level diff --git a/PKHeX.WinForms/MainWindow/Main.cs b/PKHeX.WinForms/MainWindow/Main.cs index 3dc283f48..17d7bd5b7 100644 --- a/PKHeX.WinForms/MainWindow/Main.cs +++ b/PKHeX.WinForms/MainWindow/Main.cs @@ -1714,6 +1714,15 @@ namespace PKHeX.WinForms else TB_Friendship.Text = TB_Friendship.Text == "255" ? SAV.Personal[pkm.Species].BaseFriendship.ToString() : "255"; } + + private void clickLevel(object sender, EventArgs e) + { + if (ModifierKeys == Keys.Control) + { + ((MaskedTextBox)sender).Text = "100"; + } + } + private void clickGender(object sender, EventArgs e) { // Get Gender Threshold diff --git a/PKHeX/Resources/text/shortcuts.txt b/PKHeX/Resources/text/shortcuts.txt index 46c582466..7195fe319 100644 --- a/PKHeX/Resources/text/shortcuts.txt +++ b/PKHeX/Resources/text/shortcuts.txt @@ -24,6 +24,7 @@ Control + Click on... - Randomize EVs: Set all EVs to 0. - PP Ups Label: Set all PP Ups to 0. (Click = 3) - Friendship Label: Set Friendship to 0. (Click = 255 or Base) +- Level box: Set Level to 100. Alt + Click on... - Preview Sprite to load from a QR url on your clipboard. From 2a9e57618c7e04a325c9b027eb5eeb3eda11668e Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 26 Feb 2017 09:36:53 -0800 Subject: [PATCH 3/5] More Gen2 legality prep --- PKHeX/Game/GameUtil.cs | 2 ++ PKHeX/Game/GameVersion.cs | 2 +- PKHeX/Legality/Core.cs | 36 ++++++++++++++++++++++++++++++++++++ PKHeX/Legality/Tables2.cs | 16 +++++++++++++++- 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/PKHeX/Game/GameUtil.cs b/PKHeX/Game/GameUtil.cs index c11ead796..87aacdefe 100644 --- a/PKHeX/Game/GameUtil.cs +++ b/PKHeX/Game/GameUtil.cs @@ -23,6 +23,8 @@ return GameVersion.RBY; case GameVersion.GS: + case GameVersion.GD: + case GameVersion.SV: case GameVersion.C: return GameVersion.GSC; diff --git a/PKHeX/Game/GameVersion.cs b/PKHeX/Game/GameVersion.cs index c8ec6b49c..9301326c3 100644 --- a/PKHeX/Game/GameVersion.cs +++ b/PKHeX/Game/GameVersion.cs @@ -8,7 +8,6 @@ BATREV = -7, RSBOX = -5, GS = -4, - C = -3, // Indicators Invalid = -2, @@ -23,6 +22,7 @@ /*Gen7*/ SN = 30, MN = 31, /* GO */ GO = 34, /* VC */ RD = 35, GN = 36, BU = 37, YW = 38, // GN = Blue for international release + GD, SV, C, // Game Groupings (SaveFile type) RBY = 98, diff --git a/PKHeX/Legality/Core.cs b/PKHeX/Legality/Core.cs index d4ccad9d6..1c8ea146a 100644 --- a/PKHeX/Legality/Core.cs +++ b/PKHeX/Legality/Core.cs @@ -21,6 +21,8 @@ namespace PKHeX.Core private static readonly Learnset[] LevelUpGS = Learnset1.getArray(Resources.lvlmove_gs, MaxSpeciesID_2); private static readonly Learnset[] LevelUpC = Learnset1.getArray(Resources.lvlmove_c, MaxSpeciesID_2); private static readonly EvolutionTree Evolves2; + private static readonly EncounterArea[] SlotsGSC; + private static readonly EncounterStatic[] StaticGSC; // Gen 6 private static readonly EggMoves[] EggMovesXY = EggMoves6.getArray(Data.unpackMini(Resources.eggmove_xy, "xy")); @@ -46,6 +48,9 @@ namespace PKHeX.Core { case GameVersion.RBY: return Encounter_RBY; // GameVersion filtering not possible, return immediately + case GameVersion.GSC: + return Encounter_GSC; + case GameVersion.X: case GameVersion.Y: table = Encounter_XY; break; @@ -161,6 +166,10 @@ namespace PKHeX.Core // Gen 2 { Evolves2 = new EvolutionTree(new[] { Resources.evos_gsc }, GameVersion.GSC, PersonalTable.C, MaxSpeciesID_2); + + SlotsGSC = new EncounterArea[0]; // todo + + StaticGSC = getStaticEncounters(GameVersion.GSC); } // Gen 6 { @@ -1072,6 +1081,11 @@ namespace PKHeX.Core case GameVersion.GN: case GameVersion.YW: return getSlots(pkm, SlotsRBY, lvl); + case GameVersion.GSC: + case GameVersion.GD: case GameVersion.SV: + case GameVersion.C: + return getSlots(pkm, SlotsGSC, lvl); + case GameVersion.X: return getSlots(pkm, SlotsX, lvl); case GameVersion.Y: @@ -1097,6 +1111,11 @@ namespace PKHeX.Core case GameVersion.GN: case GameVersion.YW: return getStatic(pkm, StaticRBY, lvl); + case GameVersion.GSC: + case GameVersion.GD: case GameVersion.SV: + case GameVersion.C: + return getStatic(pkm, StaticGSC, lvl); + case GameVersion.X: return getStatic(pkm, StaticX, lvl); case GameVersion.Y: @@ -1346,6 +1365,23 @@ namespace PKHeX.Core r.AddRange(getTutorMoves(pkm, species, form, specialTutors)); break; } + case 2: + { + int index = PersonalTable.C.getFormeIndex(species, 0); + var pi_c = (PersonalInfoG1)PersonalTable.C[index]; + if (LVL) + { + r.AddRange(LevelUpGS[index].getMoves(lvl)); + r.AddRange(LevelUpC[index].getMoves(lvl)); + } + if (Machine) + { + r.AddRange(TMHM_GSC.Where((t, m) => pi_c.TMHM[m])); + } + if (moveTutor) + r.AddRange(getTutorMoves(pkm, species, form, specialTutors)); + break; + } case 6: switch (ver) { diff --git a/PKHeX/Legality/Tables2.cs b/PKHeX/Legality/Tables2.cs index 1fa38b361..41f235172 100644 --- a/PKHeX/Legality/Tables2.cs +++ b/PKHeX/Legality/Tables2.cs @@ -35,15 +35,29 @@ namespace PKHeX.Core 10, 05, 10, 20, 20, 40, 15, 10, 20, 20, 25, 05, 15, 10, 05, 20, 15, 20, 25, 20, 05, 30, 05, 10, 20, 40, 05, 20, 40, 20, 15, 35, 10, 05, 05, 05, 15, 05, 20, 05, 05, 15, 20, 10, 05, 05, 15, 15, 15, 15, 10, 00, 00, 00, 00 }; + internal static readonly int[] TMHM_GSC = + { + 223, 029, 174, 205, 046, 092, 192, 249, 244, 237, + 241, 230, 173, 059, 063, 196, 182, 240, 202, 203, + 218, 076, 231, 225, 087, 089, 216, 091, 094, 247, + 189, 104, 008, 207, 214, 188, 201, 126, 129, 111, + 009, 138, 197, 156, 213, 168, 211, 007, 210, 171, + + 015, 019, 057, 070, 148, 250, 127 + }; internal static readonly int[] WildPokeBalls2 = { 4 }; internal static readonly int[] FutureEvolutionsGen2 = { 424,429,430,461,462,463,464,465,466,467,468,469,470,471,472,473,474,700 }; + internal static readonly EncounterStatic[] Encounter_GSC = + { + // todo + }; internal static readonly EncounterTrade[] TradeGift_GSC = { - + // todo }; } } From 062e571b3f4bd1155f74a8ccfa5c212cd20bd394 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 26 Feb 2017 09:44:59 -0800 Subject: [PATCH 4/5] Relocate unavailable items to table Hide behind method for format-specific fetching in the future --- PKHeX/Legality/Analysis.cs | 4 +- PKHeX/Legality/Checks.cs | 96 +------------------------------------- PKHeX/Legality/Core.cs | 9 ++++ PKHeX/Legality/Tables7.cs | 92 ++++++++++++++++++++++++++++++++++++ 4 files changed, 104 insertions(+), 97 deletions(-) diff --git a/PKHeX/Legality/Analysis.cs b/PKHeX/Legality/Analysis.cs index 75750bef0..d35e7afad 100644 --- a/PKHeX/Legality/Analysis.cs +++ b/PKHeX/Legality/Analysis.cs @@ -174,9 +174,7 @@ namespace PKHeX.Core verifyForm(); verifyMisc(); verifyGender(); - - if (pkm.Format == 7) - verifyItem(); + verifyItem(); verifyVersionEvolution(); // SecondaryChecked = true; diff --git a/PKHeX/Legality/Checks.cs b/PKHeX/Legality/Checks.cs index e82e2a00d..ecae506e4 100644 --- a/PKHeX/Legality/Checks.cs +++ b/PKHeX/Legality/Checks.cs @@ -72,101 +72,9 @@ namespace PKHeX.Core 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 - }; - + var unreleasedItems = Legal.getUnreleasedItems(pkm.Format); if (unreleasedItems.Contains(pkm.HeldItem)) - { - AddLine(Severity.Invalid, "Held item is unreleased for Gen 7.", CheckIdentifier.Form); - return; - } + AddLine(Severity.Invalid, "Held item is unreleased.", CheckIdentifier.Form); } private void verifyECPID() diff --git a/PKHeX/Legality/Core.cs b/PKHeX/Legality/Core.cs index 1c8ea146a..c61770c24 100644 --- a/PKHeX/Legality/Core.cs +++ b/PKHeX/Legality/Core.cs @@ -1493,5 +1493,14 @@ namespace PKHeX.Core // No tutors in G7 return moves.Distinct(); } + + public static int[] getUnreleasedItems(int generation) + { + switch (generation) + { + case 7: return UnreleasedItems_7; + default: return new int[0]; + } + } } } diff --git a/PKHeX/Legality/Tables7.cs b/PKHeX/Legality/Tables7.cs index 55fbb84b8..ed4cb26ca 100644 --- a/PKHeX/Legality/Tables7.cs +++ b/PKHeX/Legality/Tables7.cs @@ -1250,5 +1250,97 @@ namespace PKHeX.Core }; #endregion + + #region Unreleased Items + internal static readonly int[] UnreleasedItems_7 = + { + 016, // Cherish Ball + 064, // Fluffy Tail + 065, // Blue Flute + 066, // Yellow Flute + 067, // Red Flute + 068, // Black Flute + 069, // White Flute + 070, // Shoal Salt + 071, // Shoal Shell + 099, // 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 + }; + #endregion } } From f68a3b4b7d2a205b1acbd662cd240bd158b96e72 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 26 Feb 2017 11:43:26 -0800 Subject: [PATCH 5/5] Switch item banlist to allowed list Precompute bool[] to quickly access the allowed status instead of looping for contains. --- PKHeX/Legality/Checks.cs | 3 +-- PKHeX/Legality/Core.cs | 33 ++++++++++++++++++++++++--------- PKHeX/Legality/Tables2.cs | 5 +++++ PKHeX/Legality/Tables3.cs | 5 +++++ PKHeX/Legality/Tables4.cs | 5 +++++ PKHeX/Legality/Tables5.cs | 5 +++++ PKHeX/Legality/Tables6.cs | 5 +++++ PKHeX/Legality/Tables7.cs | 3 ++- 8 files changed, 52 insertions(+), 12 deletions(-) diff --git a/PKHeX/Legality/Checks.cs b/PKHeX/Legality/Checks.cs index ecae506e4..615b1df7a 100644 --- a/PKHeX/Legality/Checks.cs +++ b/PKHeX/Legality/Checks.cs @@ -72,8 +72,7 @@ namespace PKHeX.Core private void verifyItem() { - var unreleasedItems = Legal.getUnreleasedItems(pkm.Format); - if (unreleasedItems.Contains(pkm.HeldItem)) + if (!Legal.getHeldItemAllowed(pkm.Format, pkm.HeldItem)) AddLine(Severity.Invalid, "Held item is unreleased.", CheckIdentifier.Form); } diff --git a/PKHeX/Legality/Core.cs b/PKHeX/Legality/Core.cs index c61770c24..c18170507 100644 --- a/PKHeX/Legality/Core.cs +++ b/PKHeX/Legality/Core.cs @@ -656,6 +656,30 @@ namespace PKHeX.Core } } + internal static bool[] getReleasedHeldItems(int generation) + { + switch (generation) + { + case 2: return ReleasedHeldItems_2; + case 3: return ReleasedHeldItems_3; + case 4: return ReleasedHeldItems_4; + case 5: return ReleasedHeldItems_5; + case 6: return ReleasedHeldItems_6; + case 7: return ReleasedHeldItems_7; + default: return new bool[0]; + } + } + internal static bool getHeldItemAllowed(int generation, int item) + { + if (item < 0) + return false; + if (item == 0) + return true; + + var items = getReleasedHeldItems(generation); + return items.Length > item && items[item]; + } + internal static bool getDexNavValid(PKM pkm) { if (!pkm.AO || !pkm.InhabitedGeneration(6)) @@ -1493,14 +1517,5 @@ namespace PKHeX.Core // No tutors in G7 return moves.Distinct(); } - - public static int[] getUnreleasedItems(int generation) - { - switch (generation) - { - case 7: return UnreleasedItems_7; - default: return new int[0]; - } - } } } diff --git a/PKHeX/Legality/Tables2.cs b/PKHeX/Legality/Tables2.cs index 41f235172..ee87a02c2 100644 --- a/PKHeX/Legality/Tables2.cs +++ b/PKHeX/Legality/Tables2.cs @@ -59,5 +59,10 @@ namespace PKHeX.Core { // todo }; + internal static readonly int[] UnreleasedItems_2 = + { + // todo + }; + internal static readonly bool[] ReleasedHeldItems_2 = Enumerable.Range(1, MaxItemID_2).Select(i => HeldItems_GSC.Contains((ushort)i) && !UnreleasedItems_2.Contains(i)).ToArray(); } } diff --git a/PKHeX/Legality/Tables3.cs b/PKHeX/Legality/Tables3.cs index d661b701f..7dc734dfb 100644 --- a/PKHeX/Legality/Tables3.cs +++ b/PKHeX/Legality/Tables3.cs @@ -94,5 +94,10 @@ namespace PKHeX.Core }; // Ambipom Weavile Magnezone Lickilicky Tangrowth // Yanmega Leafeon Glaceon Mamoswine Gliscor Probopass + internal static readonly int[] UnreleasedItems_3 = + { + // todo + }; + internal static readonly bool[] ReleasedHeldItems_3 = Enumerable.Range(1, MaxItemID_3).Select(i => HeldItems_RS.Contains((ushort)i) && !UnreleasedItems_3.Contains(i)).ToArray(); } } diff --git a/PKHeX/Legality/Tables4.cs b/PKHeX/Legality/Tables4.cs index 83f1a9f6f..262629038 100644 --- a/PKHeX/Legality/Tables4.cs +++ b/PKHeX/Legality/Tables4.cs @@ -135,5 +135,10 @@ namespace PKHeX.Core { 700 }; + internal static readonly int[] UnreleasedItems_4 = + { + // todo + }; + internal static readonly bool[] ReleasedHeldItems_4 = Enumerable.Range(1, MaxItemID_4_HGSS).Select(i => HeldItems_HGSS.Contains((ushort)i) && !UnreleasedItems_4.Contains(i)).ToArray(); } } diff --git a/PKHeX/Legality/Tables5.cs b/PKHeX/Legality/Tables5.cs index 723d65860..244a62684 100644 --- a/PKHeX/Legality/Tables5.cs +++ b/PKHeX/Legality/Tables5.cs @@ -94,5 +94,10 @@ namespace PKHeX.Core { 700 }; + internal static readonly int[] UnreleasedItems_5 = + { + // todo + }; + internal static readonly bool[] ReleasedHeldItems_5 = Enumerable.Range(1, MaxItemID_5_B2W2).Select(i => HeldItems_BW.Contains((ushort)i) && !UnreleasedItems_5.Contains(i)).ToArray(); } } diff --git a/PKHeX/Legality/Tables6.cs b/PKHeX/Legality/Tables6.cs index c524618a9..5b4e32203 100644 --- a/PKHeX/Legality/Tables6.cs +++ b/PKHeX/Legality/Tables6.cs @@ -762,5 +762,10 @@ namespace PKHeX.Core 05, 10, 05, 05, 15, 10, 05, 05, 05, 10, 10, 10, 10, 20, 25, 10, 20, 30, 25, 20, 20, 15, 20, 15, 20, 20, 10, 10, 10, 10, 10, 20, 10, 30, 15, 10, 10, 10, 20, 20, 05, 05, 05, 20, 10, 10, 20, 15, 20, 20, 10, 20, 30, 10, 10, 40, 40, 30, 20, 40, 20, 20, 10, 10, 10, 10, 05, 10, 10, 05, 05, }; + internal static readonly int[] UnreleasedItems_6 = + { + // todo + }; + internal static readonly bool[] ReleasedHeldItems_6 = Enumerable.Range(0, MaxItemID_6_AO).Select(i => HeldItem_AO.Contains((ushort)i) && !UnreleasedItems_6.Contains(i)).ToArray(); } } diff --git a/PKHeX/Legality/Tables7.cs b/PKHeX/Legality/Tables7.cs index ed4cb26ca..5d9ced110 100644 --- a/PKHeX/Legality/Tables7.cs +++ b/PKHeX/Legality/Tables7.cs @@ -1252,7 +1252,7 @@ namespace PKHeX.Core #endregion #region Unreleased Items - internal static readonly int[] UnreleasedItems_7 = + internal static readonly int[] UnreleasedHeldItems_7 = { 016, // Cherish Ball 064, // Fluffy Tail @@ -1342,5 +1342,6 @@ namespace PKHeX.Core 836, // Pikashunium Z }; #endregion + internal static readonly bool[] ReleasedHeldItems_7 = Enumerable.Range(1, MaxItemID_7).Select(i => HeldItems_SM.Contains((ushort)i) && !UnreleasedHeldItems_7.Contains(i)).ToArray(); } }