mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-07-18 18:01:16 -05:00
Fix 2 localization mis-mapped
tested 100k, no more thrown Exception's
This commit is contained in:
parent
fb814ac878
commit
c331d97e89
|
|
@ -164,7 +164,7 @@ public sealed class LegalityCheckLocalization
|
|||
public string FormEternalInvalid { get; set; } = "Invalid Eternal Flower encounter.";
|
||||
public string FormInvalidGame { get; set; } = "Form cannot be obtained in origin game.";
|
||||
public string FormInvalidNature { get; set; } = "Form cannot have this nature.";
|
||||
public string FormInvalidRange { get; set; } = "Form Count is out of range. Expected <= {0}, got {1}.";
|
||||
public string FormInvalidRange_01 { get; set; } = "Form Count is out of range. Expected <= {0}, got {1}.";
|
||||
public string FormItem { get; set; } = "Held item matches Form.";
|
||||
public string FormItemInvalid { get; set; } = "Held item does not match Form.";
|
||||
public string FormParty { get; set; } = "Form cannot exist outside of Party.";
|
||||
|
|
@ -408,7 +408,7 @@ public sealed class LegalityCheckLocalization
|
|||
public string EncTradeShouldHaveEvolvedToSpecies_0 { get; set; } = "Trade Encounter should have evolved to species: {0}.";
|
||||
public string EncGiftLanguageNotDistributed { get; set; } = "Gift Encounter was never distributed with this language.";
|
||||
public string EncGiftRegionNotDistributed { get; set; } = "Gift Encounter was never distributed to this Console Region.";
|
||||
public string FormInvalidRangeLEQ_0 { get; set; } = "Form Count is out of range. Expected <= {0}, got {1}.";
|
||||
public string FormInvalidRangeLEQ_0F { get; set; } = "Form Count is out of range. Expected <= {0}, got {1}.";
|
||||
public string MovesShouldMatchRelearnMoves { get; set; } = "Moves should exactly match Relearn Moves.";
|
||||
public string MemoryStatEnjoyment_0 { get; set; } = "Enjoyment should be {0}.";
|
||||
public string MemoryStatFullness_0 { get; set; } = "Fullness should be {0}.";
|
||||
|
|
|
|||
|
|
@ -142,7 +142,6 @@ public static class LegalityCheckResultCodeExtensions
|
|||
FormEternalInvalid => localization.FormEternalInvalid,
|
||||
FormInvalidGame => localization.FormInvalidGame,
|
||||
FormInvalidNature => localization.FormInvalidNature,
|
||||
FormInvalidRange_0 => localization.FormInvalidRange,
|
||||
FormItemMatches => localization.FormItem,
|
||||
FormItemInvalid => localization.FormItemInvalid,
|
||||
FormParty => localization.FormParty,
|
||||
|
|
@ -207,7 +206,7 @@ public static class LegalityCheckResultCodeExtensions
|
|||
FatefulMystery => localization.FatefulMystery,
|
||||
FatefulMysteryMissing => localization.FatefulMysteryMissing,
|
||||
FavoriteMarkingUnavailable => localization.FavoriteMarkingUnavailable,
|
||||
FormInvalidRangeLEQ_0 => localization.FormInvalidRangeLEQ_0,
|
||||
FormInvalidRangeLEQ_0F => localization.FormInvalidRangeLEQ_0F,
|
||||
G1CatchRateChain => localization.G1CatchRateChain,
|
||||
G1CatchRateEvo => localization.G1CatchRateEvo,
|
||||
G1CatchRateItem => localization.G1CatchRateItem,
|
||||
|
|
|
|||
|
|
@ -96,8 +96,8 @@ private string GetInternalString(CheckResult chk)
|
|||
|
||||
private string GetMemory(CheckResult chk, string template, LegalityCheckResultCode code)
|
||||
{
|
||||
if (code is < FirstMemoryWithValue)
|
||||
return string.Format(template, chk.Value);
|
||||
if (code < FirstMemoryWithValue)
|
||||
return string.Format(template, GetTrainer(chk.Argument));
|
||||
if (code is MemoryArgBadItem_H1)
|
||||
return string.Format(template, GetTrainer(chk.Argument), GetSpeciesName(chk.Argument2));
|
||||
if (code is MemoryArgBadMove_H1)
|
||||
|
|
@ -111,8 +111,8 @@ private string GetMemory(CheckResult chk, string template, LegalityCheckResultCo
|
|||
{
|
||||
< FirstComplex => format, // why are you even here?
|
||||
RibbonsInvalid_A => string.Format(format, GetRibbonMessage()),
|
||||
WordFilterFlaggedPattern_01 => string.Format(format, (WordFilterType)chk.Argument, WordFilter.GetPattern((WordFilterType)chk.Argument, chk.Argument2)),
|
||||
WordFilterInvalidCharacter_0 => string.Format(format, chk.Argument.ToString("X4")),
|
||||
WordFilterFlaggedPattern_01 => string.Format(format, WordFilter.GetPattern((WordFilterType)chk.Argument, chk.Argument2), (WordFilterType)chk.Argument),
|
||||
WordFilterInvalidCharacter_0 => string.Format(format, chk.Argument, chk.Argument.ToString("X4")),
|
||||
|
||||
AwakenedStatGEQ_01 => string.Format(format, chk.Argument, GetStatName(chk.Argument2)),
|
||||
GanbaruStatLEQ_01 => string.Format(format, chk.Argument, GetStatName(chk.Argument2)),
|
||||
|
|
@ -128,6 +128,7 @@ private string GetMemory(CheckResult chk, string template, LegalityCheckResultCo
|
|||
|
||||
StoredSlotSourceInvalid_0 => string.Format(format, (StorageSlotSource)chk.Argument),
|
||||
HintEvolvesToRareForm_0 => string.Format(format, chk.Argument == 1),
|
||||
FormInvalidRangeLEQ_0F => string.Format(format, chk.Argument, Analysis.Entity.Form),
|
||||
|
||||
OTLanguageShouldBe_0or1 => string.Format(format, GetLanguageName(chk.Argument), GetLanguageName(chk.Argument2), GetLanguageName(Analysis.Entity.Language)),
|
||||
|
||||
|
|
|
|||
|
|
@ -379,8 +379,6 @@ public enum LegalityCheckResultCode : ushort
|
|||
EvoTradeReqOutsider_0,
|
||||
FormArgumentLEQ_0,
|
||||
FormArgumentGEQ_0,
|
||||
FormInvalidRange_0,
|
||||
FormInvalidRangeLEQ_0,
|
||||
HyperTrainLevelGEQ_0, // level
|
||||
IVAllEqual_0,
|
||||
IVFlawlessCountGEQ_0, // count
|
||||
|
|
@ -452,6 +450,7 @@ public enum LegalityCheckResultCode : ushort
|
|||
|
||||
StoredSlotSourceInvalid_0, // StorageSlotType
|
||||
HintEvolvesToRareForm_0, // bool
|
||||
FormInvalidRangeLEQ_0F,
|
||||
|
||||
OTLanguageShouldBe_0or1, // language,language
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ private CheckResult VerifyForm(LegalityAnalysis data)
|
|||
var enc = data.EncounterMatch;
|
||||
|
||||
if (!pi.IsFormWithinRange(form) && !FormInfo.IsValidOutOfBoundsForm(species, form, enc.Generation))
|
||||
return GetInvalid(FormInvalidRange_0, (ushort)(count - 1));
|
||||
return GetInvalid(FormInvalidRangeLEQ_0F, (ushort)(count - 1));
|
||||
|
||||
switch ((Species)species)
|
||||
{
|
||||
|
|
@ -71,7 +71,7 @@ private CheckResult VerifyForm(LegalityAnalysis data)
|
|||
break;
|
||||
|
||||
case Unown when enc.Generation == 2 && form >= 26:
|
||||
return GetInvalid(FormInvalidRangeLEQ_0, 25);
|
||||
return GetInvalid(FormInvalidRangeLEQ_0F, 25);
|
||||
case Unown when enc.Generation == 3:
|
||||
var expectUnown = EntityPID.GetUnownForm3(pk.EncryptionConstant);
|
||||
if (expectUnown != form)
|
||||
|
|
@ -105,7 +105,7 @@ private CheckResult VerifyForm(LegalityAnalysis data)
|
|||
if (form > 1) // Ash Battle Bond active
|
||||
return GetInvalid(FormBattle);
|
||||
if (form != 0 && enc is not MysteryGift) // Form can not be bred for, MysteryGift already checked
|
||||
return GetInvalid(FormInvalidRange_0, 0);
|
||||
return GetInvalid(FormInvalidRangeLEQ_0F, 0);
|
||||
break;
|
||||
|
||||
case Scatterbug or Spewpa or Vivillon when enc.Context is EntityContext.Gen9:
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
"FormEternalInvalid": "Invalid Eternal Flower encounter.",
|
||||
"FormInvalidGame": "Form cannot be obtained in origin game.",
|
||||
"FormInvalidNature": "Form cannot have this nature.",
|
||||
"FormInvalidRange": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"FormItem": "Held item matches Form.",
|
||||
"FormItemInvalid": "Held item does not match Form.",
|
||||
"FormParty": "Form cannot exist outside of Party.",
|
||||
|
|
@ -322,7 +321,7 @@
|
|||
"EncTradeShouldHaveEvolvedToSpecies_0": "Trade Encounter should have evolved to species: {0}.",
|
||||
"EncGiftLanguageNotDistributed": "Gift Encounter was never distributed with this language.",
|
||||
"EncGiftRegionNotDistributed": "Gift Encounter was never distributed to this Console Region.",
|
||||
"FormInvalidRangeLEQ_0": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"FormInvalidRangeLEQ_0F": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"MovesShouldMatchRelearnMoves": "Moves should exactly match Relearn Moves.",
|
||||
"MemoryStatEnjoyment_0": "Enjoyment should be {0}.",
|
||||
"MemoryStatFullness_0": "Fullness should be {0}.",
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
"FormEternalInvalid": "Invalid Eternal Flower encounter.",
|
||||
"FormInvalidGame": "Form cannot be obtained in origin game.",
|
||||
"FormInvalidNature": "Form cannot have this nature.",
|
||||
"FormInvalidRange": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"FormItem": "Held item matches Form.",
|
||||
"FormItemInvalid": "Held item does not match Form.",
|
||||
"FormParty": "Form cannot exist outside of Party.",
|
||||
|
|
@ -322,7 +321,7 @@
|
|||
"EncTradeShouldHaveEvolvedToSpecies_0": "Trade Encounter should have evolved to species: {0}.",
|
||||
"EncGiftLanguageNotDistributed": "Gift Encounter was never distributed with this language.",
|
||||
"EncGiftRegionNotDistributed": "Gift Encounter was never distributed to this Console Region.",
|
||||
"FormInvalidRangeLEQ_0": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"FormInvalidRangeLEQ_0F": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"MovesShouldMatchRelearnMoves": "Moves should exactly match Relearn Moves.",
|
||||
"MemoryStatEnjoyment_0": "Enjoyment should be {0}.",
|
||||
"MemoryStatFullness_0": "Fullness should be {0}.",
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
"FormEternalInvalid": "Encuentro con Flor Eterna inválido.",
|
||||
"FormInvalidGame": "La forma no se puede obtener en el juego de origen.",
|
||||
"FormInvalidNature": "La forma no puede tener esta Naturaleza.",
|
||||
"FormInvalidRange": "Contador de forma fuera de rango. Se esperaba <= {0}, se obtuvo {1}.",
|
||||
"FormItem": "El objeto equipado coincide con la forma.",
|
||||
"FormItemInvalid": "El objeto equipado no coincide con la forma.",
|
||||
"FormParty": "La forma no puede existir fuera del equipo.",
|
||||
|
|
@ -322,7 +321,7 @@
|
|||
"EncTradeShouldHaveEvolvedToSpecies_0": "Trade Encounter should have evolved to species: {0}.",
|
||||
"EncGiftLanguageNotDistributed": "Gift Encounter was never distributed with this language.",
|
||||
"EncGiftRegionNotDistributed": "Gift Encounter was never distributed to this Console Region.",
|
||||
"FormInvalidRangeLEQ_0": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"FormInvalidRangeLEQ_0F": "Contador de forma fuera de rango. Se esperaba <= {0}, se obtuvo {1}.",
|
||||
"MovesShouldMatchRelearnMoves": "Moves should exactly match Relearn Moves.",
|
||||
"MemoryStatEnjoyment_0": "Los mimos deberían ser {0}.",
|
||||
"MemoryStatFullness_0": "La saciedad debería ser {0}.",
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
"FormEternalInvalid": "Rencontre de fleur éternelle invalide.",
|
||||
"FormInvalidGame": "La Forme ne peut pas être obtenue dans le jeu actuel.",
|
||||
"FormInvalidNature": "La Forme ne peut pas avoir cette nature.",
|
||||
"FormInvalidRange": "Le nombre de forme est hors de portée. Attendu <= {0}, obtenu {1}.",
|
||||
"FormItem": "L'objet tenu correspond à la forme.",
|
||||
"FormItemInvalid": "L'objet tenu ne correspond pas à la forme.",
|
||||
"FormParty": "La Forme ne peut pas exister en dehors de l'Équipe.",
|
||||
|
|
@ -322,7 +321,7 @@
|
|||
"EncTradeShouldHaveEvolvedToSpecies_0": "Trade Encounter should have evolved to species: {0}.",
|
||||
"EncGiftLanguageNotDistributed": "Gift Encounter was never distributed with this language.",
|
||||
"EncGiftRegionNotDistributed": "Gift Encounter was never distributed to this Console Region.",
|
||||
"FormInvalidRangeLEQ_0": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"FormInvalidRangeLEQ_0F": "Le nombre de forme est hors de portée. Attendu <= {0}, obtenu {1}.",
|
||||
"MovesShouldMatchRelearnMoves": "Moves should exactly match Relearn Moves.",
|
||||
"MemoryStatEnjoyment_0": "Le plaisir doit être {0}.",
|
||||
"MemoryStatFullness_0": "La plénitude doit être {0}.",
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
"FormEternalInvalid": "Incontro per Fiore Eterno non valido.",
|
||||
"FormInvalidGame": "La forma non può essere ottenuta nel gioco di origine.",
|
||||
"FormInvalidNature": "La forma non può avere la natura.",
|
||||
"FormInvalidRange": "Il conteggio della forma è fuori dall'indice. Valore previsto <= {0}, non {1}.",
|
||||
"FormItem": "Lo strumento tenuto corrisponde alla forma.",
|
||||
"FormItemInvalid": "Lo strumento tenuto non corrisponde alla forma.",
|
||||
"FormParty": "La forma non può esistere al di fuori della squadra.",
|
||||
|
|
@ -322,7 +321,7 @@
|
|||
"EncTradeShouldHaveEvolvedToSpecies_0": "Trade Encounter should have evolved to species: {0}.",
|
||||
"EncGiftLanguageNotDistributed": "Gift Encounter was never distributed with this language.",
|
||||
"EncGiftRegionNotDistributed": "Gift Encounter was never distributed to this Console Region.",
|
||||
"FormInvalidRangeLEQ_0": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"FormInvalidRangeLEQ_0F": "Il conteggio della forma è fuori dall'indice. Valore previsto <= {0}, non {1}.",
|
||||
"MovesShouldMatchRelearnMoves": "Moves should exactly match Relearn Moves.",
|
||||
"MemoryStatEnjoyment_0": "Enjoyment dovrebbe essere {0}.",
|
||||
"MemoryStatFullness_0": "Fullness dovrebbe essere {0}.",
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
"FormEternalInvalid": "無効なえいえんのはな個体。",
|
||||
"FormInvalidGame": "このフォルムは元々のゲームでは獲得できません。",
|
||||
"FormInvalidNature": "フォルムと性格が不一致です。",
|
||||
"FormInvalidRange": "フォルムの数が範囲外です。予想:<= {0},取得したのは {1} です。",
|
||||
"FormItem": "持ち物とフォルムは一致しています。",
|
||||
"FormItemInvalid": "持ち物とフォルムが一致しません。",
|
||||
"FormParty": "このフォルムは手持ちの外では存在できません。",
|
||||
|
|
@ -322,7 +321,7 @@
|
|||
"EncTradeShouldHaveEvolvedToSpecies_0": "Trade Encounter should have evolved to species: {0}.",
|
||||
"EncGiftLanguageNotDistributed": "Gift Encounter was never distributed with this language.",
|
||||
"EncGiftRegionNotDistributed": "Gift Encounter was never distributed to this Console Region.",
|
||||
"FormInvalidRangeLEQ_0": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"FormInvalidRangeLEQ_0F": "フォルムの数が範囲外です。予想:<= {0},取得したのは {1} です。",
|
||||
"MovesShouldMatchRelearnMoves": "Moves should exactly match Relearn Moves.",
|
||||
"MemoryStatEnjoyment_0": "Enjoyment should be {0}.",
|
||||
"MemoryStatFullness_0": "まんぷく度は {0} である必要があります。",
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
"FormEternalInvalid": "사용할 수 없는 영원의 꽃 인카운터입니다.",
|
||||
"FormInvalidGame": "이 양식은 원래 게임에서 얻을 수 없습니다.",
|
||||
"FormInvalidNature": "Form cannot have this nature.",
|
||||
"FormInvalidRange": "폼 번호가 범위를 벗어났습니다. 예상되는 폼 번호는 최대 {0}입니다. got {1}.",
|
||||
"FormItem": "지닌 물건이 도구와 일치합니다.",
|
||||
"FormItemInvalid": "지닌 물건이 도구와 일치하지 않습니다.",
|
||||
"FormParty": "파티 밖에서 존재할 수 없는 폼입니다.",
|
||||
|
|
@ -322,7 +321,7 @@
|
|||
"EncTradeShouldHaveEvolvedToSpecies_0": "Trade Encounter should have evolved to species: {0}.",
|
||||
"EncGiftLanguageNotDistributed": "Gift Encounter was never distributed with this language.",
|
||||
"EncGiftRegionNotDistributed": "Gift Encounter was never distributed to this Console Region.",
|
||||
"FormInvalidRangeLEQ_0": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"FormInvalidRangeLEQ_0F": "폼 번호가 범위를 벗어났습니다. 예상되는 폼 번호는 최대 {0}입니다. got {1}.",
|
||||
"MovesShouldMatchRelearnMoves": "Moves should exactly match Relearn Moves.",
|
||||
"MemoryStatEnjoyment_0": "Enjoyment should be {0}.",
|
||||
"MemoryStatFullness_0": "Fullness should be {0}.",
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
"FormEternalInvalid": "永恒之花相遇非法。",
|
||||
"FormInvalidGame": "这种形态不能在来源版本中获得。",
|
||||
"FormInvalidNature": "此形态无法拥有这种性格。",
|
||||
"FormInvalidRange": "形态数超过最大值。 应该 <= {0}, 实际是 {1}。",
|
||||
"FormItem": "持有物与形态一致。",
|
||||
"FormItemInvalid": "持有物与形态不一致。",
|
||||
"FormParty": "该形态不可能存在同行队伍外。",
|
||||
|
|
@ -322,7 +321,7 @@
|
|||
"EncTradeShouldHaveEvolvedToSpecies_0": "Trade Encounter should have evolved to species: {0}.",
|
||||
"EncGiftLanguageNotDistributed": "Gift Encounter was never distributed with this language.",
|
||||
"EncGiftRegionNotDistributed": "Gift Encounter was never distributed to this Console Region.",
|
||||
"FormInvalidRangeLEQ_0": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"FormInvalidRangeLEQ_0F": "形态数超过最大值。 应该 <= {0}, 实际是 {1}。",
|
||||
"MovesShouldMatchRelearnMoves": "Moves should exactly match Relearn Moves.",
|
||||
"MemoryStatEnjoyment_0": "享受度应该为{0}。",
|
||||
"MemoryStatFullness_0": "饱腹度应该为{0}。",
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
"FormEternalInvalid": "永恆之花遇見不合法。",
|
||||
"FormInvalidGame": "此形態不能於出身游戲中獲得。",
|
||||
"FormInvalidNature": "此形態無法擁有該種性格。",
|
||||
"FormInvalidRange": "形態數超過最大值。 應該 <=「 {0} 」, 實際是「 {1} 」。",
|
||||
"FormItem": "持有物與形態匹配。",
|
||||
"FormItemInvalid": "持有物與現時形態不匹配(可能此形態僅於持有某種持有物時生效)。",
|
||||
"FormParty": "該形態不可於同行隊伍外存在。",
|
||||
|
|
@ -322,7 +321,7 @@
|
|||
"EncTradeShouldHaveEvolvedToSpecies_0": "Trade Encounter should have evolved to species: {0}.",
|
||||
"EncGiftLanguageNotDistributed": "Gift Encounter was never distributed with this language.",
|
||||
"EncGiftRegionNotDistributed": "Gift Encounter was never distributed to this Console Region.",
|
||||
"FormInvalidRangeLEQ_0": "Form Count is out of range. Expected <= {0}, got {1}.",
|
||||
"FormInvalidRangeLEQ_0F": "形態數超過最大值。 應該 <=「 {0} 」, 實際是「 {1} 」。",
|
||||
"MovesShouldMatchRelearnMoves": "Moves should exactly match Relearn Moves.",
|
||||
"MemoryStatEnjoyment_0": "Enjoyment should be {0}.",
|
||||
"MemoryStatFullness_0": "飽腹度應該為{0}。",
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ private static List<string> GetSaveFileErrata(this SaveFile sav, PKM pk, IBasicS
|
|||
errata.Add($"{MsgIndexSpeciesGame} {strings.Species[pk.Species]}");
|
||||
|
||||
if (!sav.Personal[pk.Species].IsFormWithinRange(pk.Form) && !FormInfo.IsValidOutOfBoundsForm(pk.Species, pk.Form, pk.Generation))
|
||||
errata.Add(string.Format(legality.FormInvalidRange, Math.Max(0, sav.Personal[pk.Species].FormCount - 1), pk.Form));
|
||||
errata.Add(string.Format(legality.FormInvalidRange_01, Math.Max(0, sav.Personal[pk.Species].FormCount - 1), pk.Form));
|
||||
|
||||
var movestr = strings.Move;
|
||||
for (int i = 0; i < 4; i++)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user