diff --git a/PKHeX.Core/Legality/Checks.cs b/PKHeX.Core/Legality/Checks.cs index 8e975e1d4..4e9c54c71 100644 --- a/PKHeX.Core/Legality/Checks.cs +++ b/PKHeX.Core/Legality/Checks.cs @@ -373,14 +373,24 @@ private void VerifyTrade4() { int lang = pkm.Language; if (EncounterMatch.Species == 25) // Pikachu + { lang = DetectTradeLanguageG4SurgePikachu(pkm, lang); + // flag korean magikarp on gen4 saves since the pkm.Language is German + if (pkm.Format == 4 && lang == (int)LanguageID.Korean && Legal.SavegameLanguage != (int)LanguageID.Korean) + AddLine(Severity.Invalid, string.Format(V610, V611, V612), CheckIdentifier.Language); + } VerifyTradeTable(Encounters4.TradeHGSS, Encounters4.TradeGift_HGSS, lang); } else // DPPt { int lang = pkm.Language; if (EncounterMatch.Species == 129) // Magikarp + { lang = DetectTradeLanguageG4MeisterMagikarp(pkm, lang); + // flag korean magikarp on gen4 saves since the pkm.Language is German + if (pkm.Format == 4 && lang == (int)LanguageID.Korean && Legal.SavegameLanguage != (int)LanguageID.Korean) + AddLine(Severity.Invalid, string.Format(V610, V611, V612), CheckIdentifier.Language); + } else if (!pkm.Pt && lang == 1) // DP English origin are Japanese lang { int index = Array.IndexOf(Encounters4.TradeGift_DPPt, EncounterMatch); @@ -408,8 +418,8 @@ private static int DetectTradeLanguageG4MeisterMagikarp(PKM pkm, int lang) lang = i; break; } - if (lang == 2) // possible collision with EN/ES/IT. Check nickname - return pkm.Nickname == table[4][3] ? (int)LanguageID.Italian : (int)LanguageID.Spanish; // Spanish is same as English + if (lang == 2) // possible collision with FR/ES/DE. Check nickname + return pkm.Nickname == table[3][3] ? (int)LanguageID.French : (int)LanguageID.Spanish; // Spanish is same as English return lang; } @@ -677,7 +687,7 @@ private void VerifyG1OTWithinBounds(string str) { if (StringConverter.GetIsG1English(str)) { - if (str.Length > 7) + if (str.Length > 7 && !((EncounterOriginalGB ?? EncounterMatch) is EncounterTrade)) // OT already verified; GER shuckle has 8 chars AddLine(Severity.Invalid, V38, CheckIdentifier.Trainer); } else if (StringConverter.GetIsG1Japanese(str)) diff --git a/PKHeX.Core/Legality/Encounters/Data/Encounters1.cs b/PKHeX.Core/Legality/Encounters/Data/Encounters1.cs index 6deb602a1..b802a59f0 100644 --- a/PKHeX.Core/Legality/Encounters/Data/Encounters1.cs +++ b/PKHeX.Core/Legality/Encounters/Data/Encounters1.cs @@ -137,7 +137,7 @@ private static EncounterArea[] GetAreas() //new EncounterTrade { Species = 122, Level = 06 }, // Mr. Mime - Game Corner Abra new EncounterTrade { Species = 032, Level = 02, Version = GameVersion.RD }, // Nidoran♂ - Wild Nidoran♀ new EncounterTrade { Species = 029, Level = 02, Version = GameVersion.BU }, // Nidoran♀ - Wild Nidoran♂ - new EncounterTrade { Species = 030, Level = 16, Version = GameVersion.RB }, // Nidorina - Evolve Nidorino + new EncounterTrade { Species = 030, Level = 16, Version = GameVersion.RB }, // Nidorina - Evolve Nidorino new EncounterTrade { Species = 030, Level = 16, Version = GameVersion.YW }, // Nidorina - Evolve Nidorino (Different initial moves) new EncounterTrade { Species = 108, Level = 15, Version = GameVersion.RBY }, // Lickitung - Surf Slowbro new EncounterTrade { Species = 083, Level = 02, Version = GameVersion.RBY }, // Farfetch’d - Wild Spearow @@ -146,10 +146,6 @@ private static EncounterArea[] GetAreas() new EncounterTrade { Species = 122, Level = 03, Version = GameVersion.RBY }, // Mr. Mime - Wild Jigglypuff new EncounterTrade { Species = 060, Level = 02, Version = GameVersion.RBY }, // Poliwag - Wild Rattata //new EncounterTrade { Species = 083, Level = 02 }, // Farfetch’d - Wild Pidgey - new EncounterTrade { Species = 079, Level = 22, Version = GameVersion.RBY }, // Slowpoke - Wild Seel - - new EncounterTrade { Species = 051, Level = 15, Version = GameVersion.RBY }, // Dugtrio - Trade Lickitung - new EncounterTrade { Species = 047, Level = 13, Version = GameVersion.RBY }, // Parasect - Trade Tangela }; internal static readonly EncounterTrade[] TradeGift_RBY_NoTradeback = TradeGift_RBY_Common.Concat(new[] @@ -157,19 +153,23 @@ private static EncounterArea[] GetAreas() // Species & Minimum level (legal) possible to acquire at. new EncounterTrade { Species = 124, Level = 15, Version = GameVersion.RBY }, // Jynx - Fish Poliwhirl (GSC: 10) new EncounterTrade { Species = 114, Level = 13, Version = GameVersion.RBY }, // Tangela - Wild Venonat (GSC: 5) No different moves at level 13 - new EncounterTrade { Species = 086, Level = 28, Version = GameVersion.RBY }, // Seel - Wild Ponyta (GSC: 6) + new EncounterTrade { Species = 086, Level = 28, Version = GameVersion.RBY }, // Seel - Wild Ponyta (GSC: 5) - new EncounterTrade { Species = 115, Level = 42, Version = GameVersion.RBY }, // Kangaskhan - Evolve Rhydon (GSC: 30) + new EncounterTrade { Species = 115, Level = 15, Version = GameVersion.RBY }, // Kangaskhan - Trade Rhydon (GSC: 10) new EncounterTrade { Species = 128, Level = 28, Version = GameVersion.RBY }, // Tauros - Evolve Persian (GSC: 18) new EncounterTradeCatchRate { Species = 093, Level = 20, Catch_Rate = 45, EvolveOnTrade = true, Version = GameVersion.RBY }, // Haunter - Trade Machoke (GSC: 10) new EncounterTradeCatchRate { Species = 075, Level = 16, Catch_Rate = 45, EvolveOnTrade = true, Version = GameVersion.RBY }, // Graveler - Evolve Kadabra (GSC: 15) new EncounterTradeCatchRate { Species = 098, Level = 15, Catch_Rate = 204, Version = GameVersion.RBY }, // Krabby - Wild Growlithe (GSC: 5) //new EncounterTrade { Species = 122, Level = 08 }, // Mr. Mime - Wild Clefairy (GSC: 6) - new EncounterTradeCatchRate { Species = 067, Level = 16, Catch_Rate = 180, EvolveOnTrade = true, Version = GameVersion.RBY }, // Machoke - Wild Cubone (GSC: 10) + new EncounterTradeCatchRate { Species = 067, Level = 16, Catch_Rate = 180, EvolveOnTrade = true, Version = GameVersion.RBY }, // Machoke - Wild Cubone (GSC: 5) new EncounterTrade { Species = 112, Level = 15, Version = GameVersion.RBY }, // Rhydon - Surf Golduck (GSC: 10) new EncounterTrade { Species = 087, Level = 15, Version = GameVersion.RBY }, // Dewgong - Wild Growlithe (GSC: 5) - new EncounterTrade { Species = 089, Level = 25, Version = GameVersion.RBY }, // Muk - Wild Kangaskhan (GSC: 14) + new EncounterTrade { Species = 089, Level = 25, Version = GameVersion.RBY }, // Muk - Wild Kangaskhan (GSC: 5) + + new EncounterTrade { Species = 079, Level = 22, Version = GameVersion.RBY }, // Slowpoke - Wild Seel (GSC 5) + new EncounterTrade { Species = 051, Level = 15, Version = GameVersion.RBY }, // Dugtrio - Trade Lickitung (GSC 5) + new EncounterTrade { Species = 047, Level = 13, Version = GameVersion.RBY }, // Parasect - Trade Tangela (GSC 5) }).ToArray(); internal static readonly EncounterTrade[] TradeGift_RBY_Tradeback = TradeGift_RBY_Common.Concat(new[] @@ -179,9 +179,9 @@ private static EncounterArea[] GetAreas() new EncounterTrade { Species = 114, Level = 05, Version = GameVersion.RBY }, // Tangela - Wild Venonat (RBY: 13) new EncounterTrade { Species = 086, Level = 05, Version = GameVersion.RBY }, // Seel - Egg Ponyta (RBY: 28) - new EncounterTrade { Species = 115, Level = 30, Version = GameVersion.RBY }, // Kangaskhan - Evolve Rhydon (RBY: 42) + new EncounterTrade { Species = 115, Level = 10, Version = GameVersion.RBY }, // Kangaskhan - Trade Rhydon (RBY: 42) new EncounterTrade { Species = 128, Level = 18, Version = GameVersion.RBY }, // Tauros - Evolve Persian (RBY: 28) - new EncounterTradeCatchRate { Species = 093, Level = 10, Catch_Rate = 45, EvolveOnTrade = true, Version = GameVersion.RBY }, // Haunter - Trade Machoke (RBY: 20) + new EncounterTradeCatchRate { Species = 093, Level = 05, Catch_Rate = 45, EvolveOnTrade = true, Version = GameVersion.RBY }, // Haunter - Trade Machoke (RBY: 20) new EncounterTradeCatchRate { Species = 075, Level = 15, Catch_Rate = 45, EvolveOnTrade = true, Version = GameVersion.RBY }, // Graveler - Evolve Kadabra (RBY: 16) new EncounterTradeCatchRate { Species = 098, Level = 05, Catch_Rate = 204, Version = GameVersion.RBY }, // Krabby - Egg Growlithe (RBY: 15) @@ -190,6 +190,10 @@ private static EncounterArea[] GetAreas() new EncounterTrade { Species = 112, Level = 10, Version = GameVersion.RBY }, // Rhydon - Surf Golduck (RBY: 15) new EncounterTrade { Species = 087, Level = 05, Version = GameVersion.RBY }, // Dewgong - Egg Growlithe (RBY: 15) new EncounterTrade { Species = 089, Level = 05, Version = GameVersion.RBY }, // Muk - Egg Kangaskhan (RBY: 25) + + new EncounterTrade { Species = 079, Level = 05, Version = GameVersion.RBY }, // Slowpoke - Wild Seel (GSC 5) + new EncounterTrade { Species = 051, Level = 05, Version = GameVersion.RBY }, // Dugtrio - Trade Lickitung (GSC 5) + new EncounterTrade { Species = 047, Level = 05, Version = GameVersion.RBY }, // Parasect - Trade Tangela (GSC 5) }).ToArray(); private static readonly EncounterArea FishOldGood_RBY = new EncounterArea { diff --git a/PKHeX.Core/Legality/Encounters/Data/Encounters2.cs b/PKHeX.Core/Legality/Encounters/Data/Encounters2.cs index dc39fffaa..524878fb6 100644 --- a/PKHeX.Core/Legality/Encounters/Data/Encounters2.cs +++ b/PKHeX.Core/Legality/Encounters/Data/Encounters2.cs @@ -259,7 +259,7 @@ private static EncounterArea[] GetSlots_C(EncounterArea[] f) new EncounterTrade { Species = 085, Level = 10, Gender = 1, TID = 00283, IVs = new[] {12, 07, 07, 06, 06, 06} }, // Dodrio @ Blackthorn City for Dragonair [wild] new EncounterTrade { Species = 178, Level = 15, Gender = 0, TID = 15616, IVs = new[] {08, 09, 06, 08, 06, 06} }, // Xatu @ Pewter City for Haunter [wild] - new EncounterTrade { Species = 082, Level = 16, Gender = 2, TID = 50082, IVs = new[] {08, 09, 06, 06, 06, 06} }, // Magneton @ Power Plant for Dugtrio [wild] + new EncounterTrade { Species = 082, Level = 05, Gender = 2, TID = 50082, IVs = new[] {08, 09, 06, 06, 06, 06} }, // Magneton @ Power Plant for Dugtrio [traded for Lickitung] new EncounterTrade { Species = 021, Level = 10, TID = 01001, Moves = new[] {64,45,43} }, // Spearow @ Goldenrod City for free new EncounterTrade { Species = 213, Level = 15, TID = 00518 }, // Shuckle @ Cianwood City for free diff --git a/PKHeX.Core/Resources/text/de/text_tradefrlg_de.txt b/PKHeX.Core/Resources/text/de/text_tradefrlg_de.txt index 47532769f..a7603d435 100644 --- a/PKHeX.Core/Resources/text/de/text_tradefrlg_de.txt +++ b/PKHeX.Core/Resources/text/de/text_tradefrlg_de.txt @@ -10,8 +10,8 @@ LECKIBAL SPAJETTIE EUROPE RICHARD -WALTRAUD -WALTRAUD +WALTRAU +WALTRAU THOMAS THOMAS HELMUTH diff --git a/PKHeX.Core/Resources/text/es/text_tradexy_es.txt b/PKHeX.Core/Resources/text/es/text_tradexy_es.txt index 4c7c2d93f..f70cf40cb 100644 --- a/PKHeX.Core/Resources/text/es/text_tradexy_es.txt +++ b/PKHeX.Core/Resources/text/es/text_tradexy_es.txt @@ -1,6 +1,6 @@ Karpirinha Fortunyet -Sr.Puerró +Sr. Puerró Titanix Sharpblade Froakikín diff --git a/PKHeX.Core/Resources/text/fr/text_tradeb2w2_fr.txt b/PKHeX.Core/Resources/text/fr/text_tradeb2w2_fr.txt index 070fdd413..68a5c69f2 100644 --- a/PKHeX.Core/Resources/text/fr/text_tradeb2w2_fr.txt +++ b/PKHeX.Core/Resources/text/fr/text_tradeb2w2_fr.txt @@ -7,8 +7,8 @@ Caudal Stachemou Yuriko Shosuke -Hilbert +Güschti Maru -Lilo -Ursina -Ursina \ No newline at end of file +Liesel +Nanami +Nanami \ No newline at end of file diff --git a/PKHeX.Core/Resources/text/fr/text_tradebw_fr.txt b/PKHeX.Core/Resources/text/fr/text_tradebw_fr.txt index 34aaec5e8..db4b4a3ef 100644 --- a/PKHeX.Core/Resources/text/fr/text_tradebw_fr.txt +++ b/PKHeX.Core/Resources/text/fr/text_tradebw_fr.txt @@ -5,10 +5,10 @@ Siaméto Patacrêpe Triphaset Grobidon -Denise -Denise -Chester -Chester -Hilbert -Lilo -Hajo \ No newline at end of file +Anémone +Anémone +Devon +Devon +Güschti +Liesel +Bigrond \ No newline at end of file diff --git a/PKHeX.Core/Resources/text/fr/text_tradefrlg_fr.txt b/PKHeX.Core/Resources/text/fr/text_tradefrlg_fr.txt index f8f1dacee..451be42e0 100644 --- a/PKHeX.Core/Resources/text/fr/text_tradefrlg_fr.txt +++ b/PKHeX.Core/Resources/text/fr/text_tradefrlg_fr.txt @@ -3,7 +3,7 @@ MS. NIDO MR. NIDO NINO NINO -GLAVIOTE +GLAVIOTEUR LIPOUTI PTICHO RODY diff --git a/PKHeX.Core/Resources/text/it/text_tradexy_it.txt b/PKHeX.Core/Resources/text/it/text_tradexy_it.txt index c64a27a2d..3c42386ff 100644 --- a/PKHeX.Core/Resources/text/it/text_tradexy_it.txt +++ b/PKHeX.Core/Resources/text/it/text_tradexy_it.txt @@ -7,7 +7,7 @@ Froaxy Chespy Fennekino Ralts -Mr.Karp +Mr. Karp Helen Reinhold Accio