Merge remote-tracking branch 'origin/master' into f/savedata-checksum-tests

This commit is contained in:
Evan Dixon 2017-11-13 20:53:58 -06:00
commit 563d03e51a
141 changed files with 2452 additions and 625 deletions

1
.gitignore vendored
View File

@ -210,6 +210,7 @@ $RECYCLE.BIN/
#############
*.resources
pingme.txt
#############

View File

@ -183,6 +183,8 @@ private void SanitizeItemNames()
itemlist[771] += " (3)"; // Meteorite
itemlist[772] += " (4)"; // Meteorite
itemlist[842] += " (SM)"; // Fishing Rod
itemlist[945] += " (2)"; // Used Solarizer
itemlist[946] += " (2)"; // Used Lunarizer
// Append Z-Crystal flagging
foreach (var i in Legal.Pouch_ZCrystal_USUM)
@ -315,7 +317,7 @@ public static void InitializeDataSources(GameStrings s)
SpeciesDataSource = Util.GetCBList(s.specieslist, null);
NatureDataSource = Util.GetCBList(s.natures, null);
AbilityDataSource = Util.GetCBList(s.abilitylist, null);
VersionDataSource = Util.GetCBList(s.gamelist, Legal.Games_7sm, Legal.Games_6oras, Legal.Games_6xy, Legal.Games_5, Legal.Games_4, Legal.Games_4e, Legal.Games_4r, Legal.Games_3, Legal.Games_3e, Legal.Games_3r, Legal.Games_3s);
VersionDataSource = Util.GetCBList(s.gamelist, Legal.Games_7usum, Legal.Games_7sm, Legal.Games_6oras, Legal.Games_6xy, Legal.Games_5, Legal.Games_4, Legal.Games_4e, Legal.Games_4r, Legal.Games_3, Legal.Games_3e, Legal.Games_3r, Legal.Games_3s);
VersionDataSource.AddRange(Util.GetCBList(s.gamelist, Legal.Games_7vc1).OrderBy(g => g.Value)); // stuff to end unsorted
VersionDataSource.AddRange(Util.GetCBList(s.gamelist, Legal.Games_7vc2).OrderBy(g => g.Value)); // stuff to end unsorted
VersionDataSource.AddRange(Util.GetCBList(s.gamelist, Legal.Games_7go).OrderBy(g => g.Value)); // stuff to end unsorted
@ -472,7 +474,7 @@ public static List<ComboItem> GetLocationList(GameVersion Version, int SaveForma
case GameVersion.GD:
case GameVersion.SV:
case GameVersion.C:
return MetGen7.Take(3).Concat(MetGen7.Skip(3).OrderByDescending(loc => loc.Value < 200)).ToList(); // Outer Cape
return MetGen7.Take(3).Concat(MetGen7.Skip(3).OrderByDescending(loc => loc.Value < 234)).ToList(); // Dividing Peak Tunnel
}
// Currently on a future game, return corresponding list for generation

View File

@ -294,7 +294,7 @@ private void UpdateChecks()
}
private string GetLegalityReport()
{
if (!Parsed || pkm == null)
if (!Parsed || pkm == null || Info == null)
return V189;
var lines = new List<string>();
@ -323,7 +323,7 @@ private string GetLegalityReport()
}
private string GetVerboseLegalityReport()
{
if (!Parsed || pkm == null)
if (!Parsed || pkm == null || Info == null)
return V189;
const string separator = "===";

View File

@ -324,9 +324,9 @@ private void VerifyNicknameTrade()
{
case 1:
case 2: VerifyTrade12(); return;
case 3: VerifyTrade3(); return; // todo
case 3: VerifyTrade3(); return;
case 4: VerifyTrade4(); return;
case 5: VerifyTrade5(); return; // todo
case 5: VerifyTrade5(); return;
case 6: VerifyTrade6(); return;
case 7: VerifyTrade7(); return;
}
@ -1170,7 +1170,7 @@ private void VerifyBall()
return;
}
if (pkm.Ball == 0x14 && pkm.Gen7) // Heavy Ball
if (pkm.Ball == 0x14 && !Info.EncounterMatch.EggEncounter && pkm.SM) // Heavy Ball
{
var lineage = Legal.GetLineage(pkm);
if (lineage.Any(e => Legal.AlolanCaptureNoHeavyBall.Contains(e)))
@ -1977,13 +1977,6 @@ private void VerifyForm()
return;
}
break;
case 718: // Zygarde
if (pkm.AltForm >= 4)
{
AddLine(Severity.Invalid, V310, CheckIdentifier.Form);
return;
}
break;
case 773: // Silvally
{
int item = pkm.HeldItem;
@ -1996,13 +1989,6 @@ private void VerifyForm()
AddLine(Severity.Valid, V309, CheckIdentifier.Form);
break;
}
case 774: // Minior
if (pkm.AltForm < 7)
{
AddLine(Severity.Invalid, V310, CheckIdentifier.Form);
return;
}
break;
// Party Only Forms
case 492: // Shaymin
@ -2014,6 +2000,17 @@ private void VerifyForm()
return;
}
break;
// Battle only Forms with other legal forms allowed
case 718 when pkm.AltForm >= 4: // Zygarde Complete
case 774 when pkm.AltForm < 7: // Minior Shield
case 800 when pkm.AltForm == 3: // Ultra Necrozma
AddLine(Severity.Invalid, V310, CheckIdentifier.Form);
return;
case 800 when pkm.AltForm < 3: // Necrozma Fused forms & default
case 778 when pkm.AltForm == 2: // Totem disguise Mimikyu
AddLine(Severity.Valid, V315, CheckIdentifier.Form);
return;
}
if (pkm.Format >= 7 && Info.Generation < 7 && pkm.AltForm != 0)

View File

@ -918,7 +918,7 @@ internal static IEnumerable<EncounterStatic> GetEncounterStaticTable(PKM pkm, Ga
case GameVersion.US: return StaticUS;
case GameVersion.UM: return StaticUM;
default: return new EncounterStatic[0];
default: return Enumerable.Empty<EncounterStatic>();
}
}
internal static IEnumerable<EncounterArea> GetEncounterTable(PKM pkm, GameVersion gameSource = GameVersion.Any)
@ -969,7 +969,7 @@ internal static IEnumerable<EncounterArea> GetEncounterTable(PKM pkm, GameVersio
case GameVersion.US: return SlotsUS;
case GameVersion.UM: return SlotsUM;
default: return new EncounterArea[0];
default: return Enumerable.Empty<EncounterArea>();
}
}
private static IEnumerable<EncounterStatic> GetEncounterStaticTableGSC(PKM pkm)
@ -1014,7 +1014,7 @@ internal static IEnumerable<EncounterArea> GetDexNavAreas(PKM pkm)
case (int)GameVersion.OR:
return SlotsO.Where(l => l.Location == pkm.Met_Location);
default:
return new EncounterArea[0];
return Enumerable.Empty<EncounterArea>();
}
}
@ -1157,7 +1157,7 @@ private static bool IsEvolvedFormChange(PKM pkm)
if (pkm.IsEgg)
return false;
if (pkm.Format >= 7 && EvolveToAlolanForms.Contains(pkm.Species))
if (pkm.Format >= 7 && AlolanVariantEvolutions12.Contains(pkm.Species))
return pkm.AltForm == 1;
if (pkm.Species == 678 && pkm.Gender == 1)
return pkm.AltForm == 1;
@ -1249,9 +1249,7 @@ internal static bool IsFormChangeable(PKM pkm, int species)
if (IsEvolvedFormChange(pkm))
return true;
if (pkm.Species == 718 && pkm.InhabitedGeneration(7) && pkm.AltForm != 1)
{
return true;
}
return false;
}
@ -1694,12 +1692,22 @@ private static IEnumerable<int> GetValidMoves(PKM pkm, GameVersion Version, DexL
if (pkm.Format <= 3)
return r.Distinct();
if (LVL)
{
if (species == 479 && Generation >= 4) // Rotom
r.Add(RotomMoves[pkm.AltForm]);
if (species == 718 && Generation == 7) // Zygarde
r.AddRange(ZygardeMoves);
{
switch (species)
{
case 479 when Generation >= 4: // rotom
r.Add(RotomMoves[pkm.AltForm]);
break;
case 718 when Generation == 7: // zygarde
r.AddRange(ZygardeMoves);
break;
case 800 when pkm.AltForm == 1: // Sun Necrozma
r.Add(713);
break;
case 800 when pkm.AltForm == 2: // Moon Necrozma
r.Add(714);
break;
}
}
if (Tutor)
{
@ -2202,10 +2210,10 @@ internal static IEnumerable<int> GetTutorMoves(PKM pkm, int species, int form, b
}
return moves.Distinct();
IEnumerable<int> GetTutors(PersonalTable t, IReadOnlyList<int[]> tutors)
IEnumerable<int> GetTutors(PersonalTable t, params int[][] tutors)
{
var pi = t.GetFormeEntry(species, form);
for (int i = 0; i < tutors.Count; i++)
for (int i = 0; i < tutors.Length; i++)
for (int b = 0; b < tutors[i].Length; b++)
if (pi.SpecialTutors[i][b])
yield return tutors[i][b];

View File

@ -31,10 +31,14 @@ static Encounters7()
var REG_US = GetEncounterTables(GameVersion.US);
var REG_UM = GetEncounterTables(GameVersion.UM);
var SOS_US = GetEncounterTables("uu", "us_sos");
var SOS_UM = GetEncounterTables("uu", "um_sos");
MarkG7REGSlots(ref REG_US);
MarkG7REGSlots(ref REG_UM);
SlotsUS = AddExtraTableSlots(REG_US);
SlotsUM = AddExtraTableSlots(REG_UM);
MarkG7SMSlots(ref SOS_US);
MarkG7SMSlots(ref SOS_UM);
SlotsUS = AddExtraTableSlots(REG_US, SOS_US, Encounter_Pelago_SM, Encounter_Pelago_SN);
SlotsUM = AddExtraTableSlots(REG_UM, SOS_UM, Encounter_Pelago_SM, Encounter_Pelago_MN);
}
private static void MarkG7REGSlots(ref EncounterArea[] Areas)
{
@ -67,8 +71,8 @@ private static void MarkG7SMSlots(ref EncounterArea[] Areas)
new EncounterStatic { Gift = true, Species = 133, Level = 1, EggLocation = 60002, }, // Eevee @ Nursery helpers
new EncounterStatic { Gift = true, Species = 137, Level = 30, Location = 116, }, // Porygon @ Route 15
new EncounterStatic { Gift = true, Species = 772, Level = 40, Location = 188, IV3 = true, }, // Type: Null
new EncounterStatic { Gift = true, Species = 789, Level = 5, Location = 142, Shiny = false, IV3 = true, Version = GameVersion.SN}, // Cosmog 00 FF
new EncounterStatic { Gift = true, Species = 789, Level = 5, Location = 144, Shiny = false, IV3 = true, Version = GameVersion.MN}, // Cosmog 00 FF
new EncounterStatic { Gift = true, Species = 789, Level = 5, Location = 142, Shiny = false, Ability = 2, IV3 = true, Version = GameVersion.SN }, // Cosmog
new EncounterStatic { Gift = true, Species = 789, Level = 5, Location = 144, Shiny = false, Ability = 2, IV3 = true, Version = GameVersion.MN }, // Cosmog
new EncounterStatic { Gift = true, Species = 142, Level = 40, Location = 172, }, // Aerodactyl @ Seafolk Village
new EncounterStatic { Gift = true, Species = 718, Form = 0, Level = 30, Shiny = false, Location = 118, IV3 = true, }, // Zygarde
@ -83,7 +87,7 @@ private static void MarkG7SMSlots(ref EncounterArea[] Areas)
new EncounterStatic // Magearna (Bottle Cap) 00 FF
{
Gift = true, Species = 801, Level = 50, Location = 40001, Shiny = false, IV3 = true,
Gift = true, Species = 801, Level = 50, Location = 40001, Shiny = false, IV3 = true, HeldItem = 795, Ability = 2,
Fateful = true, RibbonWishing = true, Relearn = new [] {705, 430, 381, 270}, Ball = 0x10, // Cherish
},
@ -164,11 +168,209 @@ private static void MarkG7SMSlots(ref EncounterArea[] Areas)
};
private static readonly EncounterStatic[] Encounter_USUM =
{
new EncounterStatic { Gift = true, Species = 722, Level = 05, Location = 8, }, // Rowlet
new EncounterStatic { Gift = true, Species = 725, Level = 05, Location = 8, }, // Litten
new EncounterStatic { Gift = true, Species = 728, Level = 05, Location = 8, }, // Popplio
new EncounterStatic { Gift = true, Species = 138, Level = 15, Location = 58, }, // Omanyte
new EncounterStatic { Gift = true, Species = 140, Level = 15, Location = 58, }, // Kabuto
new EncounterStatic { Gift = true, Species = 142, Level = 15, Location = 58, }, // Aerodactyl
new EncounterStatic { Gift = true, Species = 345, Level = 15, Location = 58, }, // Lileep
new EncounterStatic { Gift = true, Species = 347, Level = 15, Location = 58, }, // Anorith
new EncounterStatic { Gift = true, Species = 408, Level = 15, Location = 58, }, // Cranidos
new EncounterStatic { Gift = true, Species = 410, Level = 15, Location = 58, }, // Shieldon
new EncounterStatic { Gift = true, Species = 564, Level = 15, Location = 58, }, // Tirtouga
new EncounterStatic { Gift = true, Species = 566, Level = 15, Location = 58, }, // Archen
new EncounterStatic { Gift = true, Species = 696, Level = 15, Location = 58, }, // Tyrunt
new EncounterStatic { Gift = true, Species = 698, Level = 15, Location = 58, }, // Amaura
new EncounterStatic { Gift = true, Species = 133, Level = 01, EggLocation = 60002, }, // Eevee @ Nursery helpers
new EncounterStatic { Gift = true, Species = 137, Level = 30, Location = 116, }, // Porygon @ Route 15
new EncounterStatic { Gift = true, Species = 772, Level = 60, Location = 188, IV3 = true, }, // Type: Null @ Aether Paradise
new EncounterStatic { Gift = true, Species = 772, Level = 60, Location = 160, IV3 = true, }, // Type: Null @ Ancient Poni Path
new EncounterStatic { Gift = true, Species = 789, Level = 05, Location = 142, IV3 = true, Shiny = false, Ability = 2, Version = GameVersion.US }, // Cosmog @ Lake of the Sunne
new EncounterStatic { Gift = true, Species = 789, Level = 05, Location = 144, IV3 = true, Shiny = false, Ability = 2, Version = GameVersion.UM }, // Cosmog @ Lake of the Moone
new EncounterStatic { Gift = true, Species = 142, Level = 40, Location = 172, }, // Aerodactyl @ Seafolk Village
new EncounterStatic { Gift = true, Species = 025, Level = 40, Location = 070, IV3 = true, HeldItem = 796, Relearn = new[] {57,0,0,0} }, // Pikachu @ Heahea City
new EncounterStatic { Gift = true, Species = 803, Level = 40, Location = 208, IV3 = true,}, // Poipole @ Megalo Tower
new EncounterStatic { Gift = true, Species = 803, Level = 40, Location = 206, IV3 = true,}, // Poipole @ Ultra Megalopolis
// Totem-Sized Gifts @ Heahea Beach
new EncounterStatic { Gift = true, Species = 735, Level = 20, Ability = 4, Location = 202, Form = 1, Shiny = false, IV3 = true, Version = GameVersion.US }, // Gumshoos
new EncounterStatic { Gift = true, Species = 020, Level = 20, Ability = 4, Location = 202, Form = 2, Shiny = false, IV3 = true, Version = GameVersion.UM }, // Raticate
new EncounterStatic { Gift = true, Species = 105, Level = 25, Ability = 4, Location = 202, Form = 2, Shiny = false, IV3 = true, Version = GameVersion.US }, // Marowak
new EncounterStatic { Gift = true, Species = 752, Level = 25, Ability = 1, Location = 202, Form = 1, Shiny = false, IV3 = true, Version = GameVersion.UM }, // Araquanid
new EncounterStatic { Gift = true, Species = 754, Level = 30, Ability = 2, Location = 202, Form = 1, Shiny = false, IV3 = true, Version = GameVersion.US }, // Lurantis
new EncounterStatic { Gift = true, Species = 758, Level = 30, Ability = 1, Location = 202, Form = 1, Shiny = false, IV3 = true, Version = GameVersion.UM }, // Salazzle
new EncounterStatic { Gift = true, Species = 738, Level = 35, Ability = 1, Location = 202, Form = 1, Shiny = false, IV3 = true, Version = GameVersion.US }, // Vikavolt
new EncounterStatic { Gift = true, Species = 777, Level = 35, Ability = 4, Location = 202, Form = 1, Shiny = false, IV3 = true, Version = GameVersion.UM }, // Togedemaru
new EncounterStatic { Gift = true, Species = 778, Level = 40, Ability = 1, Location = 202, Form = 2, Shiny = false, IV3 = true, }, // Mimikyu
new EncounterStatic { Gift = true, Species = 743, Level = 50, Ability = 4, Location = 202, Form = 1, Shiny = false, IV3 = true, Version = GameVersion.US }, // Ribombee
new EncounterStatic { Gift = true, Species = 784, Level = 50, Ability = 4, Location = 202, Form = 1, Shiny = false, IV3 = true, Version = GameVersion.UM }, // Kommo-o
new EncounterStatic { Gift = true, Species = 718, Level = 63, Ability = 1, Location = 118, Form = 1, Shiny = false, IV3 = true, }, // Zygarde @ Route 16
new EncounterStatic // Magearna (Bottle Cap)
{
Gift = true, Species = 801, Level = 50, Location = 40001, Shiny = false, IV3 = true, HeldItem = 795, Ability = 2,
Fateful = true, RibbonWishing = true, Relearn = new [] {705, 430, 381, 270}, Ball = 0x10, // Cherish
},
new EncounterStatic // Pikachu (Pretty Wing), should probably be a fake mystery gift as it has OT details
{
Gift = true, Species = 25, Level = 21, Location = 40005, Shiny = false, Form = 7, HeldItem = 571, Ability = 1,
Fateful = true, RibbonWishing = true, Relearn = new[] {85, 98, 87, 231}, Nature = Nature.Hardy,
},
new EncounterStatic { Gift = true, Species = 718, Form = 0, Level = 50, Shiny = false, Location = 118, IV3 = true, }, // Zygarde
new EncounterStatic { Gift = true, Species = 718, Form = 1, Level = 50, Shiny = false, Location = 118, IV3 = true, }, // Zygarde
new EncounterStatic { Gift = true, Species = 718, Form = 2, Level = 50, Shiny = false, Location = 118, IV3 = true, }, // Zygarde
new EncounterStatic { Gift = true, Species = 718, Form = 3, Level = 50, Shiny = false, Location = 118, IV3 = true, }, // Zygarde
new EncounterStatic { Species = 791, Level = 60, Location = 028, Ability = 1, Shiny = false, IV3 = true, Relearn = new[] {713,322,242,428}, Version = GameVersion.US }, // Solgaleo @ Mahalo Trail (Plank Bridge)
new EncounterStatic { Species = 792, Level = 60, Location = 028, Ability = 1, Shiny = false, IV3 = true, Relearn = new[] {714,322,539,585}, Version = GameVersion.UM }, // Lunala @ Mahalo Trail (Plank Bridge)
// QR Scan: Su/M/Tu/W/Th/F/Sa
// Melemele Island
new EncounterStatic { Species = 004, Level = 12, Location = 010, Relearn = new[] {068,108,052,010}, }, // Charmander @ Route 3
new EncounterStatic { Species = 007, Level = 12, Location = 042, Relearn = new[] {453,110,055,033}, }, // Squirtle @ Seaward Cave
new EncounterStatic { Species = 095, Level = 14, Location = 034, Relearn = new[] {563,099,317,088}, }, // Onix @ Ten Carat Hill
new EncounterStatic { Species = 116, Level = 18, Location = 014, Relearn = new[] {352,239,055,043}, }, // Horsea @ Kala'e Bay
new EncounterStatic { Species = 664, Level = 09, Location = 020, Relearn = new[] {476,081,078,033}, }, // Scatterbug @ Hau'oli City
new EncounterStatic { Species = 001, Level = 10, Location = 012, Relearn = new[] {580,022,045,033}, }, // Bulbasaur @ Route 2
new EncounterStatic { Species = 607, Level = 09, Location = 038, Relearn = new[] {203,052,083,123}, }, // Litwick @ Hau'oli Cemetery
// Akala Island
new EncounterStatic { Species = 280, Level = 17, Location = 054, Relearn = new[] {581,345,381,574}, }, // Ralts @ Route 6
new EncounterStatic { Species = 363, Level = 19, Location = 056, Relearn = new[] {187,362,301,227}, }, // Spheal @ Route 7
new EncounterStatic { Species = 256, Level = 20, Location = 058, Relearn = new[] {067,488,064,028}, }, // Combusken @ Route 8
new EncounterStatic { Species = 679, Level = 24, Location = 094, Relearn = new[] {469,332,425,475}, }, // Honedge @ Akala Outskirts
new EncounterStatic { Species = 015, Level = 14, Location = 050, Relearn = new[] {099,031,041,000}, }, // Beedrill @ Route 4
new EncounterStatic { Species = 253, Level = 16, Location = 052, Relearn = new[] {580,072,098,071}, }, // Grovyle @ Route 5
new EncounterStatic { Species = 259, Level = 17, Location = 086, Relearn = new[] {068,193,189,055}, }, // Marshtomp @ Brooklet Hill
// Ula'ula Island
new EncounterStatic { Species = 111, Level = 32, Location = 138, Relearn = new[] {470,350,498,523}, }, // Rhyhorn @ Blush Mountain
new EncounterStatic { Species = 220, Level = 33, Location = 114, Relearn = new[] {333,036,420,196}, }, // Swinub @ Tapu Village
new EncounterStatic { Species = 394, Level = 35, Location = 118, Relearn = new[] {681,362,031,117}, }, // Prinplup @ Route 16
new EncounterStatic { Species = 388, Level = 36, Location = 128, Relearn = new[] {484,073,072,044}, }, // Grotle @ Ula'ula Meadow
new EncounterStatic { Species = 018, Level = 29, Location = 106, Relearn = new[] {211,297,239,098}, }, // Pidgeot @ Route 10
new EncounterStatic { Species = 391, Level = 29, Location = 108, Relearn = new[] {612,172,154,259}, }, // Monferno @ Route 11
new EncounterStatic { Species = 610, Level = 30, Location = 136, Relearn = new[] {068,337,206,163}, }, // Axew @ Mount Hokulani
// Poni Island
new EncounterStatic { Species = 604, Level = 55, Location = 164, Relearn = new[] {242,435,029,306}, }, // Eelektross @ Poni Grove
new EncounterStatic { Species = 306, Level = 57, Location = 166, Relearn = new[] {179,484,038,334}, }, // Aggron @ Poni Plains
new EncounterStatic { Species = 479, Level = 61, Location = 170, Relearn = new[] {268,506,486,164}, }, // Rotom @ Poni Gauntlet
new EncounterStatic { Species = 542, Level = 57, Location = 156, Relearn = new[] {580,437,014,494}, }, // Leavanny @ Poni Meadow
new EncounterStatic { Species = 652, Level = 45, Location = 184, Relearn = new[] {191,341,402,596}, }, // Chesnaught @ Exeggutor Island
new EncounterStatic { Species = 658, Level = 44, Location = 158, Relearn = new[] {516,164,185,594}, }, // Greninja @ Poni Wilds
new EncounterStatic { Species = 655, Level = 44, Location = 160, Relearn = new[] {273,473,113,595}, }, // Delphox @ Ancient Poni Path
new EncounterStatic { Species = 785, Level = 60, Location = 030, Ability = 1, Shiny = false, IV3 = true, }, // Tapu Koko @ Ruins of Conflict
new EncounterStatic { Species = 786, Level = 60, Location = 092, Ability = 1, Shiny = false, IV3 = true, }, // Tapu Lele @ Ruins of Life
new EncounterStatic { Species = 787, Level = 60, Location = 140, Ability = 1, Shiny = false, IV3 = true, }, // Tapu Bulu @ Ruins of Abundance
new EncounterStatic { Species = 788, Level = 60, Location = 180, Ability = 1, Shiny = false, IV3 = true, }, // Tapu Fini @ Ruins of Hope
new EncounterStatic { Species = 023, Level = 10, Location = 012, Ability = 1, }, // Ekans @ Route 2
new EncounterStatic { Species = 736, Level = 04, Location = 008, Ability = 1, Shiny = false, }, // Grubbin @ Route 1
new EncounterStatic { Species = 127, Level = 42, Location = 184, Shiny = false, }, // Pinsir @ Exeggutor Island
new EncounterStatic { Species = 127, Level = 43, Location = 184, Shiny = false, }, // Pinsir @ Exeggutor Island
new EncounterStatic { Species = 800, Level = 65, Location = 146, Ability = 1, Shiny = false, IV3 = true, Relearn = new[] {722,334,408,400}, HeldItem = 923, }, // Necrozma @ Mount Lanakila
// Legendaries @ Ultra Space Wilds
new EncounterStatic { Species = 144, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {246,573,115,258}, }, // Articuno
new EncounterStatic { Species = 145, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {246,435,365,240}, }, // Zapdos
new EncounterStatic { Species = 146, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {246,053,403,241}, }, // Moltres
new EncounterStatic { Species = 150, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {094,105,129,427}, }, // Mewtwo
new EncounterStatic { Species = 243, Level = 60, Location = 222, Ability = 1, IV3 = true, Version = GameVersion.US }, // Raikou
new EncounterStatic { Species = 244, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {023,044,207,436}, Version = GameVersion.UM }, // Entei
new EncounterStatic { Species = 245, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {061,062,054,240}, }, // Suicune
new EncounterStatic { Species = 249, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {285,177,326,246}, Version = GameVersion.UM }, // Lugia
new EncounterStatic { Species = 250, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {682,221,326,246}, HeldItem = 044, Version = GameVersion.US }, // Ho-Oh
new EncounterStatic { Species = 377, Level = 60, Location = 222, Ability = 1, IV3 = true, }, // Regirock
new EncounterStatic { Species = 378, Level = 60, Location = 222, Ability = 1, IV3 = true, }, // Regice
new EncounterStatic { Species = 379, Level = 60, Location = 222, Ability = 1, IV3 = true, }, // Registeel
new EncounterStatic { Species = 380, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {296,406,375,273}, Gender = 1, Version = GameVersion.UM }, // Latias
new EncounterStatic { Species = 381, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {295,406,375,225}, Gender = 0, Version = GameVersion.US }, // Latios
new EncounterStatic { Species = 382, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {058,618,347,330}, Version = GameVersion.UM }, // Kyogre
new EncounterStatic { Species = 383, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {089,619,339,076}, Version = GameVersion.US }, // Groudon
new EncounterStatic { Species = 384, Level = 60, Location = 222, Ability = 1, IV3 = true, }, // Rayquaza
new EncounterStatic { Species = 480, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {326,281,133,129}, }, // Uxie
new EncounterStatic { Species = 481, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {326,204,248,129}, }, // Mesprit
new EncounterStatic { Species = 482, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {326,417,253,129}, }, // Azelf
new EncounterStatic { Species = 483, Level = 60, Location = 222, Ability = 1, IV3 = true, Version = GameVersion.US }, // Dialga
new EncounterStatic { Species = 484, Level = 60, Location = 222, Ability = 1, IV3 = true, Version = GameVersion.UM }, // Palkia
new EncounterStatic { Species = 485, Level = 60, Location = 222, Ability = 1, IV3 = true, Version = GameVersion.US }, // Heatran
new EncounterStatic { Species = 486, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {428,279,146,109}, Version = GameVersion.UM }, // Regigigas
new EncounterStatic { Species = 487, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {467,396,414,337}, }, // Giratina
new EncounterStatic { Species = 488, Level = 60, Location = 222, Ability = 1, IV3 = true, Gender = 1, }, // Cresselia
new EncounterStatic { Species = 638, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {533,014,098,442}, }, // Cobalion
new EncounterStatic { Species = 639, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {533,014,157,444}, }, // Terrakion
new EncounterStatic { Species = 640, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {533,014,202,348}, }, // Virizion
new EncounterStatic { Species = 641, Level = 60, Location = 222, Ability = 1, IV3 = true, Gender = 0, Version = GameVersion.US }, // Tornadus
new EncounterStatic { Species = 642, Level = 60, Location = 222, Ability = 1, IV3 = true, Gender = 0, Version = GameVersion.UM }, // Thundurus
new EncounterStatic { Species = 643, Level = 60, Location = 222, Ability = 1, IV3 = true, Version = GameVersion.US }, // Reshiram
new EncounterStatic { Species = 644, Level = 60, Location = 222, Ability = 1, IV3 = true, Version = GameVersion.UM }, // Zekrom
new EncounterStatic { Species = 645, Level = 60, Location = 222, Ability = 1, IV3 = true, Gender = 0, }, // Landorus
new EncounterStatic { Species = 646, Level = 60, Location = 222, Ability = 1, IV3 = true, }, // Kyurem
new EncounterStatic { Species = 716, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {601,532,400,585}, Version = GameVersion.US }, // Xerneas
new EncounterStatic { Species = 717, Level = 60, Location = 222, Ability = 1, IV3 = true, Relearn = new[] {613,399,566,094}, Version = GameVersion.UM }, // Yveltal
new EncounterStatic { Species = 334, Level = 60, Location = 222, IV3 = true, }, // Altaria @ Ultra Space Wilds
new EncounterStatic { Species = 469, Level = 60, Location = 222, IV3 = true, }, // Yanmega @ Ultra Space Wilds
new EncounterStatic { Species = 561, Level = 60, Location = 222, IV3 = true, }, // Sigilyph @ Ultra Space Wilds
new EncounterStatic { Species = 581, Level = 60, Location = 222, IV3 = true, }, // Swanna @ Ultra Space Wilds
new EncounterStatic { Species = 277, Level = 60, Location = 222, IV3 = true, }, // Swellow @ Ultra Space Wilds
new EncounterStatic { Species = 452, Level = 60, Location = 222, IV3 = true, }, // Drapion @ Ultra Space Wilds
new EncounterStatic { Species = 531, Level = 60, Location = 222, IV3 = true, }, // Audino @ Ultra Space Wilds
new EncounterStatic { Species = 695, Level = 60, Location = 222, IV3 = true, }, // Heliolisk @ Ultra Space Wilds
new EncounterStatic { Species = 274, Level = 60, Location = 222, IV3 = true, }, // Nuzleaf @ Ultra Space Wilds
new EncounterStatic { Species = 326, Level = 60, Location = 222, IV3 = true, }, // Grumpig @ Ultra Space Wilds
new EncounterStatic { Species = 460, Level = 60, Location = 222, IV3 = true, }, // Abomasnow @ Ultra Space Wilds
new EncounterStatic { Species = 308, Level = 60, Location = 222, IV3 = true, }, // Medicham @ Ultra Space Wilds
new EncounterStatic { Species = 450, Level = 60, Location = 222, IV3 = true, }, // Hippowdon @ Ultra Space Wilds
new EncounterStatic { Species = 558, Level = 60, Location = 222, IV3 = true, }, // Crustle @ Ultra Space Wilds
new EncounterStatic { Species = 219, Level = 60, Location = 222, IV3 = true, }, // Magcargo @ Ultra Space Wilds
new EncounterStatic { Species = 689, Level = 60, Location = 222, IV3 = true, }, // Barbaracle @ Ultra Space Wilds
new EncounterStatic { Species = 271, Level = 60, Location = 222, IV3 = true, }, // Lombre @ Ultra Space Wilds
new EncounterStatic { Species = 618, Level = 60, Location = 222, IV3 = true, }, // Stunfisk @ Ultra Space Wilds
new EncounterStatic { Species = 419, Level = 60, Location = 222, IV3 = true, }, // Floatzel @ Ultra Space Wilds
new EncounterStatic { Species = 195, Level = 60, Location = 222, IV3 = true, }, // Quagsire @ Ultra Space Wilds
new EncounterStatic { Species = 793, Level = 60, Location = 190, Ability = 1, IV3 = true, Relearn = new[] {408,491,446,243}, }, // Nihilego @ Ultra Deep Sea
new EncounterStatic { Species = 794, Level = 60, Location = 218, Ability = 1, IV3 = true, Version = GameVersion.US }, // Buzzwole @ Ultra Jungle
new EncounterStatic { Species = 795, Level = 60, Location = 214, Ability = 1, IV3 = true, Version = GameVersion.UM }, // Pheromosa @ Ultra Desert
new EncounterStatic { Species = 796, Level = 60, Location = 210, Ability = 1, IV3 = true, }, // Xurkitree @ Ultra Plant
new EncounterStatic { Species = 797, Level = 60, Location = 212, Ability = 1, IV3 = true, Version = GameVersion.UM }, // Celesteela @ Ultra Crater
new EncounterStatic { Species = 798, Level = 60, Location = 216, Ability = 1, IV3 = true, Version = GameVersion.US }, // Kartana @ Ultra Forest
new EncounterStatic { Species = 799, Level = 60, Location = 220, Ability = 1, IV3 = true, }, // Guzzlord @ Ultra Ruin
new EncounterStatic { Species = 760, Level = 28, Location = -01, Shiny = false, }, // Bewear @ ???
new EncounterStatic { Species = 097, Level = 29, Location = 020, Shiny = false, Relearn = new[] {095,171,139,029}, }, // Hypno @ Hau'oli City Police Station
new EncounterStatic { Species = 097, Level = 29, Location = 020, Shiny = false, Relearn = new[] {417,060,050,139}, }, // Hypno @ Hau'oli City Police Station
new EncounterStatic { Species = 097, Level = 29, Location = 020, Shiny = false, Relearn = new[] {093,050,001,096}, }, // Hypno @ Hau'oli City Police Station
new EncounterStatic { Species = 092, Level = 19, Location = 230, Shiny = false, Relearn = new[] {174,109,122,101}, }, // Gastly @ Route 1 (Trainers School)
new EncounterStatic { Species = 425, Level = 19, Location = 230, Shiny = false, Relearn = new[] {310,132,016,371}, }, // Drifloon @ Route 1 (Trainers School)
new EncounterStatic { Species = 769, Level = 30, Location = 116, Shiny = false, Relearn = new[] {310,523,072,328}, }, // Sandygast @ Route 15
new EncounterStatic { Species = 592, Level = 34, Location = 126, Shiny = false, Gender = 1, }, // Frillish @ Route 14
new EncounterStatic { Species = 132, Level = 29, Location = 060, IVs = new[] {-1,-1,31,30,-1,00}, Nature = Nature.Bold }, // Ditto @ Route 9
new EncounterStatic { Species = 132, Level = 29, Location = 072, IVs = new[] {-1,-1,30,30,-1,31}, Nature = Nature.Jolly }, // Ditto @ Konikoni City
new EncounterStatic { Species = 132, Level = 29, Location = 072, IVs = new[] {-1,31,30,-1,-1,30}, Nature = Nature.Adamant }, // Ditto @ Konikoni City
new EncounterStatic { Species = 132, Level = 29, Location = 072, IVs = new[] {-1,00,-1,31,30,-1}, Nature = Nature.Modest }, // Ditto @ Konikoni City
new EncounterStatic { Species = 132, Level = 29, Location = 072, IVs = new[] {-1,30,-1,-1,30,31}, Nature = Nature.Timid }, // Ditto @ Konikoni City
new EncounterStatic { Species = 718, Level = 60, Location = 182, Ability = 1, Shiny = false, IV3 = true, Relearn = new[] {616,137,219,225}, }, // Zygarde @ Resolution Cave
new EncounterStatic { Species = 805, Level = 60, Location = 164, Ability = 1, IV3 = true, Version = GameVersion.UM }, // Stakataka @ Poni Grove
new EncounterStatic { Species = 806, Level = 60, Location = 164, Ability = 1, IV3 = true, Version = GameVersion.US }, // Blacephalon @ Poni Grove
new EncounterStatic { Species = 101, Level = 60, Location = 224, Ability = 1, Shiny = false, }, // Electrode @ Team Rocket's Castle
};
internal static readonly EncounterTrade[] TradeGift_USUM =
{
// Trades - 4.bin
new EncounterTrade { 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 EncounterTrade { Species = 714, Form = 0, Level = 19, Ability = 1, TID = 20683, SID = 00009, IVs = new[] {-1,-1,-1,-1,31,-1}, OTGender = 0, Gender = 1, Nature = Nature.Modest, }, // Noibat
new EncounterTrade { 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 EncounterTrade { 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 EncounterTrade { 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 EncounterTrade { 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 EncounterTrade { 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
};
internal static readonly string[][] TradeSM =
{
@ -186,7 +388,17 @@ private static void MarkG7SMSlots(ref EncounterArea[] Areas)
};
internal static readonly string[][] TradeUSUM =
{
// todo
new string[0], // 0 - None
Util.GetStringList("tradeusum", "ja"), // 1
Util.GetStringList("tradeusum", "en"), // 2
Util.GetStringList("tradeusum", "fr"), // 3
Util.GetStringList("tradeusum", "it"), // 4
Util.GetStringList("tradeusum", "de"), // 5
new string[0], // 6 - None
Util.GetStringList("tradeusum", "es"), // 7
Util.GetStringList("tradeusum", "ko"), // 8
Util.GetStringList("tradeusum", "zh"), // 9
Util.GetStringList("tradeusum", "zh"), // 10
};
private static readonly EncounterArea[] Encounter_Pelago_SM =

View File

@ -572,69 +572,90 @@ private static IEnumerable<EncounterSlot> GetValidEncounterSlots(PKM pkm, Encoun
if (lvl < 0)
lvl = GetMinLevelEncounter(pkm);
if (lvl <= 0)
yield break;
int gen = pkm.GenNumber;
int fluteBoost = gen < 3 ? 0 : 4;
const int dexnavBoost = 30;
int df = DexNav ? fluteBoost : 0;
int dn = DexNav ? fluteBoost + dexnavBoost : 0;
return Enumerable.Empty<EncounterSlot>();
var maxspeciesorigin = -1;
if (gameSource == GameVersion.RBY) maxspeciesorigin = MaxSpeciesID_1;
else if (GameVersion.GSC.Contains(gameSource)) maxspeciesorigin = MaxSpeciesID_2;
// Get Valid levels
IEnumerable<DexLevel> vs = GetValidPreEvolutions(pkm, maxspeciesorigin: maxspeciesorigin, lvl: ignoreLevel ? 100 : -1, skipChecks: ignoreLevel);
var vs = GetValidPreEvolutions(pkm, maxspeciesorigin: maxspeciesorigin, lvl: ignoreLevel ? 100 : -1, skipChecks: ignoreLevel);
if (!FilterGBSlotsCatchRate(pkm, ref vs, out GameVersion Gen1Version, out bool RBDragonair))
yield break;
return Enumerable.Empty<EncounterSlot>();
int gen = pkm.GenNumber;
int fluteBoost = gen < 3 ? 0 : 4;
const int dexnavBoost = 30;
int df = DexNav ? fluteBoost : 0;
int dn = DexNav ? fluteBoost + dexnavBoost : 0;
// Get slots where pokemon can exist with respect to the evolution chain
IEnumerable<EncounterSlot> slots = loc.Slots.Where(slot => vs.Any(evo => evo.Species == slot.Species && (ignoreLevel || evo.Level >= slot.LevelMin - df)));
List<EncounterSlot> encounterSlots;
if (ignoreLevel)
encounterSlots = slots.ToList();
else if (pkm.HasOriginalMetLocation)
encounterSlots = slots.Where(slot => slot.LevelMin - df <= lvl && lvl <= slot.LevelMax + (slot.Permissions.AllowDexNav ? dn : df)).ToList();
else // check for any less than current level
encounterSlots = slots.Where(slot => slot.LevelMin <= lvl).ToList();
var slots = loc.Slots.Where(slot => vs.Any(evo => evo.Species == slot.Species && (ignoreLevel || evo.Level >= slot.LevelMin - df)));
// Get slots where pokemon can exist with respect to level constraints
var encounterSlots = GetSlotsFilterByLevel(pkm, lvl, ignoreLevel, slots, df, dn);
// Return enumerable of slots pkm might have originated from
if (gen <= 2)
{
var gbslots = FilterGBSlots(pkm, gen, Gen1Version, encounterSlots, RBDragonair);
foreach (var s in gbslots.OrderBy(slot => slot.LevelMin))
yield return s;
yield break;
}
return GetFilteredSlots12(pkm, gen, Gen1Version, encounterSlots, RBDragonair).OrderBy(slot => slot.LevelMin); // prefer lowest levels
if (gen <= 5)
return GetFilteredSlotsByForm(pkm, encounterSlots);
if (DexNav && gen == 6)
return GetFilteredSlots6DexNav(pkm, lvl, encounterSlots, fluteBoost);
return GetFilteredSlots67(pkm, encounterSlots);
}
private static List<EncounterSlot> GetSlotsFilterByLevel(PKM pkm, int lvl, bool ignoreLevel, IEnumerable<EncounterSlot> slots, int df, int dn)
{
if (ignoreLevel)
return slots.ToList();
if (pkm.HasOriginalMetLocation)
return slots.Where(slot => slot.LevelMin - df <= lvl && lvl <= slot.LevelMax + (slot.Permissions.AllowDexNav ? dn : df)).ToList();
// check for any less than current level
return slots.Where(slot => slot.LevelMin <= lvl).ToList();
}
private static IEnumerable<EncounterSlot> GetFilteredSlotsByForm(PKM pkm, IEnumerable<EncounterSlot> encounterSlots)
{
return WildForms.Contains(pkm.Species)
? encounterSlots.Where(slot => slot.Form == pkm.AltForm)
: encounterSlots;
}
private static IEnumerable<EncounterSlot> GetFilteredSlots67(PKM pkm, IReadOnlyCollection<EncounterSlot> encounterSlots)
{
IEnumerable<EncounterSlot> slotdata;
int species = pkm.Species;
int form = pkm.AltForm;
if (AlolanVariantEvolutions12.Contains(species)) // match form if same species, else form 0.
slotdata = encounterSlots.Where(slot => species == slot.Species ? slot.Form == form : slot.Form == 0);
else if (WildForms.Contains(species) || AlolanOriginForms.Contains(species)) // match slot form
slotdata = encounterSlots.Where(slot => slot.Form == form);
else
slotdata = encounterSlots; // no form checking
foreach (var z in slotdata)
yield return z;
// Filter for Form Specific
// Pressure Slot
EncounterSlot slotMax = encounterSlots.OrderByDescending(slot => slot.LevelMax).FirstOrDefault();
if (slotMax == null)
yield break; // yield break;
if (gen >= 6 && !DexNav)
if (AlolanVariantEvolutions12.Contains(species)) // match form if same species, else form 0.
{
var slotdata = WildForms.Contains(pkm.Species)
? encounterSlots.Where(slot => slot.Form == pkm.AltForm)
: encounterSlots;
foreach (var z in slotdata)
yield return z;
// Filter for Form Specific
if (slotMax != null)
yield return getPressureSlot(slotMax);
yield break;
if (species == slotMax.Species ? slotMax.Form == form : slotMax.Form == 0)
yield return GetPressureSlot(slotMax, pkm);
}
IEnumerable<EncounterSlot> formMatchSlots = encounterSlots.Where(slot => !WildForms.Contains(pkm.Species) || slot.Form == pkm.AltForm);
if (gen <= 5)
else if (WildForms.Contains(species) || AlolanOriginForms.Contains(species)) // match slot form
{
foreach (var z in formMatchSlots)
yield return z;
yield break;
if (slotMax.Form == form)
yield return GetPressureSlot(slotMax, pkm);
}
else
yield return GetPressureSlot(slotMax, pkm);
}
private static IEnumerable<EncounterSlot> GetFilteredSlots6DexNav(PKM pkm, int lvl, IReadOnlyCollection<EncounterSlot> encounterSlots, int fluteBoost)
{
var formMatchSlots = GetFilteredSlotsByForm(pkm, encounterSlots);
foreach (EncounterSlot s in formMatchSlots)
{
bool nav = s.Permissions.AllowDexNav && (pkm.RelearnMove1 != 0 || pkm.AbilityNumber == 4);
@ -649,17 +670,19 @@ private static IEnumerable<EncounterSlot> GetValidEncounterSlots(PKM pkm, Encoun
slot.Permissions.DexNav = true;
yield return slot;
}
// Pressure Slot
EncounterSlot slotMax = encounterSlots.OrderByDescending(slot => slot.LevelMax).FirstOrDefault();
if (slotMax != null)
yield return getPressureSlot(slotMax);
EncounterSlot getPressureSlot(EncounterSlot s)
{
var max = s.Clone();
max.Permissions.Pressure = true;
max.Form = pkm.AltForm;
return max;
}
yield return GetPressureSlot(slotMax, pkm);
}
private static EncounterSlot GetPressureSlot(EncounterSlot s, PKM pkm)
{
var max = s.Clone();
max.Permissions.Pressure = true;
max.Form = pkm.AltForm;
return max;
}
private static bool FilterGBSlotsCatchRate(PKM pkm, ref IEnumerable<DexLevel> vs, out GameVersion Gen1Version, out bool RBDragonair)
{
RBDragonair = false;
@ -710,7 +733,7 @@ private static bool FilterGBSlotsCatchRate(PKM pkm, ref IEnumerable<DexLevel> vs
return true;
}
}
private static IEnumerable<EncounterSlot> FilterGBSlots(PKM pkm, int gen, GameVersion Gen1Version, IEnumerable<EncounterSlot> slots, bool RBDragonair)
private static IEnumerable<EncounterSlot> GetFilteredSlots12(PKM pkm, int gen, GameVersion Gen1Version, IEnumerable<EncounterSlot> slots, bool RBDragonair)
{
switch (gen)
{

View File

@ -166,21 +166,18 @@ private void FixEvoTreeSM()
}
Lineage[711].Chain.RemoveRange(0, 3);
// Add past gen evolutions for other Marowak and Exeggutor
var raichu1 = Lineage[Personal.GetFormeIndex(26, 1)];
var evo1 = raichu1.Chain[0].StageEntryMethods[0].Copy();
Lineage[26].Chain.Add(new EvolutionStage { StageEntryMethods = new List<EvolutionMethod> { evo1 } });
var evo2 = raichu1.Chain[1].StageEntryMethods[0].Copy();
evo2.Form = -1; evo2.Banlist = EvolutionMethod.BanSM;
Lineage[26].Chain.Add(new EvolutionStage { StageEntryMethods = new List<EvolutionMethod> { evo2 } });
var exegg = Lineage[Personal.GetFormeIndex(103, 1)].Chain[0].StageEntryMethods[0].Copy();
exegg.Form = -1; exegg.Banlist = EvolutionMethod.BanSM; exegg.Method = 8; // No night required (doesn't matter)
Lineage[103].Chain.Add(new EvolutionStage { StageEntryMethods = new List<EvolutionMethod> { exegg } });
var marowak = Lineage[Personal.GetFormeIndex(105, 1)].Chain[0].StageEntryMethods[0].Copy();
marowak.Form = -1; marowak.Banlist = EvolutionMethod.BanSM;
Lineage[105].Chain.Add(new EvolutionStage { StageEntryMethods = new List<EvolutionMethod> { marowak } });
// Ban Raichu Evolution on SM
Lineage[Personal.GetFormeIndex(26, 0)]
.Chain[1].StageEntryMethods[0]
.Banlist = EvolutionMethod.BanSM;
// Ban Exeggutor Evolution on SM
Lineage[Personal.GetFormeIndex(103, 0)]
.Chain[0].StageEntryMethods[0]
.Banlist = EvolutionMethod.BanSM;
// Ban Marowak Evolution on SM
Lineage[Personal.GetFormeIndex(105, 0)]
.Chain[0].StageEntryMethods[0]
.Banlist = EvolutionMethod.BanSM;
}
private int GetIndex(PKM pkm)
@ -549,7 +546,7 @@ public class EvolutionMethod
internal static readonly HashSet<int> TradeMethods = new HashSet<int> {5, 6, 7};
private static readonly IReadOnlyCollection<GameVersion> NoBanlist = new GameVersion[0];
internal static readonly IReadOnlyCollection<GameVersion> BanSM = new[] {GameVersion.SN, GameVersion.MN, GameVersion.US, GameVersion.UM};
internal static readonly IReadOnlyCollection<GameVersion> BanSM = new[] {GameVersion.SN, GameVersion.MN};
internal IReadOnlyCollection<GameVersion> Banlist = NoBanlist;
public bool Valid(PKM pkm, int lvl, bool skipChecks)
@ -559,12 +556,13 @@ public bool Valid(PKM pkm, int lvl, bool skipChecks)
if (!skipChecks && pkm.AltForm != Form)
return false;
if (!skipChecks && Banlist.Contains((GameVersion)pkm.Version))
if (!skipChecks && Banlist.Contains((GameVersion)pkm.Version) && pkm.IsUntraded) // sm lacks usum kantonian evos
return false;
switch (Method)
{
case 8: // Use Item
case 42:
return true;
case 17: // Male
return pkm.Gender == 0;

View File

@ -54,6 +54,8 @@ public static partial class Legal
720, // Hoopa
741, // Oricorio
773, // Silvally
800, // Necrozma
};
public static readonly HashSet<int> FormChangeMoves = new HashSet<int>
{
@ -153,6 +155,12 @@ public static partial class Legal
800, // Necrozma
801, // Magearna
802, // Marshadow
803, // Poipole
804, // Naganadel
805, // Stakataka
806, // Blacephalon
807, // Zeraora
};
public static readonly HashSet<int> BattleFrontierBanlist = new HashSet<int>
@ -195,6 +203,7 @@ public static partial class Legal
800, // Necrozma
801, // Magearna
802, // Marshadow
807, // Zeraora
};
public static readonly HashSet<int> BattleForms = new HashSet<int>
@ -223,7 +232,10 @@ public static partial class Legal
302,319,323,334,362,373,376,384,
428,475,
531,
719
719,
// USUM
800, // Ultra Necrozma
};
public static readonly HashSet<int> BattlePrimals = new HashSet<int> { 382, 383 };
@ -232,6 +244,7 @@ public static partial class Legal
622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658,
695, 696, 697, 698, 699, 700, 701, 702, 703,
719,
723, 724, 725, 726, 727, 728
};
internal static readonly HashSet<int> InvalidSketch = new HashSet<int>(new[] { 165, 448 }.Concat(Z_Moves)); // Struggle & Chatter
@ -240,14 +253,14 @@ public static partial class Legal
150, 151, 249, 250, 251, 382, 383, 384, 385, 386, 483,
484, 487, 489, 490, 491, 492, 493, 494, 643, 644, 646,
647, 648, 649, 716, 717, 718, 719, 720, 721, 789, 790,
791, 792, 800, 801, 802
791, 792, 800, 801, 802, 807
};
public static readonly HashSet<int> SubLegends = new HashSet<int>
{
144, 145, 146, 243, 244, 245, 377, 378, 379, 380, 381,
480, 481, 482, 485, 486, 488, 638, 639, 640, 641, 642,
645, 772, 773, 787, 788, 785, 786, 793, 794, 795, 796,
797, 798, 799
797, 798, 799, 803, 804, 805, 806,
};
public static readonly int[] Arceus_Plate = {303, 306, 304, 305, 309, 308, 310, 313, 298, 299, 301, 300, 307, 302, 311, 312, 644};
@ -386,6 +399,7 @@ public static partial class Legal
public static readonly int[] Games_7vc2 = { 39, 40, 41 }; // Gold, Silver, Crystal
public static readonly int[] Games_7vc1 = { 35, 36, 37, 38 }; // Red, Green, Blue, Yellow
public static readonly int[] Games_7go = { 34 };
public static readonly int[] Games_7usum = { 32, 33 };
public static readonly int[] Games_7sm = { 30, 31 };
public static readonly int[] Games_6xy = { 24, 25 };
public static readonly int[] Games_6oras = { 26, 27 };

View File

@ -12,9 +12,10 @@ public static partial class Legal
internal const int MaxBallID_7 = 0x1A; // 26
internal const int MaxGameID_7 = 41; // Crystal (VC?)
internal const int MaxSpeciesID_7_USUM = 802;
internal const int MaxMoveID_7_USUM = 720;
internal const int MaxItemID_7_USUM = 920;
internal const int MaxSpeciesID_7_USUM = 807;
internal const int MaxMoveID_7_USUM = 728;
internal const int MaxItemID_7_USUM = 959;
internal const int MaxAbilityID_7_USUM = 233;
#region Met Locations
@ -26,7 +27,10 @@ public static partial class Legal
006, 008, 010, 012, 014, 016, 018, 020, 022, 024, 026, 028, 030, 032, 034, 036, 038, 040, 042, 044, 046, 048,
050, 052, 054, 056, 058, 060, 062, 064, 066, 068, 070, 072, 074, 076, 078, 082, 084, 086, 088, 090, 092, 094,
100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148,
150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192
150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192,
194, 196, 198,
200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232,
};
internal static readonly int[] Met_SM_3 =
@ -50,12 +54,14 @@ public static partial class Legal
#endregion
internal static readonly int[][] Tutors_USUM =
internal static readonly int[] Tutors_USUM =
{
new int[0], // todo
new int[0], // todo
new int[0], // todo
new int[0], // todo
450, 343, 162, 530, 324, 442, 402, 529, 340, 067, 441, 253, 009, 007, 008,
277, 335, 414, 492, 356, 393, 334, 387, 276, 527, 196, 401, 428, 406, 304, 231,
020, 173, 282, 235, 257, 272, 215, 366, 143, 220, 202, 409, 264, 351, 352,
380, 388, 180, 495, 270, 271, 478, 472, 283, 200, 278, 289, 446, 285,
477, 502, 432, 710, 707, 675, 673
};
internal static readonly ushort[] Pouch_Regular_SM = // 00
{
@ -90,8 +96,12 @@ public static partial class Legal
705, 706, 765, 773, 797,
841, 842, 843, 845, 847, 850, 857, 858, 860,
};
internal static readonly ushort[] Pouch_Key_USUM = {
// todo
internal static readonly ushort[] Pouch_Key_USUM = Pouch_Key_SM.Concat(new ushort[] {
933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948,
440,
}).ToArray();
public static readonly ushort[] Pouch_Roto_USUM = {
949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959
};
internal static readonly ushort[] Pouch_TMHM_SM = { // 02
328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
@ -117,16 +127,16 @@ public static partial class Legal
776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 798, 799, 800, 801, 802, 803, 804, 805, 806, 836
};
internal static readonly ushort[] Pouch_ZCrystal_USUM = Pouch_ZCrystal_SM.Concat(new ushort[] { // Bead
// todo
927, 928, 929, 930, 931, 932
}).ToArray();
internal static readonly ushort[] Pouch_ZCrystalHeld_USUM = Pouch_ZCrystalHeld_SM.Concat(new ushort[] { // Piece
// todo
921, 922, 923, 924, 925, 926
}).ToArray();
public static readonly Dictionary<int, int> ZCrystalDictionary = Pouch_ZCrystal_USUM
.Zip(Pouch_ZCrystalHeld_USUM, (k, v) => new { Key = (int)k, Value = (int)v })
.ToDictionary(x => x.Key, x => x.Value);
internal static readonly ushort[] HeldItems_SM = new ushort[1].Concat(Pouch_Items_SM).Concat(Pouch_Berries_SM).Concat(Pouch_Medicine_SM).Concat(Pouch_ZCrystalHeld_SM).ToArray();
internal static readonly ushort[] HeldItems_USUM = HeldItems_SM; // todo
internal static readonly ushort[] HeldItems_USUM = new ushort[1].Concat(Pouch_Items_SM).Concat(Pouch_Berries_SM).Concat(Pouch_Medicine_SM).Concat(Pouch_ZCrystalHeld_USUM).ToArray();
private static readonly HashSet<int> WildPokeballs7 = new HashSet<int> {
0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
@ -171,7 +181,37 @@ public static partial class Legal
422, 423, 425, 426, 429, 430, 438, 440, 443, 444, 445, 446, 447, 448, 456, 457, 461, 462, 466, 467, 470, 471,
474, 476, 478, 506, 507, 508, 524, 525, 526, 546, 547, 548, 549, 551, 552, 553, 564, 565, 566, 567, 568, 569,
582, 583, 584, 587, 594, 627, 628, 629, 630, 661, 662, 663, 674, 675, 700, 703, 704, 705, 706, 707, 708, 709,
718
718,
// Regular
023, 086, 108, 138, 140, 163, 177, 179, 190, 204,
206, 214, 223, 228, 238, 246, 303, 309, 341, 343,
345, 347, 352, 353, 357, 366, 427, 439, 458, 550,
559, 570, 572, 592, 605, 619, 621, 622, 624, 636,
667, 669, 676, 686, 690, 692, 696, 698, 701, 702,
714,
// Wormhole
333, 334, // Altaria
193, 469, // Yanmega
561, // Sigilyph
580, 581, // Swanna
276, 277, // Swellow
451, 452, // Drapion
531, // Audino
695, // Heliolisk
273, 274, 275, // Nuzleaf
325, 326, // Gumpig
459, 460, // Abomasnow
307, 308, // Medicham
449, 450, // Hippowdon
557, 558, // Crustle
218, 219, // Magcargo
688, 689, // Barbaracle
270, 271, 272, // Lombre
618, // Stunfisk
418, 419, // Floatzel
194, 195, // Quagsire
};
public static readonly HashSet<int> PastGenAlolanNativesUncapturable = new HashSet<int>
{
@ -212,6 +252,26 @@ public static partial class Legal
532, // [534] Conkeldurr (Timburr)
540, // [542] Leavanny (Sewaddle)
602, // [604] Eelektross (Tynamo)
004, // Charmander
007, // Squirtle
095, // Onix
663, 664, // Scatterbug
001, // Bulbasaur
280, // Ralts
255, 256, // Combusken
013, 014, 015, // Beedrill
252, 253, // Grovyle
258, 259, // Marshtomp
393, 394, // Prinplup
387, 388, // Grotle
016, 017, 018, // Pidgeot
389, 390, 391, // Monferno
304, 305, 306, // Aggron
479, // Rotom
650, 651, 652, // Chesnaught
656, 657, 658, // Greninja
653, 654, 655, // Delphox
};
internal static readonly HashSet<int> Inherit_Apricorn6 = new HashSet<int>
{
@ -257,7 +317,15 @@ public static partial class Legal
731, 734, 736, 739, 741, 742, 744, 746, 747, 749,
751, 753, 755, 757, 759, 761, 764, 765, 766, 767,
769, 771, 774, 775, 776, 777, 778, 779, 780, 781,
782
782,
// USUM Additions
023, 086, 108, 138, 140, 163, 177, 179, 190, 204,
206, 214, 223, 228, 238, 246, 303, 309, 341, 343,
345, 347, 352, 353, 357, 366, 427, 439, 458, 550,
559, 570, 572, 592, 605, 619, 621, 622, 624, 636,
667, 669, 676, 686, 690, 692, 696, 698, 701, 702,
714
};
internal static readonly HashSet<int> AlolanCaptureNoHeavyBall = new HashSet<int> { 374, 785, 786, 787, 788}; // Beldum & Tapus
internal static readonly HashSet<int> Inherit_ApricornMale7 = new HashSet<int>
@ -351,6 +419,39 @@ public static partial class Legal
687, // Core Enforcer
};
internal static readonly HashSet<int> Totem_Alolan = new HashSet<int>
{
020, // Raticate (Normal, Alolan, Totem)
105, // Marowak (Normal, Alolan, Totem)
778, // Mimikyu (Normal, Busted, Totem, Totem_Busted)
};
internal static readonly HashSet<int> Totem_SM = new HashSet<int>
{
020, // Raticate
735, // Gumshoos
//746, // Wishiwashi
758, // Salazzle
754, // Lurantis
738, // Vikavolt
778, // Mimikyu
784, // Kommo-o
};
internal static readonly HashSet<int> Totem_USUM = new HashSet<int>
{
020, // Raticate
735, // Gumshoos
//746, // Wishiwashi
758, // Salazzle
754, // Lurantis
738, // Vikavolt
778, // Mimikyu
784, // Kommo-o
105, // Marowak
752, // Araquanid
777, // Togedemaru
743, // Ribombee
};
internal static readonly int[] EggLocations7 = {60002, 30002};
internal static readonly HashSet<int> ValidMet_SM = new HashSet<int>
{
@ -361,9 +462,10 @@ public static partial class Legal
30016 // Poké Pelago
};
internal static readonly HashSet<int> ValidMet_USUM = new HashSet<int>
internal static readonly HashSet<int> ValidMet_USUM = new HashSet<int>(ValidMet_SM)
{
// todo
194, 196, 198,
200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232,
};
private static readonly int[] TMHM_SM =
@ -399,7 +501,7 @@ public static partial class Legal
05, 10, 05, 05, 15, 10, 05, 05, 05, 10, 10, 10, 10, 20, 25, 10, 20, 30, 25, 20, 20, 15, 20, 15, 20, 20, 10, 10, 10, 10, 10, 20, 10, 30, 15, 10, 10, 10, 20, 20, 05, 05, 05, 20, 10, 10, 20, 15, 20, 20,
10, 20, 30, 10, 10, 40, 40, 30, 20, 40, 20, 20, 10, 10, 10, 10, 05, 10, 10, 05, 05, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01,
01, 01, 01, 01, 01, 01, 01, 01, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, 15, 20, 30, 20, 15, 15, 20, 10, 15, 15, 10, 05, 10, 10, 20, 15, 10, 15, 15, 15, 05, 15, 20, 20, 01, 01, 01, 01, 01, 01,
01, 01, 01, 05, 05, 10, 10, 10, 20, 10, 10, 10, 05, 05, 20, 10, 10, 10, 01
01, 01, 01, 05, 05, 10, 10, 10, 20, 10, 10, 10, 05, 05, 20, 10, 10, 10, 01, 05, 15, 05, 01, 01, 01, 01, 01, 01,
};
internal static readonly HashSet<int> Ban_NoHidden7 = new HashSet<int>

View File

@ -48,7 +48,9 @@
<None Remove="Resources\byte\encounter_sn_sos.pkl" />
<None Remove="Resources\byte\encounter_ss.pkl" />
<None Remove="Resources\byte\encounter_us.pkl" />
<None Remove="Resources\byte\encounter_us_sos.pkl" />
<None Remove="Resources\byte\encounter_um.pkl" />
<None Remove="Resources\byte\encounter_um_sos.pkl" />
<None Remove="Resources\byte\encounter_w.pkl" />
<None Remove="Resources\byte\encounter_w2.pkl" />
<None Remove="Resources\byte\encounter_x.pkl" />
@ -145,6 +147,7 @@
<None Remove="Resources\text\de\text_tradehgss_de.txt" />
<None Remove="Resources\text\de\text_traderse_de.txt" />
<None Remove="Resources\text\de\text_tradesm_de.txt" />
<None Remove="Resources\text\de\text_tradeusum_de.txt" />
<None Remove="Resources\text\de\text_tradexy_de.txt" />
<None Remove="Resources\text\de\text_TrainingBag_de.txt" />
<None Remove="Resources\text\de\text_Types_de.txt" />
@ -190,6 +193,7 @@
<None Remove="Resources\text\en\text_tradehgss_en.txt" />
<None Remove="Resources\text\en\text_traderse_en.txt" />
<None Remove="Resources\text\en\text_tradesm_en.txt" />
<None Remove="Resources\text\en\text_tradeusum_en.txt" />
<None Remove="Resources\text\en\text_tradexy_en.txt" />
<None Remove="Resources\text\en\text_TrainingBag_en.txt" />
<None Remove="Resources\text\en\text_Types_en.txt" />
@ -234,6 +238,7 @@
<None Remove="Resources\text\es\text_tradehgss_es.txt" />
<None Remove="Resources\text\es\text_traderse_es.txt" />
<None Remove="Resources\text\es\text_tradesm_es.txt" />
<None Remove="Resources\text\es\text_tradeusum_es.txt" />
<None Remove="Resources\text\es\text_tradexy_es.txt" />
<None Remove="Resources\text\es\text_TrainingBag_es.txt" />
<None Remove="Resources\text\es\text_Types_es.txt" />
@ -278,6 +283,7 @@
<None Remove="Resources\text\fr\text_tradehgss_fr.txt" />
<None Remove="Resources\text\fr\text_traderse_fr.txt" />
<None Remove="Resources\text\fr\text_tradesm_fr.txt" />
<None Remove="Resources\text\fr\text_tradeusum_fr.txt" />
<None Remove="Resources\text\fr\text_tradexy_fr.txt" />
<None Remove="Resources\text\fr\text_TrainingBag_fr.txt" />
<None Remove="Resources\text\fr\text_Types_fr.txt" />
@ -343,6 +349,7 @@
<None Remove="Resources\text\it\text_tradehgss_it.txt" />
<None Remove="Resources\text\it\text_traderse_it.txt" />
<None Remove="Resources\text\it\text_tradesm_it.txt" />
<None Remove="Resources\text\it\text_tradeusum_it.txt" />
<None Remove="Resources\text\it\text_tradexy_it.txt" />
<None Remove="Resources\text\it\text_TrainingBag_it.txt" />
<None Remove="Resources\text\it\text_Types_it.txt" />
@ -387,6 +394,7 @@
<None Remove="Resources\text\ja\text_tradehgss_ja.txt" />
<None Remove="Resources\text\ja\text_traderse_ja.txt" />
<None Remove="Resources\text\ja\text_tradesm_ja.txt" />
<None Remove="Resources\text\ja\text_tradeusum_ja.txt" />
<None Remove="Resources\text\ja\text_tradexy_ja.txt" />
<None Remove="Resources\text\ja\text_TrainingBag_ja.txt" />
<None Remove="Resources\text\ja\text_Types_ja.txt" />
@ -430,6 +438,7 @@
<None Remove="Resources\text\ko\text_tradedppt_ko.txt" />
<None Remove="Resources\text\ko\text_tradehgss_ko.txt" />
<None Remove="Resources\text\ko\text_tradesm_ko.txt" />
<None Remove="Resources\text\ko\text_tradeusum_ko.txt" />
<None Remove="Resources\text\ko\text_tradexy_ko.txt" />
<None Remove="Resources\text\ko\text_TrainingBag_ko.txt" />
<None Remove="Resources\text\ko\text_Types_ko.txt" />
@ -585,6 +594,7 @@
<None Remove="Resources\text\script\const_pt_en.txt" />
<None Remove="Resources\text\script\const_rs_en.txt" />
<None Remove="Resources\text\script\const_sm_en.txt" />
<None Remove="Resources\text\script\const_usum_en.txt" />
<None Remove="Resources\text\script\flags_b2w2_en.txt" />
<None Remove="Resources\text\script\flags_bw_en.txt" />
<None Remove="Resources\text\script\flags_dp_en.txt" />
@ -595,6 +605,7 @@
<None Remove="Resources\text\script\flags_pt_en.txt" />
<None Remove="Resources\text\script\flags_rs_en.txt" />
<None Remove="Resources\text\script\flags_sm_en.txt" />
<None Remove="Resources\text\script\flags_usum_en.txt" />
<None Remove="Resources\text\script\flags_xy_en.txt" />
<None Remove="Resources\text\zh\lang_zh.txt" />
<None Remove="Resources\text\zh\LegalityCheckStrings_zh.txt" />
@ -605,7 +616,6 @@
<None Remove="Resources\text\zh\text_bw2_60000_zh.txt" />
<None Remove="Resources\text\zh\text_Character_zh.txt" />
<None Remove="Resources\text\zh\text_Char_zh.txt" />
<None Remove="Resources\text\zh\text_Char_zh2.txt" />
<None Remove="Resources\text\zh\text_EncounterType_zh.txt" />
<None Remove="Resources\text\zh\text_Forms_zh.txt" />
<None Remove="Resources\text\zh\text_Games_zh.txt" />
@ -629,6 +639,7 @@
<None Remove="Resources\text\zh\text_SuperTraining_zh.txt" />
<None Remove="Resources\text\zh\text_tradeao_zh.txt" />
<None Remove="Resources\text\zh\text_tradesm_zh.txt" />
<None Remove="Resources\text\zh\text_tradeusum_zh.txt" />
<None Remove="Resources\text\zh\text_tradexy_zh.txt" />
<None Remove="Resources\text\zh\text_TrainingBag_zh.txt" />
<None Remove="Resources\text\zh\text_Types_zh.txt" />
@ -679,7 +690,9 @@
<EmbeddedResource Include="Resources\byte\encounter_sn_sos.pkl" />
<EmbeddedResource Include="Resources\byte\encounter_ss.pkl" />
<EmbeddedResource Include="Resources\byte\encounter_us.pkl" />
<EmbeddedResource Include="Resources\byte\encounter_us_sos.pkl" />
<EmbeddedResource Include="Resources\byte\encounter_um.pkl" />
<EmbeddedResource Include="Resources\byte\encounter_um_sos.pkl" />
<EmbeddedResource Include="Resources\byte\encounter_w.pkl" />
<EmbeddedResource Include="Resources\byte\encounter_w2.pkl" />
<EmbeddedResource Include="Resources\byte\encounter_x.pkl" />
@ -776,6 +789,7 @@
<EmbeddedResource Include="Resources\text\de\text_tradehgss_de.txt" />
<EmbeddedResource Include="Resources\text\de\text_traderse_de.txt" />
<EmbeddedResource Include="Resources\text\de\text_tradesm_de.txt" />
<EmbeddedResource Include="Resources\text\de\text_tradeusum_de.txt" />
<EmbeddedResource Include="Resources\text\de\text_tradexy_de.txt" />
<EmbeddedResource Include="Resources\text\de\text_TrainingBag_de.txt" />
<EmbeddedResource Include="Resources\text\de\text_Types_de.txt" />
@ -821,6 +835,7 @@
<EmbeddedResource Include="Resources\text\en\text_tradehgss_en.txt" />
<EmbeddedResource Include="Resources\text\en\text_traderse_en.txt" />
<EmbeddedResource Include="Resources\text\en\text_tradesm_en.txt" />
<EmbeddedResource Include="Resources\text\en\text_tradeusum_en.txt" />
<EmbeddedResource Include="Resources\text\en\text_tradexy_en.txt" />
<EmbeddedResource Include="Resources\text\en\text_TrainingBag_en.txt" />
<EmbeddedResource Include="Resources\text\en\text_Types_en.txt" />
@ -865,6 +880,7 @@
<EmbeddedResource Include="Resources\text\es\text_tradehgss_es.txt" />
<EmbeddedResource Include="Resources\text\es\text_traderse_es.txt" />
<EmbeddedResource Include="Resources\text\es\text_tradesm_es.txt" />
<EmbeddedResource Include="Resources\text\es\text_tradeusum_es.txt" />
<EmbeddedResource Include="Resources\text\es\text_tradexy_es.txt" />
<EmbeddedResource Include="Resources\text\es\text_TrainingBag_es.txt" />
<EmbeddedResource Include="Resources\text\es\text_Types_es.txt" />
@ -909,6 +925,7 @@
<EmbeddedResource Include="Resources\text\fr\text_tradehgss_fr.txt" />
<EmbeddedResource Include="Resources\text\fr\text_traderse_fr.txt" />
<EmbeddedResource Include="Resources\text\fr\text_tradesm_fr.txt" />
<EmbeddedResource Include="Resources\text\fr\text_tradeusum_fr.txt" />
<EmbeddedResource Include="Resources\text\fr\text_tradexy_fr.txt" />
<EmbeddedResource Include="Resources\text\fr\text_TrainingBag_fr.txt" />
<EmbeddedResource Include="Resources\text\fr\text_Types_fr.txt" />
@ -974,6 +991,7 @@
<EmbeddedResource Include="Resources\text\it\text_tradehgss_it.txt" />
<EmbeddedResource Include="Resources\text\it\text_traderse_it.txt" />
<EmbeddedResource Include="Resources\text\it\text_tradesm_it.txt" />
<EmbeddedResource Include="Resources\text\it\text_tradeusum_it.txt" />
<EmbeddedResource Include="Resources\text\it\text_tradexy_it.txt" />
<EmbeddedResource Include="Resources\text\it\text_TrainingBag_it.txt" />
<EmbeddedResource Include="Resources\text\it\text_Types_it.txt" />
@ -1018,6 +1036,7 @@
<EmbeddedResource Include="Resources\text\ja\text_tradehgss_ja.txt" />
<EmbeddedResource Include="Resources\text\ja\text_traderse_ja.txt" />
<EmbeddedResource Include="Resources\text\ja\text_tradesm_ja.txt" />
<EmbeddedResource Include="Resources\text\ja\text_tradeusum_ja.txt" />
<EmbeddedResource Include="Resources\text\ja\text_tradexy_ja.txt" />
<EmbeddedResource Include="Resources\text\ja\text_TrainingBag_ja.txt" />
<EmbeddedResource Include="Resources\text\ja\text_Types_ja.txt" />
@ -1061,6 +1080,7 @@
<EmbeddedResource Include="Resources\text\ko\text_tradedppt_ko.txt" />
<EmbeddedResource Include="Resources\text\ko\text_tradehgss_ko.txt" />
<EmbeddedResource Include="Resources\text\ko\text_tradesm_ko.txt" />
<EmbeddedResource Include="Resources\text\ko\text_tradeusum_ko.txt" />
<EmbeddedResource Include="Resources\text\ko\text_tradexy_ko.txt" />
<EmbeddedResource Include="Resources\text\ko\text_TrainingBag_ko.txt" />
<EmbeddedResource Include="Resources\text\ko\text_Types_ko.txt" />
@ -1216,6 +1236,7 @@
<EmbeddedResource Include="Resources\text\script\const_pt_en.txt" />
<EmbeddedResource Include="Resources\text\script\const_rs_en.txt" />
<EmbeddedResource Include="Resources\text\script\const_sm_en.txt" />
<EmbeddedResource Include="Resources\text\script\const_usum_en.txt" />
<EmbeddedResource Include="Resources\text\script\flags_b2w2_en.txt" />
<EmbeddedResource Include="Resources\text\script\flags_bw_en.txt" />
<EmbeddedResource Include="Resources\text\script\flags_dp_en.txt" />
@ -1226,6 +1247,7 @@
<EmbeddedResource Include="Resources\text\script\flags_pt_en.txt" />
<EmbeddedResource Include="Resources\text\script\flags_rs_en.txt" />
<EmbeddedResource Include="Resources\text\script\flags_sm_en.txt" />
<EmbeddedResource Include="Resources\text\script\flags_usum_en.txt" />
<EmbeddedResource Include="Resources\text\script\flags_xy_en.txt" />
<EmbeddedResource Include="Resources\text\zh\lang_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\LegalityCheckStrings_zh.txt" />
@ -1236,7 +1258,6 @@
<EmbeddedResource Include="Resources\text\zh\text_bw2_60000_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\text_Character_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\text_Char_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\text_Char_zh2.txt" />
<EmbeddedResource Include="Resources\text\zh\text_EncounterType_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\text_Forms_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\text_Games_zh.txt" />
@ -1260,6 +1281,7 @@
<EmbeddedResource Include="Resources\text\zh\text_SuperTraining_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\text_tradeao_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\text_tradesm_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\text_tradeusum_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\text_tradexy_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\text_TrainingBag_zh.txt" />
<EmbeddedResource Include="Resources\text\zh\text_Types_zh.txt" />

View File

@ -2,7 +2,7 @@
namespace PKHeX.Core
{
internal static class FormConverter
public static class FormConverter
{
/// <summary>
/// Gets a list of formes that the species can have.
@ -22,6 +22,8 @@ internal static string[] GetFormList(int species, IReadOnlyList<string> types, I
types[000], // Normal
forms[804], // Mega
};
if (generation == 7 && Legal.Totem_USUM.Contains(species))
return GetFormsTotem(species, types, forms);
if (species <= Legal.MaxSpeciesID_1)
return GetFormsGen1(species, types, forms, generation);
@ -39,6 +41,27 @@ internal static string[] GetFormList(int species, IReadOnlyList<string> types, I
return GetFormsGen7(species, types, forms);
}
public static bool IsTotemForm(int species, int form, int generation = 7)
{
if (generation != 7)
return false;
if (form == 0)
return false;
if (!Legal.Totem_USUM.Contains(species))
return false;
if (species == 778) // Mimikyu
return form == 2 || form == 3;
if (Legal.Totem_Alolan.Contains(species))
return form == 2;
return form == 1;
}
public static int GetTotemBaseForm(int species, int form)
{
if (species == 778) // Mimikyu
return form -2;
return form - 1;
}
private static string[] GetFormsGen1(int species, IReadOnlyList<string> types, IReadOnlyList<string> forms, int generation)
{
switch (species)
@ -382,11 +405,18 @@ private static string[] GetFormsGen7(int species, IReadOnlyList<string> types, I
forms[1023], // "BLU" - Sensu
};
case 744: // Rockruff
return new[]
{
types[0], // Normal
forms[1064], // Dusk
};
case 745: // Lycanroc
return new[]
{
forms[745], // Midday
forms[1024], // Midnight
forms[1064], // Dusk
};
case 746: // Wishiwashi
@ -418,11 +448,13 @@ private static string[] GetFormsGen7(int species, IReadOnlyList<string> types, I
forms[1057], // "V-Core", // Core Violet
};
case 778: // Mimikyu
case 800:
return new[]
{
forms[778], // Disguised
forms[1058], // Busted
types[000], // Normal
forms[1065], // Dusk Mane
forms[1066], // Dawn Wings
forms[1067], // Ultra Necrozma
};
case 801: // Magearna
@ -445,7 +477,6 @@ private static string[] GetFormsAlolan (int generation, IReadOnlyList<string> ty
return new[] { "" };
case 19: // Rattata
case 20: // Raticate
case 26: // Raichu
case 27: // Sandshrew
case 28: // Sandslash
@ -460,7 +491,6 @@ private static string[] GetFormsAlolan (int generation, IReadOnlyList<string> ty
case 76: // Golem
case 88: // Grimer
case 89: // Muk
case 105: // Marowak
case 103: // Exeggutor
return new[]
{
@ -497,6 +527,7 @@ private static string[] GetFormsPikachu(int generation, IReadOnlyList<string> ty
forms[816], // Unova
forms[817], // Kalos
forms[818], // Alola
forms[1063] // Partner
};
}
}
@ -581,6 +612,29 @@ private static string[] GetFormsArceus (int generation, IReadOnlyList<string> ty
};
}
}
private static string[] GetFormsTotem (int species, IReadOnlyList<string> types, IReadOnlyList<string> forms)
{
if (species == 778) // Mimikyu
return new[]
{
forms[778], // Disguised
forms[1058], // Busted
forms[1007], // Large
"*" + forms[1058], // Busted
};
if (Legal.Totem_Alolan.Contains(species))
return new[]
{
types[0], // Normal
forms[810], // Alolan
forms[1007], // Large
};
return new[]
{
types[0], // Normal
forms[1007], // Large
};
}
private static string[] GetFormsUnown(int generation)
{
switch (generation)

View File

@ -628,7 +628,7 @@ public void TradeMemory(bool Bank)
// Maximums
public override int MaxMoveID => Legal.MaxMoveID_7_USUM;
public override int MaxSpeciesID => Legal.MaxSpeciesID_7_USUM;
public override int MaxAbilityID => Legal.MaxAbilityID_7;
public override int MaxAbilityID => Legal.MaxAbilityID_7_USUM;
public override int MaxItemID => Legal.MaxItemID_7_USUM;
public override int MaxBallID => Legal.MaxBallID_7;
public override int MaxGameID => Legal.MaxGameID_7;

View File

@ -496,17 +496,12 @@ private static string ConvertString2BinG7_zh(string inputstr, int lang)
bool cht = lang == 10;
// A string cannot contain a mix of CHS and CHT characters.
bool IsCHT = inputstr.Any(chr => Gen7_CHT.Contains(chr) && !Gen7_CHS.Contains(chr));
IsCHT |= cht && !inputstr.Any(chr => Gen7_CHT.Contains(chr) ^ Gen7_CHS.Contains(chr)); // CHS and CHT have the same display name
var table = IsCHT ? Gen7_CHT : Gen7_CHS;
ushort ofs = IsCHT ? Gen7_CHT_Ofs : Gen7_CHS_Ofs;
bool IsCHT = inputstr.Any(chr => G7_CHT.ContainsKey(chr) && !G7_CHS.ContainsKey(chr));
IsCHT |= cht && !inputstr.Any(chr => G7_CHT.ContainsKey(chr) ^ G7_CHS.ContainsKey(chr)); // CHS and CHT have the same display name
var table = IsCHT ? G7_CHT : G7_CHS;
foreach (char chr in inputstr)
{
var index = Array.IndexOf(table, chr);
var val = index > -1 ? (char) (ofs + index) : chr;
str.Append(val);
}
str.Append(table.TryGetValue(chr, out int index) ? (char)(index + Gen7_ZH_Ofs) : chr);
return str.ToString();
}
@ -524,16 +519,14 @@ private static string ConvertBin2StringG7_zh(string inputstr)
}
/// <summary>
/// Shifts a character from the CHS/CHT character tables
/// Shifts a character from the Chinese character tables
/// </summary>
/// <param name="val">Input value to shift</param>
/// <returns>Shifted character</returns>
private static ushort Getg7zhChar(ushort val)
{
if (Gen7_CHS_Ofs <= val && val < Gen7_CHS_Ofs + Gen7_CHS.Length) // within CHS char table
return Gen7_CHS[val - Gen7_CHS_Ofs];
if (Gen7_CHT_Ofs <= val && val < Gen7_CHT_Ofs + Gen7_CHT.Length) // within CHT char table
return Gen7_CHT[val - Gen7_CHT_Ofs];
if (Gen7_ZH_Ofs <= val && val < Gen7_ZH_Ofs + Gen7_ZH.Length)
return Gen7_ZH[val - Gen7_ZH_Ofs];
return val; // regular character
}
@ -1923,10 +1916,22 @@ private static byte SetG3Char(ushort chr, bool jp)
.ToDictionary(pair => pair.value, pair => pair.index);
#region Gen 7 Chinese Character Tables
private static readonly char[] Gen7_CHS = Util.GetStringList("Char", "zh")[0].ToCharArray();
private const ushort Gen7_CHS_Ofs = 0xE800;
private static readonly char[] Gen7_CHT = Util.GetStringList("Char", "zh2")[0].ToCharArray();
private const ushort Gen7_CHT_Ofs = 0xEB0F;
private static readonly char[] Gen7_ZH = Util.GetStringList("Char", "zh")[0].ToCharArray();
private const ushort Gen7_ZH_Ofs = 0xE800;
private const ushort SM_ZHCharTable_Size = 0x30F;
private const ushort USUM_CHS_Size = 0x4;
private const ushort USUM_CHT_Size = 0x5;
private static bool getisG7CHSChar(int idx) => idx < SM_ZHCharTable_Size || SM_ZHCharTable_Size * 2 <= idx && idx < SM_ZHCharTable_Size * 2 + USUM_CHS_Size;
private static readonly Dictionary<char, int> G7_CHS = Gen7_ZH
.Select((value, index) => new { value, index })
.Where(pair => getisG7CHSChar(pair.index))
.ToDictionary(pair => pair.value, pair => pair.index);
private static readonly Dictionary<char, int> G7_CHT = Gen7_ZH
.Select((value, index) => new { value, index })
.Where(pair => !getisG7CHSChar(pair.index))
.ToDictionary(pair => pair.value, pair => pair.index);
#endregion
/// <summary>

View File

@ -93,7 +93,7 @@ public int FormeIndex(int species, int forme)
return species;
if (FormStatsIndex <= 0) // no formes present
return species;
if (forme > FormeCount) // beyond range of species' formes
if (forme >= FormeCount) // beyond range of species' formes
return species;
return FormStatsIndex + forme - 1;

View File

@ -20,10 +20,7 @@ public PersonalInfoSM(byte[] data)
SpecialTutors = new[]
{
GetBits(Data.Skip(0x3C).Take(0x04).ToArray()),
GetBits(Data.Skip(0x40).Take(0x04).ToArray()),
GetBits(Data.Skip(0x44).Take(0x04).ToArray()),
GetBits(Data.Skip(0x48).Take(0x04).ToArray()),
GetBits(Data.Skip(0x3C).Take(0x0A).ToArray()),
};
}
public override byte[] Write()
@ -31,9 +28,6 @@ public override byte[] Write()
SetBits(TMHM).CopyTo(Data, 0x28);
SetBits(TypeTutors).CopyTo(Data, 0x38);
SetBits(SpecialTutors[0]).CopyTo(Data, 0x3C);
SetBits(SpecialTutors[1]).CopyTo(Data, 0x40);
SetBits(SpecialTutors[2]).CopyTo(Data, 0x44);
SetBits(SpecialTutors[3]).CopyTo(Data, 0x48);
return Data;
}

View File

@ -15,7 +15,7 @@ public class PersonalTable
/// <summary>
/// Personal Table used in <see cref="GameVersion.USUM"/>.
/// </summary>
public static readonly PersonalTable USUM = GetTable("sm", GameVersion.USUM);
public static readonly PersonalTable USUM = GetTable("uu", GameVersion.USUM);
/// <summary>
/// Personal Table used in <see cref="GameVersion.SM"/>.
/// </summary>

Binary file not shown.

Binary file not shown.

View File

@ -230,4 +230,5 @@ Nebel-Erzeuger
Gras-Erzeuger
Metallprotektor
Phantomschutz
Prismarüstung
Prismarüstung
Zerebralmacht

View File

@ -1061,3 +1061,8 @@ Entlarvte
Original
Partner
Abend
Abend
Morgen
Ultra

View File

@ -30,8 +30,8 @@ Omega Rubin
Sonne
Mond
Ultrasonne
Ultramond
GO
Rote
Blaue [INT]/Grüne [JP]

View File

@ -1,4 +1,4 @@
Keiner
Kein
Meisterball
Hyperball
Superball
@ -918,4 +918,43 @@ Psycho-Disc
Eis-Disc
Drachen-Disc
Unlicht-Disc
Feen-Disc
Feen-Disc
Solgalium Z
Lunalium Z
Ultranecronium Z
Mimigmium Z
Wolwerockium Z
Grandirasium Z
Solgalium Z
Lunalium Z
Ultranecronium Z
Mimigmium Z
Wolwerockium Z
Grandirasium Z
Z-Kraftring
Rosa Blatt
Oranges Blatt
Blaues Blatt
Rotes Blatt
Grünes Blatt
Gelbes Blatt
Violettes Blatt
Regenbogenblüte
Gewitterorden
Necrosol
Necrolun
Necrosol
Necrolun
Elimas Normium Z
Nachlassball
Brutbon
Schnäppchenbon
Preisgeldbon
EP-Bon
Freundschaftsbon
Lockbon
Schutzbon
KP-Bon
AP-Bon
Statuswertebon
Fangbon

View File

@ -717,4 +717,13 @@ Tränendrüse
Elektropikser
Naturzorn
Multi-Angriff
Tausendfacher Donnerblitz
Tausendfacher Donnerblitz
Knallkopf
Plasmafäuste
Photonen-Geysir
Licht des Erlöschens
Schmetternde Sonnenwalze
Geballter Mondlaser
Herzliche Knuddelkloppe
Fataler Steinregen
Rasselnder Seelentanz

View File

@ -800,4 +800,9 @@ Katagami
Schlingking
Necrozma
Magearna
Marshadow
Marshadow
Venicro
Agoyon
Muramura
Kopplosio
Zeraora

View File

@ -108,7 +108,7 @@ Route 10
Route 11
Küste von Ula-Ula
Strand von Ula-Ula
Route 13
@ -188,7 +188,46 @@ Kampfbaum
Æther-Paradies
Ultradimension
Ultratiefsee
Malihe City
Kap am Stadtrand
Kap am Stadtrand
Mele-Mele
Akala
Ula-Ula
Poni
Big Wave Beach
Strandhöhle
Kantai-Strand
Strand von Poni
Ultrametropolis
Metropo Tower
Ultrakraftwerk
Ultratal
Ultrawüste
Ultrawald
Ultradschungel
Ultrawolkenkratzer
Ultradimension Zero
Rocket-Schloss
Tunnel in der Ebene
Pikachu-Tal
Route 1
Trainerschule
Spaltberg-Tunnel

View File

@ -13,4 +13,5 @@ Pokémon GO
Kanto-Region
Hoenn-Region
Alola-Region
Pokémon-Resort
Pokémon-Resort
Johto-Region

View File

@ -0,0 +1,14 @@
Gewalter
Funky
Bärbel
Bokra
Stumpfel
Schalotte
Bolle
Hilahila
Kihe
Yuichi
Keeyan
Hepa
Kumu
Huhu

View File

@ -230,4 +230,5 @@ Misty Surge
Grassy Surge
Full Metal Body
Shadow Shield
Prism Armor
Prism Armor
Neuroforce

View File

@ -30,8 +30,8 @@ Omega Ruby
Sun
Moon
Ultra Sun
Ultra Moon
GO
Red
Blue [INT]/Green [JP]

View File

@ -918,4 +918,43 @@ Psychic Memory
Ice Memory
Dragon Memory
Dark Memory
Fairy Memory
Fairy Memory
Solganium Z
Lunalium Z
Ultranecrozium Z
Mimikium Z
Lycanium Z
Kommonium Z
Solganium Z
Lunalium Z
Ultranecrozium Z
Mimikium Z
Lycanium Z
Kommonium Z
Z-Power Ring
Pink Petal
Orange Petal
Blue Petal
Red Petal
Green Petal
Yellow Petal
Purple Petal
Rainbow Flower
Surge Badge
N-Solarizer
N-Lunarizer
N-Solarizer
N-Lunarizer
Ilimas Normalium Z
Left Poké Ball
Roto Hatch
Roto Bargain
Roto Prize Money
Roto Exp. Points
Roto Friendship
Roto Encounter
Roto Stealth
Roto HP Restore
Roto PP Restore
Roto Boost
Roto Catch

View File

@ -717,4 +717,13 @@ Tearful Look
Zing Zap
Natures Madness
Multi-Attack
10,000,000 Volt Thunderbolt
10,000,000 Volt Thunderbolt
Mind Blown
Plasma Fists
Photon Geyser
Light That Burns the Sky
Searing Sunraze Smash
Menacing Moonraze Maelstrom
Lets Snuggle Forever
Splintered Stormshards
Clangorous Soulblaze

View File

@ -800,4 +800,9 @@ Kartana
Guzzlord
Necrozma
Magearna
Marshadow
Marshadow
Poipole
Naganadel
Stakataka
Blacephalon
Zeraora

View File

@ -108,7 +108,7 @@ Route 10
Route 11
Secluded Shore
Ulaula Beach
Route 13
@ -188,7 +188,46 @@ Battle Tree
Aether Paradise
Ultra Space
Ultra Deep Sea
Malie City
Outer Cape
Outer Cape
Melemele
Akala
Ulaula
Poni
Big Wave Beach
Sandy Cave
Heahea Beach
Poni Beach
Ultra Megalopolis
Megalo Tower
Ultra Plant
Ultra Crater
Ultra Desert
Ultra Forest
Ultra Jungle
Ultra Ruin
Ultra Space Wilds
Team Rockets Castle
Plains Grotto
Pikachu Valley
Route 1
Trainers School
Dividing Peak Tunnel

View File

@ -13,4 +13,5 @@ Pokémon GO
the Kanto region
the Hoenn region
the Alola region
Poké Pelago
Poké Pelago
the Johto region

View File

@ -0,0 +1,14 @@
Cha
Noinoi
Babo
Arbo
Tumptump
Solle
Professor
Hila
Kihei
Yuichi
Miyo
Sill
Kumu
Anga

View File

@ -230,4 +230,5 @@ Nebulogénesis
Herbogénesis
Guardia Metálica
Guardia Espectro
Armadura Prisma
Armadura Prisma
Fuerza Cerebral

View File

@ -30,8 +30,8 @@ Rubí Omega
Sol
Luna
Ultrasol
Ultraluna
GO
Roja
Azul [INT]/Verde [JP]

View File

@ -1,4 +1,4 @@
Ninguno
Ningún
Master Ball
Ultra Ball
Super Ball
@ -918,4 +918,43 @@ Disco Psíquico
Disco Hielo
Disco Dragón
Disco Siniestro
Disco Hada
Disco Hada
Solgaleostal Z
Lunalastal Z
Ultranecrostal Z
Mimikyustal Z
Lycanrostal Z
Kommostal Z
Solgaleostal Z
Lunalastal Z
Ultranecrostal Z
Mimikyustal Z
Lycanrostal Z
Kommostal Z
Superpulsera Z
Pétalo Rosa
Pétalo Naranja
Pétalo Azul
Pétalo Rojo
Pétalo Verde
Pétalo Amarillo
Pétalo Violeta
Flor Irisada
Medalla Fulgor
Necrosol
Necroluna
Necrosol
Necroluna
Cristal Z (Liam)
Poké Ball Ajena
Cupón Eclosión
Cupón Rebaja
Cupón Botín
Cupón Exp
Cupón Amistad
Cupón Reclamo
Cupón Sigilo
Cupón PS
Cupón PP
Cupón Refuerzo
Cupón Captura

View File

@ -717,4 +717,13 @@ Ojos Llorosos
Electropunzada
Furia Natural
Multiataque
Gigarrayo Fulminante
Gigarrayo Fulminante
Cabeza Sorpresa
Puños Plasma
Géiser Fotónico
Fotodestrucción Apocalíptica
Embestida Solar
Deflagración Lunar
Somanta Amistosa
Tempestad Rocosa
Estruendo Implacable

View File

@ -800,4 +800,9 @@ Kartana
Guzzlord
Necrozma
Magearna
Marshadow
Marshadow
Poipole
Naganadel
Stakataka
Blacephalon
Zeraora

View File

@ -108,7 +108,7 @@ Ruta 10
Ruta 11
Playa Menor
Playa de Ula-Ula
Ruta 13
@ -188,7 +188,46 @@ Isla Exeggutor
Paraíso Æther
Ultraespacio
Ultraabismo
Ciudad Malíe
Cabo de las Afueras
Cabo de las Afueras
Melemele
Akala
Ula-Ula
Poni
Playa Big Wave
Cueva Costera
Playa de Kantai
Playa de Poni
Ultrópolis
Torre Ultrópolis
Ultragenerador
Ultravalle
Ultradesierto
Ultrabosque
Ultrajungla
Ultraurbe
Ultraespacio Cero
Castillo Team Rocket
Gruta de la Llanura
Valle de los Pikachu
Ruta 1
Escuela Entrenadores
Túnel del Volcán

View File

@ -13,4 +13,5 @@ Pokémon GO
Kanto
Hoenn
Alola
Poké Resort
Poké Resort
Johto

View File

@ -0,0 +1,14 @@
Vengador
Tabion
Barbo
Serpi
Tronquilo
Viscosín
Torete
Hila
Kike
Yuichi
Yann
Epi
Kumu
Tito

View File

@ -230,4 +230,5 @@ Créa-Brume
Créa-Herbe
Métallo-Garde
Spectro-Bouclier
Prisme-Armure
Prisme-Armure
Cérébro-Force

View File

@ -30,8 +30,8 @@ Rubis Oméga
Soleil
Lune
Ultra-Soleil
Ultra-Lune
GO
Rouge
Bleue [INT]/Vert [JP]

View File

@ -918,4 +918,43 @@ ROM Psy
ROM Glace
ROM Dragon
ROM Ténèbres
ROM Fée
ROM Fée
Solgazélite
Lunazélite
Ultranécrozélite
Mimiquizélite
Lougarozélite
Ékaïzélite
Solgazélite
Lunazélite
Ultranécrozélite
Mimiquizélite
Lougarozélite
Ékaïzélite
Super Bracelet Z
Pétale Rose
Pétale Orange
Pétale Bleu
Pétale Rouge
Pétale Vert
Pétale Jaune
Pétale Violet
Fleur 7 Couleurs
Fulguro-Badge
Necrosol
Necroluna
Necrosol
Necroluna
Cristal Z Althéo
Poké Ball donnée
Moti-Couveuse
Moti-Promo
Moti-Magot
Moti-Exp
Moti-Cœur
Moti-Appât
Moti-Camouflage
Moti-Récup PV
Moti-Récup PP
Moti-Soutien
Moti-Capture

View File

@ -717,4 +717,13 @@ Larme à lŒil
Électrikipik
Ire de la Nature
Coup Varia-Type
Giga-Tonnerre
Giga-Tonnerre
Caboche-Kaboum
Plasma Punch
Photo-Geyser
Apocalypsis Luminis
Hélio-Choc Dévastateur
Rayons Séléno-Explosifs
Patati-Patattrape
Hurlement des Roches-Lames
Dracacophonie Flamboyante

View File

@ -800,4 +800,9 @@ Katagami
Engloutyran
Necrozma
Magearna
Marshadow
Marshadow
Vémini
Mandrillon
Ama-Ama
Pierroteknik
Zeraora

View File

@ -108,7 +108,7 @@ Route 10
Route 11
Côte Sauvage
Plage dUla-Ula
Route 13
@ -188,7 +188,46 @@ Arbre de Combat
Paradis Æther
Ultra-Dimension
Ultra-Abysses
Malié
Cap Passiloin
Cap Passiloin
Mele-Mele
Akala
Ula-Ula
Poni
Plage Big Wave
Grotte de la Plage
Plage dHoohale
Plage de Poni
Ultra-Mégalopole
Tour Mégalopole
Ultra-Centrale
Ultra-Vallée
Ultra-Désert
Ultra-Forêt
Ultra-Jungle
Ultra-Gratte-Ciel
Ultra-Dimension Zéro
Château Rocket
Grotte de la Plaine
Plaine des Pikachu
Route 1
École de Dresseurs
Tunnel Perce-Mont

View File

@ -13,4 +13,5 @@ Pokémon GO
Kanto
Hoenn
Alola
Poké Loisir
Poké Loisir
Johto

View File

@ -0,0 +1,14 @@
Luchabrutal
Ionel
Boubouille
Le Roy
Jérôme
Coquillette
Institutaur
Hilahila
Kihe
Arnold
Josette
Hepa
Kumu
Inaina

View File

@ -230,4 +230,5 @@ Nebbiogenesi
Erbogenesi
Metalprotezione
Spettroguardia
Scudoprisma
Scudoprisma
Cerebroforza

View File

@ -30,8 +30,8 @@ Rubino Omega
Sole
Luna
Ultrasole
Ultraluna
GO
Rossa
Blu [INT]/Verde [JP]

View File

@ -918,4 +918,43 @@ ROM Psico
ROM Ghiaccio
ROM Drago
ROM Buio
ROM Folletto
ROM Folletto
Solgaleium Z
Lunalium Z
Ultranecrozium Z
Mimikyum Z
Lycanrochium Z
Kommonium Z
Solgaleium Z
Lunalium Z
Ultranecrozium Z
Mimikyum Z
Lycanrochium Z
Kommonium Z
Supercerchio Z
Petalo rosa
Petalo arancione
Petalo azzurro
Petalo rosso
Petalo verde
Petalo giallo
Petalo violetto
Fiore arcobaleno
Medaglia Tonante
Necrosolix
Necrolunix
Necrosolix
Necrolunix
Normium Z Liam
Poké Ball altrui
Covanroll
Scontonroll
Soldinroll
Espnroll
Affettonroll
Incontranroll
Repellenroll
PSnroll
PPnroll
Statnroll
Acchiappanroll

View File

@ -717,4 +717,13 @@ Occhionilucidi
Elettropizzico
Ira della Natura
Multiattacco
Iperfulmine
Iperfulmine
Sbalorditesta
Pugni Plasma
Geyser Fotonico
Fotodistruzione Apocalittica
Supercollisione Solare
Deflagrazione Lunare
Dolcesacco di Botte
Litotempesta Radiale
Dracofonia Divampante

View File

@ -800,4 +800,9 @@ Kartana
Guzzlord
Necrozma
Magearna
Marshadow
Marshadow
Poipole
Naganadel
Stakataka
Blacephalon
Zeraora

View File

@ -108,7 +108,7 @@ Percorso 10
Percorso 11
Lido di Ula Ula
Spiaggia di Ula Ula
Percorso 13
@ -188,7 +188,46 @@ Albero della Lotta
Æther Paradise
Ultramondo
Ultrabisso
Malie
Promontorio di Malie
Promontorio di Malie
Mele Mele
Akala
Ula Ula
Poni
Spiaggia Big Wave
Caverna Costiera
Spiaggia di Kantai
Spiaggia di Poni
Ultramegalopoli
Torre Megalopoli
Ultracentrale
Ultravalle
Ultradeserto
Ultraforesta
Ultragiungla
Ultragglomerato
Ultramondo Ignoto
Castello Team Rocket
Grotta Prateria
Valle dei Pikachu
Percorso 1
Scuola Allenatori
Tunnel del Vulcano

View File

@ -13,4 +13,5 @@ Pokémon GO
Kanto
Hoenn
Alola
Poké Resort
Poké Resort
Johto

View File

@ -0,0 +1,14 @@
Luchano
Tabion
Barbuccia
Arby
Tumpin
Shelly
Prof
Hilahila
Kihe
Pinuccio
Lalla
Hepa
Kumu
Huhu

View File

@ -230,4 +230,5 @@
グラスメイカー
メタルプロテクト
ファントムガード
プリズムアーマー
プリズムアーマー
ブレインフォース

View File

@ -30,8 +30,8 @@ Y
サン
ムーン
ウルトラサン
ウルトラムーン
GO
青 [INT]/緑 [JP]

View File

@ -918,4 +918,43 @@
アイスメモリ
ドラゴンメモリ
ダークメモリ
フェアリーメモリ
フェアリーメモリ
ソルガレオZ
ルナアーラZ
ウルトラネクロZ
ミミッキュZ
ルガルガンZ
ジャラランガZ
ソルガレオZ
ルナアーラZ
ウルトラネクロZ
ミミッキュZ
ルガルガンZ
ジャラランガZ
Zパワーリング
ももいろはなびら
だいだいはなびら
あおのはなびら
あかのはなびら
みどりのはなびら
きいろのはなびら
むらさきはなびら
にじいろのはな
だいだいバッジ
ネクロプラスソル
ネクロプラスルナ
ネクロプラスソル
ネクロプラスルナ
イリマのノーマルZ
のこされたボール
タマゴふかポン
やすうりポン
おこづかいポン
けいけんポン
なつきポン
みっけポン
かくれポン
HPかいふくポン
PPかいふくポン
おうえんポン
つかまえポン

View File

@ -717,4 +717,13 @@
びりびりちくちく
しぜんのいかり
マルチアタック
1000まんボルト
1000まんボルト
ビックリヘッド
プラズマフィスト
フォトンゲイザー
てんこがすめつぼうのひかり
サンシャインスマッシャー
ムーンライトブラスター
ぽかぼかフレンドタイム
ラジアルエッジストーム
ブレイジングソウルビート

View File

@ -1,4 +1,4 @@
タマゴ
タマゴ
フシギダネ
フシギソウ
フシギバナ
@ -800,4 +800,9 @@
アクジキング
ネクロズマ
マギアナ
マーシャドー
マーシャドー
ベベノム
アーゴヨン
ツンデツンデ
ズガドーン
ゼラオラ

View File

@ -108,7 +108,7 @@
11ばんどうろ
ウラウラうらかいがん
ウラウラビーチ
13ばんどうろ
@ -188,7 +188,46 @@
エーテルパラダイス
ウルトラスペース
ウルトラディープシー
マリエシティ
はずれのみさき
はずれのみさき
メレメレ
アーカラ
ウラウラ
ポニ
ビッグウェーブビーチ
はまべのほらあな
カンタイビーチ
ポニのビーチ
ウルトラメガロポリス
メガロタワー
ウルトラプラント
ウルトラバレー
ウルトラデザート
ウルトラフォレスト
ウルトラジャングル
ウルトラビルディング
ウルトラスペースゼロ
ロケットだんのしろ
こうやのよこあな
ピカチュウのたに
1ばんどうろ
トレーナーズスクール
ワカツダケトンネル

View File

@ -13,4 +13,5 @@ Pokémon GO
カントーちほう
ホウエンちほう
アローラちほう
ポケリゾート
ポケリゾート
ジョウトちほう

View File

@ -0,0 +1,14 @@
オーガー
りくひさ
レナレナ
ロイ
ワーイ
バブコ
きょうじゅ
ヒラヒラ
キヘ
ユイッチー
キーヤン
ヘパ
クム
フフー

View File

@ -230,4 +230,5 @@ AR시스템
그래스메이커
메탈프로텍트
스펙터가드
프리즘아머
프리즘아머
브레인포스

View File

@ -30,8 +30,8 @@ Y
울트라썬
울트라문
레드
블루 [INT]/그린 [JP]

View File

@ -918,4 +918,43 @@ Z링
아이스메모리
드래곤메모리
다크메모리
페어리메모리
페어리메모리
솔가레오Z
루나아라Z
울트라네크로Z
따라큐Z
루가루암Z
짜랑고우거Z
솔가레오Z
루나아라Z
울트라네크로Z
따라큐Z
루가루암Z
짜랑고우거Z
Z파워링
담홍꽃잎
주황꽃잎
파랑꽃잎
빨강꽃잎
초록꽃잎
노랑꽃잎
보라꽃잎
무지개꽃
주황배지
네크로플러스솔
네크로플러스루나
네크로플러스솔
네크로플러스루나
일리마의 노말Z
남겨진 볼
알부화캡슐토이
할인캡슐토이
용돈캡슐토이
경험캡슐토이
친밀도캡슐토이
발견캡슐토이
숨기캡슐토이
HP회복캡슐토이
PP회복캡슐토이
응원캡슐토이
잡기캡슐토이

View File

@ -717,4 +717,13 @@ DD래리어트
찌리리따끔따끔
자연의분노
멀티어택
1000만볼트
1000만볼트
깜짝헤드
플라스마피스트
포톤가이저
하늘을태우는멸망의빛
선샤인스매셔
문라이트블래스터
투닥투닥프렌드타임
레이디얼에지스톰
브레이징소울비트

View File

@ -800,4 +800,9 @@
악식킹
네크로즈마
마기아나
마샤도
마샤도
베베놈
아고용
차곡차곡
두파팡
제라오라

View File

@ -108,7 +108,7 @@
11번도로
울라울라 뒤쪽 해안
울라울라비치
13번도로
@ -188,7 +188,46 @@
에테르파라다이스
울트라스페이스
울트라딥시
말리에시티
외곽해안가
외곽해안가
멜레멜레
아칼라
울라울라
포니
빅웨이브비치
해변 동굴
환대비치
포니비치
울트라메가로폴리스
메가로타워
울트라플랜트
울트라밸리
울트라데저트
울트라포레스트
울트라정글
울트라빌딩
울트라스페이스제로
로켓단의 성
황야 옆굴
피카츄 골짜기
1번도로
트레이너스쿨
경계터널

View File

@ -13,4 +13,5 @@ Pokémon GO
관동지방
호연지방
알로라지방
포켓리조트
포켓리조트
성도지방

View File

@ -0,0 +1,14 @@
차부
자뱃
꼬롱꼬롱
도이
와이
추르르
교수
히라히라
키헤
유일
기안
헤파
쿠무
후후

View File

@ -0,0 +1,5 @@
148 Starter 00:Rowlet,01:Litten,02:Popplio
432 Tapu Koko 03:Battleable,04:Defeated,05:Captured
433 Tapu Lele 01:Battleable,02:Defeated,03:Captured
434 Tapu Bulu 01:Battleable,02:Defeated,03:Captured
404 Tapu Fini 03:Battleable,04:Defeated,05:Captured

View File

@ -19,7 +19,7 @@
2834 (OR) Latias Captured
0420 (AS) Latios Defeated
2835 (AS) Latios Captured
2915 Eon Ticket Event Completed
2915 Eon Ticket Event Completed
0945 Deoxys Defeated @ Sky Tower
2842 Deoxys Captured @ Sky Tower
0173 Raikou Defeated

View File

@ -1,5 +1,7 @@
3100 Is Alolan Champion + Magearna Event Active
3487 Received Magearna Gift
3487 Received Gift Magearna
0493 Received Gift Porygon
0504 Received Gift Aerodactyl
1216 Received Gift Cosmog
0499 Received Gift Type:Null
0160 Moone[0] / Sunne Portal [1]
0499 Received Gift Type: Null
0160 Moone [0] / Sunne Portal [1]

View File

@ -0,0 +1,39 @@
0493 Received Gift Porygon
0504 Received Gift Aerodactyl
4420 Articuno Captured
4421 Zapdos Captured
4422 Moltres Captured
4423 Mewtwo Captured
4260 (US) Raikou Captured
4261 (UM) Entei Captured
4262 Suicune Captured
4263 (UM) Lugia Captured
4264 (US) Ho-Oh Captured
4285 Regirock Captured
4286 Regice Captured
4287 Registeel Captured
4283 (UM) Latias Captured
4284 (US) Latios Captured
4289 (UM) Kyogre Captured
4288 (US) Groudon Captured
4290 Rayquaza Captured
4265 Uxie Captured
4266 Mesprit Captured
4267 Azelf Captured
4268 (US) Dialga Captured
4269 (UM) Palkia Captured
4270 (US) Heatran Captured
4271 (UM) Regigigas Captured
4272 Giratina Captured
4273 Cresselia Captured
4274 Cobalion Captured
4275 Terrakion Captured
4276 Virizion Captured
4277 (US) Tornadus Captured
4278 (UM) Thundurus Captured
4279 (US) Reshiram Captured
4280 (UM) Zekrom Captured
4281 Landorus Captured
4282 Kyurem Captured
4424 (US) Xerneas Captured
4425 (UM) Yveltal Captured

View File

@ -230,4 +230,5 @@
青草制造者
金属防护
幻影防守
棱镜装甲
棱镜装甲
脑核之力

View File

@ -1 +1 @@
蛋妙蛙种子草花小火龙恐喷杰尼龟卡咪水箭绿毛虫铁甲蛹巴大蝶独角壳针蜂波比鸟拉达烈雀嘴阿柏蛇怪皮丘雷穿山鼠王多兰娜后朗力诺可西六尾九胖丁超音蝠走路臭霸派斯特球摩鲁蛾地三喵猫老鸭哥猴暴蒂狗风速蚊香蝌蚪君泳士凯勇基胡腕豪喇叭芽口呆食玛瑙母毒刺拳石隆岩马焰兽磁合一葱嘟利海狮白泥舌贝鬼通耿催眠貘引梦人钳蟹巨霹雳电顽弹椰树嘎啦飞腿郎快头瓦双犀牛钻吉蔓藤袋墨金鱼星宝魔墙偶天螳螂迷唇姐击罗肯泰鲤普百变伊布边菊化盔镰刀翼急冻闪你哈克幻叶月桂竺葵锯鳄蓝立咕夜鹰芭瓢安圆丝蛛叉字灯笼古然咩羊茸美丽露才皇毽棉长手向日蜻蜓乌沼太阳亮黑暗鸦妖未知图腾果翁麒麟奇榛佛托土弟蝎钢千壶赫狃熊圈熔蜗猪珊瑚炮章桶信使翅戴加象顿Ⅱ惊鹿犬无畏战舞娃奶罐幸福公炎帝幼沙班洛亚凤时木守宫森林蜥蜴稚鸡壮跃狼纹直冲茧狩猎盾粉莲童帽乐河橡实鼻狡猾傲骨燕鸥莉奈朵溜糖雨蘑菇斗笠懒獭过动猿请假居忍面者脱妞吼爆幕下掌朝北优雅勾魂眼那恰姆落正拍负萤甜蔷薇溶吞牙鲨鲸驼煤炭跳噗晃斑颚蚁漠仙歌青绵七夕鼬斩饭匙鳅鲶虾兵螯秤念触摇篮羽丑纳飘浮泡隐怨影诅咒巡灵彷徨热带铃勃梭雪冰护豹珍珠樱空棘爱心哑属艾欧盖固坐祈代希苗台猛曼拿儿狸法师箱蟀勒伦琴含羞苞槌城结贵妇绅蜜女帕兹潜兔随卷耳魅东施铛响坦铜镜钟盆聒噪陆尖咬不良骷荧光霓虹自舔狂远Z由卢席恩骑色霏莱谢米尔宙提主暖炒武刃丸剑探步哨约扒酷冷蚀豆鸽高雉幔庞滚蝙螺钉差搬运匠修建蟾蜍投摔打包保足蜈蚣车轮精根裙野蛮鲈混流氓红倒狒殿滑巾征哭具死神棺原肋始祖破灰尘索沫栗德单卵细胞造鹅倍四季萌哎呀败轻蜘坚齿组麻鳗宇烛幽晶斧嚏几何敏捷功夫父赤驹劈司令炸雄秃丫首恶燃烧毕云酋迪耶塔赛里狐呱贺掘彩蓓洁能鞘芳芙妮好鱿贼脚铠垃藻臂枪伞咚碎黏钥朽南瓜嗡哲裴格枭狙射炽咆哮虎漾壬笃啄铳少强锹农胜虻鬃弱坏驴仔重挽滴伪睡罩盗着竹疗环智挥猩掷胆噬堡爷参性:银伴陨枕戈谜拟Q磨舵鳞杖璞・鸣哞鳍科莫迦虚吾肌费束辉纸御机夏
蛋妙蛙种子草花小火龙恐喷杰尼龟卡咪水箭绿毛虫铁甲蛹巴大蝶独角壳针蜂波比鸟拉达烈雀嘴阿柏蛇怪皮丘雷穿山鼠王多兰娜后朗力诺可西六尾九胖丁超音蝠走路臭霸派斯特球摩鲁蛾地三喵猫老鸭哥猴暴蒂狗风速蚊香蝌蚪君泳士凯勇基胡腕豪喇叭芽口呆食玛瑙母毒刺拳石隆岩马焰兽磁合一葱嘟利海狮白泥舌贝鬼通耿催眠貘引梦人钳蟹巨霹雳电顽弹椰树嘎啦飞腿郎快头瓦双犀牛钻吉蔓藤袋墨金鱼星宝魔墙偶天螳螂迷唇姐击罗肯泰鲤普百变伊布边菊化盔镰刀翼急冻闪你哈克幻叶月桂竺葵锯鳄蓝立咕夜鹰芭瓢安圆丝蛛叉字灯笼古然咩羊茸美丽露才皇毽棉长手向日蜻蜓乌沼太阳亮黑暗鸦妖未知图腾果翁麒麟奇榛佛托土弟蝎钢千壶赫狃熊圈熔蜗猪珊瑚炮章桶信使翅戴加象顿Ⅱ惊鹿犬无畏战舞娃奶罐幸福公炎帝幼沙班洛亚凤时木守宫森林蜥蜴稚鸡壮跃狼纹直冲茧狩猎盾粉莲童帽乐河橡实鼻狡猾傲骨燕鸥莉奈朵溜糖雨蘑菇斗笠懒獭过动猿请假居忍面者脱妞吼爆幕下掌朝北优雅勾魂眼那恰姆落正拍负萤甜蔷薇溶吞牙鲨鲸驼煤炭跳噗晃斑颚蚁漠仙歌青绵七夕鼬斩饭匙鳅鲶虾兵螯秤念触摇篮羽丑纳飘浮泡隐怨影诅咒巡灵彷徨热带铃勃梭雪冰护豹珍珠樱空棘爱心哑属艾欧盖固坐祈代希苗台猛曼拿儿狸法师箱蟀勒伦琴含羞苞槌城结贵妇绅蜜女帕兹潜兔随卷耳魅东施铛响坦铜镜钟盆聒噪陆尖咬不良骷荧光霓虹自舔狂远Z由卢席恩骑色霏莱谢米尔宙提主暖炒武刃丸剑探步哨约扒酷冷蚀豆鸽高雉幔庞滚蝙螺钉差搬运匠修建蟾蜍投摔打包保足蜈蚣车轮精根裙野蛮鲈混流氓红倒狒殿滑巾征哭具死神棺原肋始祖破灰尘索沫栗德单卵细胞造鹅倍四季萌哎呀败轻蜘坚齿组麻鳗宇烛幽晶斧嚏几何敏捷功夫父赤驹劈司令炸雄秃丫首恶燃烧毕云酋迪耶塔赛里狐呱贺掘彩蓓洁能鞘芳芙妮好鱿贼脚铠垃藻臂枪伞咚碎黏钥朽南瓜嗡哲裴格枭狙射炽咆哮虎漾壬笃啄铳少强锹农胜虻鬃弱坏驴仔重挽滴伪睡罩盗着竹疗环智挥猩掷胆噬堡爷参性:银伴陨枕戈谜拟Q磨舵鳞杖璞・鸣哞鳍科莫迦虚吾肌费束辉纸御机夏蛋妙蛙種子草花小火龍恐噴傑尼龜卡咪水箭綠毛蟲鐵甲蛹巴大蝶獨角殼針蜂波比鳥拉達烈雀嘴阿柏蛇怪皮丘雷穿山鼠王多蘭娜后朗力諾可西六尾九胖丁超音蝠走路臭霸派斯特球摩魯蛾地三喵貓老鴨哥猴爆蒂狗風速蚊香蝌蚪君泳士凱勇基胡腕豪喇叭芽口呆食瑪瑙母毒刺拳石隆岩馬焰獸磁合一蔥嘟利海獅白泥舌貝鬼通耿催眠貘引夢人鉗蟹巨霹靂電頑彈椰樹嘎啦飛腿郎快頭瓦雙犀牛鑽吉蔓藤袋墨金魚星寶魔牆偶天螳螂迷唇姐擊羅肯泰鯉暴普百變伊布邊菊化盔鐮刀翼急凍閃你哈克幻葉月桂竺葵鋸鱷藍立咕夜鷹芭瓢安圓絲蛛叉字燈籠古然咩羊茸美麗露才皇毽棉長手向日蜻蜓烏沼太陽亮黑暗鴉妖未知圖騰果翁麒麟奇榛佛托土弟蠍鋼千壺赫狃熊圈熔蝸豬珊瑚炮章桶信使翅戴加象頓Ⅱ驚鹿犬無畏戰舞娃奶罐幸福公炎帝幼沙班洛亞鳳時木守宮森林蜥蜴稚雞壯躍狼紋直衝繭狩獵盾粉蓮童帽樂河橡實鼻狡猾傲骨燕鷗莉奈朵溜糖雨蘑菇斗笠懶獺過動猿請假居忍面者脫妞吼幕下掌朝北優雅勾魂眼那恰姆落正拍負螢甜薔薇溶吞牙鯊鯨駝煤炭跳噗晃斑顎蟻漠仙歌青綿七夕鼬斬飯匙鰍鯰蝦兵螯秤念觸搖籃羽醜納飄浮泡隱怨影詛咒巡靈彷徨熱帶鈴勃梭雪冰護豹珍珠櫻空棘愛心啞屬艾歐蓋固坐祈代希苗台猛曼拿兒狸法師箱蟀勒倫琴含羞苞槌城結貴婦紳蜜女帕茲潛兔隨捲耳魅東施鐺響坦銅鏡鐘盆聒噪陸尖咬不良骷光霓虹自舔狂遠Z由盧席恩騎色霏萊謝米爾宙提主暖炒武刃丸劍探步哨約扒酷冷蝕豆鴿高雉幔龐滾蝙螺釘差搬運匠修建蟾蜍投摔打包保足蜈蚣車輪毬精根裙野蠻鱸混流氓紅倒狒殿滑巾徵哭具死神棺原肋始祖破灰塵索沫栗德單卵細胞造鵝倍四季萌哎呀敗輕蜘堅齒組麻鰻宇燭幽晶斧嚏幾何敏捷功夫父赤駒劈司令炸雄禿丫首惡燃燒畢雲酋迪耶塔賽里狐呱賀掘彩蓓潔能鞘芳芙妮好魷賊腳鎧垃藻臂槍傘咚碎黏鑰朽南瓜嗡哲裴格梟狙射熾咆哮虎漾壬篤啄銃少強鍬農勝虻鬃弱壞驢仔重挽滴偽睡罩盜著竹療環智揮猩擲膽噬堡爺參性:銀伴隕枕戈謎擬Q磨舵鱗杖璞・鳴哞鰭科莫迦虛吾肌費束輝紙御機夏垒磊砰奥壘磊砰丑奧

View File

@ -1 +0,0 @@
蛋妙蛙種子草花小火龍恐噴傑尼龜卡咪水箭綠毛蟲鐵甲蛹巴大蝶獨角殼針蜂波比鳥拉達烈雀嘴阿柏蛇怪皮丘雷穿山鼠王多蘭娜后朗力諾可西六尾九胖丁超音蝠走路臭霸派斯特球摩魯蛾地三喵貓老鴨哥猴爆蒂狗風速蚊香蝌蚪君泳士凱勇基胡腕豪喇叭芽口呆食瑪瑙母毒刺拳石隆岩馬焰獸磁合一蔥嘟利海獅白泥舌貝鬼通耿催眠貘引夢人鉗蟹巨霹靂電頑彈椰樹嘎啦飛腿郎快頭瓦雙犀牛鑽吉蔓藤袋墨金魚星寶魔牆偶天螳螂迷唇姐擊羅肯泰鯉暴普百變伊布邊菊化盔鐮刀翼急凍閃你哈克幻葉月桂竺葵鋸鱷藍立咕夜鷹芭瓢安圓絲蛛叉字燈籠古然咩羊茸美麗露才皇毽棉長手向日蜻蜓烏沼太陽亮黑暗鴉妖未知圖騰果翁麒麟奇榛佛托土弟蠍鋼千壺赫狃熊圈熔蝸豬珊瑚炮章桶信使翅戴加象頓Ⅱ驚鹿犬無畏戰舞娃奶罐幸福公炎帝幼沙班洛亞鳳時木守宮森林蜥蜴稚雞壯躍狼紋直衝繭狩獵盾粉蓮童帽樂河橡實鼻狡猾傲骨燕鷗莉奈朵溜糖雨蘑菇斗笠懶獺過動猿請假居忍面者脫妞吼幕下掌朝北優雅勾魂眼那恰姆落正拍負螢甜薔薇溶吞牙鯊鯨駝煤炭跳噗晃斑顎蟻漠仙歌青綿七夕鼬斬飯匙鰍鯰蝦兵螯秤念觸搖籃羽醜納飄浮泡隱怨影詛咒巡靈彷徨熱帶鈴勃梭雪冰護豹珍珠櫻空棘愛心啞屬艾歐蓋固坐祈代希苗台猛曼拿兒狸法師箱蟀勒倫琴含羞苞槌城結貴婦紳蜜女帕茲潛兔隨捲耳魅東施鐺響坦銅鏡鐘盆聒噪陸尖咬不良骷光霓虹自舔狂遠Z由盧席恩騎色霏萊謝米爾宙提主暖炒武刃丸劍探步哨約扒酷冷蝕豆鴿高雉幔龐滾蝙螺釘差搬運匠修建蟾蜍投摔打包保足蜈蚣車輪毬精根裙野蠻鱸混流氓紅倒狒殿滑巾徵哭具死神棺原肋始祖破灰塵索沫栗德單卵細胞造鵝倍四季萌哎呀敗輕蜘堅齒組麻鰻宇燭幽晶斧嚏幾何敏捷功夫父赤駒劈司令炸雄禿丫首惡燃燒畢雲酋迪耶塔賽里狐呱賀掘彩蓓潔能鞘芳芙妮好魷賊腳鎧垃藻臂槍傘咚碎黏鑰朽南瓜嗡哲裴格梟狙射熾咆哮虎漾壬篤啄銃少強鍬農勝虻鬃弱壞驢仔重挽滴偽睡罩盜著竹療環智揮猩擲膽噬堡爺參性:銀伴隕枕戈謎擬Q磨舵鱗杖璞・鳴哞鰭科莫迦虛吾肌費束輝紙御機夏

View File

@ -30,8 +30,8 @@ Y
太阳
月亮
究極之日
究極之月
GO
蓝 [国际]/绿 [日]

View File

@ -918,4 +918,43 @@
冰雪存储碟
龙存储碟
黑暗存储碟
妖精存储碟
妖精存储碟
索尔迦雷欧Z
露奈雅拉Z
究极奈克洛Z
谜拟QZ
鬃岩狼人Z
杖尾鳞甲龙Z
索尔迦雷欧Z
露奈雅拉Z
究极奈克洛Z
谜拟QZ
鬃岩狼人Z
杖尾鳞甲龙Z
Z强力手环
粉红花瓣
橙色花瓣
蓝色花瓣
红色花瓣
绿色花瓣
黄色花瓣
紫色花瓣
虹色之花
桔色徽章
奈克洛索尔合体器
奈克洛露奈合体器
奈克洛索尔合体器
奈克洛露奈合体器
伊利马的一般Z
留下的精灵球
孵蛋碰碰
优惠碰碰
零花钱碰碰
经验碰碰
亲密碰碰
相遇碰碰
隐身碰碰
HP回复碰碰
PP回复碰碰
加油碰碰
捕捉碰碰

View File

@ -717,4 +717,13 @@
麻麻刺刺
自然之怒
多属性攻击
千万伏特
千万伏特
惊爆大头
等离子闪电拳
光子喷涌
焚天灭世炽光爆
日光回旋下苍穹
月华飞溅落灵霄
亲密无间大乱揍
狼啸石牙飓风暴
炽魂热舞烈音爆

View File

@ -1,4 +1,4 @@

妙蛙种子
妙蛙草
妙蛙花
@ -800,4 +800,9 @@
恶食大王
奈克洛兹玛
玛机雅娜
玛夏多
玛夏多
毒贝比
四颚针龙
垒磊石
砰头小丑
捷拉奥拉

Some files were not shown because too many files have changed in this diff Show More