Misc gen4 legality checking fixes (#1025)

* Fix hgss safari zone encounters

* Add fishing slots at night (hgss)

* Fix Japanese Special Character (gen 4)

* Add gen4 ball with HA legality checking (gen7)

Males can pass the ball with HA females ONLY when they have the same
pokedex number

* Add safari ball with HA checking (gen7)

* Fix ball legality checking for shedninja

Poke Ball only

* Map Unicode Chinese characters to in-game chars

Chinese species names in sun/moon were remapped by GF.

* Add nickname legality check for east asia language

Can not give Chinese or Japanese kanji nickname to pkm.

* Remove hiding nickname textbox for chs/cht

Since remapping and legality checking are implemented, There will be no
strange character or misunderstanding.
This commit is contained in:
wwwwwwzx 2017-04-03 20:02:40 -07:00 committed by Kurt
parent 71d452a9c3
commit 015bdc606b
22 changed files with 1058 additions and 2792 deletions

View file

@ -2733,19 +2733,6 @@ namespace PKHeX.WinForms
{ clickShowdownExportPKM(sender, e); return; }
int lang = WinFormsUtil.getIndex(CB_Language);
if (sender == CB_Language || sender == CHK_Nicknamed)
{
switch (lang)
{
case 9:
case 10:
TB_Nickname.Visible = CHK_Nicknamed.Checked;
break;
default:
TB_Nickname.Visible = true;
break;
}
}
if (!fieldsInitialized || CHK_Nicknamed.Checked)
return;

View file

@ -231,11 +231,6 @@ namespace PKHeX.Core
if (data == null || data.Length == 0)
data = Util.getStringList(ident, DefaultLanguage);
// Use alternate (Fan Translated) species names since GameFreak decided to use non-Unicode characters which are now game-font dependent.
// PKX still fetches nickname with the actual string
if (ident == "species" && new[] {"zh", "zh2"}.Contains(Language))
return Util.getSpeciesList(Language + "_alt");
return data;
}

View file

@ -246,6 +246,11 @@ namespace PKHeX.Core
: V16, CheckIdentifier.Nickname);
return;
}
if (nickname.Any(c => 0x4E00 <= c && c <= 0x9FFF)) // East Asian Scripts
{
AddLine(Severity.Invalid, V222, CheckIdentifier.Nickname);
return;
}
AddLine(Severity.Valid, V17, CheckIdentifier.Nickname);
}
else if (pkm.Format < 3)
@ -1362,6 +1367,12 @@ namespace PKHeX.Core
return;
}
if (pkm.Species == 292) // Shedinja
{
verifyBallEquals(4); // Pokeball
return;
}
if (pkm.Ball == 0x14 && pkm.Gen7) // Heavy Ball
{
var lineage = Legal.getLineage(pkm);
@ -1543,28 +1554,34 @@ namespace PKHeX.Core
int ball = pkm.Ball;
if (ball == 0x05) // Safari Ball
{
if (Lineage.Any(e => Legal.Inherit_Safari.Contains(e) || Legal.Inherit_SafariMale.Contains(e)))
AddLine(Severity.Valid, V123, CheckIdentifier.Ball);
else
if (!Lineage.Any(e => Legal.Inherit_Safari.Contains(e) || Legal.Inherit_SafariMale.Contains(e)))
AddLine(Severity.Invalid, V121, CheckIdentifier.Ball);
else if (pkm.AbilityNumber == 4 && Lineage.Any(e => Legal.Ban_SafariBallHidden_7.Contains(e)))
AddLine(Severity.Invalid, V122, CheckIdentifier.Ball);
else
AddLine(Severity.Valid, V123, CheckIdentifier.Ball);
return;
}
if (0x10 < ball && ball < 0x18) // Apricorn Ball
{
if (Lineage.Any(e => Legal.Inherit_Apricorn7.Contains(e))) // past gen
AddLine(Severity.Valid, V123, CheckIdentifier.Ball);
else
if (!Lineage.Any(e => Legal.Inherit_Apricorn7.Contains(e)))
AddLine(Severity.Invalid, V121, CheckIdentifier.Ball);
else if (pkm.AbilityNumber == 4 && (Lineage.Contains(029) || Lineage.Contains(032))) // Nido
AddLine(Severity.Invalid, V122, CheckIdentifier.Ball);
else
AddLine(Severity.Valid, V123, CheckIdentifier.Ball);
return;
}
if (ball == 0x18) // Sport Ball
{
if (Lineage.Any(e => Legal.Inherit_Sport.Contains(e)))
AddLine(Severity.Valid, V123, CheckIdentifier.Ball);
else
if (!Lineage.Any(e => Legal.Inherit_Sport.Contains(e)))
AddLine(Severity.Invalid, V121, CheckIdentifier.Ball);
else if (pkm.AbilityNumber == 4 && (Lineage.Contains(313) || Lineage.Contains(314))) // Volbeat/Illumise
AddLine(Severity.Invalid, V122, CheckIdentifier.Ball);
else
AddLine(Severity.Valid, V123, CheckIdentifier.Ball);
return;
}

View file

@ -97,6 +97,7 @@ namespace PKHeX.Core
public static string V2 {get; set;} = "Nickname is empty."; // Invalid
public static string V4 {get; set;} = "Language ID > 8."; // Invalid
public static string V5 {get; set;} = "Language ID > 10."; // Invalid
public static string V222 { get; set; } = "Cannot be given this Nickname."; // Invalid
public static string V3 {get; set;} = "Species index invalid for Nickname comparison."; // Invalid
public static string V20 {get; set;} = "Nickname does not match species name."; // Invalid
public static string V13 {get; set;} = "Egg name does not match language Egg name."; // Invalid

View file

@ -616,9 +616,17 @@ namespace PKHeX.Core
else
ofs += 20;
if (data[194] == 120) //Location = 182, 127, 130, 132, 167, 188, 210
Slots.AddRange(SlotsHGSS_Staryu);
Area4.Slots = Slots.ToArray();
return Area4;
}
private static readonly EncounterSlot[] SlotsHGSS_Staryu =
{
new EncounterSlot { Species = 120, LevelMin = 20, LevelMax = 20, Type = SlotType.Good_Rod },
new EncounterSlot { Species = 120, LevelMin = 40, LevelMax = 40, Type = SlotType.Super_Rod },
};
private static EncounterArea getArea4HGSS_Headbutt(byte[] data)
{

View file

@ -122,12 +122,12 @@ namespace PKHeX.Core
internal static readonly int[] HM_HGSS =
{
015, 019, 057, 070, 250, 249, 127, 431 // Defog(DPPt) & Whirlpool(HGSS)
015, 019, 057, 070, 250, 249, 127, 431 // Whirlpool(HGSS)
};
internal static readonly int[] HM_DPPt =
{
015, 019, 057, 070, 432, 249, 127, 431 // Defog(DPPt) & Whirlpool(HGSS)
015, 019, 057, 070, 432, 249, 127, 431 // Defog(DPPt)
};
@ -493,7 +493,7 @@ namespace PKHeX.Core
new EncounterStatic { Gift = true, Species = 147, Level = 15, Location = 222, Moves = new[] {245, 086, 239, 082}, }, // Dratini @ Dragon's Den (ExtremeSpeed)
new EncounterStatic { Gift = true, Species = 147, Level = 15, Location = 222, Moves = new[] {043, 086, 239, 082}, }, // Dratini @ Dragon's Den (Non-ExtremeSpeed)
new EncounterStatic { Gift = true, Species = 236, Level = 10, Location = 216, }, // Tyrogue @ Mt. Mortar
new EncounterStatic { Gift = true, Species = 175, Level = 01, EggLocation = 2013, Moves = new[] {045, 204, 326, -1},}, // Togepi Egg from Mr. Pokemon (Extrasensory as Egg move)
new EncounterStatic { Gift = true, Species = 175, Level = 01, EggLocation = 2013, Moves = new[] {045, 204, 326},}, // Togepi Egg from Mr. Pokemon (Extrasensory as Egg move)
new EncounterStatic { Gift = true, Species = 179, Level = 01, EggLocation = 2014,}, // Mareep Egg from Primo
new EncounterStatic { Gift = true, Species = 194, Level = 01, EggLocation = 2014,}, // Wooper Egg from Primo
new EncounterStatic { Gift = true, Species = 218, Level = 01, EggLocation = 2014,}, // Slugma Egg from Primo
@ -651,7 +651,8 @@ namespace PKHeX.Core
new EncounterArea
{
// Source http://bulbapedia.bulbagarden.net/wiki/Johto_Safari_Zone#Pok.C3.A9mon
// Commented encounters are document in bulbapedia but level values are uknown
// Supplement http://www.psypokes.com/hgss/safari_areas.php
// Duplicate/overlapped slots are commented
Location = 202, // Johto Safari Zone
Slots = new[]
{
@ -661,7 +662,7 @@ namespace PKHeX.Core
new EncounterSlot { Species = 074, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Geodude
new EncounterSlot { Species = 075, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Graveler
new EncounterSlot { Species = 080, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Slowbro
new EncounterSlot { Species = 081, LevelMin = 15, LevelMax = 16, Type = SlotType.Grass_Safari }, // Magnemite
// new EncounterSlot { Species = 081, LevelMin = 15, LevelMax = 16, Type = SlotType.Grass_Safari }, // Magnemite
new EncounterSlot { Species = 082, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Magneton
new EncounterSlot { Species = 126, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Magmar
new EncounterSlot { Species = 126, LevelMin = 41, LevelMax = 41, Type = SlotType.Grass_Safari }, // Magmar
@ -692,22 +693,21 @@ namespace PKHeX.Core
new EncounterSlot { Species = 455, LevelMin = 48, LevelMax = 48, Type = SlotType.Grass_Safari }, // Carnivine
// Plains Zone
new EncounterSlot { Species = 019, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Rattata
new EncounterSlot { Species = 020, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Raticate
new EncounterSlot { Species = 020, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Raticate
new EncounterSlot { Species = 063, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Abra
new EncounterSlot { Species = 077, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Ponyta
new EncounterSlot { Species = 203, LevelMin = 15, LevelMax = 15, Type = SlotType.Grass_Safari }, // Girafarig
new EncounterSlot { Species = 203, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Girafarig
new EncounterSlot { Species = 203, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Girafarig
new EncounterSlot { Species = 203, LevelMin = 40, LevelMax = 40, Type = SlotType.Grass_Safari }, // Girafarig
new EncounterSlot { Species = 229, LevelMin = 43, LevelMax = 44, Type = SlotType.Grass_Safari }, // Houndoom
new EncounterSlot { Species = 234, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Stantler
new EncounterSlot { Species = 234, LevelMin = 40, LevelMax = 40, Type = SlotType.Grass_Safari }, // Stantler
new EncounterSlot { Species = 234, LevelMin = 40, LevelMax = 41, Type = SlotType.Grass_Safari }, // Stantler
new EncounterSlot { Species = 235, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Smeargle
new EncounterSlot { Species = 235, LevelMin = 41, LevelMax = 41, Type = SlotType.Grass_Safari }, // Smeargle
new EncounterSlot { Species = 263, LevelMin = 44, LevelMax = 44, Type = SlotType.Grass_Safari }, // Zigzagoon
new EncounterSlot { Species = 270, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Lotad
new EncounterSlot { Species = 283, LevelMin = 46, LevelMax = 46, Type = SlotType.Grass_Safari }, // Surskit
new EncounterSlot { Species = 310, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Manectric
new EncounterSlot { Species = 335, LevelMin = 43, LevelMax = 45, Type = SlotType.Grass_Safari }, // Zangoose
// new EncounterSlot { Species = 335, LevelMin = 43, LevelMax = 45, Type = SlotType.Grass_Safari }, // Zangoose
new EncounterSlot { Species = 403, LevelMin = 43, LevelMax = 44, Type = SlotType.Grass_Safari }, // Shinx
// Meadow Zone
new EncounterSlot { Species = 020, LevelMin = 40, LevelMax = 40, Type = SlotType.Grass_Safari }, // Raticate
@ -716,12 +716,11 @@ namespace PKHeX.Core
new EncounterSlot { Species = 039, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Jigglypuff
new EncounterSlot { Species = 060, LevelMin = 12, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 22, LevelMax = 24, Type = SlotType.Good_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 35, LevelMax = 36, Type = SlotType.Super_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 061, LevelMin = 15, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 061, LevelMin = 16, LevelMax = 16, Type = SlotType.Old_Rod_Safari }, // Poliwhirl
// new EncounterSlot { Species = 060, LevelMin = 35, LevelMax = 36, Type = SlotType.Super_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 061, LevelMin = 15, LevelMax = 16, Type = SlotType.Old_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 061, LevelMin = 24, LevelMax = 25, Type = SlotType.Good_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 061, LevelMin = 27, LevelMax = 27, Type = SlotType.Good_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 061, LevelMin = 35, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 061, LevelMin = 35, LevelMax = 38, Type = SlotType.Super_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 074, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Geodude
new EncounterSlot { Species = 113, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Chansey
new EncounterSlot { Species = 129, LevelMin = 15, LevelMax = 17, Type = SlotType.Surf_Safari }, // Magikarp
@ -742,7 +741,7 @@ namespace PKHeX.Core
new EncounterSlot { Species = 194, LevelMin = 15, LevelMax = 17, Type = SlotType.Surf_Safari }, // Wooper
new EncounterSlot { Species = 273, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Seedot
new EncounterSlot { Species = 274, LevelMin = 38, LevelMax = 38, Type = SlotType.Grass_Safari }, // Nuzleaf
new EncounterSlot { Species = 274, LevelMin = 47, LevelMax = 47, Type = SlotType.Grass_Safari }, // Nuzleaf
new EncounterSlot { Species = 274, LevelMin = 47, LevelMax = 48, Type = SlotType.Grass_Safari }, // Nuzleaf
new EncounterSlot { Species = 284, LevelMin = 42, LevelMax = 42, Type = SlotType.Surf_Safari }, // Masquerain
new EncounterSlot { Species = 284, LevelMin = 46, LevelMax = 46, Type = SlotType.Surf_Safari }, // Masquerain
new EncounterSlot { Species = 299, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Nosepass
@ -759,31 +758,32 @@ namespace PKHeX.Core
new EncounterSlot { Species = 200, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Misdreavus
new EncounterSlot { Species = 200, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Misdreavus
new EncounterSlot { Species = 283, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Surskit
new EncounterSlot { Species = 353, LevelMin = 46, LevelMax = 46, Type = SlotType.Grass_Safari }, // Shuppet
new EncounterSlot { Species = 353, LevelMin = 46, LevelMax = 47, Type = SlotType.Grass_Safari }, // Shuppet
new EncounterSlot { Species = 374, LevelMin = 44, LevelMax = 44, Type = SlotType.Grass_Safari }, // Beldum
new EncounterSlot { Species = 399, LevelMin = 40, LevelMax = 40, Type = SlotType.Grass_Safari }, // Bidoof
new EncounterSlot { Species = 406, LevelMin = 47, LevelMax = 47, Type = SlotType.Grass_Safari }, // Budew
new EncounterSlot { Species = 437, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Bronzong
new EncounterSlot { Species = 437, LevelMin = 44, LevelMax = 45, Type = SlotType.Grass_Safari }, // Bronzong
// Swamp Zone
new EncounterSlot { Species = 039, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Jigglypuff
// new EncounterSlot { Species = 039, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Jigglypuff
new EncounterSlot { Species = 046, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Paras
new EncounterSlot { Species = 047, LevelMin = 41, LevelMax = 41, Type = SlotType.Grass_Safari }, // Parasect
new EncounterSlot { Species = 070, LevelMin = 46, LevelMax = 46, Type = SlotType.Grass_Safari }, // Weepinbell
new EncounterSlot { Species = 096, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Drowzee
new EncounterSlot { Species = 097, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Hypno
new EncounterSlot { Species = 097, LevelMin = 37, LevelMax = 37, Type = SlotType.Grass_Safari }, // Hypno
new EncounterSlot { Species = 100, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Voltorb
new EncounterSlot { Species = 118, LevelMin = 22, LevelMax = 24, Type = SlotType.Good_Rod_Safari }, // Goldeen
new EncounterSlot { Species = 118, LevelMin = 35, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Goldeen
new EncounterSlot { Species = 118, LevelMin = 15, LevelMax = 17, Type = SlotType.Surf_Safari }, // Goldeen
new EncounterSlot { Species = 118, LevelMin = 17, LevelMax = 17, Type = SlotType.Old_Rod_Safari }, // Goldeen
new EncounterSlot { Species = 119, LevelMin = 24, LevelMax = 27, Type = SlotType.Good_Rod_Safari }, // Seaking
new EncounterSlot { Species = 119, LevelMin = 35, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Seaking
new EncounterSlot { Species = 118, LevelMin = 22, LevelMax = 24, Type = SlotType.Good_Rod_Safari }, // Goldeen
// new EncounterSlot { Species = 118, LevelMin = 35, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Goldeen
new EncounterSlot { Species = 119, LevelMin = 17, LevelMax = 17, Type = SlotType.Old_Rod_Safari }, // Seaking
new EncounterSlot { Species = 119, LevelMin = 24, LevelMax = 25, Type = SlotType.Good_Rod_Safari }, // Seaking
new EncounterSlot { Species = 119, LevelMin = 27, LevelMax = 27, Type = SlotType.Good_Rod_Safari }, // Seaking
// new EncounterSlot { Species = 119, LevelMin = 35, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Seaking
new EncounterSlot { Species = 119, LevelMin = 42, LevelMax = 42, Type = SlotType.Surf_Safari }, // Seaking
new EncounterSlot { Species = 129, LevelMin = 12, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Magikarp
new EncounterSlot { Species = 129, LevelMin = 22, LevelMax = 24, Type = SlotType.Good_Rod_Safari }, // Magikarp
new EncounterSlot { Species = 129, LevelMin = 15, LevelMax = 17, Type = SlotType.Surf_Safari }, // Magikarp
// new EncounterSlot { Species = 129, LevelMin = 12, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Magikarp
// new EncounterSlot { Species = 129, LevelMin = 22, LevelMax = 24, Type = SlotType.Good_Rod_Safari }, // Magikarp
// new EncounterSlot { Species = 129, LevelMin = 15, LevelMax = 17, Type = SlotType.Surf_Safari }, // Magikarp
new EncounterSlot { Species = 147, LevelMin = 36, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Dratini
new EncounterSlot { Species = 147, LevelMin = 29, LevelMax = 29, Type = SlotType.Good_Rod_Safari }, // Dratini
new EncounterSlot { Species = 148, LevelMin = 42, LevelMax = 42, Type = SlotType.Super_Rod_Safari }, // Dragonair
@ -796,107 +796,108 @@ namespace PKHeX.Core
new EncounterSlot { Species = 355, LevelMin = 38, LevelMax = 38, Type = SlotType.Grass_Safari }, // Duskull
new EncounterSlot { Species = 355, LevelMin = 48, LevelMax = 48, Type = SlotType.Surf_Safari }, // Duskull
new EncounterSlot { Species = 358, LevelMin = 46, LevelMax = 47, Type = SlotType.Grass_Safari }, // Chimecho
new EncounterSlot { Species = 371, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Bagon
new EncounterSlot { Species = 371, LevelMin = 44, LevelMax = 45, Type = SlotType.Grass_Safari }, // Bagon
new EncounterSlot { Species = 417, LevelMin = 47, LevelMax = 47, Type = SlotType.Grass_Safari }, // Pachirisu
new EncounterSlot { Species = 419, LevelMin = 44, LevelMax = 44, Type = SlotType.Grass_Safari }, // Floatzel
// Marshland Zone
new EncounterSlot { Species = 023, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Ekans
new EncounterSlot { Species = 023, LevelMin = 15, LevelMax = 16, Type = SlotType.Grass_Safari }, // Ekans
new EncounterSlot { Species = 024, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Arbok
new EncounterSlot { Species = 043, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Oddish
new EncounterSlot { Species = 044, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Gloom
new EncounterSlot { Species = 044, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Gloom
new EncounterSlot { Species = 050, LevelMin = 43, LevelMax = 43, Type = SlotType.Grass_Safari }, // Diglett
new EncounterSlot { Species = 060, LevelMin = 12, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 16, LevelMax = 17, Type = SlotType.Surf_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 15, LevelMax = 17, Type = SlotType.Old_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 16, LevelMax = 18, Type = SlotType.Old_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 061, LevelMin = 22, LevelMax = 22, Type = SlotType.Good_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 061, LevelMin = 35, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 088, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Grimer
// new EncounterSlot { Species = 060, LevelMin = 12, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 15, LevelMax = 17, Type = SlotType.Surf_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 16, LevelMax = 16, Type = SlotType.Old_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 18, LevelMax = 18, Type = SlotType.Old_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 061, LevelMin = 22, LevelMax = 25, Type = SlotType.Good_Rod_Safari }, // Poliwhirl
// new EncounterSlot { Species = 061, LevelMin = 35, LevelMax = 38, Type = SlotType.Super_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 088, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Grimer
new EncounterSlot { Species = 088, LevelMin = 15, LevelMax = 17, Type = SlotType.Surf_Safari }, // Grimer
new EncounterSlot { Species = 089, LevelMin = 38, LevelMax = 38, Type = SlotType.Grass_Safari }, // Muk
new EncounterSlot { Species = 089, LevelMin = 48, LevelMax = 48, Type = SlotType.Surf_Safari }, // Muk
new EncounterSlot { Species = 109, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Koffing
new EncounterSlot { Species = 110, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Weezing
new EncounterSlot { Species = 129, LevelMin = 12, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Magikarp
new EncounterSlot { Species = 129, LevelMin = 22, LevelMax = 24, Type = SlotType.Good_Rod_Safari }, // Magikarp
// new EncounterSlot { Species = 129, LevelMin = 12, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Magikarp
// new EncounterSlot { Species = 129, LevelMin = 22, LevelMax = 24, Type = SlotType.Good_Rod_Safari }, // Magikarp
new EncounterSlot { Species = 130, LevelMin = 36, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Gyarados
new EncounterSlot { Species = 130, LevelMin = 26, LevelMax = 27, Type = SlotType.Good_Rod_Safari }, // Gyarados
new EncounterSlot { Species = 130, LevelMin = 28, LevelMax = 29, Type = SlotType.Good_Rod_Safari }, // Gyarados
new EncounterSlot { Species = 130, LevelMin = 26, LevelMax = 26, Type = SlotType.Good_Rod_Safari }, // Gyarados
new EncounterSlot { Species = 130, LevelMin = 29, LevelMax = 29, Type = SlotType.Good_Rod_Safari }, // Gyarados
new EncounterSlot { Species = 189, LevelMin = 38, LevelMax = 38, Type = SlotType.Grass_Safari }, // Jumpluff
new EncounterSlot { Species = 189, LevelMin = 47, LevelMax = 47, Type = SlotType.Surf_Safari }, // Jumpluff
new EncounterSlot { Species = 194, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Wooper
new EncounterSlot { Species = 194, LevelMin = 15, LevelMax = 17, Type = SlotType.Surf_Safari }, // Wooper
// new EncounterSlot { Species = 194, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Wooper
// new EncounterSlot { Species = 194, LevelMin = 15, LevelMax = 17, Type = SlotType.Surf_Safari }, // Wooper
new EncounterSlot { Species = 195, LevelMin = 43, LevelMax = 43, Type = SlotType.Surf_Safari }, // Quagsire
new EncounterSlot { Species = 213, LevelMin = 44, LevelMax = 44, Type = SlotType.Grass_Safari }, // Shuckle
new EncounterSlot { Species = 315, LevelMin = 46, LevelMax = 46, Type = SlotType.Grass_Safari }, // Roselia
new EncounterSlot { Species = 336, LevelMin = 47, LevelMax = 47, Type = SlotType.Grass_Safari }, // Seviper
new EncounterSlot { Species = 336, LevelMin = 47, LevelMax = 48, Type = SlotType.Grass_Safari }, // Seviper
new EncounterSlot { Species = 339, LevelMin = 42, LevelMax = 42, Type = SlotType.Super_Rod_Safari }, // Barboach
new EncounterSlot { Species = 339, LevelMin = 45, LevelMax = 45, Type = SlotType.Super_Rod_Safari }, // Barboach
new EncounterSlot { Species = 354, LevelMin = 44, LevelMax = 44, Type = SlotType.Grass_Safari }, // Banette
new EncounterSlot { Species = 354, LevelMin = 44, LevelMax = 45, Type = SlotType.Grass_Safari }, // Banette
new EncounterSlot { Species = 453, LevelMin = 44, LevelMax = 44, Type = SlotType.Grass_Safari }, // Croagunk
new EncounterSlot { Species = 455, LevelMin = 41, LevelMax = 41, Type = SlotType.Grass_Safari }, // Carnivine
// Mountain Zone
new EncounterSlot { Species = 019, LevelMin = 15, LevelMax = 16, Type = SlotType.Grass_Safari }, // Rattata
new EncounterSlot { Species = 020, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Raticate
// new EncounterSlot { Species = 019, LevelMin = 15, LevelMax = 16, Type = SlotType.Grass_Safari }, // Rattata
// new EncounterSlot { Species = 020, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Raticate
new EncounterSlot { Species = 041, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Zubat
new EncounterSlot { Species = 042, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Golbat
new EncounterSlot { Species = 082, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Magneton
// new EncounterSlot { Species = 082, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Magneton
new EncounterSlot { Species = 082, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Magneton
new EncounterSlot { Species = 098, LevelMin = 43, LevelMax = 43, Type = SlotType.Grass_Safari }, // Krabby
new EncounterSlot { Species = 108, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Lickitung
new EncounterSlot { Species = 246, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Larvitar
new EncounterSlot { Species = 246, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Larvitar
new EncounterSlot { Species = 307, LevelMin = 43, LevelMax = 43, Type = SlotType.Grass_Safari }, // Meditite
new EncounterSlot { Species = 307, LevelMin = 43, LevelMax = 44, Type = SlotType.Grass_Safari }, // Meditite
new EncounterSlot { Species = 313, LevelMin = 46, LevelMax = 46, Type = SlotType.Grass_Safari }, // Volbeat
new EncounterSlot { Species = 337, LevelMin = 46, LevelMax = 46, Type = SlotType.Grass_Safari }, // Lunatone
new EncounterSlot { Species = 356, LevelMin = 46, LevelMax = 46, Type = SlotType.Grass_Safari }, // Dusclops
new EncounterSlot { Species = 356, LevelMin = 45, LevelMax = 46, Type = SlotType.Grass_Safari }, // Dusclops
new EncounterSlot { Species = 364, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Sealeo
new EncounterSlot { Species = 375, LevelMin = 44, LevelMax = 44, Type = SlotType.Grass_Safari }, // Metang
new EncounterSlot { Species = 433, LevelMin = 38, LevelMax = 38, Type = SlotType.Grass_Safari }, // Chingling
// Rockey Beach Zone
new EncounterSlot { Species = 041, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Zubat
new EncounterSlot { Species = 060, LevelMin = 15, LevelMax = 16, Type = SlotType.Surf_Safari }, // Poliwag
new EncounterSlot { Species = 061, LevelMin = 15, LevelMax = 17, Type = SlotType.Surf_Safari }, // Poliwhirl
new EncounterSlot { Species = 079, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Slowpoke
new EncounterSlot { Species = 041, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Zubat
// new EncounterSlot { Species = 060, LevelMin = 15, LevelMax = 16, Type = SlotType.Surf_Safari }, // Poliwag
new EncounterSlot { Species = 061, LevelMin = 16, LevelMax = 17, Type = SlotType.Surf_Safari }, // Poliwhirl
new EncounterSlot { Species = 079, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Slowpoke
new EncounterSlot { Species = 080, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Slowbro
new EncounterSlot { Species = 080, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Slowbro
new EncounterSlot { Species = 080, LevelMin = 37, LevelMax = 37, Type = SlotType.Grass_Safari }, // Slowbro
new EncounterSlot { Species = 084, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Doduo
new EncounterSlot { Species = 080, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Slowbro
new EncounterSlot { Species = 084, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Doduo
new EncounterSlot { Species = 085, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Dodrio
new EncounterSlot { Species = 098, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Krabby
new EncounterSlot { Species = 098, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Krabby
new EncounterSlot { Species = 098, LevelMin = 13, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Krabby
new EncounterSlot { Species = 098, LevelMin = 22, LevelMax = 25, Type = SlotType.Good_Rod_Safari }, // Krabby
new EncounterSlot { Species = 098, LevelMin = 17, LevelMax = 18, Type = SlotType.Old_Rod_Safari }, // Krabby
new EncounterSlot { Species = 099, LevelMin = 38, LevelMax = 39, Type = SlotType.Super_Rod_Safari }, // Kingler
new EncounterSlot { Species = 098, LevelMin = 17, LevelMax = 17, Type = SlotType.Old_Rod_Safari }, // Krabby
new EncounterSlot { Species = 098, LevelMin = 18, LevelMax = 18, Type = SlotType.Old_Rod_Safari }, // Krabby
new EncounterSlot { Species = 099, LevelMin = 26, LevelMax = 27, Type = SlotType.Good_Rod_Safari }, // Kingler
new EncounterSlot { Species = 099, LevelMin = 40, LevelMax = 40, Type = SlotType.Grass_Safari }, // Kingler
new EncounterSlot { Species = 099, LevelMin = 26, LevelMax = 27, Type = SlotType.Good_Rod_Safari }, // Kingler *Serebii
new EncounterSlot { Species = 099, LevelMin = 38, LevelMax = 39, Type = SlotType.Super_Rod_Safari }, // Kingler
new EncounterSlot { Species = 118, LevelMin = 13, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Goldeen
new EncounterSlot { Species = 118, LevelMin = 22, LevelMax = 22, Type = SlotType.Good_Rod_Safari }, // Goldeen
// new EncounterSlot { Species = 118, LevelMin = 22, LevelMax = 23, Type = SlotType.Good_Rod_Safari }, // Goldeen
new EncounterSlot { Species = 118, LevelMin = 35, LevelMax = 38, Type = SlotType.Super_Rod_Safari }, // Goldeen
new EncounterSlot { Species = 119, LevelMin = 36, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Seaking
new EncounterSlot { Species = 129, LevelMin = 12, LevelMax = 14, Type = SlotType.Old_Rod_Safari }, // Magikarp
new EncounterSlot { Species = 129, LevelMin = 22, LevelMax = 22, Type = SlotType.Good_Rod_Safari }, // Magikarp
new EncounterSlot { Species = 129, LevelMin = 15, LevelMax = 16, Type = SlotType.Surf_Safari }, // Magikarp
new EncounterSlot { Species = 119, LevelMin = 35, LevelMax = 38, Type = SlotType.Super_Rod_Safari }, // Seaking
// new EncounterSlot { Species = 129, LevelMin = 12, LevelMax = 14, Type = SlotType.Old_Rod_Safari }, // Magikarp
// new EncounterSlot { Species = 129, LevelMin = 22, LevelMax = 23, Type = SlotType.Good_Rod_Safari }, // Magikarp
// new EncounterSlot { Species = 129, LevelMin = 15, LevelMax = 16, Type = SlotType.Surf_Safari }, // Magikarp
new EncounterSlot { Species = 131, LevelMin = 15, LevelMax = 16, Type = SlotType.Surf_Safari }, // Lapras
new EncounterSlot { Species = 131, LevelMin = 36, LevelMax = 36, Type = SlotType.Surf_Safari }, // Lapras
new EncounterSlot { Species = 131, LevelMin = 37, LevelMax = 47, Type = SlotType.Surf_Safari }, // Lapras *Serebii
// new EncounterSlot { Species = 131, LevelMin = 41, LevelMax = 46, Type = SlotType.Surf_Safari }, // Lapras *overlapped
new EncounterSlot { Species = 131, LevelMin = 36, LevelMax = 37, Type = SlotType.Surf_Safari }, // Lapras
new EncounterSlot { Species = 131, LevelMin = 41, LevelMax = 42, Type = SlotType.Surf_Safari }, // Lapras
new EncounterSlot { Species = 131, LevelMin = 46, LevelMax = 47, Type = SlotType.Surf_Safari }, // Lapras
new EncounterSlot { Species = 179, LevelMin = 43, LevelMax = 43, Type = SlotType.Grass_Safari }, // Mareep
new EncounterSlot { Species = 304, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Aron
new EncounterSlot { Species = 304, LevelMin = 44, LevelMax = 45, Type = SlotType.Grass_Safari }, // Aron
new EncounterSlot { Species = 309, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Electrike
new EncounterSlot { Species = 310, LevelMin = 37, LevelMax = 37, Type = SlotType.Grass_Safari }, // Manectric
new EncounterSlot { Species = 341, LevelMin = 46, LevelMax = 46, Type = SlotType.Super_Rod_Safari }, // Corphish
new EncounterSlot { Species = 341, LevelMin = 48, LevelMax = 48, Type = SlotType.Super_Rod_Safari }, // Corphish
new EncounterSlot { Species = 406, LevelMin = 40, LevelMax = 40, Type = SlotType.Grass_Safari }, // Budew
new EncounterSlot { Species = 443, LevelMin = 44, LevelMax = 44, Type = SlotType.Grass_Safari }, // Gible
// Watelands Zone
new EncounterSlot { Species = 022, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Fearow
// Wasteland Zone
// new EncounterSlot { Species = 022, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Fearow
new EncounterSlot { Species = 055, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Golduck
new EncounterSlot { Species = 066, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Machop
new EncounterSlot { Species = 066, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Machop
new EncounterSlot { Species = 067, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Machoke
new EncounterSlot { Species = 067, LevelMin = 40, LevelMax = 40, Type = SlotType.Grass_Safari }, // Machoke
new EncounterSlot { Species = 069, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Bellsprout
new EncounterSlot { Species = 069, LevelMin = 41, LevelMax = 41, Type = SlotType.Grass_Safari }, // Bellsprout
new EncounterSlot { Species = 081, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Magnemite
new EncounterSlot { Species = 095, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Onix
new EncounterSlot { Species = 099, LevelMin = 48, LevelMax = 48, Type = SlotType.Grass_Safari }, // Kingler
@ -919,41 +920,40 @@ namespace PKHeX.Core
new EncounterSlot { Species = 112, LevelMin = 44, LevelMax = 44, Type = SlotType.Grass_Safari }, // Rhydon
new EncounterSlot { Species = 128, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Tauros
new EncounterSlot { Species = 128, LevelMin = 41, LevelMax = 41, Type = SlotType.Grass_Safari }, // Tauros
new EncounterSlot { Species = 228, LevelMin = 41, LevelMax = 42, Type = SlotType.Grass_Safari }, // Houndour
new EncounterSlot { Species = 228, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Houndour
new EncounterSlot { Species = 263, LevelMin = 38, LevelMax = 38, Type = SlotType.Grass_Safari }, // Zigzagoon
new EncounterSlot { Species = 285, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Shroomish
new EncounterSlot { Species = 298, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Azurill
new EncounterSlot { Species = 324, LevelMin = 47, LevelMax = 47, Type = SlotType.Grass_Safari }, // Torkoal
new EncounterSlot { Species = 324, LevelMin = 46, LevelMax = 47, Type = SlotType.Grass_Safari }, // Torkoal
new EncounterSlot { Species = 332, LevelMin = 42, LevelMax = 42, Type = SlotType.Grass_Safari }, // Cacturne
new EncounterSlot { Species = 404, LevelMin = 45, LevelMax = 46, Type = SlotType.Grass_Safari }, // Luxio
// Wetlands Zone
new EncounterSlot { Species = 021, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Spearow
new EncounterSlot { Species = 054, LevelMin = 16, LevelMax = 16, Type = SlotType.Grass_Safari }, // Psyduck
// Wetland Zone
new EncounterSlot { Species = 021, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Spearow
new EncounterSlot { Species = 054, LevelMin = 15, LevelMax = 16, Type = SlotType.Grass_Safari }, // Psyduck
new EncounterSlot { Species = 054, LevelMin = 16, LevelMax = 17, Type = SlotType.Surf_Safari }, // Psyduck
new EncounterSlot { Species = 055, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Golduck
new EncounterSlot { Species = 055, LevelMin = 40, LevelMax = 40, Type = SlotType.Grass_Safari }, // Golduck
// new EncounterSlot { Species = 055, LevelMin = 45, LevelMax = 45, Type = SlotType.Surf_Safari }, // Golduck *overlapped
new EncounterSlot { Species = 055, LevelMin = 37, LevelMax = 45, Type = SlotType.Surf_Safari }, // Golduck *Serebii
new EncounterSlot { Species = 060, LevelMin = 12, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 22, LevelMax = 24, Type = SlotType.Good_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 36, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 16, LevelMax = 16, Type = SlotType.Surf_Safari }, // Poliwag
new EncounterSlot { Species = 061, LevelMin = 23, LevelMax = 24, Type = SlotType.Old_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 061, LevelMin = 24, LevelMax = 25, Type = SlotType.Good_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 061, LevelMin = 35, LevelMax = 36, Type = SlotType.Super_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 061, LevelMin = 17, LevelMax = 18, Type = SlotType.Surf_Safari }, // Poliwhirl
new EncounterSlot { Species = 000, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Farfetch'd
new EncounterSlot { Species = 000, LevelMin = 41, LevelMax = 41, Type = SlotType.Grass_Safari }, // Farfetch'd
new EncounterSlot { Species = 084, LevelMin = 45, LevelMax = 46, Type = SlotType.Grass_Safari }, // Doduo
new EncounterSlot { Species = 129, LevelMin = 12, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Magikarp
new EncounterSlot { Species = 130, LevelMin = 45, LevelMax = 48, Type = SlotType.Super_Rod_Safari }, // Gyarados *Serebii
//new EncounterSlot { Species = 130, LevelMin = 47, LevelMax = 47, Type = SlotType.Super_Rod_Safari }, // Gyarados *overlapped
new EncounterSlot { Species = 055, LevelMin = 37, LevelMax = 37, Type = SlotType.Surf_Safari }, // Golduck
new EncounterSlot { Species = 055, LevelMin = 45, LevelMax = 45, Type = SlotType.Surf_Safari }, // Golduck
// new EncounterSlot { Species = 060, LevelMin = 12, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Poliwag
// new EncounterSlot { Species = 060, LevelMin = 22, LevelMax = 24, Type = SlotType.Good_Rod_Safari }, // Poliwag
new EncounterSlot { Species = 060, LevelMin = 35, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Poliwag
// new EncounterSlot { Species = 060, LevelMin = 15, LevelMax = 16, Type = SlotType.Surf_Safari }, // Poliwag
new EncounterSlot { Species = 061, LevelMin = 17, LevelMax = 18, Type = SlotType.Old_Rod_Safari }, // Poliwhirl
// new EncounterSlot { Species = 061, LevelMin = 23, LevelMax = 25, Type = SlotType.Good_Rod_Safari }, // Poliwhirl
// new EncounterSlot { Species = 061, LevelMin = 35, LevelMax = 37, Type = SlotType.Super_Rod_Safari }, // Poliwhirl
new EncounterSlot { Species = 083, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Farfetch'd
new EncounterSlot { Species = 083, LevelMin = 41, LevelMax = 41, Type = SlotType.Grass_Safari }, // Farfetch'd
new EncounterSlot { Species = 084, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Doduo
// new EncounterSlot { Species = 129, LevelMin = 12, LevelMax = 15, Type = SlotType.Old_Rod_Safari }, // Magikarp
new EncounterSlot { Species = 130, LevelMin = 44, LevelMax = 45, Type = SlotType.Super_Rod_Safari }, // Gyarados
new EncounterSlot { Species = 130, LevelMin = 47, LevelMax = 48, Type = SlotType.Super_Rod_Safari }, // Gyarados
new EncounterSlot { Species = 132, LevelMin = 17, LevelMax = 17, Type = SlotType.Grass_Safari }, // Ditto
new EncounterSlot { Species = 132, LevelMin = 41, LevelMax = 41, Type = SlotType.Grass_Safari }, // Ditto
new EncounterSlot { Species = 161, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Sentret
// new EncounterSlot { Species = 161, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Sentret
new EncounterSlot { Species = 162, LevelMin = 37, LevelMax = 37, Type = SlotType.Grass_Safari }, // Furret
new EncounterSlot { Species = 194, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Wooper
new EncounterSlot { Species = 194, LevelMin = 15, LevelMax = 16, Type = SlotType.Surf_Safari }, // Wooper
// new EncounterSlot { Species = 194, LevelMin = 15, LevelMax = 17, Type = SlotType.Grass_Safari }, // Wooper
// new EncounterSlot { Species = 194, LevelMin = 15, LevelMax = 16, Type = SlotType.Surf_Safari }, // Wooper
new EncounterSlot { Species = 195, LevelMin = 16, LevelMax = 17, Type = SlotType.Grass_Safari }, // Quagsire
new EncounterSlot { Species = 195, LevelMin = 16, LevelMax = 17, Type = SlotType.Surf_Safari }, // Quagsire
new EncounterSlot { Species = 195, LevelMin = 37, LevelMax = 37, Type = SlotType.Surf_Safari }, // Quagsire
@ -963,9 +963,15 @@ namespace PKHeX.Core
new EncounterSlot { Species = 341, LevelMin = 28, LevelMax = 28, Type = SlotType.Good_Rod_Safari }, // Corphish
new EncounterSlot { Species = 372, LevelMin = 46, LevelMax = 46, Type = SlotType.Grass_Safari }, // Shelgon
new EncounterSlot { Species = 417, LevelMin = 43, LevelMax = 43, Type = SlotType.Grass_Safari }, // Pachirisu
new EncounterSlot { Species = 418, LevelMin = 45, LevelMax = 45, Type = SlotType.Grass_Safari }, // Buizel
new EncounterSlot { Species = 418, LevelMin = 44, LevelMax = 45, Type = SlotType.Grass_Safari }, // Buizel
}
},
//Some edge cases
new EncounterArea
{
Location = 219, // Mt. Silver Cave 1F
Slots = new[]{new EncounterSlot { Species = 130, LevelMin = 20, LevelMax = 20, Type = SlotType.Good_Rod },}, // Gyarados at night
},
};
private static readonly EncounterArea SlotsPt_HoneyTree =

View file

@ -488,6 +488,11 @@ namespace PKHeX.Core
{
566, 567, 696, 697, 698, 699 // Fossil Only obtain
};
internal static readonly int[] Ban_SafariBallHidden_7 =
{
029, 030, 031, 032, 033, 034, // Nidos
313, 314, // Volbeat/Illumise
};
internal static readonly int[] ZygardeMoves =
{

View file

@ -853,7 +853,6 @@
<None Include="Resources\text\zh\text_Types_zh.txt" />
<None Include="Resources\text\zh\text_xy_00000_zh.txt" />
<None Include="Resources\text\zh\text_Moves_zh.txt" />
<None Include="Resources\text\zh\text_Species_zh.txt" />
<None Include="Resources\text\zh\text_xy_30000_zh.txt" />
<None Include="Resources\text\zh\text_hgss_02000_zh.txt" />
<None Include="Resources\text\zh\text_bw2_30000_zh.txt" />
@ -3345,9 +3344,6 @@
<ItemGroup>
<None Include="Resources\img\item\item_920.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\text\zh\text_Species_zh2.txt" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\img\Pokemon Sprites\25-1c.png" />
</ItemGroup>
@ -3427,10 +3423,10 @@
<None Include="Resources\text\other\flags_sm.txt" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\text\zh\text_Species_zh_alt.txt" />
<None Include="Resources\text\zh\text_Species_zh.txt" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\text\zh\text_Species_zh2_alt.txt" />
<None Include="Resources\text\zh\text_Species_zh2.txt" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\img\ball\_ball16.png" />
@ -3522,6 +3518,8 @@
<ItemGroup>
<Content Include="Resources\img\misc\horohoro.png" />
<Content Include="Resources\img\misc\vc.png" />
<None Include="Resources\text\zh\text_Char_zh2.txt" />
<None Include="Resources\text\zh\text_Char_zh.txt" />
<None Include="Resources\text\en\LegalityCheckStrings_en.txt" />
<None Include="Resources\text\zh\LegalityCheckStrings_zh.txt" />
</ItemGroup>

View file

@ -187,6 +187,7 @@ namespace PKHeX.Core
get
{
return PKX.array2strG4BE(Data.Skip(0x48).Take(22).ToArray())
.Replace("\uFF0D", "\u30FC") // Japanese chōonpu
.Replace("\uE08F", "\u2640") // nidoran
.Replace("\uE08E", "\u2642") // nidoran
.Replace("\u2019", "\u0027"); // farfetch'd
@ -196,6 +197,7 @@ namespace PKHeX.Core
if (value.Length > 11)
value = value.Substring(0, 11); // Hard cap
string TempNick = value // Replace Special Characters and add Terminator
.Replace("\u30FC", "\uFF0D") // Japanese chōonpu
.Replace("\u2640", "\uE08F") // nidoran
.Replace("\u2642", "\uE08E") // nidoran
.Replace("\u0027", "\u2019"); // farfetch'd
@ -249,6 +251,7 @@ namespace PKHeX.Core
get
{
return PKX.array2strG4BE(Data.Skip(0x68).Take(16).ToArray())
.Replace("\uFF0D", "\u30FC") // Japanese chōonpu
.Replace("\uE08F", "\u2640") // Nidoran ♂
.Replace("\uE08E", "\u2642") // Nidoran ♀
.Replace("\u2019", "\u0027"); // Farfetch'd
@ -258,6 +261,7 @@ namespace PKHeX.Core
if (value.Length > 7)
value = value.Substring(0, 7); // Hard cap
string TempNick = value // Replace Special Characters and add Terminator
.Replace("\u30FC", "\uFF0D") // Japanese chōonpu
.Replace("\u2640", "\uE08F") // Nidoran ♂
.Replace("\u2642", "\uE08E") // Nidoran ♀
.Replace("\u0027", "\u2019"); // Farfetch'd

View file

@ -169,6 +169,7 @@ namespace PKHeX.Core
get
{
return PKX.array2strG4(Data.Skip(0x48).Take(22).ToArray())
.Replace("\uFF0D", "\u30FC") // Japanese chōonpu
.Replace("\uE08F", "\u2640") // nidoran
.Replace("\uE08E", "\u2642") // nidoran
.Replace("\u2019", "\u0027"); // farfetch'd
@ -178,6 +179,7 @@ namespace PKHeX.Core
if (value.Length > 11)
value = value.Substring(0, 11); // Hard cap
string TempNick = value // Replace Special Characters and add Terminator
.Replace("\u30FC", "\uFF0D") // Japanese chōonpu
.Replace("\u2640", "\uE08F") // nidoran
.Replace("\u2642", "\uE08E") // nidoran
.Replace("\u0027", "\u2019"); // farfetch'd
@ -231,6 +233,7 @@ namespace PKHeX.Core
get
{
return PKX.array2strG4(Data.Skip(0x68).Take(16).ToArray())
.Replace("\uFF0D", "\u30FC") // Japanese chōonpu
.Replace("\uE08F", "\u2640") // Nidoran ♂
.Replace("\uE08E", "\u2642") // Nidoran ♀
.Replace("\u2019", "\u0027"); // Farfetch'd
@ -240,6 +243,7 @@ namespace PKHeX.Core
if (value.Length > 7)
value = value.Substring(0, 7); // Hard cap
string TempNick = value // Replace Special Characters and add Terminator
.Replace("\u30FC", "\uFF0D") // Japanese chōonpu
.Replace("\u2640", "\uE08F") // Nidoran ♂
.Replace("\u2642", "\uE08E") // Nidoran ♀
.Replace("\u0027", "\u2019"); // Farfetch'd

View file

@ -1051,6 +1051,7 @@ namespace PKHeX.Core
var s = str.Replace("\u2019", "\u0027"); // farfetch'd
s = s.Replace("\uE08F", "\u2640"); // ♀
s = s.Replace("\uE08E", "\u2642"); // ♂
s = bin2strG7_zh(s);
return s;
}
@ -1064,6 +1065,7 @@ namespace PKHeX.Core
public static string UnSanitizeString(string str, int species = -1, bool nicknamed = true)
{
var s = str.Replace("\u0027", "\u2019"); // farfetch'd
s = str2binG7_zh(s);
bool foreign = true;
if ((species == 029 || species == 032) && !nicknamed)
@ -1073,7 +1075,6 @@ namespace PKHeX.Core
if (foreign)
return s;
// Convert back to half width
s = s.Replace("\u2640", "\uE08F"); // ♀
s = s.Replace("\u2642", "\uE08E"); // ♂
@ -1189,6 +1190,43 @@ namespace PKHeX.Core
return (((data[3] & 3) << 6) + ((data[2] & 3) << 4) + ((data[1] & 3) << 2) + ((data[0] & 3) << 0)) % 28;
}
/// <summary>
/// Converts a Unicode string to Generation 7 in-game chinese string.
/// </summary>
/// <param name="inputstr">Unicode string.</param>
/// <returns>In-game chinese string.</returns>
public static string str2binG7_zh(string inputstr)
{
int index; string resultstr = "";
foreach (char chr in inputstr)
{
index = Array.IndexOf(Gen7_CHS, chr);
if (index > -1)
{ resultstr += (char)(index + Gen7_CHS_Ofs); continue; }
index = Array.IndexOf(Gen7_CHT, chr);
resultstr += index > -1 ? (char)(index + Gen7_CHT_Ofs) : chr;
}
return resultstr;
}
/// <summary>
/// Converts a Generation 7 in-game chinese string to Unicode string.
/// </summary>
/// <param name="inputstr">In-game chinese string.</param>
/// <returns>Unicode string.</returns>
public static string bin2strG7_zh(string inputstr)
{
string resultstr = "";
foreach (ushort val in inputstr)
{
if (Gen7_CHS_Ofs <= val && val < Gen7_CHS_Ofs + Gen7_CHS.Length)
{ resultstr += Gen7_CHS[val - Gen7_CHS_Ofs]; continue; }
if (Gen7_CHT_Ofs <= val && val < Gen7_CHT_Ofs + Gen7_CHT.Length)
{ resultstr += Gen7_CHT[val - Gen7_CHT_Ofs]; continue; }
resultstr += (char)val;
}
return resultstr;
}
/// <summary>
/// Converts a Generation 4 value to Unicode character.
/// </summary>
@ -1831,7 +1869,12 @@ namespace PKHeX.Core
452, 355, 373, 379, 387, 405, 411 // F
};
#endregion
#region Gen7 Chinese Character Tables
public static readonly char[] Gen7_CHS = Util.getStringList("Char", "zh")[0].ToCharArray();
public static readonly ushort Gen7_CHS_Ofs = 0xE800;
public static readonly char[] Gen7_CHT = Util.getStringList("Char", "zh2")[0].ToCharArray();
public static readonly ushort Gen7_CHT_Ofs = 0xEB09;
#endregion
/// <summary>
/// Trash Bytes for Generation 3->4
/// </summary>

View file

@ -18143,6 +18143,11 @@ namespace PKHeX.Core.Properties {
///V191 = {0} Move {1}: {2}
///V192 = {0} Relearn Move {1}: {2}
///V195 = Encounter Type: {0}
///V500 = Indeterminate
///V501 = Invalid
///V502 = Fishy
///V503 = Valid
///V504 = Not Implemented
///V205 = OT
///V206 = HT
///V167 = Empty Move.
@ -18152,9 +18157,7 @@ namespace PKHeX.Core.Properties {
///V174 = Learned by Move Tutor.
///V175 = Special Non-Relearn Move.
///V177 = Learned by Level-up.
///V203 = Genderless Pokémon should not have a gender.
///V201 = Encryption Constant is not set.
///V204 = H [rest of string was truncated]&quot;;.
///V330 = Lear [rest of string was truncated]&quot;;.
/// </summary>
public static string LegalityCheckStrings_en {
get {
@ -18166,11 +18169,16 @@ namespace PKHeX.Core.Properties {
/// Looks up a localized string similar to V = 有效。
///V193 = 合法。
///V190 = 内部错误。
///V189 = 无法对该宝可梦分析
///V189 = 无法分析该宝可梦
///V196 = {0}: {1}
///V191 = {0} 招式 {1}: {2}
///V192 = {0} 回忆招式 {1}: {2}
///V191 = {0}招式 {1} : {2}
///V192 = {0}回忆招式 {1}: {2}
///V195 = 相遇方式: {0}
///V500 = 无法确定
///V501 = 不合法
///V502 = 可疑
///V503 = 合法
///V504 = 功能未实现
///V205 = 初训家
///V206 = 持有人
///V167 = 空招式。
@ -18180,17 +18188,15 @@ namespace PKHeX.Core.Properties {
///V174 = 通过招式教学习得。
///V175 = 特殊不可回忆招式。
///V177 = 通过升级习得。
///V203 = 无性别宝可梦不能有性别。
///V201 = 未设置加密常数。
///V204 = 持有物未解禁。
///V187 = 该种宝可梦在原始版本中不存在。
///V188 = 没有匹配的“命中注定遇见”的数据。 该神秘礼物有被共享吗?
///V194 = 太阳月亮游戏内交换宝可梦的功能尚未开发。
///V207 = 未设置PID。
///V208 = 加密常数与PID一致。
///V209 = 定点相遇闪光条件不匹配。
///V210 = 刺尾虫进化形态与加密常数不一致。
///V211 = 加密 [rest of string was truncated]&quot;;.
///V330 = 在第{0}世代通过升级习得。
///V332 = 在第{0}世代通过招式教学习得。
///V333 = 配信蛋招式。
///V344 = 遗传了蛋招式。
///V345 = 遗传了升级招式。
///V346 = 遗传了教学招式。
///V349 = 遗传了TM/HM招式。
///V355 = 通过土居忍士进化为铁面忍者习得。
///V356 = 通过土居忍士在第{0}世 [rest of string was truncated]&quot;;.
/// </summary>
public static string LegalityCheckStrings_zh {
get {
@ -23849,6 +23855,24 @@ namespace PKHeX.Core.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to 蛋妙蛙种子草花小火龙恐喷杰尼龟卡咪水箭绿毛虫铁甲蛹巴大蝶独角壳针蜂波比鸟拉达烈雀嘴阿柏蛇怪皮丘雷穿山鼠王多兰娜后朗力诺可西六尾九胖丁超音蝠走路臭霸派斯特球摩鲁蛾地三喵猫老鸭哥猴暴蒂狗风速蚊香蝌蚪君泳士凯勇基胡腕豪喇叭芽口呆食玛瑙母毒刺拳石隆岩马焰兽磁合一葱嘟利海狮白泥舌贝鬼通耿催眠貘引梦人钳蟹巨霹雳电顽弹椰树嘎啦飞腿郎快头瓦双犀牛钻吉蔓藤袋墨金鱼星宝魔墙偶天螳螂迷唇姐击罗肯泰鲤普百变伊布边菊化盔镰刀翼急冻闪你哈克幻叶月桂竺葵锯鳄蓝立咕夜鹰芭瓢安圆丝蛛叉字灯笼古然咩羊茸美丽露才皇毽棉长手向日蜻蜓乌沼太阳亮黑暗鸦妖未知图腾果翁麒麟奇榛佛托土弟蝎钢千壶赫狃熊圈熔蜗猪珊瑚炮章桶信使翅戴加象顿Ⅱ惊鹿犬无畏战舞娃奶罐幸福公炎帝幼沙班洛亚凤时木守宫森林蜥蜴稚鸡壮跃狼纹直冲茧狩猎盾粉莲童帽乐河橡实鼻狡猾傲骨燕鸥莉奈朵溜糖雨蘑菇斗笠懒獭过动猿请假居忍面者脱妞吼爆幕下掌朝北优雅勾魂眼那恰姆落正拍负萤甜蔷薇溶吞牙鲨鲸驼煤炭跳噗晃斑颚蚁漠仙歌青绵七夕鼬斩饭匙鳅鲶虾兵螯秤念触摇篮羽丑纳飘浮泡隐怨影诅咒巡灵彷徨热带铃勃梭雪冰护豹珍珠樱空棘爱心哑属艾欧盖固坐祈代希苗台猛曼拿儿狸法师箱蟀勒伦琴含羞苞槌城结贵妇绅蜜女帕兹潜兔随卷耳魅东施铛响坦 [rest of string was truncated]&quot;;.
/// </summary>
public static string text_Char_zh {
get {
return ResourceManager.GetString("text_Char_zh", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 蛋妙蛙種子草花小火龍恐噴傑尼龜卡咪水箭綠毛蟲鐵甲蛹巴大蝶獨角殼針蜂波比鳥拉達烈雀嘴阿柏蛇怪皮丘雷穿山鼠王多蘭娜后朗力諾可西六尾九胖丁超音蝠走路臭霸派斯特球摩魯蛾地三喵貓老鴨哥猴爆蒂狗風速蚊香蝌蚪君泳士凱勇基胡腕豪喇叭芽口呆食瑪瑙母毒刺拳石隆岩馬焰獸磁合一蔥嘟利海獅白泥舌貝鬼通耿催眠貘引夢人鉗蟹巨霹靂電頑彈椰樹嘎啦飛腿郎快頭瓦雙犀牛鑽吉蔓藤袋墨金魚星寶魔牆偶天螳螂迷唇姐擊羅肯泰鯉暴普百變伊布邊菊化盔鐮刀翼急凍閃你哈克幻葉月桂竺葵鋸鱷藍立咕夜鷹芭瓢安圓絲蛛叉字燈籠古然咩羊茸美麗露才皇毽棉長手向日蜻蜓烏沼太陽亮黑暗鴉妖未知圖騰果翁麒麟奇榛佛托土弟蠍鋼千壺赫狃熊圈熔蝸豬珊瑚炮章桶信使翅戴加象頓Ⅱ驚鹿犬無畏戰舞娃奶罐幸福公炎帝幼沙班洛亞鳳時木守宮森林蜥蜴稚雞壯躍狼紋直衝繭狩獵盾粉蓮童帽樂河橡實鼻狡猾傲骨燕鷗莉奈朵溜糖雨蘑菇斗笠懶獺過動猿請假居忍面者脫妞吼幕下掌朝北優雅勾魂眼那恰姆落正拍負螢甜薔薇溶吞牙鯊鯨駝煤炭跳噗晃斑顎蟻漠仙歌青綿七夕鼬斬飯匙鰍鯰蝦兵螯秤念觸搖籃羽醜納飄浮泡隱怨影詛咒巡靈彷徨熱帶鈴勃梭雪冰護豹珍珠櫻空棘愛心啞屬艾歐蓋固坐祈代希苗台猛曼拿兒狸法師箱蟀勒倫琴含羞苞槌城結貴婦紳蜜女帕茲潛兔隨捲耳魅東施鐺響坦 [rest of string was truncated]&quot;;.
/// </summary>
public static string text_Char_zh2 {
get {
return ResourceManager.GetString("text_Char_zh2", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Liebt es zu essen.
///Nickt oft ein.
@ -34395,119 +34419,6 @@ namespace PKHeX.Core.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to 
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
/// [rest of string was truncated]&quot;;.
/// </summary>
public static string text_species_zh {
get {
return ResourceManager.GetString("text_species_zh", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 蛋
///妙蛙种子
@ -34615,122 +34526,9 @@ namespace PKHeX.Core.Properties {
///椰蛋树
///卡拉卡拉 [rest of string was truncated]&quot;;.
/// </summary>
public static string text_species_zh_alt {
public static string text_species_zh {
get {
return ResourceManager.GetString("text_species_zh_alt", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to 
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
/// [rest of string was truncated]&quot;;.
/// </summary>
public static string text_species_zh2 {
get {
return ResourceManager.GetString("text_species_zh2", resourceCulture);
return ResourceManager.GetString("text_species_zh", resourceCulture);
}
}
@ -34841,9 +34639,9 @@ namespace PKHeX.Core.Properties {
///椰蛋樹
///卡拉卡拉 [rest of string was truncated]&quot;;.
/// </summary>
public static string text_species_zh2_alt {
public static string text_species_zh2 {
get {
return ResourceManager.GetString("text_species_zh2_alt", resourceCulture);
return ResourceManager.GetString("text_species_zh2", resourceCulture);
}
}

View file

@ -7252,12 +7252,6 @@
<data name="flags_sm" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text\other\flags_sm.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
<data name="text_species_zh2_alt" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text\zh\text_Species_zh2_alt.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
</data>
<data name="text_species_zh_alt" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text\zh\text_Species_zh_alt.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="wc7" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\byte\wc7.pkl;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
@ -7567,4 +7561,10 @@
<data name="LegalityCheckStrings_zh" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text\zh\LegalityCheckStrings_zh.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="text_Char_zh" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text\zh\text_Char_zh.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="text_Char_zh2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text\zh\text_Char_zh2.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
</root>

View file

@ -56,6 +56,7 @@ V1 = Nickname too long.
V2 = Nickname is empty.
V4 = Language ID > 8.
V5 = Language ID > 10.
V222 = Cannot be given this Nickname.
V3 = Species index invalid for Nickname comparison.
V20 = Nickname does not match species name.
V13 = Egg name does not match language Egg name.

View file

@ -56,6 +56,7 @@ V1 = 昵称太长。
V2 = 昵称为空。
V4 = 语言ID > 8。
V5 = 语言ID > 10。
V222 = 无法给宝可梦取中文昵称。
V3 = 宝可梦种类无法用于昵称对比
V20 = 昵称与种类名不一致。
V13 = 蛋名称与语言不一致。

View file

@ -0,0 +1 @@
蛋妙蛙种子草花小火龙恐喷杰尼龟卡咪水箭绿毛虫铁甲蛹巴大蝶独角壳针蜂波比鸟拉达烈雀嘴阿柏蛇怪皮丘雷穿山鼠王多兰娜后朗力诺可西六尾九胖丁超音蝠走路臭霸派斯特球摩鲁蛾地三喵猫老鸭哥猴暴蒂狗风速蚊香蝌蚪君泳士凯勇基胡腕豪喇叭芽口呆食玛瑙母毒刺拳石隆岩马焰兽磁合一葱嘟利海狮白泥舌贝鬼通耿催眠貘引梦人钳蟹巨霹雳电顽弹椰树嘎啦飞腿郎快头瓦双犀牛钻吉蔓藤袋墨金鱼星宝魔墙偶天螳螂迷唇姐击罗肯泰鲤普百变伊布边菊化盔镰刀翼急冻闪你哈克幻叶月桂竺葵锯鳄蓝立咕夜鹰芭瓢安圆丝蛛叉字灯笼古然咩羊茸美丽露才皇毽棉长手向日蜻蜓乌沼太阳亮黑暗鸦妖未知图腾果翁麒麟奇榛佛托土弟蝎钢千壶赫狃熊圈熔蜗猪珊瑚炮章桶信使翅戴加象顿Ⅱ惊鹿犬无畏战舞娃奶罐幸福公炎帝幼沙班洛亚凤时木守宫森林蜥蜴稚鸡壮跃狼纹直冲茧狩猎盾粉莲童帽乐河橡实鼻狡猾傲骨燕鸥莉奈朵溜糖雨蘑菇斗笠懒獭过动猿请假居忍面者脱妞吼爆幕下掌朝北优雅勾魂眼那恰姆落正拍负萤甜蔷薇溶吞牙鲨鲸驼煤炭跳噗晃斑颚蚁漠仙歌青绵七夕鼬斩饭匙鳅鲶虾兵螯秤念触摇篮羽丑纳飘浮泡隐怨影诅咒巡灵彷徨热带铃勃梭雪冰护豹珍珠樱空棘爱心哑属艾欧盖固坐祈代希苗台猛曼拿儿狸法师箱蟀勒伦琴含羞苞槌城结贵妇绅蜜女帕兹潜兔随卷耳魅东施铛响坦铜镜钟盆聒噪陆尖咬不良骷荧光霓虹自舔狂远Z由卢席恩骑色霏莱谢米尔宙提主暖炒武刃丸剑探步哨约扒酷冷蚀豆鸽高雉幔庞滚蝙螺钉差搬运匠修建蟾蜍投摔打包保足蜈蚣车轮精根裙野蛮鲈混流氓红倒狒殿滑巾征哭具死神棺原肋始祖破灰尘索沫栗德单卵细胞造鹅倍四季萌哎呀败轻蜘坚齿组麻鳗宇烛幽晶斧嚏几何敏捷功夫父赤驹劈司令炸雄秃丫首恶燃烧毕云酋迪耶塔赛里狐呱贺掘彩蓓洁能鞘芳芙妮好鱿贼脚铠垃藻臂枪伞咚碎黏钥朽南瓜嗡哲裴格枭狙射炽咆哮虎漾壬笃啄铳少强锹农胜虻鬃弱坏驴仔重挽滴伪睡罩盗着竹疗环智挥猩掷胆噬堡爷参性:银伴陨枕戈谜拟Q磨舵鳞杖璞・鸣哞鳍科莫迦虚吾肌费束辉纸御机夏

View file

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

File diff suppressed because it is too large Load diff

View file

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

View file

@ -1,803 +0,0 @@
蛋
妙蛙种子
妙蛙草
妙蛙花
小火龙
火恐龙
喷火龙
杰尼龟
卡咪龟
水箭龟
绿毛虫
铁甲蛹
巴大蝶
独角虫
铁壳蛹
大针蜂
波波
比比鸟
大比鸟
小拉达
拉达
烈雀
大嘴雀
阿柏蛇
阿柏怪
皮卡丘
雷丘
穿山鼠
穿山王
尼多兰
尼多娜
尼多后
尼多朗
尼多力诺
尼多王
皮皮
皮可西
六尾
九尾
胖丁
胖可丁
超音蝠
大嘴蝠
走路草
臭臭花
霸王花
派拉斯
派拉斯特
毛球
摩鲁蛾
地鼠
三地鼠
喵喵
猫老大
可达鸭
哥达鸭
猴怪
火暴猴
卡蒂狗
风速狗
蚊香蝌蚪
蚊香君
蚊香泳士
凯西
勇基拉
胡地
腕力
豪力
怪力
喇叭芽
口呆花
大食花
玛瑙水母
毒刺水母
小拳石
隆隆石
隆隆岩
小火马
烈焰马
呆呆兽
呆壳兽
小磁怪
三合一磁怪
大葱鸭
嘟嘟
嘟嘟利
小海狮
白海狮
臭泥
臭臭泥
大舌贝
刺甲贝
鬼斯
鬼斯通
耿鬼
大岩蛇
催眠貘
引梦貘人
大钳蟹
巨钳蟹
霹雳电球
顽皮雷弹
蛋蛋
椰蛋树
卡拉卡拉
嘎啦嘎啦
飞腿郎
快拳郎
大舌头
瓦斯弹
双弹瓦斯
独角犀牛
钻角犀兽
吉利蛋
蔓藤怪
袋兽
墨海马
海刺龙
角金鱼
金鱼王
海星星
宝石海星
魔墙人偶
飞天螳螂
迷唇姐
电击兽
鸭嘴火兽
凯罗斯
肯泰罗
鲤鱼王
暴鲤龙
拉普拉斯
百变怪
伊布
水伊布
雷伊布
火伊布
多边兽
菊石兽
多刺菊石兽
化石盔
镰刀盔
化石翼龙
卡比兽
急冻鸟
闪电鸟
火焰鸟
迷你龙
哈克龙
快龙
超梦
梦幻
菊草叶
月桂叶
大竺葵
火球鼠
火岩鼠
火暴兽
小锯鳄
蓝鳄
大力鳄
尾立
大尾立
咕咕
猫头夜鹰
芭瓢虫
安瓢虫
圆丝蛛
阿利多斯
叉字蝠
灯笼鱼
电灯怪
皮丘
皮宝宝
宝宝丁
波克比
波克基古
天然雀
天然鸟
咩利羊
茸茸羊
电龙
美丽花
玛力露
玛力露丽
树才怪
蚊香蛙皇
毽子草
毽子花
毽子棉
长尾怪手
向日种子
向日花怪
蜻蜻蜓
乌波
沼王
太阳伊布
月亮伊布
黑暗鸦
呆呆王
梦妖
未知图腾
果然翁
麒麟奇
榛果球
佛烈托斯
土龙弟弟
天蝎
大钢蛇
布鲁
布鲁皇
千针鱼
巨钳螳螂
壶壶
赫拉克罗斯
狃拉
熊宝宝
圈圈熊
熔岩虫
熔岩蜗牛
小山猪
长毛猪
太阳珊瑚
铁炮鱼
章鱼桶
信使鸟
巨翅飞鱼
盔甲鸟
戴鲁比
黑鲁加
刺龙王
小小象
顿甲
多边兽Ⅱ
惊角鹿
图图犬
无畏小子
战舞郎
迷唇娃
电击怪
鸭嘴宝宝
大奶罐
幸福蛋
雷公
炎帝
水君
幼基拉斯
沙基拉斯
班基拉斯
洛奇亚
凤王
时拉比
木守宫
森林蜥蜴
蜥蜴王
火稚鸡
力壮鸡
火焰鸡
水跃鱼
沼跃鱼
巨沼怪
土狼犬
大狼犬
蛇纹熊
直冲熊
刺尾虫
甲壳茧
狩猎凤蝶
盾甲茧
毒粉蛾
莲叶童子
莲帽小童
乐天河童
橡实果
长鼻叶
狡猾天狗
傲骨燕
大王燕
长翅鸥
大嘴鸥
拉鲁拉丝
奇鲁莉安
沙奈朵
溜溜糖球
雨翅蛾
蘑蘑菇
斗笠菇
懒人獭
过动猿
请假王
土居忍士
铁面忍者
脱壳忍者
咕妞妞
吼爆弹
爆音怪
幕下力士
铁掌力士
露力丽
朝北鼻
向尾喵
优雅猫
勾魂眼
大嘴娃
可可多拉
可多拉
波士可多拉
玛沙那
恰雷姆
落雷兽
雷电兽
正电拍拍
负电拍拍
电萤虫
甜甜萤
毒蔷薇
溶食兽
吞食兽
利牙鱼
巨牙鲨
吼吼鲸
吼鲸王
呆火驼
喷火驼
煤炭龟
跳跳猪
噗噗猪
晃晃斑
大颚蚁
超音波幼虫
沙漠蜻蜓
刺球仙人掌
梦歌仙人掌
青绵鸟
七夕青鸟
猫鼬斩
饭匙蛇
月石
太阳岩
泥泥鳅
鲶鱼王
龙虾小兵
铁螯龙虾
天秤偶
念力土偶
触手百合
摇篮百合
太古羽虫
太古盔甲
丑丑鱼
美纳斯
飘浮泡泡
变隐龙
怨影娃娃
诅咒娃娃
夜巡灵
彷徨夜灵
热带龙
风铃铃
阿勃梭鲁
小果然
雪童子
冰鬼护
海豹球
海魔狮
帝牙海狮
珍珠贝
猎斑鱼
樱花鱼
古空棘鱼
爱心鱼
宝贝龙
甲壳龙
暴飞龙
铁哑铃
金属怪
巨金怪
雷吉洛克
雷吉艾斯
雷吉斯奇鲁
拉帝亚斯
拉帝欧斯
盖欧卡
固拉多
烈空坐
基拉祈
代欧奇希斯
草苗龟
树林龟
土台龟
小火焰猴
猛火猴
烈焰猴
波加曼
波皇子
帝王拿波
姆克儿
姆克鸟
姆克鹰
大牙狸
大尾狸
圆法师
音箱蟀
小猫怪
勒克猫
伦琴猫
含羞苞
罗丝雷朵
头盖龙
战槌龙
盾甲龙
护城龙
结草儿
结草贵妇
绅士蛾
三蜜蜂
蜂女王
帕奇利兹
泳圈鼬
浮潜鼬
樱花宝
樱花儿
无壳海兔
海兔兽
双尾怪手
飘飘球
随风球
卷卷耳
长耳兔
梦妖魔
乌鸦头头
魅力喵
东施喵
铃铛响
臭鼬噗
坦克臭鼬
铜镜怪
青铜钟
盆才怪
魔尼尼
小福蛋
聒噪鸟
花岩怪
圆陆鲨
尖牙陆鲨
烈咬陆鲨
小卡比兽
利欧路
路卡利欧
沙河马
河马兽
钳尾蝎
龙王蝎
不良蛙
毒骷蛙
尖牙笼
荧光鱼
霓虹鱼
小球飞鱼
雪笠怪
暴雪王
玛狃拉
自爆磁怪
大舌舔
超甲狂犀
巨蔓藤
电击魔兽
鸭嘴炎兽
波克基斯
远古巨蜓
叶伊布
冰伊布
天蝎王
象牙猪
多边兽Z
艾路雷朵
大朝北鼻
黑夜魔灵
雪妖女
洛托姆
由克希
艾姆利多
亚克诺姆
帝牙卢卡
帕路奇亚
席多蓝恩
雷吉奇卡斯
骑拉帝纳
克雷色利亚
霏欧纳
玛纳霏
达克莱伊
谢米
阿尔宙斯
比克提尼
藤藤蛇
青藤蛇
君主蛇
暖暖猪
炒炒猪
炎武王
水水獭
双刃丸
大剑鬼
探探鼠
步哨鼠
小约克
哈约克
长毛狗
扒手猫
酷豹
花椰猴
花椰猿
爆香猴
爆香猿
冷水猴
冷水猿
食梦梦
梦梦蚀
豆豆鸽
咕咕鸽
高傲雉鸡
斑斑马
雷电斑马
石丸子
地幔岩
庞岩怪
滚滚蝙蝠
心蝙蝠
螺钉地鼠
龙头地鼠
差不多娃娃
搬运小匠
铁骨土人
修建老匠
圆蝌蚪
蓝蟾蜍
蟾蜍王
投摔鬼
打击鬼
虫宝包
宝包茧
保姆虫
百足蜈蚣
车轮球
蜈蚣王
木棉球
风妖精
百合根娃娃
裙儿小姐
野蛮鲈鱼
黑眼鳄
混混鳄
流氓鳄
火红不倒翁
达摩狒狒
沙铃仙人掌
石居蟹
岩殿居蟹
滑滑小子
头巾混混
象征鸟
哭哭面具
死神棺
原盖海龟
肋骨海龟
始祖小鸟
始祖大鸟
破破袋
灰尘山
索罗亚
索罗亚克
泡沫栗鼠
奇诺栗鼠
哥德宝宝
哥德小童
哥德小姐
单卵细胞球
双卵细胞球
人造细胞卵
鸭宝宝
舞天鹅
迷你冰
多多冰
双倍多多冰
四季鹿
萌芽鹿
电飞鼠
盖盖虫
骑士蜗牛
哎呀球菇
败露球菇
轻飘飘
胖嘟嘟
保姆曼波
电电虫
电蜘蛛
种子铁球
坚果哑铃
齿轮儿
齿轮组
齿轮怪
麻麻小鱼
麻麻鳗
麻麻鳗鱼王
小灰怪
大宇怪
烛光灵
灯火幽灵
水晶灯火灵
牙牙
斧牙龙
双斧战龙
喷嚏熊
冻原熊
几何雪花
小嘴蜗
敏捷虫
泥巴鱼
功夫鼬
师父鼬
赤面龙
泥偶小人
泥偶巨人
驹刀小兵
劈斩司令
爆炸头水牛
毛头小鹰
勇士雄鹰
秃鹰丫头
秃鹰娜
熔蚁兽
铁蚁
单首龙
双首暴龙
三首恶龙
燃烧虫
火神蛾
勾帕路翁
代拉基翁
毕力吉翁
龙卷云
雷电云
莱希拉姆
捷克罗姆
土地云
酋雷姆
凯路迪欧
美洛耶塔
盖诺赛克特
哈力栗
胖胖哈力
布里卡隆
火狐狸
长尾火狐
妖火红狐
呱呱泡蛙
呱头蛙
甲贺忍蛙
掘掘兔
掘地兔
小箭雀
火箭雀
烈箭鹰
粉蝶虫
粉蝶蛹
彩粉蝶
小狮狮
火炎狮
花蓓蓓
花叶蒂
花洁夫人
坐骑小羊
坐骑山羊
顽皮熊猫
流氓熊猫
多丽米亚
妙喵
超能妙喵
独剑鞘
双剑鞘
坚盾剑怪
粉香香
芳香精
绵绵泡芙
胖甜妮
好啦鱿
乌贼王
龟脚脚
龟足巨铠
垃垃藻
毒藻龙
铁臂枪虾
钢炮臂虾
伞电蜥
光电伞蜥
宝宝暴龙
怪颚龙
冰雪龙
冰雪巨龙
仙子伊布
摔角鹰人
咚咚鼠
小碎钻
黏黏宝
黏美儿
黏美龙
钥圈儿
小木灵
朽木妖
南瓜精
南瓜怪人
冰宝
冰岩怪
嗡蝠
音波龙
哲尔尼亚斯
伊裴尔塔尔
基格尔德
蒂安希
胡帕
波尔凯尼恩
木木枭
投羽枭
狙射树枭
火斑喵
炎热喵
炽焰咆哮虎
球球海狮
花漾海狮
西狮海壬
小笃儿
喇叭啄鸟
铳嘴大鸟
猫鼬少
猫鼬探长
强颚鸡母虫
虫电宝
锹农炮虫
好胜蟹
好胜毛蟹
花舞鸟
萌虻
蝶结萌虻
岩狗狗
鬃岩狼人
弱丁鱼
好坏星
超坏星
泥驴仔
重泥挽马
滴蛛
滴蛛霸
伪螳草
兰螳花
睡睡菇
灯罩夜菇
夜盗火蜥
焰后蜥
童偶熊
穿着熊
甜竹竹
甜舞妮
甜冷美后
花疗环环
智挥猩
投掷猴
胆小虫
具甲武者
沙丘娃
噬沙堡爷
拳海参
属性:空
银伴战兽
小陨星
树枕尾熊
爆焰龟兽
托戈德玛尔
谜拟Q
磨牙彩皮鱼
老翁龙
破破舵轮
心鳞宝
鳞甲龙
杖尾鳞甲龙
卡璞・鸣鸣
卡璞・蝶蝶
卡璞・哞哞
卡璞・鳍鳍
科斯莫古
科斯莫姆
索尔迦雷欧
露奈雅拉
虚吾伊德
爆肌蚊
费洛美螂
电束木
铁火辉夜
纸御剑
恶食大王
奈克洛兹玛
玛机雅娜
玛夏多

View file

@ -321,6 +321,7 @@ namespace PKHeX.Core
get
{
return PKX.array2strG4(getData(Trainer1, 16))
.Replace("\uFF0D", "\u30FC") // Japanese chōonpu
.Replace("\uE08F", "\u2640") // Nidoran ♂
.Replace("\uE08E", "\u2642") // Nidoran ♀
.Replace("\u2019", "\u0027"); // Farfetch'd
@ -330,6 +331,7 @@ namespace PKHeX.Core
if (value.Length > 7)
value = value.Substring(0, 7); // Hard cap
string TempNick = value // Replace Special Characters and add Terminator
.Replace("\u30FC", "\uFF0D") // Japanese chōonpu
.Replace("\u2640", "\uE08F") // Nidoran ♂
.Replace("\u2642", "\uE08E") // Nidoran ♀
.Replace("\u0027", "\u2019"); // Farfetch'd