From cfa3479a4bb6af599378db0f5a4dd994eebb34cd Mon Sep 17 00:00:00 2001 From: Kurt Date: Sat, 28 Jul 2018 18:09:29 -0700 Subject: [PATCH] Add egg experience check Closes #2083 --- PKHeX.Core/Legality/LegalityCheckStrings.cs | 1 + PKHeX.Core/Legality/Verifiers/LevelVerifier.cs | 9 +++++++++ PKHeX.Core/Resources/text/de/LegalityCheckStrings_de.txt | 1 + PKHeX.Core/Resources/text/en/LegalityCheckStrings_en.txt | 1 + PKHeX.Core/Resources/text/es/LegalityCheckStrings_es.txt | 3 ++- PKHeX.Core/Resources/text/fr/LegalityCheckStrings_fr.txt | 1 + PKHeX.Core/Resources/text/it/LegalityCheckStrings_it.txt | 1 + PKHeX.Core/Resources/text/ja/LegalityCheckStrings_ja.txt | 1 + PKHeX.Core/Resources/text/ko/LegalityCheckStrings_ko.txt | 1 + PKHeX.Core/Resources/text/zh/LegalityCheckStrings_zh.txt | 1 + 10 files changed, 19 insertions(+), 1 deletion(-) diff --git a/PKHeX.Core/Legality/LegalityCheckStrings.cs b/PKHeX.Core/Legality/LegalityCheckStrings.cs index bc29b56ae..4f543b1b8 100644 --- a/PKHeX.Core/Legality/LegalityCheckStrings.cs +++ b/PKHeX.Core/Legality/LegalityCheckStrings.cs @@ -422,6 +422,7 @@ public static class LegalityCheckStrings public static string V610 { get; set; } = "{0} origin cannot exist in the currently loaded ({1}) savegame."; // Invalid public static string V611 { get; set; } = "Korean"; // Invalid public static string V612 { get; set; } = "Non-Korean"; // Invalid + public static string V613 { get; set; } = "Eggs cannot receive experience."; #endregion } diff --git a/PKHeX.Core/Legality/Verifiers/LevelVerifier.cs b/PKHeX.Core/Legality/Verifiers/LevelVerifier.cs index b089fcf40..c7de5105c 100644 --- a/PKHeX.Core/Legality/Verifiers/LevelVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/LevelVerifier.cs @@ -39,7 +39,16 @@ public override void Verify(LegalityAnalysis data) { int elvl = Legal.GetEggHatchLevel(pkm); if (elvl != pkm.CurrentLevel) + { data.AddLine(GetInvalid(string.Format(V52, elvl))); + return; + } + + var reqEXP = EncounterMatch is EncounterStatic s && s.Version == GameVersion.C + ? 125 // Gen2 Dizzy Punch gifts always have 125 EXP, even if it's more than the Lv5 exp required. + : PKX.GetEXP(elvl, pkm.Species); + if (reqEXP != pkm.EXP) + data.AddLine(GetInvalid(V613)); return; } diff --git a/PKHeX.Core/Resources/text/de/LegalityCheckStrings_de.txt b/PKHeX.Core/Resources/text/de/LegalityCheckStrings_de.txt index 35aef0d65..730168f9c 100644 --- a/PKHeX.Core/Resources/text/de/LegalityCheckStrings_de.txt +++ b/PKHeX.Core/Resources/text/de/LegalityCheckStrings_de.txt @@ -359,3 +359,4 @@ V609 = Generation 2 Safari Zone fishing encounter. Unreachable zone. V610 = {0} origin cannot exist in the currently loaded ({1}) savegame. V611 = Korean V612 = Non-Korean +V613 = Eggs cannot receive experience. diff --git a/PKHeX.Core/Resources/text/en/LegalityCheckStrings_en.txt b/PKHeX.Core/Resources/text/en/LegalityCheckStrings_en.txt index 35aef0d65..730168f9c 100644 --- a/PKHeX.Core/Resources/text/en/LegalityCheckStrings_en.txt +++ b/PKHeX.Core/Resources/text/en/LegalityCheckStrings_en.txt @@ -359,3 +359,4 @@ V609 = Generation 2 Safari Zone fishing encounter. Unreachable zone. V610 = {0} origin cannot exist in the currently loaded ({1}) savegame. V611 = Korean V612 = Non-Korean +V613 = Eggs cannot receive experience. diff --git a/PKHeX.Core/Resources/text/es/LegalityCheckStrings_es.txt b/PKHeX.Core/Resources/text/es/LegalityCheckStrings_es.txt index 2a7c5b136..92aa40b61 100644 --- a/PKHeX.Core/Resources/text/es/LegalityCheckStrings_es.txt +++ b/PKHeX.Core/Resources/text/es/LegalityCheckStrings_es.txt @@ -1,4 +1,4 @@ -V = Válido. +V = Válido. V193 = ¡Legal! V190 = Error Interno. V189 = Análisis no Disponible para este Pokémon. @@ -359,3 +359,4 @@ V609 = Encuentro mediante pesca en la Zona Safari de 2da Generación. Zona inalc V610 = {0} origen no puede existir en la partida cargada ({1}) actualmente. V611 = Coreano V612 = No es coreano. +V613 = Eggs cannot receive experience. \ No newline at end of file diff --git a/PKHeX.Core/Resources/text/fr/LegalityCheckStrings_fr.txt b/PKHeX.Core/Resources/text/fr/LegalityCheckStrings_fr.txt index 460b5c4b4..715ec22c7 100644 --- a/PKHeX.Core/Resources/text/fr/LegalityCheckStrings_fr.txt +++ b/PKHeX.Core/Resources/text/fr/LegalityCheckStrings_fr.txt @@ -359,3 +359,4 @@ V609 = Rencontre par pêche dans le Parc Safari de la 2ème génération. Zone i V610 = L'origine de {0} ne peut pas exister dans cette sauvegarde ({1}). V611 = Coréen V612 = Non-Coréen +V613 = Eggs cannot receive experience. diff --git a/PKHeX.Core/Resources/text/it/LegalityCheckStrings_it.txt b/PKHeX.Core/Resources/text/it/LegalityCheckStrings_it.txt index 35aef0d65..730168f9c 100644 --- a/PKHeX.Core/Resources/text/it/LegalityCheckStrings_it.txt +++ b/PKHeX.Core/Resources/text/it/LegalityCheckStrings_it.txt @@ -359,3 +359,4 @@ V609 = Generation 2 Safari Zone fishing encounter. Unreachable zone. V610 = {0} origin cannot exist in the currently loaded ({1}) savegame. V611 = Korean V612 = Non-Korean +V613 = Eggs cannot receive experience. diff --git a/PKHeX.Core/Resources/text/ja/LegalityCheckStrings_ja.txt b/PKHeX.Core/Resources/text/ja/LegalityCheckStrings_ja.txt index 153db0e4c..2450a4352 100644 --- a/PKHeX.Core/Resources/text/ja/LegalityCheckStrings_ja.txt +++ b/PKHeX.Core/Resources/text/ja/LegalityCheckStrings_ja.txt @@ -359,3 +359,4 @@ V609 = Generation 2 Safari Zone fishing encounter. Unreachable zone. V610 = {0} origin cannot exist in the currently loaded ({1}) savegame. V611 = Korean V612 = Non-Korean +V613 = Eggs cannot receive experience. diff --git a/PKHeX.Core/Resources/text/ko/LegalityCheckStrings_ko.txt b/PKHeX.Core/Resources/text/ko/LegalityCheckStrings_ko.txt index 34d25ea9f..5ac439d2f 100644 --- a/PKHeX.Core/Resources/text/ko/LegalityCheckStrings_ko.txt +++ b/PKHeX.Core/Resources/text/ko/LegalityCheckStrings_ko.txt @@ -359,3 +359,4 @@ V609 = 2세대 사파리존의 낚시 인카운터입니다. 접근할 수 없 V610 = 현재 로드한 세이브파일 ({1}) 에서는 {0} 버전에서 만난 포켓몬이 존재할 수 없습니다. V611 = 한국어 버전 포켓몬 V612 = 한국어 버전이 아닌 포켓몬 +V613 = Eggs cannot receive experience. diff --git a/PKHeX.Core/Resources/text/zh/LegalityCheckStrings_zh.txt b/PKHeX.Core/Resources/text/zh/LegalityCheckStrings_zh.txt index d92cd6e2d..244fe292b 100644 --- a/PKHeX.Core/Resources/text/zh/LegalityCheckStrings_zh.txt +++ b/PKHeX.Core/Resources/text/zh/LegalityCheckStrings_zh.txt @@ -359,3 +359,4 @@ V609 = 第二世代狩猎区钓鱼遇敌。无法到达的区域。 V610 = {0}来源的宝可梦不能存在于({1})的游戏记录。 V611 = 韩版 V612 = 非韩版 +V613 = Eggs cannot receive experience.