mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-08-24 21:04:46 -05:00
Enumerate ability permissions in encounter templates, misc updates (#3368)
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using static PKHeX.Core.EncounterUtil;
|
||||
using static PKHeX.Core.GameVersion;
|
||||
using static PKHeX.Core.AbilityPermission;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
@@ -150,30 +151,30 @@ static Encounters3()
|
||||
|
||||
internal static readonly EncounterTrade3[] TradeGift_RSE =
|
||||
{
|
||||
new(RS, 0x00009C40, 296, 05) { Ability = 2, TID = 49562, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {5,5,4,4,4,4}, Contest = TradeContest_Tough }, // Slakoth (Level 5 Breeding) -> Makuhita
|
||||
new(RS, 0x498A2E17, 300, 03) { Ability = 1, TID = 02259, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {5,4,4,5,4,4}, Contest = TradeContest_Cute }, // Pikachu (Level 3 Viridian Forest) -> Skitty
|
||||
new(RS, 0x4C970B7F, 222, 21) { Ability = 2, TID = 50183, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {4,4,5,4,4,5}, Contest = TradeContest_Beauty }, // Bellossom (Level 21 Oddish -> Gloom -> Bellossom) -> Corsola
|
||||
new(E , 0x00000084, 273, 04) { Ability = 2, TID = 38726, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {5,4,5,4,4,4}, Contest = TradeContest_Cool }, // Ralts (Level 4 Route 102) -> Seedot
|
||||
new(E , 0x0000006F, 311, 05) { Ability = 1, TID = 08460, SID = 00001, OTGender = 0, Gender = 1, IVs = new[] {4,4,4,5,5,4}, Contest = TradeContest_Cute }, // Volbeat (Level 5 Breeding) -> Plusle
|
||||
new(E , 0x0000007F, 116, 05) { Ability = 1, TID = 46285, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {5,4,4,4,5,4}, Contest = TradeContest_Tough }, // Bagon (Level 5 Breeding) -> Horsea*
|
||||
new(E , 0x0000008B, 052, 03) { Ability = 1, TID = 25945, SID = 00001, OTGender = 1, Gender = 0, IVs = new[] {4,5,4,5,4,4}, Contest = TradeContest_Clever }, // Skitty (Level 3 Trade)-> Meowth*
|
||||
new(RS, 0x00009C40, 296, 05) { Ability = OnlySecond, TID = 49562, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {5,5,4,4,4,4}, Contest = TradeContest_Tough }, // Slakoth (Level 5 Breeding) -> Makuhita
|
||||
new(RS, 0x498A2E17, 300, 03) { Ability = OnlyFirst, TID = 02259, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {5,4,4,5,4,4}, Contest = TradeContest_Cute }, // Pikachu (Level 3 Viridian Forest) -> Skitty
|
||||
new(RS, 0x4C970B7F, 222, 21) { Ability = OnlySecond, TID = 50183, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {4,4,5,4,4,5}, Contest = TradeContest_Beauty }, // Bellossom (Level 21 Oddish -> Gloom -> Bellossom) -> Corsola
|
||||
new(E , 0x00000084, 273, 04) { Ability = OnlySecond, TID = 38726, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {5,4,5,4,4,4}, Contest = TradeContest_Cool }, // Ralts (Level 4 Route 102) -> Seedot
|
||||
new(E , 0x0000006F, 311, 05) { Ability = OnlyFirst, TID = 08460, SID = 00001, OTGender = 0, Gender = 1, IVs = new[] {4,4,4,5,5,4}, Contest = TradeContest_Cute }, // Volbeat (Level 5 Breeding) -> Plusle
|
||||
new(E , 0x0000007F, 116, 05) { Ability = OnlyFirst, TID = 46285, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {5,4,4,4,5,4}, Contest = TradeContest_Tough }, // Bagon (Level 5 Breeding) -> Horsea*
|
||||
new(E , 0x0000008B, 052, 03) { Ability = OnlyFirst, TID = 25945, SID = 00001, OTGender = 1, Gender = 0, IVs = new[] {4,5,4,5,4,4}, Contest = TradeContest_Clever }, // Skitty (Level 3 Trade)-> Meowth*
|
||||
// If Pokémon with * is evolved in a Generation IV or V game, its Ability will become its second Ability.
|
||||
};
|
||||
|
||||
internal static readonly EncounterTrade3[] TradeGift_FRLG =
|
||||
{
|
||||
new(FRLG, 0x00009CAE, 122, 05) { Ability = 1, TID = 01985, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,15,17,24,23,22}, Contest = TradeContest_Clever }, // Abra (Level 5 Breeding) -> Mr. Mime
|
||||
new(FR , 0x4C970B89, 029, 05) { Ability = 1, TID = 63184, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {22,18,25,19,15,22}, Contest = TradeContest_Tough }, // Nidoran♀
|
||||
new( LG, 0x4C970B9E, 032, 05) { Ability = 1, TID = 63184, SID = 00000, OTGender = 1, Gender = 0, IVs = new[] {19,25,18,22,22,15}, Contest = TradeContest_Cool }, // Nidoran♂ *
|
||||
new(FR , 0x00EECA15, 030, 16) { Ability = 1, TID = 13637, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {22,25,18,19,22,15}, Contest = TradeContest_Cute }, // Nidorina *
|
||||
new( LG, 0x00EECA19, 033, 16) { Ability = 1, TID = 13637, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {19,18,25,22,15,22}, Contest = TradeContest_Tough }, // Nidorino *
|
||||
new(FR , 0x451308AB, 108, 25) { Ability = 1, TID = 01239, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {24,19,21,15,23,21}, Contest = TradeContest_Tough }, // Golduck (Level 25) -> Lickitung *
|
||||
new( LG, 0x451308AB, 108, 25) { Ability = 1, TID = 01239, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {24,19,21,15,23,21}, Contest = TradeContest_Tough }, // Slowbro (Level 25) -> Lickitung *
|
||||
new(FRLG, 0x498A2E1D, 124, 20) { Ability = 1, TID = 36728, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {18,17,18,22,25,21}, Contest = TradeContest_Beauty }, // Poliwhirl (Level 20) -> Jynx
|
||||
new(FRLG, 0x151943D7, 083, 03) { Ability = 1, TID = 08810, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,25,21,24,15,20}, Contest = TradeContest_Cool }, // Spearow (Level 3 Capture) -> Farfetch'd
|
||||
new(FRLG, 0x06341016, 101, 03) { Ability = 2, TID = 50298, SID = 00000, OTGender = 0, Gender = 2, IVs = new[] {19,16,18,25,25,19}, Contest = TradeContest_Cool }, // Raichu (Level 3) -> Electrode
|
||||
new(FRLG, 0x5C77ECFA, 114, 05) { Ability = 1, TID = 60042, SID = 00000, OTGender = 1, Gender = 0, IVs = new[] {22,17,25,16,23,20}, Contest = TradeContest_Cute }, // Venonat (Level 5 Breeding) -> Tangela
|
||||
new(FRLG, 0x482CAC89, 086, 05) { Ability = 1, TID = 09853, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {24,15,22,16,23,22}, Contest = TradeContest_Tough }, // Ponyta (Level 5 Breeding) -> Seel *
|
||||
new(FRLG, 0x00009CAE, 122, 05) { Ability = OnlyFirst, TID = 01985, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,15,17,24,23,22}, Contest = TradeContest_Clever }, // Abra (Level 5 Breeding) -> Mr. Mime
|
||||
new(FR , 0x4C970B89, 029, 05) { Ability = OnlyFirst, TID = 63184, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {22,18,25,19,15,22}, Contest = TradeContest_Tough }, // Nidoran♀
|
||||
new( LG, 0x4C970B9E, 032, 05) { Ability = OnlyFirst, TID = 63184, SID = 00000, OTGender = 1, Gender = 0, IVs = new[] {19,25,18,22,22,15}, Contest = TradeContest_Cool }, // Nidoran♂ *
|
||||
new(FR , 0x00EECA15, 030, 16) { Ability = OnlyFirst, TID = 13637, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {22,25,18,19,22,15}, Contest = TradeContest_Cute }, // Nidorina *
|
||||
new( LG, 0x00EECA19, 033, 16) { Ability = OnlyFirst, TID = 13637, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {19,18,25,22,15,22}, Contest = TradeContest_Tough }, // Nidorino *
|
||||
new(FR , 0x451308AB, 108, 25) { Ability = OnlyFirst, TID = 01239, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {24,19,21,15,23,21}, Contest = TradeContest_Tough }, // Golduck (Level 25) -> Lickitung *
|
||||
new( LG, 0x451308AB, 108, 25) { Ability = OnlyFirst, TID = 01239, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {24,19,21,15,23,21}, Contest = TradeContest_Tough }, // Slowbro (Level 25) -> Lickitung *
|
||||
new(FRLG, 0x498A2E1D, 124, 20) { Ability = OnlyFirst, TID = 36728, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {18,17,18,22,25,21}, Contest = TradeContest_Beauty }, // Poliwhirl (Level 20) -> Jynx
|
||||
new(FRLG, 0x151943D7, 083, 03) { Ability = OnlyFirst, TID = 08810, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,25,21,24,15,20}, Contest = TradeContest_Cool }, // Spearow (Level 3 Capture) -> Farfetch'd
|
||||
new(FRLG, 0x06341016, 101, 03) { Ability = OnlySecond, TID = 50298, SID = 00000, OTGender = 0, Gender = 2, IVs = new[] {19,16,18,25,25,19}, Contest = TradeContest_Cool }, // Raichu (Level 3) -> Electrode
|
||||
new(FRLG, 0x5C77ECFA, 114, 05) { Ability = OnlyFirst, TID = 60042, SID = 00000, OTGender = 1, Gender = 0, IVs = new[] {22,17,25,16,23,20}, Contest = TradeContest_Cute }, // Venonat (Level 5 Breeding) -> Tangela
|
||||
new(FRLG, 0x482CAC89, 086, 05) { Ability = OnlyFirst, TID = 09853, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {24,15,22,16,23,22}, Contest = TradeContest_Tough }, // Ponyta (Level 5 Breeding) -> Seel *
|
||||
// If Pokémon with * is evolved in a Generation IV or V game, its Ability will become its second Ability.
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using static PKHeX.Core.EncounterUtil;
|
||||
using static PKHeX.Core.GameVersion;
|
||||
using static PKHeX.Core.GroundTilePermission;
|
||||
using static PKHeX.Core.AbilityPermission;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
@@ -372,56 +373,56 @@ static Encounters4()
|
||||
|
||||
private static readonly EncounterTrade4[] RanchGifts =
|
||||
{
|
||||
new EncounterTrade4RanchGift(323975838, 025, 18) { Moves = new[] {447,085,148,104}, TID = 1000, SID = 19840, OTGender = 1, MetLocation = 0068, Gender = 0, Ability = 1, CurrentLevel = 20 }, // Pikachu
|
||||
new EncounterTrade4RanchGift(323977664, 037, 16) { Moves = new[] {412,109,053,219}, TID = 1000, SID = 21150, OTGender = 1, MetLocation = 3000, Gender = 0, Ability = 1, CurrentLevel = 30 }, // Vulpix
|
||||
new EncounterTrade4RanchGift(323975579, 077, 13) { Moves = new[] {036,033,039,052}, TID = 1000, SID = 01123, OTGender = 1, MetLocation = 3000, Gender = 0, Ability = 2, CurrentLevel = 16 }, // Ponyta
|
||||
new EncounterTrade4RanchGift(323975564, 108, 34) { Moves = new[] {076,111,014,205}, TID = 1000, SID = 03050, OTGender = 1, MetLocation = 0077, Gender = 0, Ability = 1, CurrentLevel = 40 }, // Lickitung
|
||||
new EncounterTrade4RanchGift(323977579, 114, 01) { Moves = new[] {437,438,079,246}, TID = 1000, SID = 49497, OTGender = 1, MetLocation = 3000, Gender = 1, Ability = 2 }, // Tangela
|
||||
new EncounterTrade4RanchGift(323977675, 133, 16) { Moves = new[] {363,270,098,247}, TID = 1000, SID = 47710, OTGender = 1, MetLocation = 0068, Gender = 0, Ability = 2, CurrentLevel = 30 }, // Eevee
|
||||
new EncounterTrade4RanchGift(323977588, 142, 20) { Moves = new[] {363,089,444,332}, TID = 1000, SID = 43066, OTGender = 1, MetLocation = 0094, Gender = 0, Ability = 1, CurrentLevel = 50 }, // Aerodactyl
|
||||
new EncounterTrade4RanchGift(232975554, 193, 22) { Moves = new[] {318,095,246,138}, TID = 1000, SID = 42301, OTGender = 1, MetLocation = 0052, Gender = 0, Ability = 1, CurrentLevel = 45, Ball = 5 }, // Yanma
|
||||
new EncounterTrade4RanchGift(323975570, 241, 16) { Moves = new[] {208,215,360,359}, TID = 1000, SID = 02707, OTGender = 1, MetLocation = 3000, Gender = 1, Ability = 1, CurrentLevel = 48 }, // Miltank
|
||||
new EncounterTrade4RanchGift(323975563, 285, 22) { Moves = new[] {402,147,206,078}, TID = 1000, SID = 02788, OTGender = 1, MetLocation = 3000, Gender = 0, Ability = 2, CurrentLevel = 45, Ball = 5 }, // Shroomish
|
||||
new EncounterTrade4RanchGift(323975559, 320, 30) { Moves = new[] {156,323,133,058}, TID = 1000, SID = 27046, OTGender = 1, MetLocation = 0038, Gender = 0, Ability = 2, CurrentLevel = 45 }, // Wailmer
|
||||
new EncounterTrade4RanchGift(323977657, 360, 01) { Moves = new[] {204,150,227,000}, TID = 1000, SID = 01788, OTGender = 1, MetLocation = 0004, Gender = 0, Ability = 2, EggLocation = 2000 }, // Wynaut
|
||||
new EncounterTrade4RanchGift(323975563, 397, 02) { Moves = new[] {355,017,283,018}, TID = 1000, SID = 59298, OTGender = 1, MetLocation = 0016, Gender = 0, Ability = 2, CurrentLevel = 23 }, // Staravia
|
||||
new EncounterTrade4RanchGift(323970584, 415, 05) { Moves = new[] {230,016,000,000}, TID = 1000, SID = 54140, OTGender = 1, MetLocation = 0020, Gender = 1, Ability = 1, CurrentLevel = 20 }, // Combee
|
||||
new EncounterTrade4RanchGift(323977539, 417, 09) { Moves = new[] {447,045,351,098}, TID = 1000, SID = 18830, OTGender = 1, MetLocation = 0020, Gender = 1, Ability = 2, CurrentLevel = 10 }, // Pachirisu
|
||||
new EncounterTrade4RanchGift(323974107, 422, 20) { Moves = new[] {363,352,426,104}, TID = 1000, SID = 39272, OTGender = 1, MetLocation = 0028, Gender = 0, Ability = 2, CurrentLevel = 25, Form = 1 }, // Shellos
|
||||
new EncounterTrade4RanchGift(323977566, 427, 10) { Moves = new[] {204,193,409,098}, TID = 1000, SID = 31045, OTGender = 1, MetLocation = 3000, Gender = 1, Ability = 1, CurrentLevel = 16 }, // Buneary
|
||||
new EncounterTrade4RanchGift(323975579, 453, 22) { Moves = new[] {310,207,426,389}, TID = 1000, SID = 41342, OTGender = 1, MetLocation = 0052, Gender = 0, Ability = 2, CurrentLevel = 31, Ball = 5 }, // Croagunk
|
||||
new EncounterTrade4RanchGift(323977566, 456, 15) { Moves = new[] {213,352,219,392}, TID = 1000, SID = 48348, OTGender = 1, MetLocation = 0020, Gender = 1, Ability = 1, CurrentLevel = 35 }, // Finneon
|
||||
new EncounterTrade4RanchGift(323975582, 459, 32) { Moves = new[] {452,420,275,059}, TID = 1000, SID = 23360, OTGender = 1, MetLocation = 0031, Gender = 0, Ability = 1, CurrentLevel = 41 }, // Snover
|
||||
new EncounterTrade4RanchGift(323975838, 025, 18) { Moves = new[] {447,085,148,104}, TID = 1000, SID = 19840, OTGender = 1, MetLocation = 0068, Gender = 0, Ability = OnlyFirst, CurrentLevel = 20 }, // Pikachu
|
||||
new EncounterTrade4RanchGift(323977664, 037, 16) { Moves = new[] {412,109,053,219}, TID = 1000, SID = 21150, OTGender = 1, MetLocation = 3000, Gender = 0, Ability = OnlyFirst, CurrentLevel = 30 }, // Vulpix
|
||||
new EncounterTrade4RanchGift(323975579, 077, 13) { Moves = new[] {036,033,039,052}, TID = 1000, SID = 01123, OTGender = 1, MetLocation = 3000, Gender = 0, Ability = OnlySecond, CurrentLevel = 16 }, // Ponyta
|
||||
new EncounterTrade4RanchGift(323975564, 108, 34) { Moves = new[] {076,111,014,205}, TID = 1000, SID = 03050, OTGender = 1, MetLocation = 0077, Gender = 0, Ability = OnlyFirst, CurrentLevel = 40 }, // Lickitung
|
||||
new EncounterTrade4RanchGift(323977579, 114, 01) { Moves = new[] {437,438,079,246}, TID = 1000, SID = 49497, OTGender = 1, MetLocation = 3000, Gender = 1, Ability = OnlySecond }, // Tangela
|
||||
new EncounterTrade4RanchGift(323977675, 133, 16) { Moves = new[] {363,270,098,247}, TID = 1000, SID = 47710, OTGender = 1, MetLocation = 0068, Gender = 0, Ability = OnlySecond, CurrentLevel = 30 }, // Eevee
|
||||
new EncounterTrade4RanchGift(323977588, 142, 20) { Moves = new[] {363,089,444,332}, TID = 1000, SID = 43066, OTGender = 1, MetLocation = 0094, Gender = 0, Ability = OnlyFirst, CurrentLevel = 50 }, // Aerodactyl
|
||||
new EncounterTrade4RanchGift(232975554, 193, 22) { Moves = new[] {318,095,246,138}, TID = 1000, SID = 42301, OTGender = 1, MetLocation = 0052, Gender = 0, Ability = OnlyFirst, CurrentLevel = 45, Ball = 5 }, // Yanma
|
||||
new EncounterTrade4RanchGift(323975570, 241, 16) { Moves = new[] {208,215,360,359}, TID = 1000, SID = 02707, OTGender = 1, MetLocation = 3000, Gender = 1, Ability = OnlyFirst, CurrentLevel = 48 }, // Miltank
|
||||
new EncounterTrade4RanchGift(323975563, 285, 22) { Moves = new[] {402,147,206,078}, TID = 1000, SID = 02788, OTGender = 1, MetLocation = 3000, Gender = 0, Ability = OnlySecond, CurrentLevel = 45, Ball = 5 }, // Shroomish
|
||||
new EncounterTrade4RanchGift(323975559, 320, 30) { Moves = new[] {156,323,133,058}, TID = 1000, SID = 27046, OTGender = 1, MetLocation = 0038, Gender = 0, Ability = OnlySecond, CurrentLevel = 45 }, // Wailmer
|
||||
new EncounterTrade4RanchGift(323977657, 360, 01) { Moves = new[] {204,150,227,000}, TID = 1000, SID = 01788, OTGender = 1, MetLocation = 0004, Gender = 0, Ability = OnlySecond, EggLocation = 2000 }, // Wynaut
|
||||
new EncounterTrade4RanchGift(323975563, 397, 02) { Moves = new[] {355,017,283,018}, TID = 1000, SID = 59298, OTGender = 1, MetLocation = 0016, Gender = 0, Ability = OnlySecond, CurrentLevel = 23 }, // Staravia
|
||||
new EncounterTrade4RanchGift(323970584, 415, 05) { Moves = new[] {230,016,000,000}, TID = 1000, SID = 54140, OTGender = 1, MetLocation = 0020, Gender = 1, Ability = OnlyFirst, CurrentLevel = 20 }, // Combee
|
||||
new EncounterTrade4RanchGift(323977539, 417, 09) { Moves = new[] {447,045,351,098}, TID = 1000, SID = 18830, OTGender = 1, MetLocation = 0020, Gender = 1, Ability = OnlySecond, CurrentLevel = 10 }, // Pachirisu
|
||||
new EncounterTrade4RanchGift(323974107, 422, 20) { Moves = new[] {363,352,426,104}, TID = 1000, SID = 39272, OTGender = 1, MetLocation = 0028, Gender = 0, Ability = OnlySecond, CurrentLevel = 25, Form = 1 }, // Shellos
|
||||
new EncounterTrade4RanchGift(323977566, 427, 10) { Moves = new[] {204,193,409,098}, TID = 1000, SID = 31045, OTGender = 1, MetLocation = 3000, Gender = 1, Ability = OnlyFirst, CurrentLevel = 16 }, // Buneary
|
||||
new EncounterTrade4RanchGift(323975579, 453, 22) { Moves = new[] {310,207,426,389}, TID = 1000, SID = 41342, OTGender = 1, MetLocation = 0052, Gender = 0, Ability = OnlySecond, CurrentLevel = 31, Ball = 5 }, // Croagunk
|
||||
new EncounterTrade4RanchGift(323977566, 456, 15) { Moves = new[] {213,352,219,392}, TID = 1000, SID = 48348, OTGender = 1, MetLocation = 0020, Gender = 1, Ability = OnlyFirst, CurrentLevel = 35 }, // Finneon
|
||||
new EncounterTrade4RanchGift(323975582, 459, 32) { Moves = new[] {452,420,275,059}, TID = 1000, SID = 23360, OTGender = 1, MetLocation = 0031, Gender = 0, Ability = OnlyFirst, CurrentLevel = 41 }, // Snover
|
||||
new EncounterTrade4RanchSpecial(151, 50) { Moves = new[] {235,216,095,100}, TID = 1000, SID = 59228, OTGender = 1, Ball = 0x10, Gender = 2 }, // Mew
|
||||
new EncounterTrade4RanchSpecial(489, 01) { Moves = new[] {447,240,156,057}, TID = 1000, SID = 09248, OTGender = 1, Ball = 0x10, Gender = 2, CurrentLevel = 50, EggLocation = 3000 }, // Phione
|
||||
};
|
||||
|
||||
private static readonly EncounterTrade4PID[] TradeGift_DPPtIngame =
|
||||
{
|
||||
new(DPPt, 0x0000008E, 063, 01) { Ability = 1, TID = 25643, SID = 00000, OTGender = 1, Gender = 0, IVs = new[] {15,15,15,20,25,25} }, // Machop -> Abra
|
||||
new(DPPt, 0x00000867, 441, 01) { Ability = 2, TID = 44142, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {15,20,15,25,25,15}, Contest = 20 }, // Buizel -> Chatot
|
||||
new(DPPt, 0x00000088, 093, 35) { Ability = 1, TID = 19248, SID = 00000, OTGender = 1, Gender = 0, IVs = new[] {20,25,15,25,15,15} }, // Medicham (35 from Route 217) -> Haunter
|
||||
new(DPPt, 0x0000045C, 129, 01) { Ability = 1, TID = 53277, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {15,25,15,20,25,15} }, // Finneon -> Magikarp
|
||||
new(DPPt, 0x0000008E, 063, 01) { Ability = OnlyFirst, TID = 25643, SID = 00000, OTGender = 1, Gender = 0, IVs = new[] {15,15,15,20,25,25} }, // Machop -> Abra
|
||||
new(DPPt, 0x00000867, 441, 01) { Ability = OnlySecond, TID = 44142, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {15,20,15,25,25,15}, Contest = 20 }, // Buizel -> Chatot
|
||||
new(DPPt, 0x00000088, 093, 35) { Ability = OnlyFirst, TID = 19248, SID = 00000, OTGender = 1, Gender = 0, IVs = new[] {20,25,15,25,15,15} }, // Medicham (35 from Route 217) -> Haunter
|
||||
new(DPPt, 0x0000045C, 129, 01) { Ability = OnlyFirst, TID = 53277, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {15,25,15,20,25,15} }, // Finneon -> Magikarp
|
||||
};
|
||||
|
||||
internal static readonly EncounterTrade4[] TradeGift_DPPt = ArrayUtil.ConcatAll(TradeGift_DPPtIngame, RanchGifts);
|
||||
|
||||
internal static readonly EncounterTrade4PID[] TradeGift_HGSS =
|
||||
{
|
||||
new(HGSS, 0x000025EF, 095, 01) { Ability = 2, TID = 48926, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {25,20,25,15,15,15} }, // Bellsprout -> Onix
|
||||
new(HGSS, 0x00002310, 066, 01) { Ability = 1, TID = 37460, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {15,25,20,20,15,15} }, // Drowzee -> Machop
|
||||
new(HGSS, 0x000001DB, 100, 01) { Ability = 2, TID = 29189, SID = 00000, OTGender = 0, Gender = 2, IVs = new[] {15,20,15,25,25,15} }, // Krabby -> Voltorb
|
||||
new(HGSS, 0x0001FC0A, 085, 15) { Ability = 1, TID = 00283, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {20,20,20,15,15,15} }, // Dragonair (15 from DPPt) -> Dodrio
|
||||
new(HGSS, 0x0000D136, 082, 19) { Ability = 1, TID = 50082, SID = 00000, OTGender = 0, Gender = 2, IVs = new[] {15,20,15,20,20,20} }, // Dugtrio (19 from Diglett's Cave) -> Magneton
|
||||
new(HGSS, 0x000034E4, 178, 16) { Ability = 1, TID = 15616, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {15,20,15,20,20,20} }, // Haunter (16 from Old Chateau) -> Xatu
|
||||
new(HGSS, 0x00485876, 025, 02) { Ability = 1, TID = 33038, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {20,25,18,31,25,13} }, // Pikachu
|
||||
new(HGSS, 0x0012B6D4, 374, 31) { Ability = 1, TID = 23478, SID = 00000, OTGender = 0, Gender = 2, IVs = new[] {28,29,24,23,24,25} }, // Forretress -> Beldum
|
||||
new(HGSS, 0x0012971C, 111, 01) { Ability = 1, TID = 06845, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {22,31,13,00,22,09}, Moves = new[]{422} }, // Bonsly -> Rhyhorn
|
||||
new(HGSS, 0x00101596, 208, 01) { Ability = 1, TID = 26491, SID = 00000, OTGender = 1, Gender = 0, IVs = new[] {08,30,28,06,18,20}}, // Any -> Steelix
|
||||
new(HGSS, 0x000025EF, 095, 01) { Ability = OnlySecond, TID = 48926, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {25,20,25,15,15,15} }, // Bellsprout -> Onix
|
||||
new(HGSS, 0x00002310, 066, 01) { Ability = OnlyFirst, TID = 37460, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {15,25,20,20,15,15} }, // Drowzee -> Machop
|
||||
new(HGSS, 0x000001DB, 100, 01) { Ability = OnlySecond, TID = 29189, SID = 00000, OTGender = 0, Gender = 2, IVs = new[] {15,20,15,25,25,15} }, // Krabby -> Voltorb
|
||||
new(HGSS, 0x0001FC0A, 085, 15) { Ability = OnlyFirst, TID = 00283, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {20,20,20,15,15,15} }, // Dragonair (15 from DPPt) -> Dodrio
|
||||
new(HGSS, 0x0000D136, 082, 19) { Ability = OnlyFirst, TID = 50082, SID = 00000, OTGender = 0, Gender = 2, IVs = new[] {15,20,15,20,20,20} }, // Dugtrio (19 from Diglett's Cave) -> Magneton
|
||||
new(HGSS, 0x000034E4, 178, 16) { Ability = OnlyFirst, TID = 15616, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {15,20,15,20,20,20} }, // Haunter (16 from Old Chateau) -> Xatu
|
||||
new(HGSS, 0x00485876, 025, 02) { Ability = OnlyFirst, TID = 33038, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {20,25,18,31,25,13} }, // Pikachu
|
||||
new(HGSS, 0x0012B6D4, 374, 31) { Ability = OnlyFirst, TID = 23478, SID = 00000, OTGender = 0, Gender = 2, IVs = new[] {28,29,24,23,24,25} }, // Forretress -> Beldum
|
||||
new(HGSS, 0x0012971C, 111, 01) { Ability = OnlyFirst, TID = 06845, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {22,31,13,00,22,09}, Moves = new[]{422} }, // Bonsly -> Rhyhorn
|
||||
new(HGSS, 0x00101596, 208, 01) { Ability = OnlyFirst, TID = 26491, SID = 00000, OTGender = 1, Gender = 0, IVs = new[] {08,30,28,06,18,20}}, // Any -> Steelix
|
||||
|
||||
//Gift
|
||||
new(HGSS, 0x00006B5E, 021, 20) { Ability = 1, TID = 01001, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {15,20,15,20,20,20}, MetLocation = 183, Moves = new[]{043,031,228,332} },// Webster's Spearow
|
||||
new(HGSS, 0x000214D7, 213, 20) { Ability = 2, TID = 04336, SID = 00001, OTGender = 0, Gender = 0, IVs = new[] {15,20,15,20,20,20}, MetLocation = 130, Moves = new[]{132,117,227,219} },// Kirk's Shuckle
|
||||
new(HGSS, 0x00006B5E, 021, 20) { Ability = OnlyFirst, TID = 01001, SID = 00000, OTGender = 0, Gender = 1, IVs = new[] {15,20,15,20,20,20}, MetLocation = 183, Moves = new[]{043,031,228,332} },// Webster's Spearow
|
||||
new(HGSS, 0x000214D7, 213, 20) { Ability = OnlySecond, TID = 04336, SID = 00001, OTGender = 0, Gender = 0, IVs = new[] {15,20,15,20,20,20}, MetLocation = 130, Moves = new[]{132,117,227,219} },// Kirk's Shuckle
|
||||
};
|
||||
|
||||
private const string tradeDPPt = "tradedppt";
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using static PKHeX.Core.EncounterUtil;
|
||||
using static PKHeX.Core.GameVersion;
|
||||
using static PKHeX.Core.AbilityPermission;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
@@ -41,7 +42,7 @@ static Encounters5()
|
||||
new(436, 0), // Bronzor
|
||||
new(442, 0), // Spiritomb
|
||||
new(447, 0), // Riolu
|
||||
new(479, 0, 0), // Rotom (no HA)
|
||||
new(479, 0, Any12), // Rotom (no HA)
|
||||
new(483, 0), // Dialga (Diamond cart)
|
||||
new(484, 0), // Palkia (Pearl cart)
|
||||
new(487, 0), // Giratina (Platinum cart)
|
||||
@@ -424,11 +425,11 @@ static Encounters5()
|
||||
new(BW) { Gift = true, Species = 636, Level = 01, EggLocation = 60003 }, // Larvesta Egg from Treasure Hunter
|
||||
|
||||
// Stationary
|
||||
new(BW) { Species = 518, Level = 50, Location = 032, Ability = 4 }, // Musharna @ Dreamyard Friday Only
|
||||
new(BW) { Species = 518, Level = 50, Location = 032, Ability = OnlyHidden }, // Musharna @ Dreamyard Friday Only
|
||||
new(BW) { Species = 590, Level = 20, Location = 019 }, // Foongus @ Route 6
|
||||
new(BW) { Species = 590, Level = 30, Location = 023 }, // Foongus @ Route 10
|
||||
new(BW) { Species = 591, Level = 40, Location = 023 }, // Amoonguss @ Route 10
|
||||
new(BW) { Species = 555, Level = 35, Location = 034, Ability = 4 }, // HA Darmanitan @ Desert Resort
|
||||
new(BW) { Species = 555, Level = 35, Location = 034, Ability = OnlyHidden }, // HA Darmanitan @ Desert Resort
|
||||
new(BW) { Species = 637, Level = 70, Location = 035 }, // Volcarona @ Relic Castle
|
||||
|
||||
// Stationary Legendary
|
||||
@@ -471,11 +472,11 @@ static Encounters5()
|
||||
new(B2W2) { Gift = true, Species = 566, Level = 25, Location = 007 }, // Archen
|
||||
|
||||
// Gift
|
||||
new(B2W2) { Gift = true, Species = 133, Level = 10, Location = 008, Ability = 4 }, // HA Eevee @ Castelia City
|
||||
new(B2W2) { Gift = true, Species = 585, Level = 30, Location = 019, Ability = 4, Form = 0 }, // HA Deerling @ Route 6
|
||||
new(B2W2) { Gift = true, Species = 585, Level = 30, Location = 019, Ability = 4, Form = 1 }, // HA Deerling @ Route 6
|
||||
new(B2W2) { Gift = true, Species = 585, Level = 30, Location = 019, Ability = 4, Form = 2 }, // HA Deerling @ Route 6
|
||||
new(B2W2) { Gift = true, Species = 585, Level = 30, Location = 019, Ability = 4, Form = 3 }, // HA Deerling @ Route 6
|
||||
new(B2W2) { Gift = true, Species = 133, Level = 10, Location = 008, Ability = OnlyHidden }, // HA Eevee @ Castelia City
|
||||
new(B2W2) { Gift = true, Species = 585, Level = 30, Location = 019, Ability = OnlyHidden, Form = 0 }, // HA Deerling @ Route 6
|
||||
new(B2W2) { Gift = true, Species = 585, Level = 30, Location = 019, Ability = OnlyHidden, Form = 1 }, // HA Deerling @ Route 6
|
||||
new(B2W2) { Gift = true, Species = 585, Level = 30, Location = 019, Ability = OnlyHidden, Form = 2 }, // HA Deerling @ Route 6
|
||||
new(B2W2) { Gift = true, Species = 585, Level = 30, Location = 019, Ability = OnlyHidden, Form = 3 }, // HA Deerling @ Route 6
|
||||
new(B2 ) { Gift = true, Species = 443, Level = 01, Location = 122, Shiny = Shiny.Always, Gender = 0 }, // Shiny Gible @ Floccesy Town
|
||||
new( W2) { Gift = true, Species = 147, Level = 01, Location = 122, Shiny = Shiny.Always, Gender = 0 }, // Shiny Dratini @ Floccesy Town
|
||||
new(B2W2) { Gift = true, Species = 129, Level = 05, Location = 068 } , // Magikarp @ Marvelous Bridge
|
||||
@@ -486,11 +487,11 @@ static Encounters5()
|
||||
new(B2W2) { Species = 591, Level = 43, Location = 024 }, // Amoonguss @ Route 11
|
||||
new(B2W2) { Species = 591, Level = 47, Location = 127 }, // Amoonguss @ Route 22
|
||||
new(B2W2) { Species = 591, Level = 56, Location = 128 }, // Amoonguss @ Route 23
|
||||
new(B2 ) { Species = 593, Level = 40, Location = 071, Ability = 4, Gender = 0 }, // HA Jellicent @ Undella Bay Mon Only
|
||||
new( W2) { Species = 593, Level = 40, Location = 071, Ability = 4, Gender = 1 }, // HA Jellicent @ Undella Bay Thurs Only
|
||||
new(B2 ) { Species = 593, Level = 40, Location = 071, Ability = OnlyHidden, Gender = 0 }, // HA Jellicent @ Undella Bay Mon Only
|
||||
new( W2) { Species = 593, Level = 40, Location = 071, Ability = OnlyHidden, Gender = 1 }, // HA Jellicent @ Undella Bay Thurs Only
|
||||
new(B2W2) { Species = 593, Level = 40, Location = 071 }, // HA Jellicent @ Undella Bay EncounterSlot collision
|
||||
new( W2) { Species = 628, Level = 25, Location = 017, Ability = 4, Gender = 0 }, // HA Braviary @ Route 4 Mon Only
|
||||
new(B2 ) { Species = 630, Level = 25, Location = 017, Ability = 4, Gender = 1 }, // HA Mandibuzz @ Route 4 Thurs Only
|
||||
new( W2) { Species = 628, Level = 25, Location = 017, Ability = OnlyHidden, Gender = 0 }, // HA Braviary @ Route 4 Mon Only
|
||||
new(B2 ) { Species = 630, Level = 25, Location = 017, Ability = OnlyHidden, Gender = 1 }, // HA Mandibuzz @ Route 4 Thurs Only
|
||||
new(B2W2) { Species = 637, Level = 35, Location = 035 }, // Volcarona @ Relic Castle
|
||||
new(B2W2) { Species = 637, Level = 65, Location = 035 }, // Volcarona @ Relic Castle
|
||||
new(B2W2) { Species = 558, Level = 42, Location = 141 }, // Crustle @ Seaside Cave
|
||||
@@ -522,21 +523,21 @@ static Encounters5()
|
||||
private static readonly EncounterStatic5N[] Encounter_B2W2_N =
|
||||
{
|
||||
// N's Pokemon
|
||||
new(0xFF01007F) { Species = 509, Level = 07, Location = 015, Ability = 2, Nature = Nature.Timid }, // Purloin @ Route 2
|
||||
new(0xFF01007F) { Species = 519, Level = 13, Location = 033, Ability = 2, Nature = Nature.Sassy }, // Pidove @ Pinwheel Forest
|
||||
new(0xFF00003F) { Species = 532, Level = 13, Location = 033, Ability = 1, Nature = Nature.Rash }, // Timburr @ Pinwheel Forest
|
||||
new(0xFF01007F) { Species = 535, Level = 13, Location = 033, Ability = 2, Nature = Nature.Modest }, // Tympole @ Pinwheel Forest
|
||||
new(0xFF00007F) { Species = 527, Level = 55, Location = 053, Ability = 1, Nature = Nature.Timid }, // Woobat @ Wellspring Cave
|
||||
new(0xFF01007F) { Species = 551, Level = 22, Location = 034, Ability = 2, Nature = Nature.Docile }, // Sandile @ Desert Resort
|
||||
new(0xFF00007F) { Species = 554, Level = 22, Location = 034, Ability = 1, Nature = Nature.Naive }, // Darumaka @ Desert Resort
|
||||
new(0xFF00007F) { Species = 555, Level = 35, Location = 034, Ability = 4, Nature = Nature.Calm }, // Darmanitan @ Desert Resort
|
||||
new(0xFF00007F) { Species = 559, Level = 22, Location = 034, Ability = 1, Nature = Nature.Lax }, // Scraggy @ Desert Resort
|
||||
new(0xFF01007F) { Species = 561, Level = 22, Location = 034, Ability = 2, Nature = Nature.Gentle }, // Sigilyph @ Desert Resort
|
||||
new(0xFF00007F) { Species = 525, Level = 28, Location = 037, Ability = 1, Nature = Nature.Naive }, // Boldore @ Chargestone Cave
|
||||
new(0xFF01007F) { Species = 595, Level = 28, Location = 037, Ability = 2, Nature = Nature.Docile }, // Joltik @ Chargestone Cave
|
||||
new(0xFF00007F) { Species = 597, Level = 28, Location = 037, Ability = 1, Nature = Nature.Bashful }, // Ferroseed @ Chargestone Cave
|
||||
new(0xFF000000) { Species = 599, Level = 28, Location = 037, Ability = 1, Nature = Nature.Rash }, // Klink @ Chargestone Cave
|
||||
new(0xFF00001F) { Species = 570, Level = 25, Location = 010, Ability = 1, Nature = Nature.Hasty, Gift = true }, // N's Zorua @ Driftveil City
|
||||
new(0xFF01007F) { Species = 509, Level = 07, Location = 015, Ability = OnlySecond, Nature = Nature.Timid }, // Purloin @ Route 2
|
||||
new(0xFF01007F) { Species = 519, Level = 13, Location = 033, Ability = OnlySecond, Nature = Nature.Sassy }, // Pidove @ Pinwheel Forest
|
||||
new(0xFF00003F) { Species = 532, Level = 13, Location = 033, Ability = OnlyFirst, Nature = Nature.Rash }, // Timburr @ Pinwheel Forest
|
||||
new(0xFF01007F) { Species = 535, Level = 13, Location = 033, Ability = OnlySecond, Nature = Nature.Modest }, // Tympole @ Pinwheel Forest
|
||||
new(0xFF00007F) { Species = 527, Level = 55, Location = 053, Ability = OnlyFirst, Nature = Nature.Timid }, // Woobat @ Wellspring Cave
|
||||
new(0xFF01007F) { Species = 551, Level = 22, Location = 034, Ability = OnlySecond, Nature = Nature.Docile }, // Sandile @ Desert Resort
|
||||
new(0xFF00007F) { Species = 554, Level = 22, Location = 034, Ability = OnlyFirst, Nature = Nature.Naive }, // Darumaka @ Desert Resort
|
||||
new(0xFF00007F) { Species = 555, Level = 35, Location = 034, Ability = OnlyHidden, Nature = Nature.Calm }, // Darmanitan @ Desert Resort
|
||||
new(0xFF00007F) { Species = 559, Level = 22, Location = 034, Ability = OnlyFirst, Nature = Nature.Lax }, // Scraggy @ Desert Resort
|
||||
new(0xFF01007F) { Species = 561, Level = 22, Location = 034, Ability = OnlySecond, Nature = Nature.Gentle }, // Sigilyph @ Desert Resort
|
||||
new(0xFF00007F) { Species = 525, Level = 28, Location = 037, Ability = OnlyFirst, Nature = Nature.Naive }, // Boldore @ Chargestone Cave
|
||||
new(0xFF01007F) { Species = 595, Level = 28, Location = 037, Ability = OnlySecond, Nature = Nature.Docile }, // Joltik @ Chargestone Cave
|
||||
new(0xFF00007F) { Species = 597, Level = 28, Location = 037, Ability = OnlyFirst, Nature = Nature.Bashful }, // Ferroseed @ Chargestone Cave
|
||||
new(0xFF000000) { Species = 599, Level = 28, Location = 037, Ability = OnlyFirst, Nature = Nature.Rash }, // Klink @ Chargestone Cave
|
||||
new(0xFF00001F) { Species = 570, Level = 25, Location = 010, Ability = OnlyFirst, Nature = Nature.Hasty, Gift = true }, // N's Zorua @ Driftveil City
|
||||
};
|
||||
|
||||
private static readonly EncounterStatic5[] Encounter_B2W2 = ArrayUtil.ConcatAll(Encounter_B2W2_Regular, Encounter_B2W2_N, Encounter_DreamRadar);
|
||||
@@ -546,24 +547,24 @@ static Encounters5()
|
||||
|
||||
internal static readonly EncounterTrade5PID[] TradeGift_BW =
|
||||
{
|
||||
new(B , 0x64000000) { Species = 548, Level = 15, Ability = 1, TID = 39922, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {20,20,20,20,31,20}, Nature = Nature.Modest }, // Petilil
|
||||
new( W, 0x6400007E) { Species = 546, Level = 15, Ability = 1, TID = 39922, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {20,20,20,20,31,20}, Nature = Nature.Modest }, // Cottonee
|
||||
new(B , 0x9400007F) { Species = 550, Level = 25, Ability = 1, TID = 27646, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,31,20,20,20,20}, Nature = Nature.Adamant, Form = 0 }, // Basculin-Red
|
||||
new( W, 0x9400007F) { Species = 550, Level = 25, Ability = 1, TID = 27646, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,31,20,20,20,20}, Nature = Nature.Adamant, Form = 1 }, // Basculin-Blue
|
||||
new(BW, 0xD400007F) { Species = 587, Level = 30, Ability = 1, TID = 11195, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,20,31,20,20,20}, Nature = Nature.Lax }, // Emolga
|
||||
new(BW, 0x2A000000) { Species = 479, Level = 60, Ability = 1, TID = 54673, SID = 00000, OTGender = 1, Gender = 2, IVs = new[] {20,20,20,20,20,31}, Nature = Nature.Gentle }, // Rotom
|
||||
new(BW, 0x6200001F) { Species = 446, Level = 60, Ability = 2, TID = 40217, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {31,20,20,20,20,20}, Nature = Nature.Serious }, // Munchlax
|
||||
new(B , 0x64000000) { Species = 548, Level = 15, Ability = OnlyFirst, TID = 39922, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {20,20,20,20,31,20}, Nature = Nature.Modest }, // Petilil
|
||||
new( W, 0x6400007E) { Species = 546, Level = 15, Ability = OnlyFirst, TID = 39922, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {20,20,20,20,31,20}, Nature = Nature.Modest }, // Cottonee
|
||||
new(B , 0x9400007F) { Species = 550, Level = 25, Ability = OnlyFirst, TID = 27646, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,31,20,20,20,20}, Nature = Nature.Adamant, Form = 0 }, // Basculin-Red
|
||||
new( W, 0x9400007F) { Species = 550, Level = 25, Ability = OnlyFirst, TID = 27646, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,31,20,20,20,20}, Nature = Nature.Adamant, Form = 1 }, // Basculin-Blue
|
||||
new(BW, 0xD400007F) { Species = 587, Level = 30, Ability = OnlyFirst, TID = 11195, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,20,31,20,20,20}, Nature = Nature.Lax }, // Emolga
|
||||
new(BW, 0x2A000000) { Species = 479, Level = 60, Ability = OnlyFirst, TID = 54673, SID = 00000, OTGender = 1, Gender = 2, IVs = new[] {20,20,20,20,20,31}, Nature = Nature.Gentle }, // Rotom
|
||||
new(BW, 0x6200001F) { Species = 446, Level = 60, Ability = OnlySecond, TID = 40217, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {31,20,20,20,20,20}, Nature = Nature.Serious }, // Munchlax
|
||||
};
|
||||
|
||||
internal static readonly EncounterTrade5[] TradeGift_B2W2_Regular =
|
||||
{
|
||||
new(B2 ) { Species = 548, Level = 20, Ability = 2, TID = 65217, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {20,20,20,20,31,20}, Nature = Nature.Timid }, // Petilil
|
||||
new( W2) { Species = 546, Level = 20, Ability = 1, TID = 05720, SID = 00001, OTGender = 0, Gender = 0, IVs = new[] {20,20,20,20,31,20}, Nature = Nature.Modest }, // Cottonee
|
||||
new(B2W2) { Species = 526, Level = 35, Ability = 1, TID = 11195, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,31,20,20,20,20}, Nature = Nature.Adamant, IsNicknamed = false }, // Gigalith
|
||||
new(B2W2) { Species = 465, Level = 45, Ability = 1, TID = 27658, SID = 00001, OTGender = 0, Gender = 0, IVs = new[] {31,20,20,20,20,20}, Nature = Nature.Hardy }, // Tangrowth
|
||||
new(B2W2) { Species = 479, Level = 60, Ability = 1, TID = 54673, SID = 00000, OTGender = 1, Gender = 2, IVs = new[] {20,20,20,20,20,31}, Nature = Nature.Calm }, // Rotom
|
||||
new(B2W2) { Species = 424, Level = 40, Ability = 2, TID = 17074, SID = 00001, OTGender = 1, Gender = 0, IVs = new[] {20,20,20,31,20,20}, Nature = Nature.Jolly }, // Ambipom
|
||||
new(B2W2) { Species = 065, Level = 40, Ability = 1, TID = 17074, SID = 00001, OTGender = 1, Gender = 0, IVs = new[] {20,20,20,31,20,20}, Nature = Nature.Timid }, // Alakazam
|
||||
new(B2 ) { Species = 548, Level = 20, Ability = OnlySecond, TID = 65217, SID = 00000, OTGender = 1, Gender = 1, IVs = new[] {20,20,20,20,31,20}, Nature = Nature.Timid }, // Petilil
|
||||
new( W2) { Species = 546, Level = 20, Ability = OnlyFirst, TID = 05720, SID = 00001, OTGender = 0, Gender = 0, IVs = new[] {20,20,20,20,31,20}, Nature = Nature.Modest }, // Cottonee
|
||||
new(B2W2) { Species = 526, Level = 35, Ability = OnlyFirst, TID = 11195, SID = 00000, OTGender = 0, Gender = 0, IVs = new[] {20,31,20,20,20,20}, Nature = Nature.Adamant, IsNicknamed = false }, // Gigalith
|
||||
new(B2W2) { Species = 465, Level = 45, Ability = OnlyFirst, TID = 27658, SID = 00001, OTGender = 0, Gender = 0, IVs = new[] {31,20,20,20,20,20}, Nature = Nature.Hardy }, // Tangrowth
|
||||
new(B2W2) { Species = 479, Level = 60, Ability = OnlyFirst, TID = 54673, SID = 00000, OTGender = 1, Gender = 2, IVs = new[] {20,20,20,20,20,31}, Nature = Nature.Calm }, // Rotom
|
||||
new(B2W2) { Species = 424, Level = 40, Ability = OnlySecond, TID = 17074, SID = 00001, OTGender = 1, Gender = 0, IVs = new[] {20,20,20,31,20,20}, Nature = Nature.Jolly }, // Ambipom
|
||||
new(B2W2) { Species = 065, Level = 40, Ability = OnlyFirst, TID = 17074, SID = 00001, OTGender = 1, Gender = 0, IVs = new[] {20,20,20,31,20,20}, Nature = Nature.Timid }, // Alakazam
|
||||
};
|
||||
|
||||
internal const int YancyTID = 10303;
|
||||
@@ -574,32 +575,32 @@ static Encounters5()
|
||||
private static readonly EncounterTrade5[] TradeGift_B2W2_YancyCurtis =
|
||||
{
|
||||
// Player is Male
|
||||
new(B2W2) { Species = 052, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Meowth
|
||||
new(B2W2) { Species = 202, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Wobbuffet
|
||||
new(B2W2) { Species = 280, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Ralts
|
||||
new(B2W2) { Species = 410, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Shieldon
|
||||
new(B2W2) { Species = 111, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Rhyhorn
|
||||
new(B2W2) { Species = 422, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F, Form = 0 }, // Shellos-West
|
||||
new(B2W2) { Species = 303, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Mawile
|
||||
new(B2W2) { Species = 442, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Spiritomb
|
||||
new(B2W2) { Species = 143, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Snorlax
|
||||
new(B2W2) { Species = 216, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Teddiursa
|
||||
new(B2W2) { Species = 327, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Spinda
|
||||
new(B2W2) { Species = 175, Level = 50, Ability = 4, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Togepi
|
||||
new(B2W2) { Species = 052, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Meowth
|
||||
new(B2W2) { Species = 202, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Wobbuffet
|
||||
new(B2W2) { Species = 280, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Ralts
|
||||
new(B2W2) { Species = 410, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Shieldon
|
||||
new(B2W2) { Species = 111, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Rhyhorn
|
||||
new(B2W2) { Species = 422, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F, Form = 0 }, // Shellos-West
|
||||
new(B2W2) { Species = 303, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Mawile
|
||||
new(B2W2) { Species = 442, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Spiritomb
|
||||
new(B2W2) { Species = 143, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Snorlax
|
||||
new(B2W2) { Species = 216, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Teddiursa
|
||||
new(B2W2) { Species = 327, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Spinda
|
||||
new(B2W2) { Species = 175, Level = 50, Ability = OnlyHidden, TID = 10303, SID = 00000, OTGender = 1, TrainerNames = TradeOT_B2W2_F }, // Togepi
|
||||
|
||||
// Player is Female
|
||||
new(B2W2) { Species = 056, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Mankey
|
||||
new(B2W2) { Species = 202, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Wobbuffet
|
||||
new(B2W2) { Species = 280, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Ralts
|
||||
new(B2W2) { Species = 408, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Cranidos
|
||||
new(B2W2) { Species = 111, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Rhyhorn
|
||||
new(B2W2) { Species = 422, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M, Form = 1 }, // Shellos-East
|
||||
new(B2W2) { Species = 302, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Sableye
|
||||
new(B2W2) { Species = 442, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Spiritomb
|
||||
new(B2W2) { Species = 143, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Snorlax
|
||||
new(B2W2) { Species = 231, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Phanpy
|
||||
new(B2W2) { Species = 327, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Spinda
|
||||
new(B2W2) { Species = 175, Level = 50, Ability = 4, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Togepi
|
||||
new(B2W2) { Species = 056, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Mankey
|
||||
new(B2W2) { Species = 202, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Wobbuffet
|
||||
new(B2W2) { Species = 280, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Ralts
|
||||
new(B2W2) { Species = 408, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Cranidos
|
||||
new(B2W2) { Species = 111, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Rhyhorn
|
||||
new(B2W2) { Species = 422, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M, Form = 1 }, // Shellos-East
|
||||
new(B2W2) { Species = 302, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Sableye
|
||||
new(B2W2) { Species = 442, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Spiritomb
|
||||
new(B2W2) { Species = 143, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Snorlax
|
||||
new(B2W2) { Species = 231, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Phanpy
|
||||
new(B2W2) { Species = 327, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Spinda
|
||||
new(B2W2) { Species = 175, Level = 50, Ability = OnlyHidden, TID = 54118, SID = 00000, OTGender = 0, TrainerNames = TradeOT_B2W2_M }, // Togepi
|
||||
};
|
||||
|
||||
private const string tradeBW = "tradebw";
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using static PKHeX.Core.EncounterUtil;
|
||||
using static PKHeX.Core.GameVersion;
|
||||
using static PKHeX.Core.AbilityPermission;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
@@ -53,8 +54,8 @@ static Encounters6()
|
||||
new(XY) { Gift = true, Species = 698, Level = 20, Location = 44 }, // Amaura
|
||||
|
||||
// Gift
|
||||
new(XY) { Gift = true, Species = 448, Level = 32, Location = 60, Ability = 1, IVs = new[] {06,25,16,31,25,19}, Nature = Nature.Hasty, Gender = 0, Shiny = Shiny.Never }, // Lucario
|
||||
new(XY) { Gift = true, Species = 131, Level = 30, Location = 62, Ability = 1, IVs = new[] {31,20,20,20,20,20}, Nature = Nature.Docile }, // Lapras
|
||||
new(XY) { Gift = true, Species = 448, Level = 32, Location = 60, Ability = OnlyFirst, IVs = new[] {06,25,16,31,25,19}, Nature = Nature.Hasty, Gender = 0, Shiny = Shiny.Never }, // Lucario
|
||||
new(XY) { Gift = true, Species = 131, Level = 30, Location = 62, Ability = OnlyFirst, IVs = new[] {31,20,20,20,20,20}, Nature = Nature.Docile }, // Lapras
|
||||
|
||||
// Stationary
|
||||
new(XY) { Species = 143, Level = 15, Location = 038, Shiny = Shiny.Never }, // Snorlax
|
||||
@@ -79,13 +80,13 @@ static Encounters6()
|
||||
new(XY) { Species = 354, Level = 50, Location = 98 }, // Banette
|
||||
|
||||
// Stationary Legendary
|
||||
new(X ) { Species = 716, Level = 50, Location = 138, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Xerneas
|
||||
new( Y) { Species = 717, Level = 50, Location = 138, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Yveltal
|
||||
new(XY) { Species = 718, Level = 70, Location = 140, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Zygarde
|
||||
new(XY) { Species = 150, Level = 70, Location = 168, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Mewtwo
|
||||
new(XY) { Species = 144, Level = 70, Location = 146, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Articuno
|
||||
new(XY) { Species = 145, Level = 70, Location = 146, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Zapdos
|
||||
new(XY) { Species = 146, Level = 70, Location = 146, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Moltres
|
||||
new(X ) { Species = 716, Level = 50, Location = 138, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Xerneas
|
||||
new( Y) { Species = 717, Level = 50, Location = 138, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Yveltal
|
||||
new(XY) { Species = 718, Level = 70, Location = 140, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Zygarde
|
||||
new(XY) { Species = 150, Level = 70, Location = 168, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Mewtwo
|
||||
new(XY) { Species = 144, Level = 70, Location = 146, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Articuno
|
||||
new(XY) { Species = 145, Level = 70, Location = 146, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Zapdos
|
||||
new(XY) { Species = 146, Level = 70, Location = 146, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Moltres
|
||||
};
|
||||
|
||||
private static readonly EncounterStatic6 BaseCosplay = new(ORAS)
|
||||
@@ -95,7 +96,7 @@ static Encounters6()
|
||||
Form = 6,
|
||||
Level = 20,
|
||||
Gender = 1,
|
||||
Ability = 4,
|
||||
Ability = OnlyHidden,
|
||||
FlawlessIVCount = 3,
|
||||
CNT_Cool = 70,
|
||||
CNT_Beauty = 70,
|
||||
@@ -139,16 +140,16 @@ static Encounters6()
|
||||
new(ORAS) { Gift = true, Species = 698, Level = 20, Location = 190 }, // Amaura
|
||||
|
||||
// Hot Springs Eggs
|
||||
new(ORAS) { Gift = true, Species = 360, Level = 1, EggLocation = 60004, Ability = 1, EggCycles = 70 }, // Wynaut
|
||||
new(ORAS) { Gift = true, Species = 175, Level = 1, EggLocation = 60004, Ability = 1, EggCycles = 70 }, // Togepi
|
||||
new(ORAS) { Gift = true, Species = 360, Level = 1, EggLocation = 60004, Ability = OnlyFirst, EggCycles = 70 }, // Wynaut
|
||||
new(ORAS) { Gift = true, Species = 175, Level = 1, EggLocation = 60004, Ability = OnlyFirst, EggCycles = 70 }, // Togepi
|
||||
|
||||
// Gift
|
||||
new(ORAS) { Species = 374, Level = 01, Location = 196, Ability = 1, Gift = true, IVs = new[] {-1,-1,31,-1,-1,31} }, // Beldum
|
||||
new(ORAS) { Species = 351, Level = 30, Location = 240, Ability = 1, Gift = true, IVs = new[] {-1,-1,-1,-1,31,-1}, CNT_Beauty = 100, Gender = 1, Nature = Nature.Lax }, // Castform
|
||||
new(ORAS) { Species = 319, Level = 40, Location = 318, Ability = 1, Gift = true, Gender = 1, Nature = Nature.Adamant }, // Sharpedo
|
||||
new(ORAS) { Species = 323, Level = 40, Location = 318, Ability = 1, Gift = true, Gender = 1, Nature = Nature.Quiet }, // Camerupt
|
||||
new( AS) { Species = 380, Level = 30, Location = 320, Ability = 1, Gift = true, FlawlessIVCount = 3 }, // Latias
|
||||
new(OR ) { Species = 381, Level = 30, Location = 320, Ability = 1, Gift = true, FlawlessIVCount = 3 }, // Latios
|
||||
new(ORAS) { Species = 374, Level = 01, Location = 196, Ability = OnlyFirst, Gift = true, IVs = new[] {-1,-1,31,-1,-1,31} }, // Beldum
|
||||
new(ORAS) { Species = 351, Level = 30, Location = 240, Ability = OnlyFirst, Gift = true, IVs = new[] {-1,-1,-1,-1,31,-1}, CNT_Beauty = 100, Gender = 1, Nature = Nature.Lax }, // Castform
|
||||
new(ORAS) { Species = 319, Level = 40, Location = 318, Ability = OnlyFirst, Gift = true, Gender = 1, Nature = Nature.Adamant }, // Sharpedo
|
||||
new(ORAS) { Species = 323, Level = 40, Location = 318, Ability = OnlyFirst, Gift = true, Gender = 1, Nature = Nature.Quiet }, // Camerupt
|
||||
new( AS) { Species = 380, Level = 30, Location = 320, Ability = OnlyFirst, Gift = true, FlawlessIVCount = 3 }, // Latias
|
||||
new(OR ) { Species = 381, Level = 30, Location = 320, Ability = OnlyFirst, Gift = true, FlawlessIVCount = 3 }, // Latios
|
||||
|
||||
// Stationary Legendary
|
||||
new(ORAS) { Species = 377, Level = 40, Location = 278, FlawlessIVCount = 3 }, // Regirock
|
||||
@@ -188,7 +189,7 @@ static Encounters6()
|
||||
//new EncounterStatic { Species = 352, Level = 30, Location = 240 }, // Kecleon @ Route 119 -- dexnav encounter slot collision; prefer EncounterSlot
|
||||
//new EncounterStatic { Species = 352, Level = 30, Location = 242 }, // Kecleon @ Route 120 -- dexnav encounter slot collision; prefer EncounterSlot
|
||||
new(ORAS) { Species = 352, Level = 40, Location = 176, Gender = 1 }, // Kecleon @ Lavaridge
|
||||
new(ORAS) { Species = 352, Level = 45, Location = 196, Ability = 4 }, // Kecleon @ Mossdeep City
|
||||
new(ORAS) { Species = 352, Level = 45, Location = 196, Ability = OnlyHidden }, // Kecleon @ Mossdeep City
|
||||
|
||||
// Eon Ticket Lati@s
|
||||
new( AS) { Species = 381, Level = 30, Location = 320, FlawlessIVCount = 3 }, // Latios
|
||||
@@ -223,24 +224,24 @@ static Encounters6()
|
||||
#region Trade Tables
|
||||
internal static readonly EncounterTrade6[] TradeGift_XY =
|
||||
{
|
||||
new(XY, 01,3,23,049) { Species = 129, Level = 05, Ability = 1, TID = 44285, IVs = new[] {-1,31,-1,-1,31,-1}, Gender = 0, Nature = Nature.Adamant }, // Magikarp
|
||||
new(XY, 10,3,00,000) { Species = 133, Level = 05, Ability = 1, TID = 29294, Gender = 1, Nature = Nature.Docile }, // Eevee
|
||||
new(XY, 01,3,23,049) { Species = 129, Level = 05, Ability = OnlyFirst, TID = 44285, IVs = new[] {-1,31,-1,-1,31,-1}, Gender = 0, Nature = Nature.Adamant }, // Magikarp
|
||||
new(XY, 10,3,00,000) { Species = 133, Level = 05, Ability = OnlyFirst, TID = 29294, Gender = 1, Nature = Nature.Docile }, // Eevee
|
||||
|
||||
new(XY, 15,4,13,017) { Species = 083, Level = 10, Ability = 1, TID = 00185, IVs = new[] {-1,-1,-1,31,-1,-1}, Gender = 0, Nature = Nature.Jolly }, // Farfetch'd
|
||||
new(XY, 17,5,08,025) { Species = 208, Level = 20, Ability = 1, TID = 19250, IVs = new[] {-1,-1,31,-1,-1,-1}, Gender = 1, Nature = Nature.Impish }, // Steelix
|
||||
new(XY, 18,7,20,709) { Species = 625, Level = 50, Ability = 1, TID = 03447, IVs = new[] {-1,31,-1,-1,-1,-1}, Gender = 0, Nature = Nature.Adamant }, // Bisharp
|
||||
new(XY, 15,4,13,017) { Species = 083, Level = 10, Ability = OnlyFirst, TID = 00185, IVs = new[] {-1,-1,-1,31,-1,-1}, Gender = 0, Nature = Nature.Jolly }, // Farfetch'd
|
||||
new(XY, 17,5,08,025) { Species = 208, Level = 20, Ability = OnlyFirst, TID = 19250, IVs = new[] {-1,-1,31,-1,-1,-1}, Gender = 1, Nature = Nature.Impish }, // Steelix
|
||||
new(XY, 18,7,20,709) { Species = 625, Level = 50, Ability = OnlyFirst, TID = 03447, IVs = new[] {-1,31,-1,-1,-1,-1}, Gender = 0, Nature = Nature.Adamant }, // Bisharp
|
||||
|
||||
new(XY, 02,3,11,005) { Species = 656, Level = 05, Ability = 1, TID = 00037, IVs = new[] {20,20,20,31,20,20}, Gender = 0, Nature = Nature.Jolly }, // Froakie
|
||||
new(XY, 02,3,09,005) { Species = 650, Level = 05, Ability = 1, TID = 00037, IVs = new[] {20,31,20,20,20,20}, Gender = 0, Nature = Nature.Adamant }, // Chespin
|
||||
new(XY, 02,3,18,005) { Species = 653, Level = 05, Ability = 1, TID = 00037, IVs = new[] {20,20,20,20,31,20}, Gender = 0, Nature = Nature.Modest }, // Fennekin
|
||||
new(XY, 51,4,04,033) { Species = 280, Level = 05, Ability = 1, TID = 37110, IVs = new[] {20,20,20,31,31,20}, Gender = 1, Nature = Nature.Modest, IsNicknamed = false }, // Ralts
|
||||
new(XY, 02,3,11,005) { Species = 656, Level = 05, Ability = OnlyFirst, TID = 00037, IVs = new[] {20,20,20,31,20,20}, Gender = 0, Nature = Nature.Jolly }, // Froakie
|
||||
new(XY, 02,3,09,005) { Species = 650, Level = 05, Ability = OnlyFirst, TID = 00037, IVs = new[] {20,31,20,20,20,20}, Gender = 0, Nature = Nature.Adamant }, // Chespin
|
||||
new(XY, 02,3,18,005) { Species = 653, Level = 05, Ability = OnlyFirst, TID = 00037, IVs = new[] {20,20,20,20,31,20}, Gender = 0, Nature = Nature.Modest }, // Fennekin
|
||||
new(XY, 51,4,04,033) { Species = 280, Level = 05, Ability = OnlyFirst, TID = 37110, IVs = new[] {20,20,20,31,31,20}, Gender = 1, Nature = Nature.Modest, IsNicknamed = false }, // Ralts
|
||||
};
|
||||
|
||||
internal static readonly EncounterTrade6[] TradeGift_AO =
|
||||
{
|
||||
new(ORAS, 01,3,05,040) { Species = 296, Level = 09, Ability = 2, TID = 30724, IVs = new[] {-1,31,-1,-1,-1,-1}, Gender = 0, Nature = Nature.Brave }, // Makuhita
|
||||
new(ORAS, 34,3,13,176) { Species = 300, Level = 30, Ability = 1, TID = 03239, IVs = new[] {-1,-1,-1,31,-1,-1}, Gender = 1, Nature = Nature.Naughty }, // Skitty
|
||||
new(ORAS, 07,4,10,319) { Species = 222, Level = 50, Ability = 4, TID = 00325, IVs = new[] {31,-1,-1,-1,-1,31}, Gender = 1, Nature = Nature.Calm }, // Corsola
|
||||
new(ORAS, 01,3,05,040) { Species = 296, Level = 09, Ability = OnlySecond, TID = 30724, IVs = new[] {-1,31,-1,-1,-1,-1}, Gender = 0, Nature = Nature.Brave }, // Makuhita
|
||||
new(ORAS, 34,3,13,176) { Species = 300, Level = 30, Ability = OnlyFirst, TID = 03239, IVs = new[] {-1,-1,-1,31,-1,-1}, Gender = 1, Nature = Nature.Naughty }, // Skitty
|
||||
new(ORAS, 07,4,10,319) { Species = 222, Level = 50, Ability = OnlyHidden, TID = 00325, IVs = new[] {31,-1,-1,-1,-1,31}, Gender = 1, Nature = Nature.Calm }, // Corsola
|
||||
};
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using static PKHeX.Core.EncounterUtil;
|
||||
using static PKHeX.Core.GameVersion;
|
||||
using static PKHeX.Core.AbilityPermission;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
@@ -40,8 +41,8 @@ static Encounters7()
|
||||
new(SM) { Gift = true, Species = 137, Level = 30, Location = 116 }, // Porygon @ Route 15
|
||||
new(SM) { Gift = true, Species = 133, Level = 1, EggLocation = 60002 }, // Eevee @ Nursery helpers
|
||||
new(SM) { Gift = true, Species = 772, Level = 40, Location = 188, FlawlessIVCount = 3 }, // Type: Null
|
||||
new(SN) { Gift = true, Species = 789, Level = 5, Location = 142, Shiny = Shiny.Never, Ability = 2, FlawlessIVCount = 3 }, // Cosmog
|
||||
new(MN) { Gift = true, Species = 789, Level = 5, Location = 144, Shiny = Shiny.Never, Ability = 2, FlawlessIVCount = 3 }, // Cosmog
|
||||
new(SN) { Gift = true, Species = 789, Level = 5, Location = 142, Shiny = Shiny.Never, Ability = OnlySecond, FlawlessIVCount = 3 }, // Cosmog
|
||||
new(MN) { Gift = true, Species = 789, Level = 5, Location = 144, Shiny = Shiny.Never, Ability = OnlySecond, FlawlessIVCount = 3 }, // Cosmog
|
||||
new(SM) { Gift = true, Species = 142, Level = 40, Location = 172 }, // Aerodactyl @ Seafolk Village
|
||||
|
||||
new(SM) { Gift = true, Species = 718, Form = 0, Level = 30, Location = 118, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Zygarde
|
||||
@@ -56,34 +57,34 @@ static Encounters7()
|
||||
|
||||
new(SM) // Magearna (Bottle Cap) 00 FF
|
||||
{
|
||||
Gift = true, Species = 801, Level = 50, Location = 40001, Shiny = Shiny.Never, FlawlessIVCount = 3, HeldItem = 795, Ability = 2,
|
||||
Gift = true, Species = 801, Level = 50, Location = 40001, Shiny = Shiny.Never, FlawlessIVCount = 3, HeldItem = 795, Ability = OnlySecond,
|
||||
Fateful = true, Relearn = new [] {705, 430, 381, 270}, Ball = 0x10, // Cherish
|
||||
},
|
||||
|
||||
// Static Encounters - 1.bin
|
||||
new(SM) { Species = 746, Level = 17, Location = 086, Shiny = Shiny.Never, Ability = 1 }, // Wishiwashi
|
||||
new(SM) { Species = 746, Level = 18, Location = 086, Shiny = Shiny.Never, Ability = 1 }, // Wishiwashi
|
||||
new(SM) { Species = 746, Level = 17, Location = 086, Shiny = Shiny.Never, Ability = OnlyFirst }, // Wishiwashi
|
||||
new(SM) { Species = 746, Level = 18, Location = 086, Shiny = Shiny.Never, Ability = OnlyFirst }, // Wishiwashi
|
||||
|
||||
new(SN) { Species = 791, Level = 55, Location = 176, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3, Relearn = new[]{713, 322, 242, 428} }, // Solgaleo
|
||||
new(MN) { Species = 792, Level = 55, Location = 178, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3, Relearn = new[]{714, 322, 539, 247} }, // Lunala
|
||||
new(SN) { Species = 791, Level = 55, Location = 176, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[]{713, 322, 242, 428} }, // Solgaleo
|
||||
new(MN) { Species = 792, Level = 55, Location = 178, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[]{714, 322, 539, 247} }, // Lunala
|
||||
|
||||
new(SM) { Species = 785, Level = 60, Location = 030, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Tapu Koko
|
||||
new(SM) { Species = 786, Level = 60, Location = 092, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Tapu Lele
|
||||
new(SM) { Species = 787, Level = 60, Location = 140, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Tapu Bulu
|
||||
new(SM) { Species = 788, Level = 60, Location = 180, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Tapu Fini
|
||||
new(SM) { Species = 785, Level = 60, Location = 030, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Tapu Koko
|
||||
new(SM) { Species = 786, Level = 60, Location = 092, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Tapu Lele
|
||||
new(SM) { Species = 787, Level = 60, Location = 140, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Tapu Bulu
|
||||
new(SM) { Species = 788, Level = 60, Location = 180, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Tapu Fini
|
||||
|
||||
new(SM) { Species = 793, Level = 55, Location = 082, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Nihilego @ Wela Volcano Park
|
||||
new(SM) { Species = 793, Level = 55, Location = 100, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Nihilego @ Diglett’s Tunnel
|
||||
new(SN) { Species = 794, Level = 65, Location = 040, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Buzzwole @ Melemele Meadow
|
||||
new(MN) { Species = 795, Level = 60, Location = 046, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Pheromosa @ Verdant Cavern (Trial Site)
|
||||
new(SM) { Species = 796, Level = 65, Location = 090, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Xurkitree @ Lush Jungle
|
||||
new(SM) { Species = 796, Level = 65, Location = 076, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Xurkitree @ Memorial Hill
|
||||
new(SN) { Species = 798, Level = 60, Location = 134, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Kartana @ Malie Garden
|
||||
new(SN) { Species = 798, Level = 60, Location = 120, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Kartana @ Route 17
|
||||
new(MN) { Species = 797, Level = 65, Location = 124, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Celesteela @ Haina Desert
|
||||
new(MN) { Species = 797, Level = 65, Location = 134, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Celesteela @ Malie Garden
|
||||
new(SM) { Species = 799, Level = 70, Location = 182, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Guzzlord @ Resolution Cave
|
||||
new(SM) { Species = 800, Level = 75, Location = 036, Shiny = Shiny.Never, Ability = 1, FlawlessIVCount = 3 }, // Necrozma @ Ten Carat Hill (Farthest Hollow)
|
||||
new(SM) { Species = 793, Level = 55, Location = 082, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Nihilego @ Wela Volcano Park
|
||||
new(SM) { Species = 793, Level = 55, Location = 100, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Nihilego @ Diglett’s Tunnel
|
||||
new(SN) { Species = 794, Level = 65, Location = 040, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Buzzwole @ Melemele Meadow
|
||||
new(MN) { Species = 795, Level = 60, Location = 046, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Pheromosa @ Verdant Cavern (Trial Site)
|
||||
new(SM) { Species = 796, Level = 65, Location = 090, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Xurkitree @ Lush Jungle
|
||||
new(SM) { Species = 796, Level = 65, Location = 076, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Xurkitree @ Memorial Hill
|
||||
new(SN) { Species = 798, Level = 60, Location = 134, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Kartana @ Malie Garden
|
||||
new(SN) { Species = 798, Level = 60, Location = 120, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Kartana @ Route 17
|
||||
new(MN) { Species = 797, Level = 65, Location = 124, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Celesteela @ Haina Desert
|
||||
new(MN) { Species = 797, Level = 65, Location = 134, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Celesteela @ Malie Garden
|
||||
new(SM) { Species = 799, Level = 70, Location = 182, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Guzzlord @ Resolution Cave
|
||||
new(SM) { Species = 800, Level = 75, Location = 036, Shiny = Shiny.Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Necrozma @ Ten Carat Hill (Farthest Hollow)
|
||||
|
||||
// QR Scan: Su/M/Tu/W/Th/F/Sa
|
||||
// Melemele Island
|
||||
@@ -126,13 +127,13 @@ static Encounters7()
|
||||
internal static readonly EncounterTrade7[] TradeGift_SM = // @ a\1\5\5
|
||||
{
|
||||
// Trades - 4.bin
|
||||
new(SM) { Species = 066, Form = 0, Level = 09, Ability = 2, TID = 00410, SID = 00000, IVs = new[] {-1,31,-1,-1,-1,-1}, OTGender = 1, Gender = 0, Nature = Nature.Brave }, // Machop
|
||||
new(SM) { Species = 761, Form = 0, Level = 16, Ability = 1, TID = 20683, SID = 00009, IVs = new[] {-1,31,-1,-1,-1,-1}, OTGender = 0, Gender = 1, Nature = Nature.Adamant }, // Bounsweet
|
||||
new(SM) { Species = 061, Form = 0, Level = 22, Ability = 2, TID = 01092, SID = 00009, IVs = new[] {31,-1,-1,-1,-1,-1}, OTGender = 1, Gender = 1, Nature = Nature.Naughty }, // Poliwhirl
|
||||
new(SM) { Species = 440, Form = 0, Level = 27, Ability = 2, TID = 10913, SID = 00000, IVs = new[] {-1,-1,-1,-1,31,-1}, OTGender = 1, Gender = 1, Nature = Nature.Calm }, // Happiny
|
||||
new(SM) { Species = 075, Form = 1, Level = 32, Ability = 1, TID = 20778, SID = 00009, IVs = new[] {-1,-1,31,-1,-1,-1}, OTGender = 0, Gender = 0, Nature = Nature.Impish, EvolveOnTrade = true }, // Graveler-1
|
||||
new(SM) { Species = 762, Form = 0, Level = 43, Ability = 1, TID = 20679, SID = 00009, IVs = new[] {-1,-1,-1,-1,-1,31}, OTGender = 1, Gender = 1, Nature = Nature.Careful }, // Steenee
|
||||
new(SM) { Species = 663, Form = 0, Level = 59, Ability = 4, TID = 56734, SID = 00008, IVs = new[] {-1,-1,-1,31,-1,-1}, OTGender = 0, Gender = 0, Nature = Nature.Jolly }, // Talonflame
|
||||
new(SM) { Species = 066, Form = 0, Level = 09, Ability = OnlySecond, TID = 00410, SID = 00000, IVs = new[] {-1,31,-1,-1,-1,-1}, OTGender = 1, Gender = 0, Nature = Nature.Brave }, // Machop
|
||||
new(SM) { Species = 761, Form = 0, Level = 16, Ability = OnlyFirst, TID = 20683, SID = 00009, IVs = new[] {-1,31,-1,-1,-1,-1}, OTGender = 0, Gender = 1, Nature = Nature.Adamant }, // Bounsweet
|
||||
new(SM) { Species = 061, Form = 0, Level = 22, Ability = OnlySecond, TID = 01092, SID = 00009, IVs = new[] {31,-1,-1,-1,-1,-1}, OTGender = 1, Gender = 1, Nature = Nature.Naughty }, // Poliwhirl
|
||||
new(SM) { Species = 440, Form = 0, Level = 27, Ability = OnlySecond, TID = 10913, SID = 00000, IVs = new[] {-1,-1,-1,-1,31,-1}, OTGender = 1, Gender = 1, Nature = Nature.Calm }, // Happiny
|
||||
new(SM) { Species = 075, Form = 1, Level = 32, Ability = OnlyFirst, TID = 20778, SID = 00009, IVs = new[] {-1,-1,31,-1,-1,-1}, OTGender = 0, Gender = 0, Nature = Nature.Impish, EvolveOnTrade = true }, // Graveler-1
|
||||
new(SM) { Species = 762, Form = 0, Level = 43, Ability = OnlyFirst, TID = 20679, SID = 00009, IVs = new[] {-1,-1,-1,-1,-1,31}, OTGender = 1, Gender = 1, Nature = Nature.Careful }, // Steenee
|
||||
new(SM) { Species = 663, Form = 0, Level = 59, Ability = OnlyHidden, TID = 56734, SID = 00008, IVs = new[] {-1,-1,-1,31,-1,-1}, OTGender = 0, Gender = 0, Nature = Nature.Jolly }, // Talonflame
|
||||
};
|
||||
|
||||
private static readonly EncounterStatic7[] Encounter_USUM =
|
||||
@@ -155,31 +156,31 @@ static Encounters7()
|
||||
new(USUM) { Gift = true, Species = 137, Level = 30, Location = 116 }, // Porygon @ Route 15
|
||||
new(USUM) { Gift = true, Species = 772, Level = 60, Location = 188, FlawlessIVCount = 3 }, // Type: Null @ Aether Paradise
|
||||
new(USUM) { Gift = true, Species = 772, Level = 60, Location = 160, FlawlessIVCount = 3 }, // Type: Null @ Ancient Poni Path
|
||||
new(US ) { Gift = true, Species = 789, Level = 05, Location = 142, FlawlessIVCount = 3, Shiny = Shiny.Never, Ability = 2 }, // Cosmog @ Lake of the Sunne
|
||||
new( UM) { Gift = true, Species = 789, Level = 05, Location = 144, FlawlessIVCount = 3, Shiny = Shiny.Never, Ability = 2 }, // Cosmog @ Lake of the Moone
|
||||
new(US ) { Gift = true, Species = 789, Level = 05, Location = 142, FlawlessIVCount = 3, Shiny = Shiny.Never, Ability = OnlySecond }, // Cosmog @ Lake of the Sunne
|
||||
new( UM) { Gift = true, Species = 789, Level = 05, Location = 144, FlawlessIVCount = 3, Shiny = Shiny.Never, Ability = OnlySecond }, // Cosmog @ Lake of the Moone
|
||||
new(USUM) { Gift = true, Species = 142, Level = 40, Location = 172 }, // Aerodactyl @ Seafolk Village
|
||||
new(USUM) { Gift = true, Species = 025, Level = 40, Location = 070, FlawlessIVCount = 3, HeldItem = 796, Relearn = new[] {57,0,0,0} }, // Pikachu @ Heahea City
|
||||
new(USUM) { Gift = true, Species = 803, Level = 40, Location = 208, FlawlessIVCount = 3 }, // Poipole @ Megalo Tower
|
||||
new(USUM) { Gift = true, Species = 803, Level = 40, Location = 206, FlawlessIVCount = 3 }, // Poipole @ Ultra Megalopolis
|
||||
|
||||
// Totem-Sized Gifts @ Heahea Beach
|
||||
new(US ) { Gift = true, Species = 735, Level = 20, Ability = 4, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Gumshoos
|
||||
new( UM) { Gift = true, Species = 020, Level = 20, Ability = 4, Location = 202, Form = 2, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Raticate
|
||||
new(US ) { Gift = true, Species = 105, Level = 25, Ability = 4, Location = 202, Form = 2, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Marowak
|
||||
new( UM) { Gift = true, Species = 752, Level = 25, Ability = 1, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Araquanid
|
||||
new(US ) { Gift = true, Species = 754, Level = 30, Ability = 2, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Lurantis
|
||||
new( UM) { Gift = true, Species = 758, Level = 30, Ability = 1, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Salazzle
|
||||
new(US ) { Gift = true, Species = 738, Level = 35, Ability = 1, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Vikavolt
|
||||
new( UM) { Gift = true, Species = 777, Level = 35, Ability = 4, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Togedemaru
|
||||
new(USUM) { Gift = true, Species = 778, Level = 40, Ability = 1, Location = 202, Form = 2, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Mimikyu
|
||||
new(US ) { Gift = true, Species = 743, Level = 50, Ability = 4, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Ribombee
|
||||
new( UM) { Gift = true, Species = 784, Level = 50, Ability = 4, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Kommo-o
|
||||
new(US ) { Gift = true, Species = 735, Level = 20, Ability = OnlyHidden, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Gumshoos
|
||||
new( UM) { Gift = true, Species = 020, Level = 20, Ability = OnlyHidden, Location = 202, Form = 2, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Raticate
|
||||
new(US ) { Gift = true, Species = 105, Level = 25, Ability = OnlyHidden, Location = 202, Form = 2, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Marowak
|
||||
new( UM) { Gift = true, Species = 752, Level = 25, Ability = OnlyFirst, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Araquanid
|
||||
new(US ) { Gift = true, Species = 754, Level = 30, Ability = OnlySecond, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Lurantis
|
||||
new( UM) { Gift = true, Species = 758, Level = 30, Ability = OnlyFirst, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Salazzle
|
||||
new(US ) { Gift = true, Species = 738, Level = 35, Ability = OnlyFirst, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Vikavolt
|
||||
new( UM) { Gift = true, Species = 777, Level = 35, Ability = OnlyHidden, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Togedemaru
|
||||
new(USUM) { Gift = true, Species = 778, Level = 40, Ability = OnlyFirst, Location = 202, Form = 2, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Mimikyu
|
||||
new(US ) { Gift = true, Species = 743, Level = 50, Ability = OnlyHidden, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Ribombee
|
||||
new( UM) { Gift = true, Species = 784, Level = 50, Ability = OnlyHidden, Location = 202, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Kommo-o
|
||||
|
||||
new(USUM) { Gift = true, Species = 718, Level = 63, Ability = 1, Location = 118, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Zygarde (10%) @ Route 16
|
||||
new(USUM) { Gift = true, Species = 718, Level = 63, Ability = OnlyFirst, Location = 118, Form = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Zygarde (10%) @ Route 16
|
||||
|
||||
new(USUM) // Magearna (Bottle Cap)
|
||||
{
|
||||
Gift = true, Species = 801, Level = 50, Location = 40001, Shiny = Shiny.Never, FlawlessIVCount = 3, HeldItem = 795, Ability = 2,
|
||||
Gift = true, Species = 801, Level = 50, Location = 40001, Shiny = Shiny.Never, FlawlessIVCount = 3, HeldItem = 795, Ability = OnlySecond,
|
||||
Fateful = true, Relearn = new [] {705, 430, 381, 270}, Ball = 0x10, // Cherish
|
||||
},
|
||||
|
||||
@@ -188,8 +189,8 @@ static Encounters7()
|
||||
new(USUM) { Gift = true, Species = 718, Form = 2, Level = 50, Shiny = Shiny.Never, Location = 118, FlawlessIVCount = 3 }, // Zygarde (10%-C)
|
||||
new(USUM) { Gift = true, Species = 718, Form = 3, Level = 50, Shiny = Shiny.Never, Location = 118, FlawlessIVCount = 3 }, // Zygarde (50%-C)
|
||||
|
||||
new(US ) { Species = 791, Level = 60, Location = 028, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3, Relearn = new[] {713,322,242,428} }, // Solgaleo @ Mahalo Trail (Plank Bridge)
|
||||
new( UM) { Species = 792, Level = 60, Location = 028, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3, Relearn = new[] {714,322,539,585} }, // Lunala @ Mahalo Trail (Plank Bridge)
|
||||
new(US ) { Species = 791, Level = 60, Location = 028, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3, Relearn = new[] {713,322,242,428} }, // Solgaleo @ Mahalo Trail (Plank Bridge)
|
||||
new( UM) { Species = 792, Level = 60, Location = 028, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3, Relearn = new[] {714,322,539,585} }, // Lunala @ Mahalo Trail (Plank Bridge)
|
||||
|
||||
// QR Scan: Su/M/Tu/W/Th/F/Sa
|
||||
// Melemele Island
|
||||
@@ -228,56 +229,56 @@ static Encounters7()
|
||||
new(USUM) { Species = 658, Level = 44, Location = 158, Relearn = new[] {516,164,185,594} }, // Greninja @ Poni Wilds
|
||||
new(USUM) { Species = 655, Level = 44, Location = 160, Relearn = new[] {273,473,113,595} }, // Delphox @ Ancient Poni Path
|
||||
|
||||
new(USUM) { Species = 785, Level = 60, Location = 030, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Tapu Koko @ Ruins of Conflict
|
||||
new(USUM) { Species = 786, Level = 60, Location = 092, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Tapu Lele @ Ruins of Life
|
||||
new(USUM) { Species = 787, Level = 60, Location = 140, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Tapu Bulu @ Ruins of Abundance
|
||||
new(USUM) { Species = 788, Level = 60, Location = 180, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Tapu Fini @ Ruins of Hope
|
||||
new(USUM) { Species = 785, Level = 60, Location = 030, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Tapu Koko @ Ruins of Conflict
|
||||
new(USUM) { Species = 786, Level = 60, Location = 092, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Tapu Lele @ Ruins of Life
|
||||
new(USUM) { Species = 787, Level = 60, Location = 140, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Tapu Bulu @ Ruins of Abundance
|
||||
new(USUM) { Species = 788, Level = 60, Location = 180, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3 }, // Tapu Fini @ Ruins of Hope
|
||||
|
||||
new(USUM) { Species = 023, Level = 10, Location = 012, Ability = 1 }, // Ekans @ Route 2
|
||||
new(USUM) { Species = 023, Level = 10, Location = 012, Ability = OnlyFirst }, // Ekans @ Route 2
|
||||
|
||||
new(USUM) { Species = 127, Level = 42, Location = 184, Shiny = Shiny.Never }, // Pinsir @ Exeggutor Island
|
||||
new(USUM) { Species = 127, Level = 43, Location = 184, Shiny = Shiny.Never }, // Pinsir @ Exeggutor Island
|
||||
new(USUM) { Species = 800, Level = 65, Location = 146, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3, Relearn = new[] {722,334,408,400}, HeldItem = 923 }, // Necrozma @ Mount Lanakila
|
||||
new(USUM) { Species = 800, Level = 65, Location = 146, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3, Relearn = new[] {722,334,408,400}, HeldItem = 923 }, // Necrozma @ Mount Lanakila
|
||||
|
||||
// Legendaries
|
||||
new(USUM) { Species = 144, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {246,573,115,258} }, // Articuno
|
||||
new(USUM) { Species = 145, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {246,435,365,240} }, // Zapdos
|
||||
new(USUM) { Species = 146, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {246,053,403,241} }, // Moltres
|
||||
new(USUM) { Species = 150, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {094,105,129,427} }, // Mewtwo
|
||||
new(US ) { Species = 243, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3 }, // Raikou
|
||||
new( UM) { Species = 244, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {023,044,207,436} }, // Entei
|
||||
new(USUM) { Species = 245, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {061,062,054,240} }, // Suicune
|
||||
new( UM) { Species = 249, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {285,177,326,246} }, // Lugia
|
||||
new(US ) { Species = 250, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {682,221,326,246}, HeldItem = 044 }, // Ho-Oh
|
||||
new(USUM) { Species = 377, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3 }, // Regirock
|
||||
new(USUM) { Species = 378, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3 }, // Regice
|
||||
new(USUM) { Species = 379, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3 }, // Registeel
|
||||
new( UM) { Species = 380, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {296,406,375,273}, Gender = 1 }, // Latias
|
||||
new(US ) { Species = 381, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {295,406,375,225}, Gender = 0 }, // Latios
|
||||
new( UM) { Species = 382, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {058,618,347,330} }, // Kyogre
|
||||
new(US ) { Species = 383, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {089,619,339,076} }, // Groudon
|
||||
new(USUM) { Species = 384, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3 }, // Rayquaza
|
||||
new(USUM) { Species = 480, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {326,281,133,129} }, // Uxie
|
||||
new(USUM) { Species = 481, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {326,204,248,129} }, // Mesprit
|
||||
new(USUM) { Species = 482, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {326,417,253,129} }, // Azelf
|
||||
new(US ) { Species = 483, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3 }, // Dialga
|
||||
new( UM) { Species = 484, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3 }, // Palkia
|
||||
new(US ) { Species = 485, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3 }, // Heatran
|
||||
new( UM) { Species = 486, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {428,279,146,109} }, // Regigigas
|
||||
new(USUM) { Species = 487, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {467,396,414,337} }, // Giratina
|
||||
new(USUM) { Species = 488, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Gender = 1 }, // Cresselia
|
||||
new(USUM) { Species = 638, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {533,014,098,442} }, // Cobalion
|
||||
new(USUM) { Species = 639, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {533,014,157,444} }, // Terrakion
|
||||
new(USUM) { Species = 640, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {533,014,202,348} }, // Virizion
|
||||
new(US ) { Species = 641, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Gender = 0 }, // Tornadus
|
||||
new( UM) { Species = 642, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Gender = 0 }, // Thundurus
|
||||
new(US ) { Species = 643, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3 }, // Reshiram
|
||||
new( UM) { Species = 644, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3 }, // Zekrom
|
||||
new(USUM) { Species = 645, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Gender = 0 }, // Landorus
|
||||
new(USUM) { Species = 646, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3 }, // Kyurem
|
||||
new(US ) { Species = 716, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {601,532,400,585} }, // Xerneas
|
||||
new( UM) { Species = 717, Level = 60, Location = 222, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {613,399,566,094} }, // Yveltal
|
||||
new(USUM) { Species = 718, Level = 60, Location = 182, Ability = 1, Shiny = Shiny.Never, FlawlessIVCount = 3, Relearn = new[] {616,137,219,225} }, // Zygarde @ Resolution Cave
|
||||
new(USUM) { Species = 144, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {246,573,115,258} }, // Articuno
|
||||
new(USUM) { Species = 145, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {246,435,365,240} }, // Zapdos
|
||||
new(USUM) { Species = 146, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {246,053,403,241} }, // Moltres
|
||||
new(USUM) { Species = 150, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {094,105,129,427} }, // Mewtwo
|
||||
new(US ) { Species = 243, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Raikou
|
||||
new( UM) { Species = 244, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {023,044,207,436} }, // Entei
|
||||
new(USUM) { Species = 245, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {061,062,054,240} }, // Suicune
|
||||
new( UM) { Species = 249, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {285,177,326,246} }, // Lugia
|
||||
new(US ) { Species = 250, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {682,221,326,246}, HeldItem = 044 }, // Ho-Oh
|
||||
new(USUM) { Species = 377, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Regirock
|
||||
new(USUM) { Species = 378, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Regice
|
||||
new(USUM) { Species = 379, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Registeel
|
||||
new( UM) { Species = 380, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {296,406,375,273}, Gender = 1 }, // Latias
|
||||
new(US ) { Species = 381, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {295,406,375,225}, Gender = 0 }, // Latios
|
||||
new( UM) { Species = 382, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {058,618,347,330} }, // Kyogre
|
||||
new(US ) { Species = 383, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {089,619,339,076} }, // Groudon
|
||||
new(USUM) { Species = 384, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Rayquaza
|
||||
new(USUM) { Species = 480, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {326,281,133,129} }, // Uxie
|
||||
new(USUM) { Species = 481, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {326,204,248,129} }, // Mesprit
|
||||
new(USUM) { Species = 482, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {326,417,253,129} }, // Azelf
|
||||
new(US ) { Species = 483, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Dialga
|
||||
new( UM) { Species = 484, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Palkia
|
||||
new(US ) { Species = 485, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Heatran
|
||||
new( UM) { Species = 486, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {428,279,146,109} }, // Regigigas
|
||||
new(USUM) { Species = 487, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {467,396,414,337} }, // Giratina
|
||||
new(USUM) { Species = 488, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Gender = 1 }, // Cresselia
|
||||
new(USUM) { Species = 638, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {533,014,098,442} }, // Cobalion
|
||||
new(USUM) { Species = 639, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {533,014,157,444} }, // Terrakion
|
||||
new(USUM) { Species = 640, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {533,014,202,348} }, // Virizion
|
||||
new(US ) { Species = 641, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Gender = 0 }, // Tornadus
|
||||
new( UM) { Species = 642, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Gender = 0 }, // Thundurus
|
||||
new(US ) { Species = 643, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Reshiram
|
||||
new( UM) { Species = 644, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Zekrom
|
||||
new(USUM) { Species = 645, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Gender = 0 }, // Landorus
|
||||
new(USUM) { Species = 646, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Kyurem
|
||||
new(US ) { Species = 716, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {601,532,400,585} }, // Xerneas
|
||||
new( UM) { Species = 717, Level = 60, Location = 222, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {613,399,566,094} }, // Yveltal
|
||||
new(USUM) { Species = 718, Level = 60, Location = 182, Ability = OnlyFirst, Shiny = Shiny.Never, FlawlessIVCount = 3, Relearn = new[] {616,137,219,225} }, // Zygarde @ Resolution Cave
|
||||
|
||||
// Ultra Space Wilds
|
||||
new(USUM) { Species = 334, Level = 60, Location = 222, FlawlessIVCount = 3 }, // Altaria
|
||||
@@ -302,15 +303,15 @@ static Encounters7()
|
||||
new(USUM) { Species = 195, Level = 60, Location = 222, FlawlessIVCount = 3 }, // Quagsire
|
||||
|
||||
// Ultra Beasts
|
||||
new(USUM) { Species = 793, Level = 60, Location = 190, Ability = 1, FlawlessIVCount = 3, Relearn = new[] {408,491,446,243} }, // Nihilego @ Ultra Deep Sea
|
||||
new(US ) { Species = 794, Level = 60, Location = 218, Ability = 1, FlawlessIVCount = 3 }, // Buzzwole @ Ultra Jungle
|
||||
new( UM) { Species = 795, Level = 60, Location = 214, Ability = 1, FlawlessIVCount = 3 }, // Pheromosa @ Ultra Desert
|
||||
new(USUM) { Species = 796, Level = 60, Location = 210, Ability = 1, FlawlessIVCount = 3 }, // Xurkitree @ Ultra Plant
|
||||
new( UM) { Species = 797, Level = 60, Location = 212, Ability = 1, FlawlessIVCount = 3 }, // Celesteela @ Ultra Crater
|
||||
new(US ) { Species = 798, Level = 60, Location = 216, Ability = 1, FlawlessIVCount = 3 }, // Kartana @ Ultra Forest
|
||||
new(USUM) { Species = 799, Level = 60, Location = 220, Ability = 1, FlawlessIVCount = 3 }, // Guzzlord @ Ultra Ruin
|
||||
new( UM) { Species = 805, Level = 60, Location = 164, Ability = 1, FlawlessIVCount = 3 }, // Stakataka @ Poni Grove
|
||||
new(US ) { Species = 806, Level = 60, Location = 164, Ability = 1, FlawlessIVCount = 3 }, // Blacephalon @ Poni Grove
|
||||
new(USUM) { Species = 793, Level = 60, Location = 190, Ability = OnlyFirst, FlawlessIVCount = 3, Relearn = new[] {408,491,446,243} }, // Nihilego @ Ultra Deep Sea
|
||||
new(US ) { Species = 794, Level = 60, Location = 218, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Buzzwole @ Ultra Jungle
|
||||
new( UM) { Species = 795, Level = 60, Location = 214, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Pheromosa @ Ultra Desert
|
||||
new(USUM) { Species = 796, Level = 60, Location = 210, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Xurkitree @ Ultra Plant
|
||||
new( UM) { Species = 797, Level = 60, Location = 212, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Celesteela @ Ultra Crater
|
||||
new(US ) { Species = 798, Level = 60, Location = 216, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Kartana @ Ultra Forest
|
||||
new(USUM) { Species = 799, Level = 60, Location = 220, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Guzzlord @ Ultra Ruin
|
||||
new( UM) { Species = 805, Level = 60, Location = 164, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Stakataka @ Poni Grove
|
||||
new(US ) { Species = 806, Level = 60, Location = 164, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Blacephalon @ Poni Grove
|
||||
|
||||
// Ditto Five
|
||||
new(USUM) { Species = 132, Level = 29, Location = 060, IVs = new[] {-1,-1,31,00,30,-1}, Nature = Nature.Bold }, // Ditto @ Route 9
|
||||
@@ -328,7 +329,7 @@ static Encounters7()
|
||||
new(USUM) { Species = 425, Level = 19, Location = 230, Shiny = Shiny.Never, Relearn = new[] {310,132,016,371} }, // Drifloon @ Route 1 (Trainers’ School)
|
||||
new( UM) { Species = 769, Level = 30, Location = 116, Shiny = Shiny.Never, Relearn = new[] {310,523,072,328} }, // Sandygast @ Route 15
|
||||
new(USUM) { Species = 592, Level = 34, Location = 126, Shiny = Shiny.Never, Gender = 1 }, // Frillish @ Route 14
|
||||
new(USUM) { Species = 101, Level = 60, Location = 224, Ability = 1, Shiny = Shiny.Never }, // Electrode @ Team Rocket's Castle
|
||||
new(USUM) { Species = 101, Level = 60, Location = 224, Ability = OnlyFirst, Shiny = Shiny.Never }, // Electrode @ Team Rocket's Castle
|
||||
|
||||
// Crabrawler in Berry Piles
|
||||
new(USUM) { Species = 739, Level = 25, Location = 106 }, // Route 10
|
||||
@@ -340,13 +341,13 @@ static Encounters7()
|
||||
internal static readonly EncounterTrade7[] TradeGift_USUM =
|
||||
{
|
||||
// Trades - 4.bin
|
||||
new(USUM) { Species = 701, Form = 0, Level = 08, Ability = 2, TID = 00410, SID = 00000, IVs = new[] {-1,31,-1,-1,-1,-1}, OTGender = 1, Gender = 0, Nature = Nature.Brave }, // Hawlucha
|
||||
new(USUM) { Species = 714, Form = 0, Level = 19, Ability = 1, TID = 20683, SID = 00009, IVs = new[] {-1,-1,-1,-1,31,-1}, OTGender = 0, Gender = 0, Nature = Nature.Modest }, // Noibat
|
||||
new(USUM) { Species = 339, Form = 0, Level = 21, Ability = 2, TID = 01092, SID = 00009, IVs = new[] {31,-1,-1,-1,-1,-1}, OTGender = 0, Gender = 1, Nature = Nature.Naughty }, // Barboach
|
||||
new(USUM) { Species = 024, Form = 0, Level = 22, Ability = 1, TID = 10913, SID = 00000, IVs = new[] {-1,-1,31,-1,-1,-1}, OTGender = 1, Gender = 1, Nature = Nature.Impish }, // Arbok
|
||||
new(USUM) { Species = 708, Form = 0, Level = 33, Ability = 1, TID = 20778, SID = 00009, IVs = new[] {-1,-1,-1,-1,-1,31}, OTGender = 0, Gender = 0, Nature = Nature.Calm, EvolveOnTrade = true }, // Phantump
|
||||
new(USUM) { Species = 422, Form = 0, Level = 44, Ability = 2, TID = 20679, SID = 00009, IVs = new[] {-1,-1,31,-1,-1,-1}, OTGender = 1, Gender = 1, Nature = Nature.Quiet }, // Shellos
|
||||
new(USUM) { Species = 128, Form = 0, Level = 59, Ability = 1, TID = 56734, SID = 00008, IVs = new[] {-1,-1,-1,31,-1,-1}, OTGender = 0, Gender = 0, Nature = Nature.Jolly }, // Tauros
|
||||
new(USUM) { Species = 701, Form = 0, Level = 08, Ability = OnlySecond, TID = 00410, SID = 00000, IVs = new[] {-1,31,-1,-1,-1,-1}, OTGender = 1, Gender = 0, Nature = Nature.Brave }, // Hawlucha
|
||||
new(USUM) { Species = 714, Form = 0, Level = 19, Ability = OnlyFirst, TID = 20683, SID = 00009, IVs = new[] {-1,-1,-1,-1,31,-1}, OTGender = 0, Gender = 0, Nature = Nature.Modest }, // Noibat
|
||||
new(USUM) { Species = 339, Form = 0, Level = 21, Ability = OnlySecond, TID = 01092, SID = 00009, IVs = new[] {31,-1,-1,-1,-1,-1}, OTGender = 0, Gender = 1, Nature = Nature.Naughty }, // Barboach
|
||||
new(USUM) { Species = 024, Form = 0, Level = 22, Ability = OnlyFirst, TID = 10913, SID = 00000, IVs = new[] {-1,-1,31,-1,-1,-1}, OTGender = 1, Gender = 1, Nature = Nature.Impish }, // Arbok
|
||||
new(USUM) { Species = 708, Form = 0, Level = 33, Ability = OnlyFirst, TID = 20778, SID = 00009, IVs = new[] {-1,-1,-1,-1,-1,31}, OTGender = 0, Gender = 0, Nature = Nature.Calm, EvolveOnTrade = true }, // Phantump
|
||||
new(USUM) { Species = 422, Form = 0, Level = 44, Ability = OnlySecond, TID = 20679, SID = 00009, IVs = new[] {-1,-1,31,-1,-1,-1}, OTGender = 1, Gender = 1, Nature = Nature.Quiet }, // Shellos
|
||||
new(USUM) { Species = 128, Form = 0, Level = 59, Ability = OnlyFirst, TID = 56734, SID = 00008, IVs = new[] {-1,-1,-1,31,-1,-1}, OTGender = 0, Gender = 0, Nature = Nature.Jolly }, // Tauros
|
||||
};
|
||||
|
||||
private const string tradeSM = "tradesm";
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using static PKHeX.Core.Shiny;
|
||||
using static PKHeX.Core.GameVersion;
|
||||
using static PKHeX.Core.AreaWeather8;
|
||||
using static PKHeX.Core.AbilityPermission;
|
||||
|
||||
using static PKHeX.Core.Encounters8Nest;
|
||||
|
||||
@@ -44,40 +45,40 @@ static Encounters8()
|
||||
new(SWSH) { Gift = true, Species = 882, FlawlessIVCount = 3, Level = 10, Location = 068 }, // Dracovish @ Route 6
|
||||
new(SWSH) { Gift = true, Species = 883, FlawlessIVCount = 3, Level = 10, Location = 068 }, // Arctovish @ Route 6
|
||||
|
||||
new(SWSH) { Gift = true, Species = 004, Shiny = Never, Level = 05, Location = 006, FlawlessIVCount = 3, CanGigantamax = true, Ability = 1 }, // Charmander
|
||||
new(SWSH) { Gift = true, Species = 004, Shiny = Never, Level = 05, Location = 006, FlawlessIVCount = 3, CanGigantamax = true, Ability = OnlyFirst }, // Charmander
|
||||
new(SWSH) { Gift = true, Species = 025, Shiny = Never, Level = 10, Location = 156, FlawlessIVCount = 6, CanGigantamax = true }, // Pikachu
|
||||
new(SWSH) { Gift = true, Species = 133, Shiny = Never, Level = 10, Location = 156, FlawlessIVCount = 6, CanGigantamax = true }, // Eevee
|
||||
|
||||
// DLC gifts
|
||||
new(SWSH) { Gift = true, Species = 001, Level = 05, Location = 196, Shiny = Never, Ability = 1, FlawlessIVCount = 3, CanGigantamax = true }, // Bulbasaur
|
||||
new(SWSH) { Gift = true, Species = 007, Level = 05, Location = 196, Shiny = Never, Ability = 1, FlawlessIVCount = 3, CanGigantamax = true }, // Squirtle
|
||||
new(SWSH) { Gift = true, Species = 137, Level = 25, Location = 196, Shiny = Never, Ability = 4, FlawlessIVCount = 3 }, // Porygon
|
||||
new(SWSH) { Gift = true, Species = 001, Level = 05, Location = 196, Shiny = Never, Ability = OnlyFirst, FlawlessIVCount = 3, CanGigantamax = true }, // Bulbasaur
|
||||
new(SWSH) { Gift = true, Species = 007, Level = 05, Location = 196, Shiny = Never, Ability = OnlyFirst, FlawlessIVCount = 3, CanGigantamax = true }, // Squirtle
|
||||
new(SWSH) { Gift = true, Species = 137, Level = 25, Location = 196, Shiny = Never, Ability = OnlyHidden, FlawlessIVCount = 3 }, // Porygon
|
||||
new(SWSH) { Gift = true, Species = 891, Level = 10, Location = 196, Shiny = Never, FlawlessIVCount = 3 }, // Kubfu
|
||||
|
||||
new(SWSH) { Gift = true, Species = 079, Level = 10, Location = 164, Shiny = Never, Ability = 4, FlawlessIVCount = 3 }, // Slowpoke
|
||||
new(SWSH) { Gift = true, Species = 722, Level = 05, Location = 164, Shiny = Never, Ability = 4, FlawlessIVCount = 3 }, // Rowlet
|
||||
new(SWSH) { Gift = true, Species = 725, Level = 05, Location = 164, Shiny = Never, Ability = 4, FlawlessIVCount = 3 }, // Litten
|
||||
new(SWSH) { Gift = true, Species = 728, Level = 05, Location = 164, Shiny = Never, Ability = 4, FlawlessIVCount = 3 }, // Popplio
|
||||
new(SWSH) { Gift = true, Species = 026, Level = 30, Location = 164, Shiny = Never, Ability = 1, FlawlessIVCount = 3, Form = 01 }, // Raichu-1
|
||||
new(SWSH) { Gift = true, Species = 027, Level = 05, Location = 164, Shiny = Never, Ability = 4, FlawlessIVCount = 3, Form = 01 }, // Sandshrew-1
|
||||
new(SWSH) { Gift = true, Species = 037, Level = 05, Location = 164, Shiny = Never, Ability = 4, FlawlessIVCount = 3, Form = 01 }, // Vulpix-1
|
||||
new(SWSH) { Gift = true, Species = 052, Level = 05, Location = 164, Shiny = Never, Ability = 4, FlawlessIVCount = 3, Form = 01 }, // Meowth-1
|
||||
new(SWSH) { Gift = true, Species = 103, Level = 30, Location = 164, Shiny = Never, Ability = 4, FlawlessIVCount = 3, Form = 01 }, // Exeggutor-1
|
||||
new(SWSH) { Gift = true, Species = 105, Level = 30, Location = 164, Shiny = Never, Ability = 4, FlawlessIVCount = 3, Form = 01 }, // Marowak-1
|
||||
new(SWSH) { Gift = true, Species = 050, Level = 20, Location = 164, Shiny = Never, Ability = 4, Gender = 0, Nature = Nature.Jolly, FlawlessIVCount = 6, Form = 01 }, // Diglett-1
|
||||
new(SWSH) { Gift = true, Species = 079, Level = 10, Location = 164, Shiny = Never, Ability = OnlyHidden, FlawlessIVCount = 3 }, // Slowpoke
|
||||
new(SWSH) { Gift = true, Species = 722, Level = 05, Location = 164, Shiny = Never, Ability = OnlyHidden, FlawlessIVCount = 3 }, // Rowlet
|
||||
new(SWSH) { Gift = true, Species = 725, Level = 05, Location = 164, Shiny = Never, Ability = OnlyHidden, FlawlessIVCount = 3 }, // Litten
|
||||
new(SWSH) { Gift = true, Species = 728, Level = 05, Location = 164, Shiny = Never, Ability = OnlyHidden, FlawlessIVCount = 3 }, // Popplio
|
||||
new(SWSH) { Gift = true, Species = 026, Level = 30, Location = 164, Shiny = Never, Ability = OnlyFirst, FlawlessIVCount = 3, Form = 01 }, // Raichu-1
|
||||
new(SWSH) { Gift = true, Species = 027, Level = 05, Location = 164, Shiny = Never, Ability = OnlyHidden, FlawlessIVCount = 3, Form = 01 }, // Sandshrew-1
|
||||
new(SWSH) { Gift = true, Species = 037, Level = 05, Location = 164, Shiny = Never, Ability = OnlyHidden, FlawlessIVCount = 3, Form = 01 }, // Vulpix-1
|
||||
new(SWSH) { Gift = true, Species = 052, Level = 05, Location = 164, Shiny = Never, Ability = OnlyHidden, FlawlessIVCount = 3, Form = 01 }, // Meowth-1
|
||||
new(SWSH) { Gift = true, Species = 103, Level = 30, Location = 164, Shiny = Never, Ability = OnlyHidden, FlawlessIVCount = 3, Form = 01 }, // Exeggutor-1
|
||||
new(SWSH) { Gift = true, Species = 105, Level = 30, Location = 164, Shiny = Never, Ability = OnlyHidden, FlawlessIVCount = 3, Form = 01 }, // Marowak-1
|
||||
new(SWSH) { Gift = true, Species = 050, Level = 20, Location = 164, Shiny = Never, Ability = OnlyHidden, Gender = 0, Nature = Nature.Jolly, FlawlessIVCount = 6, Form = 01 }, // Diglett-1
|
||||
|
||||
new(SWSH) { Gift = true, Species = 789, Level = 05, Location = 206, FlawlessIVCount = 3, Shiny = Never, Ability = 1 }, // Cosmog
|
||||
new(SWSH) { Gift = true, Species = 803, Level = 20, Location = 244, FlawlessIVCount = 3, Shiny = Never, Ability = 1, Ball = 26 }, // Poipole
|
||||
new(SWSH) { Gift = true, Species = 789, Level = 05, Location = 206, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst }, // Cosmog
|
||||
new(SWSH) { Gift = true, Species = 803, Level = 20, Location = 244, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst, Ball = 26 }, // Poipole
|
||||
|
||||
// Technically a gift, but copies ball from Calyrex.
|
||||
new(SWSH) { Species = 896, Level = 75, Location = 220, ScriptedNoMarks = true, FlawlessIVCount = 3, Shiny = Never, Ability = 1, Relearn = new[] {556,0,0,0} }, // Glastrier
|
||||
new(SWSH) { Species = 897, Level = 75, Location = 220, ScriptedNoMarks = true, FlawlessIVCount = 3, Shiny = Never, Ability = 1, Relearn = new[] {247,0,0,0} }, // Spectrier
|
||||
new(SWSH) { Species = 896, Level = 75, Location = 220, ScriptedNoMarks = true, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst, Relearn = new[] {556,0,0,0} }, // Glastrier
|
||||
new(SWSH) { Species = 897, Level = 75, Location = 220, ScriptedNoMarks = true, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst, Relearn = new[] {247,0,0,0} }, // Spectrier
|
||||
|
||||
#region Static Part 1
|
||||
// encounters
|
||||
new(SW ) { Species = 888, Level = 70, Location = 66, ScriptedNoMarks = true, Moves = new[] {533,014,442,242}, Shiny = Never, Ability = 1, FlawlessIVCount = 3 }, // Zacian
|
||||
new( SH) { Species = 889, Level = 70, Location = 66, ScriptedNoMarks = true, Moves = new[] {163,242,442,334}, Shiny = Never, Ability = 1, FlawlessIVCount = 3 }, // Zamazenta
|
||||
new(SWSH) { Species = 890, Level = 60, Location = 66, ScriptedNoMarks = true, Moves = new[] {440,406,053,744}, Shiny = Never, Ability = 1, FlawlessIVCount = 3 }, // Eternatus-1 (reverts to form 0)
|
||||
new(SW ) { Species = 888, Level = 70, Location = 66, ScriptedNoMarks = true, Moves = new[] {533,014,442,242}, Shiny = Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Zacian
|
||||
new( SH) { Species = 889, Level = 70, Location = 66, ScriptedNoMarks = true, Moves = new[] {163,242,442,334}, Shiny = Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Zamazenta
|
||||
new(SWSH) { Species = 890, Level = 60, Location = 66, ScriptedNoMarks = true, Moves = new[] {440,406,053,744}, Shiny = Never, Ability = OnlyFirst, FlawlessIVCount = 3 }, // Eternatus-1 (reverts to form 0)
|
||||
|
||||
// Motostoke Stadium Static Encounters
|
||||
new(SWSH) { Species = 037, Level = 24, Location = 24, ScriptedNoMarks = true }, // Vulpix at Motostoke Stadium
|
||||
@@ -85,7 +86,7 @@ static Encounters8()
|
||||
new(SWSH) { Species = 607, Level = 25, Location = 24, ScriptedNoMarks = true }, // Litwick at Motostoke Stadium
|
||||
new(SWSH) { Species = 850, Level = 25, Location = 24, ScriptedNoMarks = true, FlawlessIVCount = 3 }, // Sizzlipede at Motostoke Stadium
|
||||
|
||||
new(SWSH) { Species = 618, Level = 25, Location = 054, Moves = new[] {389,319,279,341}, Form = 01, Ability = 1 }, // Stunfisk in Galar Mine No. 2
|
||||
new(SWSH) { Species = 618, Level = 25, Location = 054, Moves = new[] {389,319,279,341}, Form = 01, Ability = OnlyFirst }, // Stunfisk in Galar Mine No. 2
|
||||
new(SWSH) { Species = 618, Level = 48, Location = 008, Moves = new[] {779,330,340,334}, Form = 01 }, // Stunfisk in the Slumbering Weald
|
||||
new(SWSH) { Species = 527, Level = 16, Location = 030, Moves = new[] {000,000,000,000} }, // Woobat in Galar Mine
|
||||
new(SWSH) { Species = 838, Level = 18, Location = 030, Moves = new[] {488,397,229,033} }, // Carkol in Galar Mine
|
||||
@@ -171,7 +172,7 @@ static Encounters8()
|
||||
new(SWSH) { Species = 593, Level = 46, Location = 130, Weather = Overcast | Raining | Heavy_Fog }, // Jellicent at West Lake Axewell
|
||||
new EncounterStatic8S(SWSH) { Species = 119, Level = 46, Locations = new[] {130, 142}, Weather = Normal | Overcast | Sandstorm }, // Seaking at West Lake Axewell, Bridge Field
|
||||
new EncounterStatic8S(SWSH) { Species = 131, Level = 56, Locations = new[] {130, 134, 138, 154}, Weather = Normal | Stormy | Icy | Heavy_Fog }, // Lapras at North/East/South Lake Miloch/Axewell, the Lake of Outrage
|
||||
new(SWSH) { Species = 612, Level = 60, Location = 132, Ability = 1, Weather = Normal | Overcast | Raining | Intense_Sun | Sandstorm | Heavy_Fog }, // Haxorus on Axew’s Eye
|
||||
new(SWSH) { Species = 612, Level = 60, Location = 132, Ability = OnlyFirst, Weather = Normal | Overcast | Raining | Intense_Sun | Sandstorm | Heavy_Fog }, // Haxorus on Axew’s Eye
|
||||
new(SWSH) { Species = 845, Level = 65, Location = 132, Weather = All }, // Cramorant on Axew’s Eye
|
||||
new(SWSH) { Species = 537, Level = 60, Location = 132, Weather = Thunderstorm }, // Seismitoad on Axew’s Eye
|
||||
new(SWSH) { Species = 460, Level = 60, Location = 132, Weather = Icy }, // Abomasnow on Axew’s Eye
|
||||
@@ -192,7 +193,7 @@ static Encounters8()
|
||||
new EncounterStatic8S(SWSH) { Species = 426, Level = 46, Locations = new[] {134, 138}, Weather = Normal | Overcast | Snowstorm | Heavy_Fog }, // Drifblim at North/South Lake Miloch
|
||||
new EncounterStatic8S(SWSH) { Species = 130, Level = 60, Locations = new[] {134, 138, 154 }, Weather = Normal | Overcast | Stormy | Intense_Sun | Icy | Sandstorm }, // Gyarados at North/South Lake Miloch, the Lake of Outrage
|
||||
new EncounterStatic8S(SWSH) { Species = 593, Level = 46, Locations = new[] {134, 142}, Weather = Raining | Heavy_Fog }, // Jellicent at South Lake Miloch, Bridge Field
|
||||
new EncounterStatic8S(SWSH) { Species = 350, Level = 60, Locations = new[] {134, 154}, Gender = 0, Ability = 1, Weather = Heavy_Fog }, // Milotic at South Lake Miloch, the Lake of Outrage
|
||||
new EncounterStatic8S(SWSH) { Species = 350, Level = 60, Locations = new[] {134, 154}, Gender = 0, Ability = OnlyFirst, Weather = Heavy_Fog }, // Milotic at South Lake Miloch, the Lake of Outrage
|
||||
new(SWSH) { Species = 208, Level = 50, Location = 136, Weather = All }, // Steelix near the Giant’s Seat
|
||||
new(SWSH) { Species = 738, Level = 46, Location = 136, Weather = Normal | Overcast | Intense_Sun | Sandstorm }, // Vikavolt near the Giant’s Seat
|
||||
new(SWSH) { Species = 112, Level = 46, Location = 136 }, // Rhydon near the Giant’s Seat
|
||||
@@ -221,7 +222,7 @@ static Encounters8()
|
||||
new(SWSH) { Species = 143, Level = 36, Location = 140, Weather = Normal | Overcast | Stormy | Intense_Sun | Icy | Sandstorm }, // Snorlax at the Motostoke Riverbank
|
||||
new(SWSH) { Species = 452, Level = 40, Location = 140, Weather = Normal | Stormy | Intense_Sun | Sandstorm }, // Drapion at the Motostoke Riverbank
|
||||
new(SWSH) { Species = 561, Level = 36, Location = 140, Weather = All }, // Sigilyph at the Motostoke Riverbank
|
||||
new(SWSH) { Species = 534, Level = 55, Location = 140, Ability = 1, Weather = Normal | Overcast | Stormy | Snowing | Heavy_Fog }, // Conkeldurr at the Motostoke Riverbank
|
||||
new(SWSH) { Species = 534, Level = 55, Location = 140, Ability = OnlyFirst, Weather = Normal | Overcast | Stormy | Snowing | Heavy_Fog }, // Conkeldurr at the Motostoke Riverbank
|
||||
new(SWSH) { Species = 320, Level = 56, Location = 140, Weather = All }, // Wailmer at the Motostoke Riverbank
|
||||
new(SWSH) { Species = 561, Level = 40, Location = 140, Weather = Normal | Overcast | Heavy_Fog }, // Sigilyph at the Motostoke Riverbank
|
||||
new(SWSH) { Species = 830, Level = 65, Location = 140, Weather = All }, // Eldegoss at the Motostoke Riverbank
|
||||
@@ -270,7 +271,7 @@ static Encounters8()
|
||||
new(SWSH) { Species = 750, Level = 41, Location = 146, Weather = Normal | Intense_Sun | Sandstorm }, // Mudsdale in Dusty Bowl
|
||||
new(SWSH) { Species = 185, Level = 41, Location = 146, Weather = Normal | Overcast | Intense_Sun | Icy | Sandstorm | Heavy_Fog }, // Sudowoodo in Dusty Bowl
|
||||
new(SWSH) { Species = 437, Level = 41, Location = 146, Weather = Normal | Stormy | Icy | Heavy_Fog }, // Bronzong in Dusty Bowl
|
||||
new(SW ) { Species = 784, Level = 60, Location = 146, Ability = 1, Weather = Normal | Intense_Sun | Icy | Sandstorm | Heavy_Fog }, // Kommo-o in Dusty Bowl
|
||||
new(SW ) { Species = 784, Level = 60, Location = 146, Ability = OnlyFirst, Weather = Normal | Intense_Sun | Icy | Sandstorm | Heavy_Fog }, // Kommo-o in Dusty Bowl
|
||||
new( SH) { Species = 248, Level = 60, Location = 146, Weather = Normal | Intense_Sun | Icy | Sandstorm | Heavy_Fog }, // Tyranitar in Dusty Bowl
|
||||
new(SWSH) { Species = 213, Level = 34, Location = 146, Weather = All }, // Shuckle in Dusty Bowl
|
||||
new(SWSH) { Species = 330, Level = 51, Location = 146, Weather = Normal | Sandstorm }, // Flygon in Dusty Bowl
|
||||
@@ -286,7 +287,7 @@ static Encounters8()
|
||||
new(SWSH) { Species = 623, Level = 51, Location = 146, Weather = Overcast | Stormy | Icy | Sandstorm | Heavy_Fog }, // Golurk in Dusty Bowl
|
||||
new EncounterStatic8S(SWSH) { Species = 423, Level = 56, Locations = new[] {146, 148}, Form = 01, Weather = All }, // Gastrodon in Dusty Bowl, Giant’s Mirror
|
||||
new(SWSH) { Species = 208, Level = 50, Location = 148, Weather = All }, // Steelix around the Giant’s Mirror
|
||||
new(SWSH) { Species = 068, Level = 60, Location = 148, Ability = 1, Weather = All }, // Machamp around the Giant’s Mirror
|
||||
new(SWSH) { Species = 068, Level = 60, Location = 148, Ability = OnlyFirst, Weather = All }, // Machamp around the Giant’s Mirror
|
||||
new(SWSH) { Species = 182, Level = 41, Location = 148, Weather = Normal | Intense_Sun | Heavy_Fog }, // Bellossom around the Giant’s Mirror
|
||||
new(SWSH) { Species = 521, Level = 41, Location = 148, Weather = Normal | Overcast | Intense_Sun }, // Unfezant around the Giant’s Mirror
|
||||
new(SWSH) { Species = 045, Level = 41, Location = 148, Weather = Overcast | Stormy | Icy | Sandstorm }, // Vileplume around the Giant’s Mirror
|
||||
@@ -429,7 +430,7 @@ static Encounters8()
|
||||
new(SWSH) { Species = 184, Level = 27, Location = 170, Weather = Heavy_Fog }, // Azumarill on Challenge Beach
|
||||
new(SWSH) { Species = 549, Level = 26, Location = 170, Weather = Intense_Sun }, // Lilligant on Challenge Beach
|
||||
new(SWSH) { Species = 845, Level = 24, Location = 170, Weather = Normal | Overcast | Raining | Intense_Sun | Heavy_Fog }, // Cramorant on Challenge Beach
|
||||
new(SWSH) { Species = 055, Level = 27, Location = 170, Ability = 2, Weather = Thunderstorm | Intense_Sun }, // Golduck on Challenge Beach
|
||||
new(SWSH) { Species = 055, Level = 27, Location = 170, Ability = OnlySecond, Weather = Thunderstorm | Intense_Sun }, // Golduck on Challenge Beach
|
||||
new(SWSH) { Species = 702, Level = 25, Location = 170, Weather = Normal | Stormy }, // Dedenne on Challenge Beach
|
||||
//new(SWSH) { Species = 113, Level = 27, Location = -1 }, // Chansey
|
||||
new(SWSH) { Species = 405, Level = 36, Location = 170, Weather = Thunderstorm }, // Luxray on Challenge Beach
|
||||
@@ -563,28 +564,28 @@ static Encounters8()
|
||||
#endregion
|
||||
|
||||
#region R2 Static Encounters
|
||||
new EncounterStatic8S(SWSH) { Species = 144, Level = 70, Locations = new[] {208, 210, 212, 214}, Moves = new[] {821,542,427,375}, FlawlessIVCount = 3, Shiny = Never, Ability = 1, Form = 01, Weather = All_CT }, // Articuno-1 in the Crown Tundra
|
||||
new EncounterStatic8S(SWSH) { Species = 145, Level = 70, Locations = new[] {122, 124, 126, 128, 130}, Moves = new[] {823,065,179,116}, FlawlessIVCount = 3, Shiny = Never, Ability = 1, Form = 01, Weather = All }, // Zapdos-1 in a Wild Area
|
||||
new EncounterStatic8S(SWSH) { Species = 146, Level = 70, Locations = new[] {164, 166, 170, 178, 186, 188, 190, 192}, Moves = new[] {822,542,389,417}, FlawlessIVCount = 3, Shiny = Never, Ability = 1, Form = 01, Weather = All_IoA }, // Moltres-1 on the Isle of Armor
|
||||
new(SWSH) { Species = 377, Level = 70, Location = 236, ScriptedNoMarks = true, Moves = new[] {276,444,359,174}, FlawlessIVCount = 3, Ability = 1 }, // Regirock
|
||||
new(SWSH) { Species = 378, Level = 70, Location = 238, ScriptedNoMarks = true, Moves = new[] {058,192,133,196}, FlawlessIVCount = 3, Ability = 1 }, // Regice
|
||||
new(SWSH) { Species = 379, Level = 70, Location = 240, ScriptedNoMarks = true, Moves = new[] {484,430,334,451}, FlawlessIVCount = 3, Ability = 1 }, // Registeel
|
||||
new(SWSH) { Species = 894, Level = 70, Location = 242, ScriptedNoMarks = true, Moves = new[] {819,527,245,393}, FlawlessIVCount = 3, Ability = 1 }, // Regieleki
|
||||
new(SWSH) { Species = 895, Level = 70, Location = 242, ScriptedNoMarks = true, Moves = new[] {820,337,359,673}, FlawlessIVCount = 3, Ability = 1 }, // Regidrago
|
||||
new(SWSH) { Species = 486, Level =100, Location = 210, ScriptedNoMarks = true, Moves = new[] {416,428,359,462}, FlawlessIVCount = 3, Ability = 1, DynamaxLevel = 10 }, // Regigigas in the Giant’s Bed
|
||||
new(SWSH) { Species = 638, Level = 70, Location = 226, FlawlessIVCount = 3, Ability = 1, Weather = No_Sun_Sand }, // Cobalion at the Frigid Sea
|
||||
new(SWSH) { Species = 639, Level = 70, Location = 232, FlawlessIVCount = 3, Ability = 1, Weather = Overcast }, // Terrakion in Lakeside Cavern
|
||||
new(SWSH) { Species = 640, Level = 70, Location = 210, FlawlessIVCount = 3, Ability = 1, Weather = All_CT }, // Virizion at Giant's Bed
|
||||
new(SWSH) { Species = 647, Level = 65, Location = 230, Moves = new[] {548,533,014,056}, FlawlessIVCount = 3, Shiny = Never, Ability = 1, Form = 01, Fateful = true, Weather = All_Ballimere }, // Keldeo-1 at Ballimere Lake
|
||||
//new(SWSH) { Species = 896, Level = 75, Location = -1, Moves = new[] {556,037,419,023}, FlawlessIVCount = 3, Shiny = Never, Ability = 1 }, // Glastrier
|
||||
//new(SWSH) { Species = 897, Level = 75, Location = -1, Moves = new[] {247,037,506,024}, FlawlessIVCount = 3, Shiny = Never, Ability = 1 }, // Spectrier
|
||||
new(SWSH) { Species = 898, Level = 80, Location = 220, Moves = new[] {202,094,473,505}, FlawlessIVCount = 3, Shiny = Never, Ability = 1, ScriptedNoMarks = true }, // Calyrex
|
||||
new(SWSH) { Species = 442, Level = 72, Location = 230, FlawlessIVCount = 3, Ability = 4, Weather = All_Ballimere }, // Spiritomb at Ballimere Lake
|
||||
new EncounterStatic8S(SWSH) { Species = 144, Level = 70, Locations = new[] {208, 210, 212, 214}, Moves = new[] {821,542,427,375}, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst, Form = 01, Weather = All_CT }, // Articuno-1 in the Crown Tundra
|
||||
new EncounterStatic8S(SWSH) { Species = 145, Level = 70, Locations = new[] {122, 124, 126, 128, 130}, Moves = new[] {823,065,179,116}, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst, Form = 01, Weather = All }, // Zapdos-1 in a Wild Area
|
||||
new EncounterStatic8S(SWSH) { Species = 146, Level = 70, Locations = new[] {164, 166, 170, 178, 186, 188, 190, 192}, Moves = new[] {822,542,389,417}, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst, Form = 01, Weather = All_IoA }, // Moltres-1 on the Isle of Armor
|
||||
new(SWSH) { Species = 377, Level = 70, Location = 236, ScriptedNoMarks = true, Moves = new[] {276,444,359,174}, FlawlessIVCount = 3, Ability = OnlyFirst }, // Regirock
|
||||
new(SWSH) { Species = 378, Level = 70, Location = 238, ScriptedNoMarks = true, Moves = new[] {058,192,133,196}, FlawlessIVCount = 3, Ability = OnlyFirst }, // Regice
|
||||
new(SWSH) { Species = 379, Level = 70, Location = 240, ScriptedNoMarks = true, Moves = new[] {484,430,334,451}, FlawlessIVCount = 3, Ability = OnlyFirst }, // Registeel
|
||||
new(SWSH) { Species = 894, Level = 70, Location = 242, ScriptedNoMarks = true, Moves = new[] {819,527,245,393}, FlawlessIVCount = 3, Ability = OnlyFirst }, // Regieleki
|
||||
new(SWSH) { Species = 895, Level = 70, Location = 242, ScriptedNoMarks = true, Moves = new[] {820,337,359,673}, FlawlessIVCount = 3, Ability = OnlyFirst }, // Regidrago
|
||||
new(SWSH) { Species = 486, Level =100, Location = 210, ScriptedNoMarks = true, Moves = new[] {416,428,359,462}, FlawlessIVCount = 3, Ability = OnlyFirst, DynamaxLevel = 10 }, // Regigigas in the Giant’s Bed
|
||||
new(SWSH) { Species = 638, Level = 70, Location = 226, FlawlessIVCount = 3, Ability = OnlyFirst, Weather = No_Sun_Sand }, // Cobalion at the Frigid Sea
|
||||
new(SWSH) { Species = 639, Level = 70, Location = 232, FlawlessIVCount = 3, Ability = OnlyFirst, Weather = Overcast }, // Terrakion in Lakeside Cavern
|
||||
new(SWSH) { Species = 640, Level = 70, Location = 210, FlawlessIVCount = 3, Ability = OnlyFirst, Weather = All_CT }, // Virizion at Giant's Bed
|
||||
new(SWSH) { Species = 647, Level = 65, Location = 230, Moves = new[] {548,533,014,056}, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst, Form = 01, Fateful = true, Weather = All_Ballimere }, // Keldeo-1 at Ballimere Lake
|
||||
//new(SWSH) { Species = 896, Level = 75, Location = -1, Moves = new[] {556,037,419,023}, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst }, // Glastrier
|
||||
//new(SWSH) { Species = 897, Level = 75, Location = -1, Moves = new[] {247,037,506,024}, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst }, // Spectrier
|
||||
new(SWSH) { Species = 898, Level = 80, Location = 220, Moves = new[] {202,094,473,505}, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst, ScriptedNoMarks = true }, // Calyrex
|
||||
new(SWSH) { Species = 442, Level = 72, Location = 230, FlawlessIVCount = 3, Ability = OnlyHidden, Weather = All_Ballimere }, // Spiritomb at Ballimere Lake
|
||||
|
||||
// suspected unused or uncatchable
|
||||
//new(SWSH) { Species = 803, Level = 60, Location = -1, FlawlessIVCount = 3, Shiny = Never, Ability = 1 }, // Poipole
|
||||
//new(SWSH) { Species = 789, Level = 60, Location = -1, FlawlessIVCount = 3, Shiny = Never, Ability = 1 }, // Cosmog
|
||||
//new(SWSH) { Species = 494, Level = 70, Location = -1, FlawlessIVCount = 3, Shiny = Never, Ability = 1 }, // Victini
|
||||
//new(SWSH) { Species = 803, Level = 60, Location = -1, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst }, // Poipole
|
||||
//new(SWSH) { Species = 789, Level = 60, Location = -1, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst }, // Cosmog
|
||||
//new(SWSH) { Species = 494, Level = 70, Location = -1, FlawlessIVCount = 3, Shiny = Never, Ability = OnlyFirst }, // Victini
|
||||
|
||||
new(SWSH) { Species = 473, Level = 65, Location = 204, Weather = Normal | Overcast | Intense_Sun | Icy }, // Mamoswine on Slippery Slope
|
||||
new(SWSH) { Species = 460, Level = 65, Location = 204, Weather = Snowing }, // Abomasnow on Slippery Slope
|
||||
@@ -767,32 +768,32 @@ static Encounters8()
|
||||
|
||||
private static readonly EncounterTrade8[] TradeGift_Regular =
|
||||
{
|
||||
new(SWSH, 052,18,08,000,04,5) { Ability = 2, TID7 = 263455, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 0, Gender = 0, Nature = Nature.Timid, Relearn = new[] {387,000,000,000} }, // Meowth
|
||||
new(SWSH, 819,10,01,044,01,2) { Ability = 1, TID7 = 648753, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 1, Gender = 0, Nature = Nature.Mild }, // Skwovet
|
||||
new(SWSH, 546,23,11,000,09,5) { Ability = 1, TID7 = 101154, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 1, Gender = 1, Nature = Nature.Modest }, // Cottonee
|
||||
new(SWSH, 175,25,02,010,10,6) { Ability = 2, TID7 = 109591, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 1, Gender = 0, Nature = Nature.Timid, Relearn = new[] {791,000,000,000} }, // Togepi
|
||||
new(SW , 856,30,09,859,08,3) { Ability = 2, TID7 = 101101, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 0, Gender = 1, Nature = Nature.Quiet }, // Hatenna
|
||||
new( SH, 859,30,43,000,07,6) { Ability = 1, TID7 = 256081, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 0, Gender = 0, Nature = Nature.Brave, Relearn = new[] {252,000,000,000} }, // Impidimp
|
||||
new(SWSH, 562,35,16,310,15,5) { Ability = 1, TID7 = 102534, IVs = TradeIVs, DynamaxLevel = 2, OTGender = 1, Gender = 0, Nature = Nature.Bold, Relearn = new[] {261,000,000,000} }, // Yamask
|
||||
new(SW , 538,37,17,129,20,7) { Ability = 2, TID7 = 768945, IVs = TradeIVs, DynamaxLevel = 2, OTGender = 0, Gender = 0, Nature = Nature.Adamant }, // Throh
|
||||
new( SH, 539,37,17,129,14,6) { Ability = 1, TID7 = 881426, IVs = TradeIVs, DynamaxLevel = 2, OTGender = 0, Gender = 0, Nature = Nature.Adamant }, // Sawk
|
||||
new(SWSH, 122,40,56,000,12,4) { Ability = 1, TID7 = 891846, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 0, Gender = 0, Nature = Nature.Calm }, // Mr. Mime
|
||||
new(SWSH, 884,50,15,038,06,2) { Ability = 2, TID7 = 101141, IVs = TradeIVs, DynamaxLevel = 3, OTGender = 0, Gender = 0, Nature = Nature.Adamant, Relearn = new[] {400,000,000,000} }, // Duraludon
|
||||
new(SWSH, 052,18,08,000,04,5) { Ability = OnlySecond, TID7 = 263455, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 0, Gender = 0, Nature = Nature.Timid, Relearn = new[] {387,000,000,000} }, // Meowth
|
||||
new(SWSH, 819,10,01,044,01,2) { Ability = OnlyFirst, TID7 = 648753, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 1, Gender = 0, Nature = Nature.Mild }, // Skwovet
|
||||
new(SWSH, 546,23,11,000,09,5) { Ability = OnlyFirst, TID7 = 101154, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 1, Gender = 1, Nature = Nature.Modest }, // Cottonee
|
||||
new(SWSH, 175,25,02,010,10,6) { Ability = OnlySecond, TID7 = 109591, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 1, Gender = 0, Nature = Nature.Timid, Relearn = new[] {791,000,000,000} }, // Togepi
|
||||
new(SW , 856,30,09,859,08,3) { Ability = OnlySecond, TID7 = 101101, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 0, Gender = 1, Nature = Nature.Quiet }, // Hatenna
|
||||
new( SH, 859,30,43,000,07,6) { Ability = OnlyFirst, TID7 = 256081, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 0, Gender = 0, Nature = Nature.Brave, Relearn = new[] {252,000,000,000} }, // Impidimp
|
||||
new(SWSH, 562,35,16,310,15,5) { Ability = OnlyFirst, TID7 = 102534, IVs = TradeIVs, DynamaxLevel = 2, OTGender = 1, Gender = 0, Nature = Nature.Bold, Relearn = new[] {261,000,000,000} }, // Yamask
|
||||
new(SW , 538,37,17,129,20,7) { Ability = OnlySecond, TID7 = 768945, IVs = TradeIVs, DynamaxLevel = 2, OTGender = 0, Gender = 0, Nature = Nature.Adamant }, // Throh
|
||||
new( SH, 539,37,17,129,14,6) { Ability = OnlyFirst, TID7 = 881426, IVs = TradeIVs, DynamaxLevel = 2, OTGender = 0, Gender = 0, Nature = Nature.Adamant }, // Sawk
|
||||
new(SWSH, 122,40,56,000,12,4) { Ability = OnlyFirst, TID7 = 891846, IVs = TradeIVs, DynamaxLevel = 1, OTGender = 0, Gender = 0, Nature = Nature.Calm }, // Mr. Mime
|
||||
new(SWSH, 884,50,15,038,06,2) { Ability = OnlySecond, TID7 = 101141, IVs = TradeIVs, DynamaxLevel = 3, OTGender = 0, Gender = 0, Nature = Nature.Adamant, Relearn = new[] {400,000,000,000} }, // Duraludon
|
||||
};
|
||||
|
||||
private static readonly EncounterTrade8[] TradeGift_R1 =
|
||||
{
|
||||
new(SWSH, 052,15,01,033,04,2) { Ability = 4, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {387,000,000,000} }, // Meowth
|
||||
new(SW , 083,15,01,013,10,2) { Ability = 4, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {098,000,000,000} }, // Farfetch’d
|
||||
new( SH, 222,15,01,069,12,2) { Ability = 4, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {457,000,000,000} }, // Corsola
|
||||
new( SH, 077,15,01,047,06,2) { Ability = 4, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {234,000,000,000} }, // Ponyta
|
||||
new(SWSH, 122,15,01,005,04,2) { Ability = 4, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {252,000,000,000} }, // Mr. Mime
|
||||
new(SW , 554,15,01,040,12,2) { Ability = 4, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {326,000,000,000} }, // Darumaka
|
||||
new(SWSH, 263,15,01,045,04,2) { Ability = 4, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {245,000,000,000} }, // Zigzagoon
|
||||
new(SWSH, 618,15,01,050,05,2) { Ability = 4, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {281,000,000,000} }, // Stunfisk
|
||||
new(SWSH, 110,15,01,040,12,2) { Ability =-1, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {220,000,000,000} }, // Weezing
|
||||
new(SWSH, 103,15,01,038,06,2) { TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {246,000,000,000}, Form = 1 }, // Exeggutor-1
|
||||
new(SWSH, 105,15,01,038,06,2) { TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {174,000,000,000}, Form = 1 }, // Marowak-1
|
||||
new(SWSH, 052,15,01,033,04,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {387,000,000,000} }, // Meowth
|
||||
new(SW , 083,15,01,013,10,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {098,000,000,000} }, // Farfetch’d
|
||||
new( SH, 222,15,01,069,12,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {457,000,000,000} }, // Corsola
|
||||
new( SH, 077,15,01,047,06,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {234,000,000,000} }, // Ponyta
|
||||
new(SWSH, 122,15,01,005,04,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {252,000,000,000} }, // Mr. Mime
|
||||
new(SW , 554,15,01,040,12,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {326,000,000,000} }, // Darumaka
|
||||
new(SWSH, 263,15,01,045,04,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {245,000,000,000} }, // Zigzagoon
|
||||
new(SWSH, 618,15,01,050,05,2) { Ability = OnlyHidden, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {281,000,000,000} }, // Stunfisk
|
||||
new(SWSH, 110,15,01,040,12,2) { Ability = Any12H, TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {220,000,000,000} }, // Weezing
|
||||
new(SWSH, 103,15,01,038,06,2) { TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {246,000,000,000}, Form = 1 }, // Exeggutor-1
|
||||
new(SWSH, 105,15,01,038,06,2) { TID7 = 101141, FlawlessIVCount = 3, DynamaxLevel = 5, OTGender = 1, Shiny = Random, IsNicknamed = false, Relearn = new[] {174,000,000,000}, Form = 1 }, // Marowak-1
|
||||
};
|
||||
|
||||
internal static readonly EncounterTrade8[] TradeGift_SWSH = ArrayUtil.ConcatAll(TradeGift_Regular, TradeGift_R1);
|
||||
|
||||
@@ -449,11 +449,11 @@ internal static partial class Encounters8Nest
|
||||
};
|
||||
|
||||
// Abilities Allowed
|
||||
private const int A0 = 1; // 1 only
|
||||
private const int A1 = 2; // 2 only
|
||||
private const int A2 = 4; // Ability 4 only
|
||||
private const int A3 = 0; // 1/2 only
|
||||
private const int A4 = -1; // 1/2/H
|
||||
private const AbilityPermission A0 = AbilityPermission.OnlyFirst;
|
||||
private const AbilityPermission A1 = AbilityPermission.OnlySecond;
|
||||
private const AbilityPermission A2 = AbilityPermission.OnlyHidden;
|
||||
private const AbilityPermission A3 = AbilityPermission.Any12;
|
||||
private const AbilityPermission A4 = AbilityPermission.Any12H;
|
||||
|
||||
internal const int SharedNest = 162;
|
||||
internal const int Watchtower = 126;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using static PKHeX.Core.EncounterUtil;
|
||||
using static PKHeX.Core.Shiny;
|
||||
using static PKHeX.Core.GameVersion;
|
||||
using static PKHeX.Core.AbilityPermission;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
@@ -38,8 +39,8 @@ internal static class Encounters8b
|
||||
new (BDSP) { Gift = true, Species = 410, Level = 01, Location = 049, FlawlessIVCount = 3 }, // Shieldon
|
||||
|
||||
// Game-specific gifts
|
||||
new (BDSP) { Gift = true, Species = 151, Level = 01, Ability = 2, Location = 438, Shiny = Never, FlawlessIVCount = 3, Fateful = true }, // Mew
|
||||
new (BDSP) { Gift = true, Species = 385, Level = 05, Ability = 2, Location = 438, Shiny = Never, FlawlessIVCount = 3, Fateful = true }, // Jirachi
|
||||
new (BDSP) { Gift = true, Species = 151, Level = 01, Ability = OnlySecond, Location = 438, Shiny = Never, FlawlessIVCount = 3, Fateful = true }, // Mew
|
||||
new (BDSP) { Gift = true, Species = 385, Level = 05, Ability = OnlySecond, Location = 438, Shiny = Never, FlawlessIVCount = 3, Fateful = true }, // Jirachi
|
||||
|
||||
// Stationary
|
||||
new (BDSP) { Species = 425, Level = 22, Location = 197 }, // Drifloon
|
||||
@@ -65,25 +66,25 @@ internal static class Encounters8b
|
||||
//new (BDSP) { Species = 493, Level = 80, Location = 218, FlawlessIVCount = 3, Fateful = true }, // Arceus
|
||||
|
||||
// Ramanas Park (Pure Space)
|
||||
new ( SP) { Species = 144, Level = 70, Ability = 4, Location = 506, FlawlessIVCount = 3 }, // Articuno
|
||||
new ( SP) { Species = 145, Level = 70, Ability = 4, Location = 506, FlawlessIVCount = 3 }, // Zapdos
|
||||
new ( SP) { Species = 146, Level = 70, Ability = 4, Location = 506, FlawlessIVCount = 3 }, // Moltres
|
||||
new (BD ) { Species = 243, Level = 70, Ability = 4, Location = 506, FlawlessIVCount = 3 }, // Raikou
|
||||
new (BD ) { Species = 244, Level = 70, Ability = 4, Location = 506, FlawlessIVCount = 3 }, // Entei
|
||||
new (BD ) { Species = 245, Level = 70, Ability = 4, Location = 506, FlawlessIVCount = 3 }, // Suicune
|
||||
new (BDSP) { Species = 377, Level = 70, Ability = 4, Location = 506, FlawlessIVCount = 3 }, // Regirock
|
||||
new (BDSP) { Species = 378, Level = 70, Ability = 4, Location = 506, FlawlessIVCount = 3 }, // Regice
|
||||
new (BDSP) { Species = 379, Level = 70, Ability = 4, Location = 506, FlawlessIVCount = 3 }, // Registeel
|
||||
new (BDSP) { Species = 380, Level = 70, Location = 506, FlawlessIVCount = 3 }, // Latias
|
||||
new (BDSP) { Species = 381, Level = 70, Location = 506, FlawlessIVCount = 3 }, // Latios
|
||||
new ( SP) { Species = 144, Level = 70, Location = 506, FlawlessIVCount = 3, Ability = OnlyHidden }, // Articuno
|
||||
new ( SP) { Species = 145, Level = 70, Location = 506, FlawlessIVCount = 3, Ability = OnlyHidden }, // Zapdos
|
||||
new ( SP) { Species = 146, Level = 70, Location = 506, FlawlessIVCount = 3, Ability = OnlyHidden }, // Moltres
|
||||
new (BD ) { Species = 243, Level = 70, Location = 506, FlawlessIVCount = 3, Ability = OnlyHidden }, // Raikou
|
||||
new (BD ) { Species = 244, Level = 70, Location = 506, FlawlessIVCount = 3, Ability = OnlyHidden }, // Entei
|
||||
new (BD ) { Species = 245, Level = 70, Location = 506, FlawlessIVCount = 3, Ability = OnlyHidden }, // Suicune
|
||||
new (BDSP) { Species = 377, Level = 70, Location = 506, FlawlessIVCount = 3, Ability = OnlyHidden }, // Regirock
|
||||
new (BDSP) { Species = 378, Level = 70, Location = 506, FlawlessIVCount = 3, Ability = OnlyHidden }, // Regice
|
||||
new (BDSP) { Species = 379, Level = 70, Location = 506, FlawlessIVCount = 3, Ability = OnlyHidden }, // Registeel
|
||||
new (BDSP) { Species = 380, Level = 70, Location = 506, FlawlessIVCount = 3 }, // Latias
|
||||
new (BDSP) { Species = 381, Level = 70, Location = 506, FlawlessIVCount = 3 }, // Latios
|
||||
|
||||
// Ramanas Park (Strange Space)
|
||||
new (BDSP) { Species = 150, Level = 70, Ability = 4, Location = 507, FlawlessIVCount = 3 }, // Mewtwo
|
||||
new ( SP) { Species = 249, Level = 70, Ability = 4, Location = 507, FlawlessIVCount = 3 }, // Lugia
|
||||
new (BD ) { Species = 250, Level = 70, Ability = 4, Location = 507, FlawlessIVCount = 3 }, // Ho-Oh
|
||||
new (BDSP) { Species = 382, Level = 70, Location = 507, FlawlessIVCount = 3 }, // Kyogre
|
||||
new (BDSP) { Species = 383, Level = 70, Location = 507, FlawlessIVCount = 3 }, // Groudon
|
||||
new (BDSP) { Species = 384, Level = 70, Location = 507, FlawlessIVCount = 3 }, // Rayquaza
|
||||
new (BDSP) { Species = 150, Level = 70, Location = 507, FlawlessIVCount = 3, Ability = OnlyHidden }, // Mewtwo
|
||||
new ( SP) { Species = 249, Level = 70, Location = 507, FlawlessIVCount = 3, Ability = OnlyHidden }, // Lugia
|
||||
new (BD ) { Species = 250, Level = 70, Location = 507, FlawlessIVCount = 3, Ability = OnlyHidden }, // Ho-Oh
|
||||
new (BDSP) { Species = 382, Level = 70, Location = 507, FlawlessIVCount = 3 }, // Kyogre
|
||||
new (BDSP) { Species = 383, Level = 70, Location = 507, FlawlessIVCount = 3 }, // Groudon
|
||||
new (BDSP) { Species = 384, Level = 70, Location = 507, FlawlessIVCount = 3 }, // Rayquaza
|
||||
};
|
||||
|
||||
internal static readonly EncounterStatic8b[] StaticBD = GetEncounters(Encounter_BDSP, BD);
|
||||
@@ -94,10 +95,10 @@ internal static class Encounters8b
|
||||
|
||||
internal static readonly EncounterTrade8b[] TradeGift_BDSP =
|
||||
{
|
||||
new (BDSP) { Species = 063, Level = 09, Ability = 1, Gender = 0, OTGender = 0, TID = 25643, IVs = new[] {28,10,09,31,11,03}, Moves = new[] {100,000,000,000}, HeightScalar = 029, WeightScalar = 202, Nature = Nature.Quiet }, // Abra
|
||||
new (BDSP) { Species = 441, Level = 15, Ability = 2, Gender = 1, OTGender = 0, TID = 44142, IVs = new[] {17,08,29,25,17,23}, Moves = new[] {448,047,064,045}, HeightScalar = 088, WeightScalar = 091, Nature = Nature.Lonely }, // Chatot
|
||||
new (BDSP) { Species = 093, Level = 33, Ability = 1, Gender = 0, OTGender = 0, TID = 19248, IVs = new[] {18,24,28,02,22,30}, Moves = new[] {247,371,389,109}, HeightScalar = 096, WeightScalar = 208, Nature = Nature.Hasty }, // Haunter
|
||||
new (BDSP) { Species = 129, Level = 45, Ability = 1, Gender = 1, OTGender = 0, TID = 53277, IVs = new[] {03,03,31,02,11,03}, Moves = new[] {150,000,000,000}, HeightScalar = 169, WeightScalar = 068, Nature = Nature.Mild }, // Magikarp
|
||||
new (BDSP) { Species = 063, Level = 09, Ability = OnlyFirst, Gender = 0, OTGender = 0, TID = 25643, IVs = new[] {28,10,09,31,11,03}, Moves = new[] {100,000,000,000}, HeightScalar = 029, WeightScalar = 202, Nature = Nature.Quiet }, // Abra
|
||||
new (BDSP) { Species = 441, Level = 15, Ability = OnlySecond, Gender = 1, OTGender = 0, TID = 44142, IVs = new[] {17,08,29,25,17,23}, Moves = new[] {448,047,064,045}, HeightScalar = 088, WeightScalar = 091, Nature = Nature.Lonely }, // Chatot
|
||||
new (BDSP) { Species = 093, Level = 33, Ability = OnlyFirst, Gender = 0, OTGender = 0, TID = 19248, IVs = new[] {18,24,28,02,22,30}, Moves = new[] {247,371,389,109}, HeightScalar = 096, WeightScalar = 208, Nature = Nature.Hasty }, // Haunter
|
||||
new (BDSP) { Species = 129, Level = 45, Ability = OnlyFirst, Gender = 1, OTGender = 0, TID = 53277, IVs = new[] {03,03,31,02,11,03}, Moves = new[] {150,000,000,000}, HeightScalar = 169, WeightScalar = 068, Nature = Nature.Mild }, // Magikarp
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ public sealed record EncounterEgg(int Species, int Form, int Level, int Generati
|
||||
public int EggLocation => Locations.GetDaycareLocation(Generation, Version);
|
||||
public Ball FixedBall => BallBreedLegality.GetDefaultBall(Version, Species);
|
||||
public Shiny Shiny => Shiny.Random;
|
||||
public int Ability => -1;
|
||||
public AbilityPermission Ability => AbilityPermission.Any12H;
|
||||
|
||||
public bool CanHaveVoltTackle => Species is (int)Core.Species.Pichu && (Generation > 3 || Version is GameVersion.E);
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ public sealed record EncounterInvalid : IEncounterable
|
||||
public string LongName => "Invalid";
|
||||
public int Location => 0;
|
||||
public int EggLocation => 0;
|
||||
public int Ability => 0;
|
||||
public AbilityPermission Ability => AbilityPermission.Any12H;
|
||||
public Ball FixedBall => Ball.None;
|
||||
|
||||
private EncounterInvalid() { }
|
||||
|
||||
@@ -212,11 +212,11 @@ public virtual EncounterMatchRating GetMatchRating(PKM pkm)
|
||||
|
||||
protected virtual HiddenAbilityPermission IsHiddenAbilitySlot() => HiddenAbilityPermission.Never;
|
||||
|
||||
public int Ability => IsHiddenAbilitySlot() switch
|
||||
public AbilityPermission Ability => IsHiddenAbilitySlot() switch
|
||||
{
|
||||
HiddenAbilityPermission.Never => 0,
|
||||
HiddenAbilityPermission.Always => 4,
|
||||
_ => -1,
|
||||
HiddenAbilityPermission.Never => AbilityPermission.Any12,
|
||||
HiddenAbilityPermission.Always => AbilityPermission.OnlyHidden,
|
||||
_ => AbilityPermission.Any12H,
|
||||
};
|
||||
|
||||
private bool IsDeferredWurmple(PKM pkm) => Species == (int)Wurmple && pkm.Species != (int)Wurmple && !WurmpleUtil.IsWurmpleEvoValid(pkm);
|
||||
|
||||
@@ -21,7 +21,7 @@ protected override void SetPINGA(PKM pk, EncounterCriteria criteria)
|
||||
pk.Gender = criteria.GetGender(-1, pi);
|
||||
criteria.SetRandomIVs(pk);
|
||||
|
||||
int num = Ability;
|
||||
var num = Ability;
|
||||
if (IsSOS && pk.FlawlessIVCount < 2)
|
||||
num = 0; // let's fake it as an insufficient chain, no HA possible.
|
||||
var ability = criteria.GetAbilityFromNumber(num);
|
||||
|
||||
@@ -13,7 +13,7 @@ internal record DreamWorldEntry(int Species, int Level, int Move1 = 0, int Move2
|
||||
private void AddTo(GameVersion game, EncounterStatic5[] result, ref int ctr)
|
||||
{
|
||||
var p = (PersonalInfoBW)PersonalTable.B2W2[Species];
|
||||
var a = p.HasHiddenAbility ? 4 : 1;
|
||||
var a = p.HasHiddenAbility ? AbilityPermission.OnlyHidden : AbilityPermission.OnlyFirst;
|
||||
if (Move1 == 0)
|
||||
{
|
||||
result[ctr++] = new EncounterStatic5(game)
|
||||
@@ -37,7 +37,7 @@ private void AddTo(GameVersion game, EncounterStatic5[] result, ref int ctr)
|
||||
result[ctr++] = Create(game, a, Move3);
|
||||
}
|
||||
|
||||
private EncounterStatic5 Create(GameVersion game, int ability, int move) => new(game)
|
||||
private EncounterStatic5 Create(GameVersion game, AbilityPermission ability, int move) => new(game)
|
||||
{
|
||||
Species = Species,
|
||||
Form = Form,
|
||||
|
||||
@@ -19,7 +19,7 @@ public abstract record EncounterStatic(GameVersion Version) : IEncounterable, IM
|
||||
public abstract int Generation { get; }
|
||||
|
||||
public virtual int Location { get; init; }
|
||||
public int Ability { get; init; }
|
||||
public AbilityPermission Ability { get; init; }
|
||||
public Shiny Shiny { get; init; } = Shiny.Random;
|
||||
public int Gender { get; init; } = -1;
|
||||
public int EggLocation { get; init; }
|
||||
|
||||
@@ -14,7 +14,8 @@ public record EncounterStatic5(GameVersion Version) : EncounterStatic(Version)
|
||||
|
||||
protected sealed override bool IsMatchPartial(PKM pkm)
|
||||
{
|
||||
if (Ability == 4 && pkm.AbilityNumber != 4 && pkm.Format <= 7) // BW/2 Jellicent collision with wild surf slot, resolved by duplicating the encounter with any abil
|
||||
// BW/2 Jellicent collision with wild surf slot, resolved by duplicating the encounter with any abil
|
||||
if (Ability == AbilityPermission.OnlyHidden && pkm.AbilityNumber != 4 && pkm.Format <= 7)
|
||||
return true;
|
||||
return base.IsMatchPartial(pkm);
|
||||
}
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
/// <inheritdoc cref="EncounterStatic"/>
|
||||
public sealed record EncounterStatic5DR : EncounterStatic5
|
||||
{
|
||||
public EncounterStatic5DR(int species, int form, int abilityIndex = 4) : base(GameVersion.B2W2)
|
||||
public EncounterStatic5DR(int species, int form, AbilityPermission ability = AbilityPermission.OnlyHidden) : base(GameVersion.B2W2)
|
||||
{
|
||||
Species = species;
|
||||
Form = form;
|
||||
Ability = abilityIndex;
|
||||
Ability = ability;
|
||||
Location = 30015;
|
||||
Gift = true;
|
||||
Ball = 25;
|
||||
|
||||
@@ -19,14 +19,14 @@ protected override void SetPINGA(PKM pk, EncounterCriteria criteria)
|
||||
{
|
||||
int gender = criteria.GetGender(PKX.GetGenderFromPID(Species, PID), pk.PersonalInfo);
|
||||
int nature = (int)Nature;
|
||||
int ability = Ability;
|
||||
int ability = Ability.IsSingleValue(out var index) ? index : 0;
|
||||
|
||||
pk.PID = PID;
|
||||
pk.Gender = gender;
|
||||
SetIVs(pk);
|
||||
|
||||
pk.Nature = nature;
|
||||
pk.RefreshAbility(ability >> 1);
|
||||
pk.RefreshAbility(ability);
|
||||
}
|
||||
|
||||
public override bool IsMatchExact(PKM pkm, DexLevel evo)
|
||||
|
||||
@@ -65,7 +65,7 @@ internal static EncounterStatic7 GetVC1(int species, int metLevel)
|
||||
{
|
||||
Species = species,
|
||||
Gift = true, // Forces Poké Ball
|
||||
Ability = Legal.TransferSpeciesDefaultAbilityGen1(species) ? 1 : 4, // Hidden by default, else first
|
||||
Ability = Legal.TransferSpeciesDefaultAbilityGen1(species) ? AbilityPermission.OnlyFirst : AbilityPermission.OnlyHidden, // Hidden by default, else first
|
||||
Shiny = mew ? Shiny.Never : Shiny.Random,
|
||||
Fateful = mew,
|
||||
Location = Locations.Transfer1,
|
||||
@@ -82,7 +82,7 @@ internal static EncounterStatic7 GetVC2(int species, int metLevel)
|
||||
{
|
||||
Species = species,
|
||||
Gift = true, // Forces Poké Ball
|
||||
Ability = Legal.TransferSpeciesDefaultAbilityGen2(species) ? 1 : 4, // Hidden by default, else first
|
||||
Ability = Legal.TransferSpeciesDefaultAbilityGen2(species) ? AbilityPermission.OnlyFirst : AbilityPermission.OnlyHidden, // Hidden by default, else first
|
||||
Shiny = mew ? Shiny.Never : Shiny.Random,
|
||||
Fateful = fateful,
|
||||
Location = Locations.Transfer2,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using static PKHeX.Core.Encounters8Nest;
|
||||
using static PKHeX.Core.AbilityPermission;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
@@ -23,7 +24,7 @@ public override bool IsMatchExact(PKM pkm, DexLevel evo)
|
||||
return false;
|
||||
|
||||
// Required Ability
|
||||
if (Ability == 4 && pkm.AbilityNumber != 4)
|
||||
if (Ability == AbilityPermission.OnlyHidden && pkm.AbilityNumber != 4)
|
||||
return false; // H
|
||||
|
||||
if (Version != GameVersion.SWSH && pkm.Version != (int)Version && pkm.Met_Location != SharedNest)
|
||||
@@ -42,18 +43,18 @@ public override bool IsMatchExact(PKM pkm, DexLevel evo)
|
||||
|
||||
protected sealed override EncounterMatchRating IsMatchDeferred(PKM pkm)
|
||||
{
|
||||
if (Ability != -1) // Any
|
||||
if (Ability != Any12H)
|
||||
{
|
||||
// HA-Only is a strict match. Ability Capsule and Patch can potentially change these.
|
||||
var num = pkm.AbilityNumber;
|
||||
if (num == 4)
|
||||
{
|
||||
if (Ability is not 4 && !AbilityVerifier.CanAbilityPatch(8, PersonalTable.SWSH.GetFormEntry(Species, Form).Abilities, pkm.Species))
|
||||
if (Ability is not OnlyHidden && !AbilityVerifier.CanAbilityPatch(8, PersonalTable.SWSH.GetFormEntry(Species, Form).Abilities, pkm.Species))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
}
|
||||
else if (num != Ability) // Fixed regular ability
|
||||
else if (Ability.IsSingleValue(out int index) && 1 << index != num) // Fixed regular ability
|
||||
{
|
||||
if (Ability is 1 or 2 && !AbilityVerifier.CanAbilityCapsule(8, PersonalTable.SWSH.GetFormEntry(Species, Form).Abilities))
|
||||
if (Ability is OnlyFirst or OnlySecond && !AbilityVerifier.CanAbilityCapsule(8, PersonalTable.SWSH.GetFormEntry(Species, Form).Abilities))
|
||||
return EncounterMatchRating.DeferredErrors;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ public abstract record EncounterTrade(GameVersion Version) : IEncounterable, IMo
|
||||
|
||||
public int CurrentLevel { get; init; } = -1;
|
||||
public abstract int Location { get; }
|
||||
public int Ability { get; init; }
|
||||
public AbilityPermission Ability { get; init; }
|
||||
public int Gender { get; init; } = -1;
|
||||
public Nature Nature { get; init; } = Nature.Random;
|
||||
public Shiny Shiny { get; init; } = Shiny.Never;
|
||||
|
||||
@@ -93,7 +93,7 @@ protected override void SetPINGA(PKM pk, EncounterCriteria criteria)
|
||||
pk.PID = PID;
|
||||
pk.Nature = (int)(PID % 25);
|
||||
pk.Gender = Gender;
|
||||
pk.RefreshAbility(Ability >> 1);
|
||||
pk.RefreshAbility(Ability.GetSingleValue());
|
||||
SetIVs(pk);
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@ protected override void SetPINGA(PKM pk, EncounterCriteria criteria)
|
||||
pk.PID = PID;
|
||||
pk.Nature = (int)(PID % 25);
|
||||
pk.Gender = Gender;
|
||||
pk.RefreshAbility(Ability >> 1);
|
||||
pk.RefreshAbility(Ability.GetSingleValue());
|
||||
SetIVs(pk);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
using System;
|
||||
|
||||
namespace PKHeX.Core;
|
||||
|
||||
public enum AbilityPermission : sbyte
|
||||
{
|
||||
Any12H = -1,
|
||||
Any12 = 0,
|
||||
OnlyFirst = 1,
|
||||
OnlySecond = 2,
|
||||
OnlyHidden = 4,
|
||||
}
|
||||
|
||||
public static class AbilityPermissionExtensions
|
||||
{
|
||||
public static int GetSingleValue(this AbilityPermission value) => value switch
|
||||
{
|
||||
AbilityPermission.OnlyFirst => 0,
|
||||
AbilityPermission.OnlySecond => 1,
|
||||
AbilityPermission.OnlyHidden => 2,
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(value)),
|
||||
};
|
||||
|
||||
public static bool IsSingleValue(this AbilityPermission value, out int index)
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case AbilityPermission.OnlyFirst: index = 0; return true;
|
||||
case AbilityPermission.OnlySecond: index = 1; return true;
|
||||
case AbilityPermission.OnlyHidden: index = 2; return true;
|
||||
default: index = 0; return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool CanBeHidden(this AbilityPermission value) => value switch
|
||||
{
|
||||
AbilityPermission.Any12H => true,
|
||||
AbilityPermission.OnlyHidden => true,
|
||||
_ => false,
|
||||
};
|
||||
}
|
||||
@@ -152,25 +152,12 @@ public int GetGender(int gender, PersonalInfo pkPersonalInfo)
|
||||
/// <summary>
|
||||
/// Gets a random ability index (0/1/2) to generate, based off an encounter's <see cref="num"/>.
|
||||
/// </summary>
|
||||
public int GetAbilityFromNumber(int num)
|
||||
public int GetAbilityFromNumber(AbilityPermission num)
|
||||
{
|
||||
if (num > 0) // fixed number
|
||||
return num >> 1;
|
||||
if (num.IsSingleValue(out int index)) // fixed number
|
||||
return index;
|
||||
|
||||
bool canBeHidden = num == -1;
|
||||
return GetAbilityIndexPreference(canBeHidden);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a random ability index (0/1/2) to generate, based off an encounter's <see cref="type"/>.
|
||||
/// </summary>
|
||||
/// <remarks>This is used for the Mystery Gift ability type arguments.</remarks>
|
||||
public int GetAbilityFromType(int type)
|
||||
{
|
||||
if ((uint)type < 3)
|
||||
return type;
|
||||
|
||||
bool canBeHidden = type == 4;
|
||||
bool canBeHidden = num.CanBeHidden();
|
||||
return GetAbilityIndexPreference(canBeHidden);
|
||||
}
|
||||
|
||||
@@ -196,13 +183,4 @@ public void SetRandomIVs(PKM pk)
|
||||
pk.IV_SPE = IV_SPE != RandomIV ? IV_SPE : Util.Rand.Next(32);
|
||||
}
|
||||
}
|
||||
|
||||
public enum AbilityPermission : sbyte
|
||||
{
|
||||
Any12H = -1,
|
||||
Any12 = 0,
|
||||
OnlyFirst = 1,
|
||||
OnlySecond = 2,
|
||||
OnlyHidden = 4,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,14 @@ public Xoroshiro128Plus(ulong seed)
|
||||
s1 = XOROSHIRO_CONST;
|
||||
}
|
||||
|
||||
public Xoroshiro128Plus(ulong s0, ulong s1)
|
||||
{
|
||||
this.s0 = s0;
|
||||
this.s1 = s1;
|
||||
}
|
||||
|
||||
public (ulong s0, ulong s1) GetState() => (s0, s1);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private static ulong RotateLeft(ulong x, int k)
|
||||
{
|
||||
|
||||
@@ -26,6 +26,14 @@ public Xoroshiro128Plus8b(ulong seed)
|
||||
s1 = _s1 ^ (_s1 >> 31);
|
||||
}
|
||||
|
||||
public Xoroshiro128Plus8b(ulong s0, ulong s1)
|
||||
{
|
||||
this.s0 = s0;
|
||||
this.s1 = s1;
|
||||
}
|
||||
|
||||
public (ulong s0, ulong s1) GetState() => (s0, s1);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private static ulong RotateLeft(ulong x, int k)
|
||||
{
|
||||
@@ -68,5 +76,25 @@ public uint NextUInt(uint max)
|
||||
var rnd = NextUInt();
|
||||
return rnd - ((rnd / max) * max);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the next random <see cref="ulong"/>.
|
||||
/// </summary>
|
||||
public int NextInt(int start = int.MinValue, int end = int.MaxValue)
|
||||
{
|
||||
var _s0 = s0 & 0xFFFFFFFF;
|
||||
var _s1 = s1 >> 32;
|
||||
|
||||
_s0 ^= (_s0 << 11) & 0xFFFFFFFF;
|
||||
_s0 ^= (_s0 >> 8);
|
||||
_s0 ^= (_s1 ^ (_s1 >> 19));
|
||||
|
||||
// Final calculations and store back to fields
|
||||
s0 = ((s1 & 0xFFFFFFFF) << 32) | (s0 >> 32);
|
||||
s1 = _s0 << 32 | (s1 >> 32);
|
||||
|
||||
var delta = unchecked(end - start);
|
||||
return start + (int)(_s0 % (ulong)delta);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,11 +29,11 @@ public static class RaidRNG
|
||||
ApplyDetailsTo(pk8, seed, IVs, raid.FlawlessIVCount, abil, ratio);
|
||||
}
|
||||
|
||||
private static int RemapAbilityToParam(int a) => a switch
|
||||
private static int RemapAbilityToParam(AbilityPermission a) => a switch
|
||||
{
|
||||
-1 => 254,
|
||||
0 => 255,
|
||||
_ => (a >> 1),
|
||||
AbilityPermission.Any12H => 254,
|
||||
AbilityPermission.Any12 => 255,
|
||||
_ => a.GetSingleValue(),
|
||||
};
|
||||
|
||||
private static int[] GetBlankIVTemplate() => new[] {-1, -1, -1, -1, -1, -1};
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
{
|
||||
public interface IFixedAbilityNumber
|
||||
{
|
||||
int Ability { get; }
|
||||
AbilityPermission Ability { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
namespace PKHeX.Core;
|
||||
|
||||
public interface IResultantShiny
|
||||
{
|
||||
Shiny CanBeShiny { get; }
|
||||
}
|
||||
@@ -112,10 +112,10 @@ private static bool GetWasDual(IReadOnlyList<EvoCriteria> evos, PersonalTable pt
|
||||
private CheckResult VerifyAbility(LegalityAnalysis data, IReadOnlyList<int> abilities, int abilIndex)
|
||||
{
|
||||
var enc = data.EncounterMatch;
|
||||
var eabil = GetEncounterFixedAbilityNumber(enc);
|
||||
var eabil = enc.Ability;
|
||||
if (eabil >= 0)
|
||||
{
|
||||
if ((data.pkm.AbilityNumber == 4) != (eabil == 4))
|
||||
if ((data.pkm.AbilityNumber == 4) != (eabil == AbilityPermission.OnlyHidden))
|
||||
return GetInvalid(LAbilityHiddenFail);
|
||||
if (eabil > 0)
|
||||
return VerifyFixedAbility(data, abilities, AbilityState.CanMismatch, eabil, abilIndex);
|
||||
@@ -132,7 +132,7 @@ private CheckResult VerifyAbility(LegalityAnalysis data, IReadOnlyList<int> abil
|
||||
};
|
||||
}
|
||||
|
||||
private CheckResult VerifyAbility345(LegalityAnalysis data, IEncounterTemplate enc, IReadOnlyList<int> abilities, int abilIndex)
|
||||
private CheckResult VerifyAbility345(LegalityAnalysis data, IEncounterable enc, IReadOnlyList<int> abilities, int abilIndex)
|
||||
{
|
||||
var pkm = data.pkm;
|
||||
int format = pkm.Format;
|
||||
@@ -140,10 +140,10 @@ private CheckResult VerifyAbility345(LegalityAnalysis data, IEncounterTemplate e
|
||||
if (format is (3 or 4 or 5) && abilities[0] != abilities[1]) // 3-4/5 and have 2 distinct abilities now
|
||||
state = VerifyAbilityPreCapsule(data, abilities);
|
||||
|
||||
int encounterAbility = GetEncounterFixedAbilityNumber(enc);
|
||||
var encounterAbility = enc.Ability;
|
||||
if (encounterAbility >= 0)
|
||||
{
|
||||
if ((pkm.AbilityNumber == 4) != (encounterAbility == 4))
|
||||
if ((pkm.AbilityNumber == 4) != (encounterAbility == AbilityPermission.OnlyHidden))
|
||||
return GetInvalid(LAbilityHiddenFail);
|
||||
if (encounterAbility > 0)
|
||||
return VerifyFixedAbility(data, abilities, state, encounterAbility, abilIndex);
|
||||
@@ -156,7 +156,7 @@ private CheckResult VerifyAbility345(LegalityAnalysis data, IEncounterTemplate e
|
||||
return CheckMatch(pkm, abilities, gen, state, enc);
|
||||
}
|
||||
|
||||
private CheckResult VerifyFixedAbility(LegalityAnalysis data, IReadOnlyList<int> abilities, AbilityState state, int encounterAbility, int abilIndex)
|
||||
private CheckResult VerifyFixedAbility(LegalityAnalysis data, IReadOnlyList<int> abilities, AbilityState state, AbilityPermission encounterAbility, int abilIndex)
|
||||
{
|
||||
var pkm = data.pkm;
|
||||
var enc = data.Info.EncounterMatch;
|
||||
@@ -164,12 +164,12 @@ private CheckResult VerifyFixedAbility(LegalityAnalysis data, IReadOnlyList<int>
|
||||
{
|
||||
if (IsAbilityCapsuleModified(pkm, abilities, encounterAbility))
|
||||
return GetValid(LAbilityCapsuleUsed);
|
||||
if (pkm.AbilityNumber != encounterAbility)
|
||||
if (pkm.AbilityNumber != 1 << encounterAbility.GetSingleValue())
|
||||
return INVALID;
|
||||
return VALID;
|
||||
}
|
||||
|
||||
if ((pkm.AbilityNumber == 4) != (encounterAbility == 4))
|
||||
if ((pkm.AbilityNumber == 4) != (encounterAbility == AbilityPermission.OnlyHidden))
|
||||
return GetInvalid(LAbilityHiddenFail);
|
||||
|
||||
bool hasEvolved = enc.Species != pkm.Species;
|
||||
@@ -178,7 +178,7 @@ private CheckResult VerifyFixedAbility(LegalityAnalysis data, IReadOnlyList<int>
|
||||
// Evolving in Gen3 does not mutate the ability bit, so any mismatched abilities will stay mismatched.
|
||||
if (enc.Generation == 3)
|
||||
{
|
||||
if (encounterAbility == 1 << abilIndex)
|
||||
if (encounterAbility.GetSingleValue() == abilIndex)
|
||||
return VALID;
|
||||
|
||||
// If it is in a future game and does not match the fixed ability, then it must match the PID.
|
||||
@@ -192,10 +192,10 @@ private CheckResult VerifyFixedAbility(LegalityAnalysis data, IReadOnlyList<int>
|
||||
return CheckMatch(pkm, abilities, enc.Generation, AbilityState.MustMatch, enc);
|
||||
}
|
||||
|
||||
if (encounterAbility == 1 << abilIndex)
|
||||
if (encounterAbility.GetSingleValue() == abilIndex)
|
||||
return VALID;
|
||||
|
||||
if (pkm.AbilityNumber == encounterAbility)
|
||||
if (pkm.AbilityNumber == 1 << encounterAbility.GetSingleValue())
|
||||
return VALID;
|
||||
|
||||
if (state == AbilityState.CanMismatch || encounterAbility == 0)
|
||||
@@ -440,13 +440,13 @@ private CheckResult GetPIDAbilityMatch(PKM pkm, IReadOnlyList<int> abilities)
|
||||
}
|
||||
|
||||
// Ability Capsule can change between 1/2
|
||||
private static bool IsAbilityCapsuleModified(PKM pkm, IReadOnlyList<int> abilities, int encounterAbility)
|
||||
private static bool IsAbilityCapsuleModified(PKM pkm, IReadOnlyList<int> abilities, AbilityPermission encounterAbility)
|
||||
{
|
||||
if (!CanAbilityCapsule(pkm.Format, abilities))
|
||||
return false;
|
||||
if (pkm.AbilityNumber == 4)
|
||||
return false; // Cannot alter to hidden ability.
|
||||
if (encounterAbility == 4)
|
||||
if (encounterAbility == AbilityPermission.OnlyHidden)
|
||||
return false; // Cannot alter from hidden ability.
|
||||
return true;
|
||||
}
|
||||
@@ -478,11 +478,5 @@ public static bool CanAbilityPatch(int format, IReadOnlyList<int> abilities, int
|
||||
_ => false,
|
||||
};
|
||||
}
|
||||
|
||||
private static int GetEncounterFixedAbilityNumber(IEncounterTemplate enc) => enc switch
|
||||
{
|
||||
IFixedAbilityNumber s => s.Ability,
|
||||
_ => -1,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ public static void SetMaxContestStats(this PKM pk, IEncounterTemplate enc)
|
||||
{
|
||||
if (pk is not IContestStatsMutable s)
|
||||
return;
|
||||
var restrict = GetContestStatRestriction(pk, pk.Generation);
|
||||
var restrict = GetContestStatRestriction(pk, enc.Generation);
|
||||
var baseStat = GetReferenceTemplate(enc);
|
||||
if (restrict == None)
|
||||
return;
|
||||
|
||||
@@ -55,7 +55,7 @@ private void VerifyShiny(LegalityAnalysis data)
|
||||
break;
|
||||
|
||||
// Not wild / forced ability
|
||||
if (s.Gift || s.Ability == 4)
|
||||
if (s.Gift || s.Ability == AbilityPermission.OnlyHidden)
|
||||
break;
|
||||
|
||||
// Forced PID or generated without an encounter
|
||||
|
||||
@@ -114,7 +114,7 @@ public virtual GameVersion Version
|
||||
|
||||
// Properties
|
||||
public virtual int Species { get => -1; set { } }
|
||||
public abstract int Ability { get; }
|
||||
public abstract AbilityPermission Ability { get; }
|
||||
public abstract bool GiftUsed { get; set; }
|
||||
public abstract string CardTitle { get; set; }
|
||||
public abstract int CardID { get; set; }
|
||||
|
||||
@@ -87,7 +87,7 @@ public override string CardTitle
|
||||
public override int TID { get => Gift.TID; set => Gift.TID = value; }
|
||||
public override int SID { get => Gift.SID; set => Gift.SID = value; }
|
||||
public override string OT_Name { get => Gift.OT_Name; set => Gift.OT_Name = value; }
|
||||
public override int Ability => Gift.Ability;
|
||||
public override AbilityPermission Ability => Gift.Ability;
|
||||
|
||||
// ILocation overrides
|
||||
public override int Location { get => IsEgg ? 0 : Gift.EggLocation + 3000; set { } }
|
||||
|
||||
@@ -285,17 +285,17 @@ private void SetPINGA(PKM pk, EncounterCriteria criteria)
|
||||
private int GetAbilityIndex(EncounterCriteria criteria) => AbilityType switch
|
||||
{
|
||||
00 or 01 or 02 => AbilityType, // Fixed 0/1/2
|
||||
03 or 04 => criteria.GetAbilityFromType(AbilityType), // 0/1 or 0/1/H
|
||||
03 or 04 => criteria.GetAbilityFromNumber(Ability), // 0/1 or 0/1/H
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(AbilityType)),
|
||||
};
|
||||
|
||||
public override int Ability => AbilityType switch
|
||||
public override AbilityPermission Ability => AbilityType switch
|
||||
{
|
||||
0 => 1,
|
||||
1 => 2,
|
||||
2 => 4,
|
||||
3 => 0,
|
||||
_ => -1,
|
||||
0 => AbilityPermission.OnlyFirst,
|
||||
1 => AbilityPermission.OnlySecond,
|
||||
2 => AbilityPermission.OnlyHidden,
|
||||
3 => AbilityPermission.Any12,
|
||||
_ => AbilityPermission.Any12H,
|
||||
};
|
||||
|
||||
private void SetPID(PKM pk, int av)
|
||||
|
||||
@@ -25,7 +25,7 @@ public override int Ball
|
||||
set { if (IsPokémon) PK.Ball = value; }
|
||||
}
|
||||
|
||||
public override int Ability => IsManaphyEgg ? 0 : 1 + (int)(PK.PID & 1);
|
||||
public override AbilityPermission Ability => IsManaphyEgg ? AbilityPermission.Any12 : (int)(PK.PID & 1) == 1 ? AbilityPermission.OnlySecond : AbilityPermission.OnlyFirst;
|
||||
|
||||
private enum GiftType
|
||||
{
|
||||
|
||||
@@ -424,17 +424,17 @@ private void SetPINGA(PKM pk, EncounterCriteria criteria)
|
||||
private int GetAbilityIndex(EncounterCriteria criteria) => AbilityType switch
|
||||
{
|
||||
00 or 01 or 02 => AbilityType, // Fixed 0/1/2
|
||||
03 or 04 => criteria.GetAbilityFromType(AbilityType), // 0/1 or 0/1/H
|
||||
03 or 04 => criteria.GetAbilityFromNumber(Ability), // 0/1 or 0/1/H
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(AbilityType)),
|
||||
};
|
||||
|
||||
public override int Ability => AbilityType switch
|
||||
public override AbilityPermission Ability => AbilityType switch
|
||||
{
|
||||
0 => 1,
|
||||
1 => 2,
|
||||
2 => 4,
|
||||
3 => 0,
|
||||
_ => -1,
|
||||
0 => AbilityPermission.OnlyFirst,
|
||||
1 => AbilityPermission.OnlySecond,
|
||||
2 => AbilityPermission.OnlyHidden,
|
||||
3 => AbilityPermission.Any12,
|
||||
_ => AbilityPermission.Any12H,
|
||||
};
|
||||
|
||||
private void SetPID(PKM pk)
|
||||
|
||||
@@ -504,17 +504,17 @@ private void SetPINGA(PKM pk, EncounterCriteria criteria)
|
||||
private int GetAbilityIndex(EncounterCriteria criteria) => AbilityType switch
|
||||
{
|
||||
00 or 01 or 02 => AbilityType, // Fixed 0/1/2
|
||||
03 or 04 => criteria.GetAbilityFromType(AbilityType), // 0/1 or 0/1/H
|
||||
03 or 04 => criteria.GetAbilityFromNumber(Ability), // 0/1 or 0/1/H
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(AbilityType)),
|
||||
};
|
||||
|
||||
public override int Ability => AbilityType switch
|
||||
public override AbilityPermission Ability => AbilityType switch
|
||||
{
|
||||
0 => 1,
|
||||
1 => 2,
|
||||
2 => 4,
|
||||
3 => 0,
|
||||
_ => -1,
|
||||
0 => AbilityPermission.OnlyFirst,
|
||||
1 => AbilityPermission.OnlySecond,
|
||||
2 => AbilityPermission.OnlyHidden,
|
||||
3 => AbilityPermission.Any12,
|
||||
_ => AbilityPermission.Any12H,
|
||||
};
|
||||
|
||||
private uint GetPID(ITrainerID tr, byte type)
|
||||
|
||||
@@ -72,7 +72,7 @@ public int Met_Level
|
||||
init => _metLevel = value;
|
||||
}
|
||||
|
||||
public override int Ability => 0; // 1/2
|
||||
public override AbilityPermission Ability => AbilityPermission.Any12;
|
||||
|
||||
public override PKM ConvertToPKM(ITrainerInfo sav, EncounterCriteria criteria)
|
||||
{
|
||||
|
||||
@@ -441,17 +441,17 @@ private void SetPINGA(PKM pk, EncounterCriteria criteria)
|
||||
private int GetAbilityIndex(EncounterCriteria criteria) => AbilityType switch
|
||||
{
|
||||
00 or 01 or 02 => AbilityType, // Fixed 0/1/2
|
||||
03 or 04 => criteria.GetAbilityFromType(AbilityType), // 0/1 or 0/1/H
|
||||
03 or 04 => criteria.GetAbilityFromNumber(Ability), // 0/1 or 0/1/H
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(AbilityType)),
|
||||
};
|
||||
|
||||
public override int Ability => AbilityType switch
|
||||
public override AbilityPermission Ability => AbilityType switch
|
||||
{
|
||||
0 => 1,
|
||||
1 => 2,
|
||||
2 => 4,
|
||||
3 => 0,
|
||||
_ => -1,
|
||||
0 => AbilityPermission.OnlyFirst,
|
||||
1 => AbilityPermission.OnlySecond,
|
||||
2 => AbilityPermission.OnlyHidden,
|
||||
3 => AbilityPermission.Any12,
|
||||
_ => AbilityPermission.Any12H,
|
||||
};
|
||||
|
||||
private void SetPID(PKM pk)
|
||||
|
||||
@@ -472,17 +472,17 @@ private void SetPINGA(PKM pk, EncounterCriteria criteria)
|
||||
private int GetAbilityIndex(EncounterCriteria criteria) => AbilityType switch
|
||||
{
|
||||
00 or 01 or 02 => AbilityType, // Fixed 0/1/2
|
||||
03 or 04 => criteria.GetAbilityFromType(AbilityType), // 0/1 or 0/1/H
|
||||
03 or 04 => criteria.GetAbilityFromNumber(Ability), // 0/1 or 0/1/H
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(AbilityType)),
|
||||
};
|
||||
|
||||
public override int Ability => AbilityType switch
|
||||
public override AbilityPermission Ability => AbilityType switch
|
||||
{
|
||||
0 => 1,
|
||||
1 => 2,
|
||||
2 => 4,
|
||||
3 => 0,
|
||||
_ => -1,
|
||||
0 => AbilityPermission.OnlyFirst,
|
||||
1 => AbilityPermission.OnlySecond,
|
||||
2 => AbilityPermission.OnlyHidden,
|
||||
3 => AbilityPermission.Any12,
|
||||
_ => AbilityPermission.Any12H,
|
||||
};
|
||||
|
||||
private void SetPID(PKM pk)
|
||||
|
||||
@@ -509,17 +509,17 @@ private void SetPINGA(PKM pk, EncounterCriteria criteria)
|
||||
private int GetAbilityIndex(EncounterCriteria criteria) => AbilityType switch
|
||||
{
|
||||
00 or 01 or 02 => AbilityType, // Fixed 0/1/2
|
||||
03 or 04 => criteria.GetAbilityFromType(AbilityType), // 0/1 or 0/1/H
|
||||
03 or 04 => criteria.GetAbilityFromNumber(Ability), // 0/1 or 0/1/H
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(AbilityType)),
|
||||
};
|
||||
|
||||
public override int Ability => AbilityType switch
|
||||
public override AbilityPermission Ability => AbilityType switch
|
||||
{
|
||||
0 => 1,
|
||||
1 => 2,
|
||||
2 => 4,
|
||||
3 => 0,
|
||||
_ => -1,
|
||||
0 => AbilityPermission.OnlyFirst,
|
||||
1 => AbilityPermission.OnlySecond,
|
||||
2 => AbilityPermission.OnlyHidden,
|
||||
3 => AbilityPermission.Any12,
|
||||
_ => AbilityPermission.Any12H,
|
||||
};
|
||||
|
||||
private uint GetPID(ITrainerID tr, byte type)
|
||||
|
||||
@@ -20,7 +20,7 @@ public sealed class WR7 : DataMysteryGift
|
||||
public WR7() : this(new byte[Size]) { }
|
||||
public WR7(byte[] data) : base(data) { }
|
||||
|
||||
public override int Ability => -1; // undefined
|
||||
public override AbilityPermission Ability => AbilityPermission.Any12H; // undefined
|
||||
|
||||
public uint Epoch
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace PKHeX.Core
|
||||
/// <summary>
|
||||
/// Go Park Entity transferred from <see cref="GameVersion.GO"/> to <see cref="GameVersion.GG"/>.
|
||||
/// </summary>
|
||||
public sealed class GP1 : IEncounterInfo
|
||||
public sealed class GP1 : IEncounterInfo, IFixedAbilityNumber
|
||||
{
|
||||
public const int SIZE = 0x1B0;
|
||||
public readonly byte[] Data;
|
||||
@@ -18,6 +18,7 @@ public sealed class GP1 : IEncounterInfo
|
||||
public int LevelMin => Level;
|
||||
public int LevelMax => Level;
|
||||
public int Generation => 7;
|
||||
public AbilityPermission Ability => AbilityPermission.Any12;
|
||||
public PKM ConvertToPKM(ITrainerInfo sav) => ConvertToPB7(sav);
|
||||
public PKM ConvertToPKM(ITrainerInfo sav, EncounterCriteria criteria) => ConvertToPB7(sav, criteria);
|
||||
|
||||
@@ -176,10 +177,9 @@ public PB7 ConvertToPB7(ITrainerInfo sav, EncounterCriteria criteria)
|
||||
pk.IV_SPE = Util.Rand.Next(32);
|
||||
|
||||
var pi = pk.PersonalInfo;
|
||||
const int av = 3;
|
||||
pk.Gender = criteria.GetGender(Gender, pi);
|
||||
pk.Nature = (int)criteria.GetNature(Nature.Random);
|
||||
pk.RefreshAbility(criteria.GetAbilityFromType(av));
|
||||
pk.RefreshAbility(criteria.GetAbilityFromNumber(Ability));
|
||||
|
||||
bool isShiny = pk.IsShiny;
|
||||
if (IsShiny && !isShiny) // Force Square
|
||||
|
||||
33
Tests/PKHeX.Core.Tests/PKM/AbilityPermissionTests.cs
Normal file
33
Tests/PKHeX.Core.Tests/PKM/AbilityPermissionTests.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using FluentAssertions;
|
||||
using PKHeX.Core;
|
||||
using Xunit;
|
||||
|
||||
namespace PKHeX.Tests.PKM;
|
||||
|
||||
public static class AbilityPermissionTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData(AbilityPermission.OnlyFirst, true, 0)]
|
||||
[InlineData(AbilityPermission.OnlySecond, true, 1)]
|
||||
[InlineData(AbilityPermission.OnlyHidden, true, 2)]
|
||||
[InlineData(AbilityPermission.Any12, false, 0)]
|
||||
[InlineData(AbilityPermission.Any12H, false, 0)]
|
||||
public static void IsFixedAbility(AbilityPermission value, bool expect, int zeroIndex)
|
||||
{
|
||||
var result = value.IsSingleValue(out var index);
|
||||
result.Should().Be(expect);
|
||||
if (result)
|
||||
index.Should().Be(zeroIndex);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public static void IsZeroAny12() => AbilityPermission.Any12.Should().Be(0, "Initial unspecified value for most encounter templates.");
|
||||
|
||||
[Theory]
|
||||
[InlineData(AbilityPermission.OnlyFirst, false)]
|
||||
[InlineData(AbilityPermission.OnlySecond, false)]
|
||||
[InlineData(AbilityPermission.OnlyHidden, true)]
|
||||
[InlineData(AbilityPermission.Any12, false)]
|
||||
[InlineData(AbilityPermission.Any12H, true)]
|
||||
public static void IsHiddenPossible(AbilityPermission value, bool expect) => value.CanBeHidden().Should().Be(expect);
|
||||
}
|
||||
Reference in New Issue
Block a user