Add language check for jp-blue gameversion, non-crystal female

Closes #3099
Ty @CarlosofKalos !
This commit is contained in:
Kurt
2020-12-01 16:55:10 -08:00
parent e54e94a734
commit d5bd36143e
3 changed files with 17 additions and 3 deletions

View File

@@ -240,6 +240,7 @@ public static class LegalityCheckStrings
public static string LG2InvalidTileTreeID { get; set; } = "Found an unreacheable tree for Crystal headbutt encounter that matches OTID.";
public static string LG2InvalidTileTreeNotFound { get; set; } = "Could not find a tree for Crystal headbutt encounter that matches OTID.";
public static string LG2TreeID { get; set; } = "Found a tree for Crystal headbutt encounter that matches OTID.";
public static string LG2OTGender { get; set; } = "OT from Virtual Console games other than Crystal cannot be female.";
public static string LG3EReader { get; set; } = "Non Japanese Shadow E-reader Pokémon. Unreleased encounter.";
public static string LG3OTGender { get; set; } = "OT from Colosseum/XD cannot be female.";

View File

@@ -34,10 +34,15 @@ public override void Verify(LegalityAnalysis data)
return;
}
// Korean Crystal does not exist, neither do VC1
if (originalGeneration <= 2 && pkm.Korean && !GameVersion.GS.Contains((GameVersion)pkm.Version))
if (originalGeneration <= 2)
{
data.AddLine(GetInvalid(string.Format(LOTLanguage, $"!={(LanguageID)currentLanguage}", (LanguageID)currentLanguage)));
// Korean Crystal does not exist, neither do Korean VC1
if (pkm.Korean && !GameVersion.GS.Contains((GameVersion)pkm.Version))
data.AddLine(GetInvalid(string.Format(LOTLanguage, $"!={(LanguageID)currentLanguage}", (LanguageID)currentLanguage)));
// Japanese VC is language locked; cannot obtain Japanese-Blue version as other languages.
if (pkm.Version == (int)GameVersion.BU && !pkm.Japanese)
data.AddLine(GetInvalid(string.Format(LOTLanguage, nameof(LanguageID.Japanese), (LanguageID)currentLanguage)));
}
}

View File

@@ -18,10 +18,18 @@ public override void Verify(LegalityAnalysis data)
public void VerifyTransferLegalityG12(LegalityAnalysis data)
{
VerifyOTGender(data);
VerifyTransferVCNatureEXP(data);
VerifyShinyXorIfShiny(data);
}
private void VerifyOTGender(LegalityAnalysis data)
{
var pkm = data.pkm;
if (pkm.OT_Gender == 1 && pkm.Version != (int)GameVersion.C)
data.AddLine(GetInvalid(LG2OTGender));
}
private void VerifyTransferVCNatureEXP(LegalityAnalysis data)
{
var pkm = data.pkm;