From ea69f224921aa3ce0cbe35007e66db984278576c Mon Sep 17 00:00:00 2001 From: wwwwwwzx Date: Tue, 21 Mar 2017 17:57:23 -0700 Subject: [PATCH 1/4] Add gen5 swarm encounters table --- PKHeX/Legality/Core.cs | 45 +++++++++++++++++++++----- PKHeX/Legality/Tables5.cs | 68 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 8 deletions(-) diff --git a/PKHeX/Legality/Core.cs b/PKHeX/Legality/Core.cs index 11f74c889..6414ee5ea 100644 --- a/PKHeX/Legality/Core.cs +++ b/PKHeX/Legality/Core.cs @@ -230,6 +230,26 @@ private static void MarkG4Slots(ref EncounterArea[] Areas) { ReduceAreasSize(ref Areas); } + private static void MarkBWSwarmSlots(ref EncounterArea[] Areas) + { + foreach (var area in Areas) + { + foreach (var Slot in area.Slots) + { + Slot.LevelMin = 15; Slot.LevelMax = 55; Slot.Type = SlotType.Swarm; + } + } + } + private static void MarkB2W2SwarmSlots(ref EncounterArea[] Areas) + { + foreach (var area in Areas) + { + foreach (var Slot in area.Slots) + { + Slot.LevelMin = 40; Slot.LevelMax = 55; Slot.Type = SlotType.Swarm; + } + } + } private static void MarkG5Slots(ref EncounterArea[] Areas) { foreach (var area in Areas) @@ -469,14 +489,23 @@ private static EncounterArea[] getTables2(GameVersion Version) StaticB2 = getStaticEncounters(GameVersion.B2); StaticW2 = getStaticEncounters(GameVersion.W2); - SlotsB = getEncounterTables(GameVersion.B); - SlotsW = getEncounterTables(GameVersion.W); - SlotsB2 = getEncounterTables(GameVersion.B2); - SlotsW2 = getEncounterTables(GameVersion.W2); - MarkG5Slots(ref SlotsB); - MarkG5Slots(ref SlotsW); - MarkG5Slots(ref SlotsB2); - MarkG5Slots(ref SlotsW2); + var BSlots = getEncounterTables(GameVersion.B); + var WSlots = getEncounterTables(GameVersion.W); + MarkG5Slots(ref BSlots); + MarkG5Slots(ref WSlots); + MarkBWSwarmSlots(ref SlotsB_Swarm); + MarkBWSwarmSlots(ref SlotsW_Swarm); + SlotsB = addExtraTableSlots(BSlots, SlotsB_Swarm); + SlotsW = addExtraTableSlots(WSlots, SlotsW_Swarm); + + var B2Slots = getEncounterTables(GameVersion.B2); + var W2Slots = getEncounterTables(GameVersion.W2); + MarkG5Slots(ref B2Slots); + MarkG5Slots(ref W2Slots); + MarkB2W2SwarmSlots(ref SlotsB2_Swarm); + MarkB2W2SwarmSlots(ref SlotsW2_Swarm); + SlotsB2 = addExtraTableSlots(B2Slots, SlotsB2_Swarm); + SlotsW2 = addExtraTableSlots(W2Slots, SlotsW2_Swarm); Evolves5 = new EvolutionTree(new[] { Resources.evos_g5 }, GameVersion.BW, PersonalTable.BW, MaxSpeciesID_5); } diff --git a/PKHeX/Legality/Tables5.cs b/PKHeX/Legality/Tables5.cs index cdb610ba2..6c7d577dc 100644 --- a/PKHeX/Legality/Tables5.cs +++ b/PKHeX/Legality/Tables5.cs @@ -302,6 +302,74 @@ public static partial class Legal // Gift new EncounterTrade { Species = 570, Level = 25, Ability = 1, TID = 00002, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {30,30,30,30,30,30}, Nature = Nature.Hasty, Location = 10} //N's Zorua @ Driftveil City }; + #region Alt Slots + private static readonly EncounterArea[] SlotsBW_Swarm = + { + //level range and Slottype will be marked later + new EncounterArea {Location = 14, Slots = new[]{new EncounterSlot {Species = 083},},},// Farfetch'd @ Route 1 + new EncounterArea {Location = 15, Slots = new[]{new EncounterSlot {Species = 360},},},// Wynant @ Route 2 + new EncounterArea {Location = 17, Slots = new[]{new EncounterSlot {Species = 449},},},// Hippopotas @ Route 4 + new EncounterArea {Location = 18, Slots = new[]{new EncounterSlot {Species = 235},},},// Smeargle @ Route 5 + new EncounterArea {Location = 20, Slots = new[]{new EncounterSlot {Species = 161},},},// Sentret @ Route 7 + new EncounterArea {Location = 21, Slots = new[]{new EncounterSlot {Species = 453},},},// Croagunk @ Route 8 + new EncounterArea {Location = 23, Slots = new[]{new EncounterSlot {Species = 236},},},// Tyrogue @ Route 10 + new EncounterArea {Location = 25, Slots = new[]{new EncounterSlot {Species = 084},},},// Doduo @ Route 12 + new EncounterArea {Location = 26, Slots = new[]{new EncounterSlot {Species = 353},},},// Shuppet @ Route 13 + new EncounterArea {Location = 27, Slots = new[]{new EncounterSlot {Species = 193},},},// Yanma @ Route 14 + new EncounterArea {Location = 28, Slots = new[]{new EncounterSlot {Species = 056},},},// Mankey @ Route 15 + new EncounterArea {Location = 29, Slots = new[]{new EncounterSlot {Species = 204},},},// Pineco @ Route 16 + new EncounterArea {Location = 30, Slots = new[]{new EncounterSlot {Species = 102},},},// Exeggcutes @ Route 18 + }; + private static readonly EncounterArea[] SlotsB_Swarm = SlotsBW_Swarm.Concat( + new EncounterArea[] { + new EncounterArea {Location = 14, Slots = new[]{new EncounterSlot {Species = 313},},},// Volbeat @ Route 3 + new EncounterArea {Location = 19, Slots = new[]{new EncounterSlot {Species = 311},},},// Plusle @ Route 6 + new EncounterArea {Location = 22, Slots = new[]{new EncounterSlot {Species = 228},},},// Houndour @ Route 9 + new EncounterArea {Location = 24, Slots = new[]{new EncounterSlot {Species = 285},},},// Shroomish @ Route 11 + }).ToArray(); + private static readonly EncounterArea[] SlotsW_Swarm = SlotsBW_Swarm.Concat( + new EncounterArea[] { + new EncounterArea {Location = 14, Slots = new[]{new EncounterSlot {Species = 314},},},// Illumise @ Route 3 + new EncounterArea {Location = 19, Slots = new[]{new EncounterSlot {Species = 312},},},// Minun @ Route 6 + new EncounterArea {Location = 22, Slots = new[]{new EncounterSlot {Species = 261},},},// Poochyena @ Route 9 + new EncounterArea {Location = 24, Slots = new[]{new EncounterSlot {Species = 048},},},// Paras @ Route 11 + }).ToArray(); + + + private static readonly EncounterArea[] SlotsB2W2_Swarm = + { + //level range and Slottype will be marked later + new EncounterArea {Location = 014, Slots = new[]{new EncounterSlot {Species = 083},},},// Farfetch'd @ Route 1 + new EncounterArea {Location = 018, Slots = new[]{new EncounterSlot {Species = 177},},},// Natu @ Route 5 + new EncounterArea {Location = 020, Slots = new[]{new EncounterSlot {Species = 162},},},// Furret @ Route 7 + new EncounterArea {Location = 021, Slots = new[]{new EncounterSlot {Species = 195},},},// Quagsire @ Route 8 + new EncounterArea {Location = 022, Slots = new[]{new EncounterSlot {Species = 317},},},// Swalot @ Route 9 + new EncounterArea {Location = 024, Slots = new[]{new EncounterSlot {Species = 284},},},// Masquerain @ Route 11 + new EncounterArea {Location = 025, Slots = new[]{new EncounterSlot {Species = 084},},},// Doduo @ Route 12 + new EncounterArea {Location = 026, Slots = new[]{new EncounterSlot {Species = 277},},},// Swellow @ Route 13 + new EncounterArea {Location = 028, Slots = new[]{new EncounterSlot {Species = 022},},},// Fearow @ Route 15 + new EncounterArea {Location = 029, Slots = new[]{new EncounterSlot {Species = 204},},},// Pineco @ Route 16 + new EncounterArea {Location = 030, Slots = new[]{new EncounterSlot {Species = 187},},},// Hoppip @ Route 18 + new EncounterArea {Location = 032, Slots = new[]{new EncounterSlot {Species = 097},},},// Hypno @ Dreamyard + new EncounterArea {Location = 034, Slots = new[]{new EncounterSlot {Species = 450},},},// Hippowdon @ Desert Resort + new EncounterArea {Location = 070, Slots = new[]{new EncounterSlot {Species = 079},},},// Slowpoke @ Abundant shrine + new EncounterArea {Location = 132, Slots = new[]{new EncounterSlot {Species = 332},},},// Cacturne @ Reaversal Mountian + }; + private static readonly EncounterArea[] SlotsB2_Swarm = SlotsB2W2_Swarm.Concat( + new EncounterArea[] { + new EncounterArea {Location = 014, Slots = new[]{new EncounterSlot {Species = 313},},},// Volbeat @ Route 3 + new EncounterArea {Location = 019, Slots = new[]{new EncounterSlot {Species = 311},},},// Plusle @ Route 6 + new EncounterArea {Location = 125, Slots = new[]{new EncounterSlot {Species = 184},},},// Sudowoodo @ Route 20 + new EncounterArea {Location = 127, Slots = new[]{new EncounterSlot {Species = 168},},},// Ariados @ Route 22 + }).ToArray(); + private static readonly EncounterArea[] SlotsW2_Swarm = SlotsB2W2_Swarm.Concat( + new EncounterArea[] { + new EncounterArea {Location = 014, Slots = new[]{new EncounterSlot {Species = 314},},},// Illumise @ Route 3 + new EncounterArea {Location = 019, Slots = new[]{new EncounterSlot {Species = 312},},},// Minun @ Route 6 + new EncounterArea {Location = 125, Slots = new[]{new EncounterSlot {Species = 122},},},// Mr.Mime @ Route 20 + new EncounterArea {Location = 127, Slots = new[]{new EncounterSlot {Species = 166},},},// Ledian @ Route 22 + }).ToArray(); + #endregion internal static readonly int[] ValidMet_BW = { From 812aa32a3bb3962b0a9112de55371e8fd4054a7f Mon Sep 17 00:00:00 2001 From: wwwwwwzx Date: Tue, 21 Mar 2017 17:57:59 -0700 Subject: [PATCH 2/4] Remove unused hgss swarm table --- PKHeX/Legality/Tables4.cs | 38 -------------------------------------- 1 file changed, 38 deletions(-) diff --git a/PKHeX/Legality/Tables4.cs b/PKHeX/Legality/Tables4.cs index d1e0bc2ed..4403b5940 100644 --- a/PKHeX/Legality/Tables4.cs +++ b/PKHeX/Legality/Tables4.cs @@ -198,44 +198,6 @@ public static partial class Legal new int[] { 147, 148, 149, 230, 329, 330, 334, 371, 372, 373, 380, 381, 384, 443, 444, 445, 483, 484, 487 } }; - internal static readonly EncounterStatic[] Encounter_HGSS_Swarm = - { - //Swarm - //reference http://bulbapedia.bulbagarden.net/wiki/Pokémon_outbreak - new EncounterStatic { Species = 113, Level = 23, Location = 161, }, //Chansey @ Route 13 - new EncounterStatic { Species = 132, Level = 34, Location = 195, }, //Ditto @ Route 47 - new EncounterStatic { Species = 183, Level = 15, Location = 216, }, //Marill @ Mt. Mortar - new EncounterStatic { Species = 193, Level = 12, Location = 183, }, //Yanma @ Route 35 - new EncounterStatic { Species = 206, Level = 2, Location = 220, }, //Dunsparce @ Dark Cave - new EncounterStatic { Species = 206, Level = 3, Location = 220, }, //Dunsparce @ Dark Cave - new EncounterStatic { Species = 209, Level = 16, Location = 186, }, //Snubbull @ Route 38 - new EncounterStatic { Species = 211, Level = 40, Location = 180, }, //Qwilfish @ Route 32 - new EncounterStatic { Species = 223, Level = 20, Location = 192, }, //Remoraid @ Route 44 - new EncounterStatic { Species = 261, Level = 2, Location = 149, }, //Poochyena @ Route 1 - new EncounterStatic { Species = 278, Level = 35, Location = 143, }, //Wingull @ Vermillion City - new EncounterStatic { Species = 280, Level = 10, Location = 182, }, //Ralts @ Route 34 - new EncounterStatic { Species = 280, Level = 11, Location = 182, }, //Ralts @ Route 34 - new EncounterStatic { Species = 302, Level = 13, Location = 157, Version = GameVersion.HG,}, //Sableye @ Route 9 - new EncounterStatic { Species = 302, Level = 14, Location = 157, Version = GameVersion.HG,}, //Sableye @ Route 9 - new EncounterStatic { Species = 302, Level = 15, Location = 157, Version = GameVersion.HG,}, //Sableye @ Route 9 - new EncounterStatic { Species = 303, Level = 13, Location = 157, Version = GameVersion.SS,}, //Mawile @ Route 9 - new EncounterStatic { Species = 303, Level = 14, Location = 157, Version = GameVersion.SS,}, //Mawile @ Route 9 - new EncounterStatic { Species = 303, Level = 15, Location = 157, Version = GameVersion.SS,}, //Mawile @ Route 9 - new EncounterStatic { Species = 316, Level = 5, Location = 151, Version = GameVersion.SS,}, //Gulpin @ Route 3 - new EncounterStatic { Species = 333, Level = 23, Location = 193, }, //Swablu @ Route 45 - new EncounterStatic { Species = 340, Level = 10, Location = 128, }, //Whiscash @ Violet City Old Rod - new EncounterStatic { Species = 340, Level = 20, Location = 128, }, //Whiscash @ Violet City Good Rod - new EncounterStatic { Species = 340, Level = 40, Location = 128, }, //Whiscash @ Violet City Super Rod - new EncounterStatic { Species = 343, Level = 5, Location = 151, Version = GameVersion.HG,}, //Baltoy @ Route 3 - new EncounterStatic { Species = 366, Level = 35, Location = 167, }, //Clamperl @ Route 19 - new EncounterStatic { Species = 369, Level = 40, Location = 160, }, //Relicanth @ Route 12 - new EncounterStatic { Species = 370, Level = 20, Location = 175, }, //Luvdisc @ Route 27 - new EncounterStatic { Species = 401, Level = 3, Location = 224, }, //Kricketot @ Viridian Forest - new EncounterStatic { Species = 427, Level = 8, Location = 173, }, //Buneary @ Route 25 - new EncounterStatic { Species = 427, Level = 9, Location = 173, }, //Buneary @ Route 25 - new EncounterStatic { Species = 427, Level = 10, Location = 173, }, //Buneary @ Route 25 - }; - internal static readonly int[] Roaming_MetLocation_DPPt = { // Route 201-222 can be encountered in either grass or water From 1d72876632f1caaedcd24207bf7a6f31db89ec90 Mon Sep 17 00:00:00 2001 From: wwwwwwzx Date: Tue, 21 Mar 2017 18:02:04 -0700 Subject: [PATCH 3/4] Fix gen4 swarm encounters table - Make the table compact - fix Delibird location in dppt (216/217) - fix Spoink location in dppt (224->214) - fix fishing encounter type in hgss (some pkm can only be caught via super rod etc.) --- PKHeX/Legality/Tables4.cs | 483 +++++--------------------------------- 1 file changed, 58 insertions(+), 425 deletions(-) diff --git a/PKHeX/Legality/Tables4.cs b/PKHeX/Legality/Tables4.cs index 4403b5940..3b1ba5af9 100644 --- a/PKHeX/Legality/Tables4.cs +++ b/PKHeX/Legality/Tables4.cs @@ -554,449 +554,82 @@ public static partial class Legal private static readonly EncounterArea[] SlotsDPPT_Swarm = { - //Swarm //reference http://bulbapedia.bulbagarden.net/wiki/Pokémon_outbreak - new EncounterArea - { - Location = 16, // Route 201 - Slots = new[] - { - new EncounterSlot { Species = 084, Type = SlotType.Grass }, // Doduo - }, - }, - new EncounterArea - { - Location = 17, // Route 202 - Slots = new[] - { - new EncounterSlot { Species = 263, Type = SlotType.Grass }, // Zigzagoon - }, - }, - new EncounterArea - { - Location = 18, // Route 203 - Slots = new[] - { - new EncounterSlot { Species = 104, Type = SlotType.Grass }, // Cubone - }, - }, - new EncounterArea - { - Location = 22, // Route 207 - Slots = new[] - { - new EncounterSlot { Species = 231, Type = SlotType.Grass }, // Phanpy - }, - }, - new EncounterArea - { - Location = 23, // Route 208 - Slots = new[] - { - new EncounterSlot { Species = 206, Type = SlotType.Grass }, // Dunsparce - }, - }, - new EncounterArea - { - Location = 24, // Route 209 - Slots = new[] - { - new EncounterSlot { Species = 209, Type = SlotType.Grass }, // Snubbull - }, - }, - new EncounterArea - { - Location = 30, // Route 215 - Slots = new[] - { - new EncounterSlot { Species = 096, Type = SlotType.Grass }, // Drowzee - }, - }, - new EncounterArea - { - Location = 31, // Route 216 - Slots = new[] - { - new EncounterSlot { Species = 225, Type = SlotType.Grass }, // Delibird - }, - }, - new EncounterArea - { - Location = 33, // Route 218 - Slots = new[] - { - new EncounterSlot { Species = 100, Type = SlotType.Grass }, // Voltorb - }, - }, - new EncounterArea - { - Location = 36, // Route 221 - Slots = new[] - { - new EncounterSlot { Species = 081, Type = SlotType.Grass }, // Farfetch'd - }, - }, - new EncounterArea - { - Location = 37, // Route 222 - Slots = new[] - { - new EncounterSlot { Species = 300, Type = SlotType.Grass }, // Skitty - }, - }, - new EncounterArea - { - Location = 39, // Route 224 - Slots = new[] - { - new EncounterSlot { Species = 177, Type = SlotType.Grass }, // Natu - new EncounterSlot { Species = 325, Type = SlotType.Grass }, // Spoink - }, - }, - new EncounterArea - { - Location = 40, // Route 225 - Slots = new[] - { - new EncounterSlot { Species = 296, Type = SlotType.Grass }, // Makuhita - }, - }, - new EncounterArea - { - Location = 41, // Route 226 - Slots = new[] - { - new EncounterSlot { Species = 098, Type = SlotType.Grass }, // Krabby - }, - }, - new EncounterArea - { - Location = 42, // Route 227 - Slots = new[] - { - new EncounterSlot { Species = 327, Type = SlotType.Grass }, // Spinda - }, - }, - new EncounterArea - { - Location = 43, // Route 228 - Slots = new[] - { - new EncounterSlot { Species = 374, Type = SlotType.Grass }, // Beldum - }, - }, - new EncounterArea - { - Location = 45, // Route 230 - Slots = new[] - { - new EncounterSlot { Species = 222, Type = SlotType.Grass }, // Corsola - }, - }, - new EncounterArea - { - Location = 47, // Valley Windworks - Slots = new[] - { - new EncounterSlot { Species = 309, Type = SlotType.Grass }, // Electrike - }, - }, - new EncounterArea - { - Location = 48, // Eterna Forest - Slots = new[] - { - new EncounterSlot { Species = 287, Type = SlotType.Grass }, // Slakoth - }, - }, + new EncounterArea {Location = 016, Slots = new[]{new EncounterSlot {Species = 084, Type = SlotType.Grass }, },},// Doduo @ Route 201 + new EncounterArea {Location = 017, Slots = new[]{new EncounterSlot {Species = 263, Type = SlotType.Grass }, },},// Zigzagoon @ Route 202 + new EncounterArea {Location = 018, Slots = new[]{new EncounterSlot {Species = 104, Type = SlotType.Grass }, },},// Cubone @ Route 203 + new EncounterArea {Location = 022, Slots = new[]{new EncounterSlot {Species = 231, Type = SlotType.Grass }, },},// Phanpy @ Route 207 + new EncounterArea {Location = 023, Slots = new[]{new EncounterSlot {Species = 206, Type = SlotType.Grass }, },},// Dunsparce @ Route 208 + new EncounterArea {Location = 024, Slots = new[]{new EncounterSlot {Species = 209, Type = SlotType.Grass }, },},// Snubbull @ Route 209 + new EncounterArea {Location = 029, Slots = new[]{new EncounterSlot {Species = 325, Type = SlotType.Grass }, },},// Spoink @ Route 214 + new EncounterArea {Location = 030, Slots = new[]{new EncounterSlot {Species = 096, Type = SlotType.Grass }, },},// Drowzee @ Route 215 + new EncounterArea {Location = 033, Slots = new[]{new EncounterSlot {Species = 100, Type = SlotType.Grass }, },},// Voltorb @ Route 218 + new EncounterArea {Location = 036, Slots = new[]{new EncounterSlot {Species = 083, Type = SlotType.Grass }, },},// Farfetch'd @ Route 221 + new EncounterArea {Location = 037, Slots = new[]{new EncounterSlot {Species = 300, Type = SlotType.Grass }, },},// Skitty @ Route 222 + new EncounterArea {Location = 039, Slots = new[]{new EncounterSlot {Species = 177, Type = SlotType.Grass }, },},// Natu @ Route 224 + new EncounterArea {Location = 040, Slots = new[]{new EncounterSlot {Species = 296, Type = SlotType.Grass }, },},// Makuhita @ Route 225 + new EncounterArea {Location = 041, Slots = new[]{new EncounterSlot {Species = 098, Type = SlotType.Grass }, },},// Krabby @ Route 226 + new EncounterArea {Location = 042, Slots = new[]{new EncounterSlot {Species = 327, Type = SlotType.Grass }, },},// Spinda @ Route 227 + new EncounterArea {Location = 043, Slots = new[]{new EncounterSlot {Species = 374, Type = SlotType.Grass }, },},// Beldum @ Route 228 + new EncounterArea {Location = 045, Slots = new[]{new EncounterSlot {Species = 222, Type = SlotType.Grass }, },},// Corsola @ Route 230 + new EncounterArea {Location = 047, Slots = new[]{new EncounterSlot {Species = 309, Type = SlotType.Grass }, },},// Electrike @ Valley Windworks + new EncounterArea {Location = 048, Slots = new[]{new EncounterSlot {Species = 287, Type = SlotType.Grass }, },},// Slakoth @ Eterna Forest }; private static readonly EncounterArea[] SlotsDP_Swarm = SlotsDPPT_Swarm.Concat( new EncounterArea[] { - new EncounterArea - { - Location = 21, // Route 206 - Slots = new[] - { - new EncounterSlot { Species = 299, Type = SlotType.Grass }, // Nosepass - }, - }, - new EncounterArea - { - Location = 28, // Route 213 - Slots = new[] - { - new EncounterSlot { Species = 359, Type = SlotType.Grass }, // Absol - }, - }, - new EncounterArea - { - Location = 32, // Route 217 - Slots = new[] - { - new EncounterSlot { Species = 220, Type = SlotType.Grass }, // Swinub - new EncounterSlot { Species = 225, Type = SlotType.Grass }, // Delibird - }, - }, - new EncounterArea - { - Location = 44, // Route 229 - Slots = new[] - { - new EncounterSlot { Species = 016, Type = SlotType.Grass }, // Pidgey - }, - }, - new EncounterArea - { - Location = 49, // Fuego Ironworks - Slots = new[] - { - new EncounterSlot { Species = 081, Type = SlotType.Grass }, // Magnemite - }, - }, - new EncounterArea - { - Location = 76, // Lake Verity - Slots = new[] - { - new EncounterSlot { Species = 283, Type = SlotType.Grass }, // Surskit - }, - }, - new EncounterArea - { - Location = 77, // Lake Valor - Slots = new[] - { - new EncounterSlot { Species = 108, Type = SlotType.Grass }, // Lickitung - }, - }, - new EncounterArea - { - Location = 78, // Lake Acuity - Slots = new[] - { - new EncounterSlot { Species = 238, Type = SlotType.Grass }, // Smoochum - }, - }, + new EncounterArea {Location = 021, Slots = new[]{new EncounterSlot {Species = 299, Type = SlotType.Grass }, },},// Nosepass @ Route 206 + new EncounterArea {Location = 028, Slots = new[]{new EncounterSlot {Species = 359, Type = SlotType.Grass }, },},// Absol @ Route 213 + new EncounterArea {Location = 031, Slots = new[]{new EncounterSlot {Species = 225, Type = SlotType.Grass }, },},// Delibird @ Route 216 + new EncounterArea {Location = 032, Slots = new[]{new EncounterSlot {Species = 220, Type = SlotType.Grass }, },},// Swinub @ Route 217 + new EncounterArea {Location = 044, Slots = new[]{new EncounterSlot {Species = 016, Type = SlotType.Grass }, },},// Pidgey @ Route 229 + new EncounterArea {Location = 049, Slots = new[]{new EncounterSlot {Species = 081, Type = SlotType.Grass }, },},// Magnemite @ Fuego Ironworks + new EncounterArea {Location = 076, Slots = new[]{new EncounterSlot {Species = 283, Type = SlotType.Grass }, },},// Surskit @ Lake Verity + new EncounterArea {Location = 077, Slots = new[]{new EncounterSlot {Species = 108, Type = SlotType.Grass }, },},// Lickitung @ Lake Valor + new EncounterArea {Location = 078, Slots = new[]{new EncounterSlot {Species = 238, Type = SlotType.Grass }, },},// Smoochum @ Lake Acuity }).ToArray(); private static readonly EncounterArea[] SlotsPt_Swarm = SlotsDPPT_Swarm.Concat( new EncounterArea[] { - new EncounterArea - { - Location = 21, // Route 206 - Slots = new[] - { - new EncounterSlot { Species = 246, Type = SlotType.Grass }, // Larvitar - }, - }, - new EncounterArea - { - Location = 44, // Route 229 - Slots = new[] - { - new EncounterSlot { Species = 127, Type = SlotType.Grass }, // Pinsir - }, - }, + new EncounterArea {Location = 021, Slots = new[]{new EncounterSlot {Species = 246, Type = SlotType.Grass }, },},// Larvitar @ Route 206 + new EncounterArea {Location = 032, Slots = new[]{new EncounterSlot {Species = 225, Type = SlotType.Grass }, },},// Delibird @ Route 217 + new EncounterArea {Location = 044, Slots = new[]{new EncounterSlot {Species = 127, Type = SlotType.Grass }, },},// Pinsir @ Route 229 }).ToArray(); private static readonly EncounterArea[] SlotsHGSS_Swarm = { - //Swarm - //reference http://bulbapedia.bulbagarden.net/wiki/Pokémon_outbreak - new EncounterArea - { - Location = 128, // Violet City - Slots = new[] - { - new EncounterSlot { Species = 340, Type = SlotType.Old_Rod }, // Whiscash - new EncounterSlot { Species = 340, Type = SlotType.Good_Rod }, // Whiscash - new EncounterSlot { Species = 340, Type = SlotType.Super_Rod }, // Whiscash - }, - }, - new EncounterArea - { - Location = 143, // Vermillion City - Slots = new[] - { - new EncounterSlot { Species = 278, Type = SlotType.Surf }, // Wingull - }, - }, - new EncounterArea - { - Location = 149, // Route 1 - Slots = new[] - { - new EncounterSlot { Species = 261, Type = SlotType.Grass }, // Poochyena - }, - }, - new EncounterArea - { - Location = 160, // Route 12 - Slots = new[] - { - new EncounterSlot { Species = 369, Type = SlotType.Old_Rod }, // Relicanth - new EncounterSlot { Species = 369, Type = SlotType.Good_Rod }, // Relicanth - new EncounterSlot { Species = 369, Type = SlotType.Super_Rod }, // Relicanth - }, - }, - new EncounterArea - { - Location = 161, // Route 113 - Slots = new[] - { - new EncounterSlot { Species = 113, Type = SlotType.Grass }, // Chansey - }, - }, - new EncounterArea - { - Location = 167, // Route 19 - Slots = new[] - { - new EncounterSlot { Species = 366, Type = SlotType.Surf }, // Clamperl - }, - }, - new EncounterArea - { - Location = 173, // Route 25 - Slots = new[] - { - new EncounterSlot { Species = 427, Type = SlotType.Grass }, // Buneary - }, - }, - new EncounterArea - { - Location = 175, // Route 27 - Slots = new[] - { - new EncounterSlot { Species = 370, Type = SlotType.Surf }, // Luvdisc - }, - }, - new EncounterArea - { - Location = 180, // Route 32 - Slots = new[] - { - new EncounterSlot { Species = 211, Type = SlotType.Old_Rod }, // Qwilfish - new EncounterSlot { Species = 211, Type = SlotType.Good_Rod }, // Qwilfish - new EncounterSlot { Species = 211, Type = SlotType.Super_Rod }, // Qwilfish - }, - }, - new EncounterArea - { - Location = 182, // Route 34 - Slots = new[] - { - new EncounterSlot { Species = 280, Type = SlotType.Grass }, // Ralts - }, - }, - new EncounterArea - { - Location = 183, // Route 35 - Slots = new[] - { - new EncounterSlot { Species = 193, Type = SlotType.Grass }, // Yanma - }, - }, - new EncounterArea - { - Location = 186, // Route 38 - Slots = new[] - { - new EncounterSlot { Species = 209, Type = SlotType.Grass }, // Snubbull - }, - }, - new EncounterArea - { - Location = 192, // Route 44 - Slots = new[] - { - new EncounterSlot { Species = 223, Type = SlotType.Old_Rod }, // Remoraid - new EncounterSlot { Species = 223, Type = SlotType.Good_Rod }, // Remoraid - new EncounterSlot { Species = 223, Type = SlotType.Super_Rod }, // Remoraid - }, - }, - new EncounterArea - { - Location = 193, // Route 45 - Slots = new[] - { - new EncounterSlot { Species = 333, Type = SlotType.Grass }, // Swablu - }, - }, - new EncounterArea - { - Location = 195, // Route 43 - Slots = new[] - { - new EncounterSlot { Species = 132, Type = SlotType.Grass }, // Ditto - }, - }, - new EncounterArea - { - Location = 216, // Mt. Mortar - Slots = new[] - { - new EncounterSlot { Species = 189, Type = SlotType.Grass }, // Marill - }, - }, - new EncounterArea - { - Location = 220, // Dark Cave - Slots = new[] - { - new EncounterSlot { Species = 206, Type = SlotType.Grass }, // Dunsparce - }, - }, - new EncounterArea - { - Location = 224, // Viridian Forest - Slots = new[] - { - new EncounterSlot { Species = 401, Type = SlotType.Grass }, // Kricketot - }, - }, + new EncounterArea {Location = 128, Slots = new[]{new EncounterSlot {Species = 340, Type = SlotType.Old_Rod }, + new EncounterSlot {Species = 340, Type = SlotType.Good_Rod }, + new EncounterSlot {Species = 340, Type = SlotType.Super_Rod },},}, // Whiscash @ Violet City + new EncounterArea {Location = 143, Slots = new[]{new EncounterSlot {Species = 278, Type = SlotType.Surf },},}, // Wingull @ Vermillion City + new EncounterArea {Location = 149, Slots = new[]{new EncounterSlot {Species = 261, Type = SlotType.Grass },},}, // Poochyena @ Route 1 + new EncounterArea {Location = 160, Slots = new[]{new EncounterSlot {Species = 369, Type = SlotType.Super_Rod },},}, // Relicanth @ Route 12 + new EncounterArea {Location = 161, Slots = new[]{new EncounterSlot {Species = 113, Type = SlotType.Grass },},}, // Chansey @ Route 13 + new EncounterArea {Location = 167, Slots = new[]{new EncounterSlot {Species = 366, Type = SlotType.Surf },},}, // Clamperl @ Route 19 + new EncounterArea {Location = 173, Slots = new[]{new EncounterSlot {Species = 427, Type = SlotType.Grass },},}, // Buneary @ Route 25 + new EncounterArea {Location = 175, Slots = new[]{new EncounterSlot {Species = 370, Type = SlotType.Surf },},}, // Luvdisc @ Route 27 + new EncounterArea {Location = 180, Slots = new[]{new EncounterSlot {Species = 211, Type = SlotType.Super_Rod },},}, // Qwilfish @ Route 32 + new EncounterArea {Location = 182, Slots = new[]{new EncounterSlot {Species = 280, Type = SlotType.Grass },},}, // Ralts @ Route 34 + new EncounterArea {Location = 183, Slots = new[]{new EncounterSlot {Species = 193, Type = SlotType.Grass },},}, // Yanma @ Route 35 + new EncounterArea {Location = 186, Slots = new[]{new EncounterSlot {Species = 209, Type = SlotType.Grass },},}, // Snubbull @ Route 38 + new EncounterArea {Location = 192, Slots = new[]{new EncounterSlot {Species = 223, Type = SlotType.Good_Rod }, + new EncounterSlot {Species = 223, Type = SlotType.Super_Rod },},}, // Remoraid @ Route 44 + new EncounterArea {Location = 193, Slots = new[]{new EncounterSlot {Species = 333, Type = SlotType.Grass },},}, // Swablu @ Route 45 + new EncounterArea {Location = 195, Slots = new[]{new EncounterSlot {Species = 132, Type = SlotType.Grass },},}, // Ditto @ Route 47 + new EncounterArea {Location = 216, Slots = new[]{new EncounterSlot {Species = 183, Type = SlotType.Grass },},}, // Marill @ Mt. Mortar + new EncounterArea {Location = 220, Slots = new[]{new EncounterSlot {Species = 206, Type = SlotType.Grass },},}, // Dunsparce @ Dark Cave + new EncounterArea {Location = 224, Slots = new[]{new EncounterSlot {Species = 401, Type = SlotType.Grass },},}, // Kricketot @ Viridian Forest }; - private static readonly EncounterArea[] SlotsHG_Swarm = SlotsHGSS_Swarm.Concat( new EncounterArea[] { - new EncounterArea - { - Location = 151, // Route 3 - Slots = new[] - { - new EncounterSlot { Species = 343, Type = SlotType.Grass }, // Baltoy - }, - }, - new EncounterArea - { - Location = 157, // Route 9 - Slots = new[] - { - new EncounterSlot { Species = 302, Type = SlotType.Grass }, // Sableye - }, - }, - }).ToArray(); - + new EncounterArea {Location = 151, Slots = new[]{new EncounterSlot {Species = 343, Type = SlotType.Grass },},}, // Baltoy @ Route 3 + new EncounterArea {Location = 157, Slots = new[]{new EncounterSlot {Species = 302, Type = SlotType.Grass },},}, // Sableye @ Route 9 + }).ToArray(); private static readonly EncounterArea[] SlotsSS_Swarm = SlotsHGSS_Swarm.Concat( new EncounterArea[] { - new EncounterArea - { - Location = 151, // Route 3 - Slots = new[] - { - new EncounterSlot { Species = 316, Type = SlotType.Grass }, // Gulpin - }, - }, - new EncounterArea - { - Location = 157, // Route 9 - Slots = new[] - { - new EncounterSlot { Species = 303, Type = SlotType.Grass }, // Mawile - }, - }, - }).ToArray(); + new EncounterArea {Location = 151, Slots = new[]{new EncounterSlot {Species = 316, Type = SlotType.Grass },},}, // Gulpin @ Route 3 + new EncounterArea {Location = 157, Slots = new[]{new EncounterSlot {Species = 303, Type = SlotType.Grass },},}, // Mawile @ Route 9 + }).ToArray(); #endregion From 8d5454136e864074cd9e841ffecb290e8a5f3190 Mon Sep 17 00:00:00 2001 From: wwwwwwzx Date: Tue, 21 Mar 2017 18:14:16 -0700 Subject: [PATCH 4/4] Minor fix - Fix location index of route 3 in gen5 - reduce loop --- PKHeX/Legality/Core.cs | 14 ++++---------- PKHeX/Legality/Tables5.cs | 8 ++++---- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/PKHeX/Legality/Core.cs b/PKHeX/Legality/Core.cs index 6414ee5ea..4ac624c1e 100644 --- a/PKHeX/Legality/Core.cs +++ b/PKHeX/Legality/Core.cs @@ -232,22 +232,16 @@ private static void MarkG4Slots(ref EncounterArea[] Areas) } private static void MarkBWSwarmSlots(ref EncounterArea[] Areas) { - foreach (var area in Areas) + foreach (EncounterSlot s in Areas.SelectMany(area => area.Slots)) { - foreach (var Slot in area.Slots) - { - Slot.LevelMin = 15; Slot.LevelMax = 55; Slot.Type = SlotType.Swarm; - } + s.LevelMin = 15; s.LevelMax = 55; s.Type = SlotType.Swarm; } } private static void MarkB2W2SwarmSlots(ref EncounterArea[] Areas) { - foreach (var area in Areas) + foreach (EncounterSlot s in Areas.SelectMany(area => area.Slots)) { - foreach (var Slot in area.Slots) - { - Slot.LevelMin = 40; Slot.LevelMax = 55; Slot.Type = SlotType.Swarm; - } + s.LevelMin = 40; s.LevelMax = 55; s.Type = SlotType.Swarm; } } private static void MarkG5Slots(ref EncounterArea[] Areas) diff --git a/PKHeX/Legality/Tables5.cs b/PKHeX/Legality/Tables5.cs index 6c7d577dc..8fc5d58b8 100644 --- a/PKHeX/Legality/Tables5.cs +++ b/PKHeX/Legality/Tables5.cs @@ -322,14 +322,14 @@ public static partial class Legal }; private static readonly EncounterArea[] SlotsB_Swarm = SlotsBW_Swarm.Concat( new EncounterArea[] { - new EncounterArea {Location = 14, Slots = new[]{new EncounterSlot {Species = 313},},},// Volbeat @ Route 3 + new EncounterArea {Location = 16, Slots = new[]{new EncounterSlot {Species = 313},},},// Volbeat @ Route 3 new EncounterArea {Location = 19, Slots = new[]{new EncounterSlot {Species = 311},},},// Plusle @ Route 6 new EncounterArea {Location = 22, Slots = new[]{new EncounterSlot {Species = 228},},},// Houndour @ Route 9 new EncounterArea {Location = 24, Slots = new[]{new EncounterSlot {Species = 285},},},// Shroomish @ Route 11 }).ToArray(); private static readonly EncounterArea[] SlotsW_Swarm = SlotsBW_Swarm.Concat( new EncounterArea[] { - new EncounterArea {Location = 14, Slots = new[]{new EncounterSlot {Species = 314},},},// Illumise @ Route 3 + new EncounterArea {Location = 16, Slots = new[]{new EncounterSlot {Species = 314},},},// Illumise @ Route 3 new EncounterArea {Location = 19, Slots = new[]{new EncounterSlot {Species = 312},},},// Minun @ Route 6 new EncounterArea {Location = 22, Slots = new[]{new EncounterSlot {Species = 261},},},// Poochyena @ Route 9 new EncounterArea {Location = 24, Slots = new[]{new EncounterSlot {Species = 048},},},// Paras @ Route 11 @@ -357,14 +357,14 @@ public static partial class Legal }; private static readonly EncounterArea[] SlotsB2_Swarm = SlotsB2W2_Swarm.Concat( new EncounterArea[] { - new EncounterArea {Location = 014, Slots = new[]{new EncounterSlot {Species = 313},},},// Volbeat @ Route 3 + new EncounterArea {Location = 016, Slots = new[]{new EncounterSlot {Species = 313},},},// Volbeat @ Route 3 new EncounterArea {Location = 019, Slots = new[]{new EncounterSlot {Species = 311},},},// Plusle @ Route 6 new EncounterArea {Location = 125, Slots = new[]{new EncounterSlot {Species = 184},},},// Sudowoodo @ Route 20 new EncounterArea {Location = 127, Slots = new[]{new EncounterSlot {Species = 168},},},// Ariados @ Route 22 }).ToArray(); private static readonly EncounterArea[] SlotsW2_Swarm = SlotsB2W2_Swarm.Concat( new EncounterArea[] { - new EncounterArea {Location = 014, Slots = new[]{new EncounterSlot {Species = 314},},},// Illumise @ Route 3 + new EncounterArea {Location = 016, Slots = new[]{new EncounterSlot {Species = 314},},},// Illumise @ Route 3 new EncounterArea {Location = 019, Slots = new[]{new EncounterSlot {Species = 312},},},// Minun @ Route 6 new EncounterArea {Location = 125, Slots = new[]{new EncounterSlot {Species = 122},},},// Mr.Mime @ Route 20 new EncounterArea {Location = 127, Slots = new[]{new EncounterSlot {Species = 166},},},// Ledian @ Route 22