Small tweaks to HGSS ball check

small lol
would need fully implemented pal park trash byte checks, big sad
leave stuff stubbed for now, can clamp down later.

restrict some method sigs for IEncounterTemplate (rather than more-derived IEncounterable) for consistency
This commit is contained in:
Kurt 2026-02-20 01:36:46 -06:00
parent f14cfaf08d
commit 6f9daaed04
39 changed files with 410 additions and 57 deletions

View File

@ -127,8 +127,8 @@ public IEnumerable<IEncounterable> GetEncounters(PKM pk, EvoCriteria[] chain, Le
private static bool IsBallCompatible(IFixedBall e, PKM pk) => e.FixedBall switch
{
Ball.Safari when pk.Ball is (byte)Ball.Safari => true,
Ball.Sport when pk.Ball is (byte)Ball.Sport => true,
Ball.Safari => pk.Ball is (byte)Ball.Safari,
Ball.Sport => pk.Ball is (byte)Ball.Sport && pk is not BK4 || pk is BK4 { BallDPPt: (byte)Ball.Poke }, // side transfer forgetting ball
_ => pk.Ball is not ((byte)Ball.Safari or (byte)Ball.Sport),
};

View File

@ -69,6 +69,8 @@ public sealed class LegalityCheckLocalization
public string BallSpecies { get; set; } = "Can't obtain species in Ball.";
public string BallSpeciesPass { get; set; } = "Ball possible for species.";
public string BallUnavailable { get; set; } = "Ball unobtainable in origin Generation.";
public string BallG4Sinnoh { get; set; } = "Ball value for D/P/Pt (0x83) is not within range.";
public string BallG4Johto { get; set; } = "Extended Ball value for HG/SS (0x86) is not within range.";
public string ContestZero { get; set; } = "Contest Stats should be 0.";
public string ContestZeroSheen { get; set; } = "Contest Stat Sheen should be 0.";

View File

@ -55,6 +55,8 @@ public static class LegalityCheckResultCodeExtensions
BallSpecies => localization.BallSpecies,
BallSpeciesPass => localization.BallSpeciesPass,
BallUnavailable => localization.BallUnavailable,
BallG4Sinnoh => localization.BallG4Sinnoh,
BallG4Johto => localization.BallG4Johto,
// Contest
ContestZero => localization.ContestZero,

View File

@ -45,6 +45,8 @@ public enum LegalityCheckResultCode : ushort
BallSpecies,
BallSpeciesPass,
BallUnavailable,
BallG4Sinnoh,
BallG4Johto,
// Contest
ContestZero,

View File

@ -45,7 +45,7 @@ public static BallVerificationResult VerifyBall(LegalityAnalysis data)
return VerifyBall(enc, current, pk);
}
private static BallVerificationResult VerifyEvolvedShedinja(IEncounterable enc, Ball current, PKM pk, LegalInfo info)
private static BallVerificationResult VerifyEvolvedShedinja(IEncounterTemplate enc, Ball current, PKM pk, LegalInfo info)
{
// Nincada evolving into Shedinja normally reverts to Poké Ball.

View File

@ -119,7 +119,7 @@ private CheckResult VerifyFormArgument(LegalityAnalysis data, IFormArgument f)
};
}
private CheckResult CheckPrimeape(LegalityAnalysis data, PKM pk, uint arg, IEncounterable enc)
private CheckResult CheckPrimeape(LegalityAnalysis data, PKM pk, uint arg, IEncounterTemplate enc)
{
if (arg == 0)
return GetValid(FormArgumentValid);

View File

@ -15,7 +15,7 @@ public override void Verify(LegalityAnalysis data)
Verify(data, pk, enc);
}
internal void Verify(LegalityAnalysis data, PKM pk, IEncounterable enc)
internal void Verify(LegalityAnalysis data, PKM pk, IEncounterTemplate enc)
{
if (enc is IEncounterServerDate { IsDateRestricted: true } encounterDate)
VerifyServerDate2000(data, pk, enc, encounterDate);
@ -23,7 +23,7 @@ internal void Verify(LegalityAnalysis data, PKM pk, IEncounterable enc)
VerifyRandomCorrelationSwitch(data, pk, enc);
}
private void VerifyRandomCorrelationSwitch(LegalityAnalysis data, PKM pk, IEncounterable enc)
private void VerifyRandomCorrelationSwitch(LegalityAnalysis data, PKM pk, IEncounterTemplate enc)
{
if (enc is IOverworldCorrelation8 z)
{
@ -85,7 +85,7 @@ private void VerifyCorrelation8(LegalityAnalysis data, IOverworldCorrelation8 z,
data.AddLine(GetInvalid(PIDTypeMismatch));
}
private void VerifyServerDate2000(LegalityAnalysis data, PKM pk, IEncounterable enc, IEncounterServerDate date)
private void VerifyServerDate2000(LegalityAnalysis data, PKM pk, IEncounterTemplate enc, IEncounterServerDate date)
{
const int epoch = 2000;
var actualDay = new DateOnly(pk.MetYear + epoch, pk.MetMonth, pk.MetDay);

View File

@ -1,3 +1,4 @@
using System;
using static PKHeX.Core.LegalityCheckResultCode;
using static PKHeX.Core.CheckIdentifier;
@ -16,9 +17,44 @@ public override void Verify(LegalityAnalysis data)
internal void Verify(LegalityAnalysis data, G4PKM pk)
{
// Verify misc values that were introduced in HG/SS
VerifySplitBall(data, pk);
VerifyWalkingMood(data, pk);
VerifyShinyLeaf(data, pk);
var palPark = PalParkTransferOrigin.None;
var enc = data.EncounterOriginal;
if (enc.Generation == 3)
{
palPark = CheckPalParkTransfer(pk);
if (palPark == PalParkTransferOrigin.Invalid)
return;
VerifyMetLocation3(data, pk, palPark);
}
VerifySplitBall(data, pk, palPark);
}
private void VerifyMetLocation3(LegalityAnalysis data, G4PKM pk, PalParkTransferOrigin palPark)
{
var extended = pk.MetLocationExtended;
if (extended == 0 && palPark.HasFlag(PalParkTransferOrigin.DP))
return; // OK
if (extended == pk.MetLocationDP && palPark.HasFlag(PalParkTransferOrigin.PtHGSS))
return; // OK
data.AddLine(GetInvalid(TransferMetLocation, Locations.Transfer3));
}
private static PalParkTransferOrigin CheckPalParkTransfer(G4PKM pk)
{
// The Pt/HG/SS location value is unset; others will not be true.
if (pk.MetLocationExtended == 0)
return pk.PossiblyPalParkDP ? PalParkTransferOrigin.DP : PalParkTransferOrigin.Invalid;
var result = PalParkTransferOrigin.None;
if (pk.PossiblyPalParkPt)
result |= PalParkTransferOrigin.Pt;
if (pk.PossiblyPalParkHGSS)
result |= PalParkTransferOrigin.HGSS;
return result;
}
private void VerifyShinyLeaf(LegalityAnalysis data, G4PKM pk)
@ -30,15 +66,50 @@ private void VerifyShinyLeaf(LegalityAnalysis data, G4PKM pk)
data.AddLine(GetInvalid(G4ShinyLeafBitsInvalid));
}
private static void VerifySplitBall(LegalityAnalysis data, G4PKM pk)
private static void VerifySplitBall(LegalityAnalysis data, G4PKM pk, PalParkTransferOrigin palPark)
{
// Version is a true match. If not from HG/SS, should not have HG/SS ball value set.
if (pk.BallHGSS == 0 && pk.BallDPPt == pk.Ball)
return;
// Sanity check the D/P/Pt value.
if (!IsValidBallDP(pk.BallDPPt))
data.AddLine(GetInvalid(CheckIdentifier.Ball, BallG4Sinnoh));
if (!IsValidBallHGSS(data, pk, palPark))
data.AddLine(GetInvalid(CheckIdentifier.Ball, BallG4Johto));
}
private static bool IsValidBallHGSS(LegalityAnalysis data, G4PKM pk, PalParkTransferOrigin palPark)
{
var ball = pk.BallHGSS;
var enc = data.EncounterOriginal;
// If not from HG/SS, should not have HG/SS ball value set.
// Battle Revolution does not copy this byte.
if (!IsCreatedInHGSS(pk, enc, palPark) || pk is BK4)
return ball == 0;
// If it could have been D/P/Pt transfer, then allow the not-HG/SS state.
if ((palPark & (PalParkTransferOrigin.DPPt)) != 0)
{
if (ball == 0)
return true;
}
var dp = pk.BallDPPt;
// Assume D/P/Pt ball is valid (flagged separately).
// Ball being equal is OK.
// Ball being HG/SS exclusive is OK if D/P/Pt is default (4).
return ball == dp || (dp is (byte)Ball.Poke && !IsValidBallDP(ball));
}
// Any other ball value (HG/SS ball) isn't available/displayed correctly.
private static bool IsValidBallDP(byte ball) => ball <= (int)Ball.Cherish;
private static bool IsCreatedInHGSS(G4PKM pk, IEncounterTemplate enc, PalParkTransferOrigin palPark)
{
// Only set the HG/SS value if it originated in HG/SS and was not an event (pre-filled data only; not Manaphy egg!).
if (!pk.HGSS || data.Info.EncounterOriginal is PCD) // PCD: not Manaphy via PGT
data.AddLine(GetInvalid(CheckIdentifier.Ball, BallEncMismatch));
// Pal Park transfers into HG/SS set this value as well.
if (pk.HGSS)
return enc is not PCD; // PCD: not Manaphy via PGT
if (palPark.HasFlag(PalParkTransferOrigin.HGSS))
return true;
return false;
}
private static void VerifyWalkingMood(LegalityAnalysis data, G4PKM pk)
@ -55,9 +126,23 @@ private static void VerifyWalkingMood(LegalityAnalysis data, G4PKM pk)
if (pk.WalkingMood == 0)
return;
const Severity severity = Severity.Fishy;
if (pk.IsEgg)
data.AddLine(GetInvalid(Egg, G4PartnerMoodEgg));
data.AddLine(Get(Egg, severity, G4PartnerMoodEgg));
else if (!data.IsStoredSlot(StorageSlotType.Party) && ParseSettings.ActiveTrainer is SAV4HGSS)
data.AddLine(GetInvalid(Egg, G4PartnerMoodZero));
data.AddLine(Get(Misc, severity, G4PartnerMoodZero));
}
}
[Flags]
public enum PalParkTransferOrigin
{
None,
DP = 1 << 0,
Pt = 1 << 1,
HGSS = 1 << 2,
Invalid = 1 << 3,
DPPt = DP | Pt,
PtHGSS = Pt | HGSS,
}

View File

@ -20,7 +20,7 @@ internal void Verify(LegalityAnalysis data, PK5 pk)
VerifyNSparkle(data, pk, enc);
}
private static void VerifyFame(LegalityAnalysis data, PK5 pk, IEncounterable enc)
private static void VerifyFame(LegalityAnalysis data, PK5 pk, IEncounterTemplate enc)
{
var fame = pk.PokeStarFame;
if (fame == 0)
@ -35,7 +35,7 @@ private static void VerifyFame(LegalityAnalysis data, PK5 pk, IEncounterable enc
data.AddLine(GetInvalid(Misc, G5PokeStarImpossibleValue));
}
private static void VerifyNSparkle(LegalityAnalysis data, PK5 pk, IEncounterable enc)
private static void VerifyNSparkle(LegalityAnalysis data, PK5 pk, IEncounterTemplate enc)
{
// Ensure NSparkle is only present on N's encounters.
if (enc is EncounterStatic5N)

View File

@ -43,7 +43,7 @@ private static void VerifySociability(LegalityAnalysis data, PK8 pk)
}
}
private void VerifyGigantamax(LegalityAnalysis data, PK8 pk, IEncounterable enc)
private void VerifyGigantamax(LegalityAnalysis data, PK8 pk, IEncounterTemplate enc)
{
bool originGMax = enc is IGigantamaxReadOnly { CanGigantamax: true };
if (originGMax != pk.CanGigantamax)

View File

@ -34,7 +34,7 @@ internal void Verify(LegalityAnalysis data, PK9 pk)
VerifyPreDLC(data, pk, enc);
}
private void VerifyPreDLC(LegalityAnalysis data, PK9 pk, IEncounterable enc)
private void VerifyPreDLC(LegalityAnalysis data, PK9 pk, IEncounterTemplate enc)
{
if (enc is { Species: (int)Species.Larvesta, Form: 0 } and not EncounterEgg9)
DisallowLevelUpMove(24, (ushort)Move.BugBite, pk, data);
@ -49,7 +49,7 @@ private void VerifyPreDLC(LegalityAnalysis data, PK9 pk, IEncounterable enc)
data.AddLine(GetInvalid(BallUnavailable));
}
private void VerifyEncounter(LegalityAnalysis data, PK9 pk, IEncounterable enc)
private void VerifyEncounter(LegalityAnalysis data, PK9 pk, IEncounterTemplate enc)
{
if (enc is EncounterEgg9 g)
{

View File

@ -75,7 +75,7 @@ public override void Verify(LegalityAnalysis data)
}
}
private static bool IsMysteryGiftNoNickname(IEncounterable enc)
private static bool IsMysteryGiftNoNickname(IEncounterTemplate enc)
{
if (enc is not MysteryGift { IsEgg: false })
return false;

View File

@ -69,7 +69,7 @@ public override void Verify(LegalityAnalysis data)
/// <summary>
/// Checks if any player (human) was the original OT.
/// </summary>
internal static bool IsPlayerOriginalTrainer(IEncounterable enc) => enc switch
internal static bool IsPlayerOriginalTrainer(IEncounterTemplate enc) => enc switch
{
IFixedTrainer { IsFixedTrainer: true } => false,
MysteryGift { IsEgg: false } => false,

View File

@ -192,7 +192,7 @@ private void VerifyHOMETracker(LegalityAnalysis data, PKM pk)
public void VerifyVCEncounter(PKM pk, IEncounterTemplate original, EncounterTransfer7 transfer, LegalityAnalysis data)
{
if (pk.MetLocation != transfer.Location)
data.AddLine(GetInvalid(TransferMetLocation));
data.AddLine(GetInvalid(TransferMetLocation, transfer.Location));
var expectEgg = pk is PB8 ? Locations.Default8bNone : transfer.EggLocation;
if (pk.EggLocation != expectEgg)

View File

@ -298,7 +298,6 @@ private static void SetDefaultManaphyEggDetails(PK4 pk4, ITrainerInfo trainer)
pk4.Move3 = 346; pk4.Move3_PP = 15;
pk4.Ability = (int)Core.Ability.Hydration;
pk4.FatefulEncounter = true;
pk4.Ball = (int)Core.Ball.Poke;
// Manaphy is the only PGT gift egg! (and the only gift that needs a version to be set)
var version = trainer.Version;
@ -315,6 +314,7 @@ private static void SetDefaultManaphyEggDetails(PK4 pk4, ITrainerInfo trainer)
pk4.Nickname = SpeciesName.GetEggName(lang, 4);
pk4.EggLocation = Locations.Ranger4;
pk4.EggMetDate = pk4.MetDate = EncounterDate.GetDateNDS();
pk4.Ball = (int)Core.Ball.Poke;
}
public bool HasPID => PK.PID > 1; // 0=Random, 1=Random (Anti-Shiny). 0 was never used in any Gen4 gift (all non-shiny).

View File

@ -302,6 +302,7 @@ public PK4 ConvertToPK4()
FatefulEncounter = FatefulEncounter,
};
// Transfer into D/P.
// Yay for reusing string buffers! The game allocates a buffer and reuses it when creating strings.
// Trash from the {unknown source} is currently in buffer. Set it to the Nickname region.
var trash = StringConverter345.GetTrashBytes(pk4.Language);
@ -309,10 +310,15 @@ public PK4 ConvertToPK4()
trash.CopyTo(nickTrash[4..]); // min of 1 char and terminator, ignore first 2.
if (IsEgg)
{
// Force hatch.
pk4.Nickname = SpeciesName.GetSpeciesNameGeneration(pk4.Species, pk4.Language, 4);
}
else
{
pk4.IsNicknamed = IsNicknamed;
StringConverter345.TransferGlyphs34(NicknameTrash, Language, Japanese ? 5 : 10, nickTrash);
pk4.IsNicknamed = !IsEgg && IsNicknamed;
}
// Trash from the current string (Nickname) is in our string buffer. Slap the OT name over-top.
var destOT = pk4.OriginalTrainerTrash;
@ -328,7 +334,7 @@ public PK4 ConvertToPK4()
}
// Remove HM moves
ReadOnlySpan<ushort> banned = PersonalInfo3.MachineMovesHidden;
var banned = PersonalInfo3.MachineMovesHidden;
if (banned.Contains(Move1)) pk4.Move1 = 0;
if (banned.Contains(Move2)) pk4.Move2 = 0;
if (banned.Contains(Move3)) pk4.Move3 = 0;

View File

@ -327,12 +327,6 @@ public override string HandlingTrainerName
#endregion
// Methods
public void SetSaveRevision(int ranchSaveRevision)
{
if (ranchSaveRevision == 0)
StripPtHGSSContent(this);
}
protected override byte[] Encrypt()
{
RefreshChecksum();

View File

@ -198,9 +198,9 @@ public sealed override ushort EggLocation
{
get
{
ushort hgssloc = EggLocationExtended;
if (hgssloc != 0)
return hgssloc;
ushort pthgss = EggLocationExtended;
if (pthgss != 0)
return pthgss;
return EggLocationDP;
}
set
@ -217,9 +217,9 @@ public sealed override ushort EggLocation
}
else
{
int pthgss = PtHGSS ? value : 0; // only set to PtHGSS loc if encountered in game
var pthgss = PtHGSS ? value : default; // only set to PtHGSS loc if encountered in game
EggLocationDP = value;
EggLocationExtended = (ushort)pthgss;
EggLocationExtended = pthgss;
}
}
}
@ -247,13 +247,29 @@ public sealed override ushort MetLocation
}
else
{
int pthgss = PtHGSS ? value : 0; // only set to PtHGSS loc if encountered in game
var shouldSet = ShouldSetMetLocationExtended();
var pthgss = shouldSet ? value : default; // only set to PtHGSS loc if encountered in game
MetLocationDP = value;
MetLocationExtended = (ushort)pthgss;
MetLocationExtended = pthgss;
}
}
}
private bool ShouldSetMetLocationExtended()
{
if (!Gen3)
return PtHGSS;
// If transferred from Gen3 into Pt or HG/SS via Pal Park, they set these values.
var hasValue = MetLocationExtended != 0 || BallHGSS != 0;
var wasDP = PossiblyPalParkDP;
if (wasDP && !hasValue)
return false; // Keep D/P.
if (PossiblyPalParkPt || PossiblyPalParkHGSS)
return hasValue || !wasDP;
return false; // Assume D/P.
}
public sealed override byte Ball
{
// HG/SS added new ball IDs mid-generation, and the previous Gen4 games couldn't handle invalid ball values.
@ -261,6 +277,7 @@ public sealed override byte Ball
// However, this info is not set in event gift data!
// Event gift data contains a pre-formatted PK4 template, which is slightly mutated.
// No HG/SS ball values were used in these event gifts, and no HG/SS ball values are set (0).
// Pal Park transfers into HG/SS set this value as well.
// To get the display ball (assume HG/SS +), return the higher of the two values.
get => Math.Max(BallHGSS, BallDPPt);
@ -272,13 +289,32 @@ public sealed override byte Ball
BallDPPt = Clamp(value, Core.Ball.Cherish);
// Only set the HG/SS value if it originated in HG/SS and was not an event.
if (!HGSS || FatefulEncounter)
BallHGSS = 0;
else
if (WasCreatedInHGSS)
BallHGSS = Clamp(value, Core.Ball.Sport);
else
BallHGSS = 0;
}
}
private bool WasCreatedInHGSS
{
get
{
if (HGSS)
return !FatefulEncounter || EggLocation != 0; // Ranger Manaphy was the only egg ever distributed.
return Gen3 && PossiblyPalParkHGSS;
}
}
// Must only be used for Gen3 origin Pokémon that could have been transferred via Pal Park.
public bool PossiblyPalParkDP => MetLocationExtended == 0 && IsTrashPalParkDP();
public bool PossiblyPalParkPt => MetLocationExtended != 0 && IsTrashPalParkPt();
public bool PossiblyPalParkHGSS => MetLocationExtended != 0 && IsTrashPalParkHGSS();
private bool IsTrashPalParkDP() => true; // todo
private bool IsTrashPalParkPt() => true; // todo
private bool IsTrashPalParkHGSS() => true; // todo
// Synthetic Trading Logic
public bool BelongsTo(ITrainerInfo tr)
{
@ -309,12 +345,16 @@ public void UpdateHandler(ITrainerInfo tr)
}
// Enforce D/P content only (no Pt or HG/SS)
protected void StripPtHGSSContent(PKM pk)
protected void StripPtHGSSContent<T>(T pk) where T : G4PKM
{
if (Form != 0 && !PersonalTable.DP[Species].HasForms && Species != 201)
pk.Form = 0;
if (HeldItem > Legal.MaxItemID_4_DP)
pk.HeldItem = 0;
// pk.MetLocationExtended = 0;
// pk.EggLocationExtended = 0;
pk.BallHGSS = 0;
}
protected T ConvertTo<T>() where T : G4PKM, new()
@ -380,12 +420,14 @@ protected T ConvertTo<T>() where T : G4PKM, new()
FatefulEncounter = FatefulEncounter,
MetLevel = MetLevel,
MetLocation = MetLocation,
MetLocationDP = MetLocationDP,
MetLocationExtended = MetLocationExtended,
MetYear = MetYear,
MetMonth = MetMonth,
MetDay = MetDay,
EggLocation = EggLocation,
EggLocationDP = EggLocationDP,
EggLocationExtended = EggLocationExtended,
EggYear = EggYear,
EggMonth = EggMonth,
EggDay = EggDay,

View File

@ -31,6 +31,8 @@
"BallSpecies": "Can't obtain species in Ball.",
"BallSpeciesPass": "Ball possible for species.",
"BallUnavailable": "Ball unobtainable in origin Generation.",
"BallG4Sinnoh": "Ball value for D/P/Pt (0x83) is not within range.",
"BallG4Johto": "Extended Ball value for HG/SS (0x86) is not within range.",
"ContestZero": "Contest Stats should be 0.",
"ContestZeroSheen": "Contest Stat Sheen should be 0.",
"ContestSheenGEQ_0": "Contest Stat Sheen should be >= {0}.",
@ -372,4 +374,4 @@
"BulkHeldItemInventoryNotAcquired_0": "{0} has not been acquired in player inventory.",
"BulkHeldItemInventoryUnassigned_0": "{0} is not marked as assigned in player inventory.",
"BulkFusionSourceInvalid": "The subsumed Species-Form stored in the save file does not match the expected Species-Form of the fused slot."
}
}

View File

@ -31,6 +31,8 @@
"BallSpecies": "Can't obtain species in Ball.",
"BallSpeciesPass": "Ball possible for species.",
"BallUnavailable": "Ball unobtainable in origin Generation.",
"BallG4Sinnoh": "Ball value for D/P/Pt (0x83) is not within range.",
"BallG4Johto": "Extended Ball value for HG/SS (0x86) is not within range.",
"ContestZero": "Contest Stats should be 0.",
"ContestZeroSheen": "Contest Stat Sheen should be 0.",
"ContestSheenGEQ_0": "Contest Stat Sheen should be >= {0}.",
@ -372,4 +374,4 @@
"BulkHeldItemInventoryNotAcquired_0": "{0} has not been acquired in player inventory.",
"BulkHeldItemInventoryUnassigned_0": "{0} is not marked as assigned in player inventory.",
"BulkFusionSourceInvalid": "The subsumed Species-Form stored in the save file does not match the expected Species-Form of the fused slot."
}
}

View File

@ -31,6 +31,8 @@
"BallSpecies": "La especie no se puede obtener en esta Bola.",
"BallSpeciesPass": "Bola posible para esta especie.",
"BallUnavailable": "Bola imposible en la generación de origen.",
"BallG4Sinnoh": "Ball value for D/P/Pt (0x83) is not within range.",
"BallG4Johto": "Extended Ball value for HG/SS (0x86) is not within range.",
"ContestZero": "Las estadísticas de concurso deberían ser 0.",
"ContestZeroSheen": " La estadística de concurso Brillo debería ser 0.",
"ContestSheenGEQ_0": "La estadística de concurso Brillo debería ser >= {0}.",
@ -372,4 +374,4 @@
"BulkHeldItemInventoryNotAcquired_0": "{0} has not been acquired in player inventory.",
"BulkHeldItemInventoryUnassigned_0": "{0} is not marked as assigned in player inventory.",
"BulkFusionSourceInvalid": "The subsumed Species-Form stored in the save file does not match the expected Species-Form of the fused slot."
}
}

View File

@ -31,6 +31,8 @@
"BallSpecies": "La especie no se puede obtener en esta Ball.",
"BallSpeciesPass": "Ball posible para esta especie.",
"BallUnavailable": "Ball imposible en la generación de origen.",
"BallG4Sinnoh": "Ball value for D/P/Pt (0x83) is not within range.",
"BallG4Johto": "Extended Ball value for HG/SS (0x86) is not within range.",
"ContestZero": "Las estadísticas de concurso deberían ser 0.",
"ContestZeroSheen": " La estadística de concurso Brillo debería ser 0.",
"ContestSheenGEQ_0": "La estadística de concurso Brillo debería ser >= {0}.",
@ -372,4 +374,4 @@
"BulkHeldItemInventoryNotAcquired_0": "{0} has not been acquired in player inventory.",
"BulkHeldItemInventoryUnassigned_0": "{0} is not marked as assigned in player inventory.",
"BulkFusionSourceInvalid": "The subsumed Species-Form stored in the save file does not match the expected Species-Form of the fused slot."
}
}

View File

@ -31,6 +31,8 @@
"BallSpecies": "L'espèce ne peut pas être capturée avec cette Ball.",
"BallSpeciesPass": "Ball possible pour l'espèce.",
"BallUnavailable": "Ball impossible à obtenir dans la génération du jeu.",
"BallG4Sinnoh": "Ball value for D/P/Pt (0x83) is not within range.",
"BallG4Johto": "Extended Ball value for HG/SS (0x86) is not within range.",
"ContestZero": "Les Stats de Concours doivent être 0.",
"ContestZeroSheen": "La Stat de Concours Lustre doit être à 0.",
"ContestSheenGEQ_0": "La Stat de Concours Lustre doit être >= {0}.",
@ -372,4 +374,4 @@
"BulkHeldItemInventoryNotAcquired_0": "{0} has not been acquired in player inventory.",
"BulkHeldItemInventoryUnassigned_0": "{0} is not marked as assigned in player inventory.",
"BulkFusionSourceInvalid": "The subsumed Species-Form stored in the save file does not match the expected Species-Form of the fused slot."
}
}

View File

@ -31,6 +31,8 @@
"BallSpecies": "Impossibile ottenere questa specie in questa Ball.",
"BallSpeciesPass": "Ball possibile per la specie.",
"BallUnavailable": "Ball inottenibile nella generazione di origine.",
"BallG4Sinnoh": "Ball value for D/P/Pt (0x83) is not within range.",
"BallG4Johto": "Extended Ball value for HG/SS (0x86) is not within range.",
"ContestZero": "Le statistiche delle Gare dovrebbero essere 0.",
"ContestZeroSheen": "Il Lustro dovrebbe essere 0.",
"ContestSheenGEQ_0": "Il Lustro dovrebbe essere >= {0}.",
@ -372,4 +374,4 @@
"BulkHeldItemInventoryNotAcquired_0": "{0} has not been acquired in player inventory.",
"BulkHeldItemInventoryUnassigned_0": "{0} is not marked as assigned in player inventory.",
"BulkFusionSourceInvalid": "The subsumed Species-Form stored in the save file does not match the expected Species-Form of the fused slot."
}
}

View File

@ -31,6 +31,8 @@
"BallSpecies": "このボールでは捕獲できません。",
"BallSpeciesPass": "ポケモンによっては捕獲可能なボール。",
"BallUnavailable": "元の世代では入手できないボール。",
"BallG4Sinnoh": "Ball value for D/P/Pt (0x83) is not within range.",
"BallG4Johto": "Extended Ball value for HG/SS (0x86) is not within range.",
"ContestZero": "コンディションは0でなければなりません。",
"ContestZeroSheen": "けづやは0でなければなりません。",
"ContestSheenGEQ_0": "けづやは >= {0} でなければなりません。",
@ -372,4 +374,4 @@
"BulkHeldItemInventoryNotAcquired_0": "{0} has not been acquired in player inventory.",
"BulkHeldItemInventoryUnassigned_0": "{0} is not marked as assigned in player inventory.",
"BulkFusionSourceInvalid": "The subsumed Species-Form stored in the save file does not match the expected Species-Form of the fused slot."
}
}

View File

@ -31,6 +31,8 @@
"BallSpecies": "이 포켓몬 종류를 잡을 수 없는 볼입니다.",
"BallSpeciesPass": "이 포켓몬 종류를 잡을 수 있는 볼입니다.",
"BallUnavailable": "만난 게임에서 얻을 수 없는 볼입니다.",
"BallG4Sinnoh": "Ball value for D/P/Pt (0x83) is not within range.",
"BallG4Johto": "Extended Ball value for HG/SS (0x86) is not within range.",
"ContestZero": "컨디션은 0이어야 합니다.",
"ContestZeroSheen": "Contest Stat Sheen should be 0.",
"ContestSheenGEQ_0": "Contest Stat Sheen should be >= {0}.",
@ -372,4 +374,4 @@
"BulkHeldItemInventoryNotAcquired_0": "{0} has not been acquired in player inventory.",
"BulkHeldItemInventoryUnassigned_0": "{0} is not marked as assigned in player inventory.",
"BulkFusionSourceInvalid": "The subsumed Species-Form stored in the save file does not match the expected Species-Form of the fused slot."
}
}

View File

@ -31,6 +31,8 @@
"BallSpecies": "不能以该球捕获宝可梦。",
"BallSpeciesPass": "球对该种类合法。",
"BallUnavailable": "在原来世代该球不可获得。",
"BallG4Sinnoh": "Ball value for D/P/Pt (0x83) is not within range.",
"BallG4Johto": "Extended Ball value for HG/SS (0x86) is not within range.",
"ContestZero": "华丽大赛状态值应为0。",
"ContestZeroSheen": "华丽大赛光泽度应为0。",
"ContestSheenGEQ_0": "华丽大赛光泽度应 >= {0}。",
@ -372,4 +374,4 @@
"BulkHeldItemInventoryNotAcquired_0": "{0} has not been acquired in player inventory.",
"BulkHeldItemInventoryUnassigned_0": "{0} is not marked as assigned in player inventory.",
"BulkFusionSourceInvalid": "存档中记录的被消耗“种族-形态”与该融合槽位应有的“种族-形态”不一致。"
}
}

View File

@ -31,6 +31,8 @@
"BallSpecies": "無法使用此球種捕獲該寶可夢。",
"BallSpeciesPass": "可使用此球種捕獲該種類寶可夢。",
"BallUnavailable": "於此寶可夢出身游戲世代中,該球種不可獲得。",
"BallG4Sinnoh": "Ball value for D/P/Pt (0x83) is not within range.",
"BallG4Johto": "Extended Ball value for HG/SS (0x86) is not within range.",
"ContestZero": "華麗大賽狀態值應置「0」。",
"ContestZeroSheen": "華麗大賽光澤度應置「0」。",
"ContestSheenGEQ_0": "華麗大賽光澤度應大於或等於「 {0} 」。",
@ -372,4 +374,4 @@
"BulkHeldItemInventoryNotAcquired_0": "{0} has not been acquired in player inventory.",
"BulkHeldItemInventoryUnassigned_0": "{0} is not marked as assigned in player inventory.",
"BulkFusionSourceInvalid": "The subsumed Species-Form stored in the save file does not match the expected Species-Form of the fused slot."
}
}

View File

@ -90,6 +90,23 @@ TrashEditor=Sonderzeichen
About.L_Thanks=Danke an alle Mitwirkenden!
About.Tab_Changelog=Änderungen
About.Tab_Shortcuts=Shortcuts
BatchEdit.mnu_-=-
BatchEdit.mnu_!=!
BatchEdit.mnu_«=«
BatchEdit.mnu_»=»
BatchEdit.mnu_*=*
BatchEdit.mnu_/=/
BatchEdit.mnu_&&=&&
BatchEdit.mnu_%=%
BatchEdit.mnu_^=^
BatchEdit.mnu_+=+
BatchEdit.mnu_<=<
BatchEdit.mnu_===
BatchEdit.mnu_>=>
BatchEdit.mnu_|=|
BatchEdit.mnu_≤=≤
BatchEdit.mnu_≥=≥
BatchEdit.mnu_Set=Set
BatchEditor.B_Add=Hinzufügen
BatchEditor.B_Go=Ausführen
BatchEditor.RB_Boxes=Boxen
@ -219,6 +236,8 @@ LocalizedDescription.ExportLegalityAlwaysVerbose=Always displays the verbose leg
LocalizedDescription.ExportLegalityNeverClipboard=Always skips the prompt option asking if you would like to export a legality report to clipboard.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.FilterMismatchGrayscale=Grayscale amount to apply to an entity that does not match a filter (0.0 = no grayscale, 1.0 = fully grayscale).
LocalizedDescription.FilterMismatchOpacity=Opacity of an entity that does not match a filter.
LocalizedDescription.FilterUnavailableSpecies=Versteckt nicht erhältliche Pokémon, wenn diese nicht in den Spielstand importiert werden können.
LocalizedDescription.FlagIllegal=Illegale Pokémon in den Boxen markieren
LocalizedDescription.FocusBorderDeflate=Focus border indentation for custom drawn image controls.
@ -1022,6 +1041,7 @@ SAV_Database.Label_CurLevel=Level:
SAV_Database.Label_HeldItem=Getragenes Item:
SAV_Database.Label_HiddenPowerPrefix=Kraftreserve:
SAV_Database.Label_Nature=Wesen:
SAV_Database.Label_Nickname=Nickname:
SAV_Database.Label_Species=Spezies:
SAV_Database.Menu_Close=Datei
SAV_Database.Menu_DeleteClones=Lösche Klone

View File

@ -90,6 +90,23 @@ TrashEditor=Special Characters
About.L_Thanks=Thanks to all the researchers!
About.Tab_Changelog=Changelog
About.Tab_Shortcuts=Shortcuts
BatchEdit.mnu_-=-
BatchEdit.mnu_!=!
BatchEdit.mnu_«=«
BatchEdit.mnu_»=»
BatchEdit.mnu_*=*
BatchEdit.mnu_/=/
BatchEdit.mnu_&&=&&
BatchEdit.mnu_%=%
BatchEdit.mnu_^=^
BatchEdit.mnu_+=+
BatchEdit.mnu_<=<
BatchEdit.mnu_===
BatchEdit.mnu_>=>
BatchEdit.mnu_|=|
BatchEdit.mnu_≤=≤
BatchEdit.mnu_≥=≥
BatchEdit.mnu_Set=Set
BatchEditor.B_Add=Add
BatchEditor.B_Go=Run
BatchEditor.RB_Boxes=Boxes
@ -219,6 +236,8 @@ LocalizedDescription.ExportLegalityAlwaysVerbose=Always displays the verbose leg
LocalizedDescription.ExportLegalityNeverClipboard=Always skips the prompt option asking if you would like to export a legality report to clipboard.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.FilterMismatchGrayscale=Grayscale amount to apply to an entity that does not match a filter (0.0 = no grayscale, 1.0 = fully grayscale).
LocalizedDescription.FilterMismatchOpacity=Opacity of an entity that does not match a filter.
LocalizedDescription.FilterUnavailableSpecies=Hides unavailable Species if the currently loaded save file cannot import them.
LocalizedDescription.FlagIllegal=Flag Illegal Slots in Save File
LocalizedDescription.FocusBorderDeflate=Focus border indentation for custom drawn image controls.
@ -1022,6 +1041,7 @@ SAV_Database.Label_CurLevel=Level:
SAV_Database.Label_HeldItem=Held Item:
SAV_Database.Label_HiddenPowerPrefix=Hidden Power:
SAV_Database.Label_Nature=Nature:
SAV_Database.Label_Nickname=Nickname:
SAV_Database.Label_Species=Species:
SAV_Database.Menu_Close=File
SAV_Database.Menu_DeleteClones=Delete Clones

View File

@ -90,6 +90,23 @@ TrashEditor=Caracteres especiales
About.L_Thanks=¡Gracias a todos los investigadores!
About.Tab_Changelog=Registro de cambios
About.Tab_Shortcuts=Accesos directos
BatchEdit.mnu_-=-
BatchEdit.mnu_!=!
BatchEdit.mnu_«=«
BatchEdit.mnu_»=»
BatchEdit.mnu_*=*
BatchEdit.mnu_/=/
BatchEdit.mnu_&&=&&
BatchEdit.mnu_%=%
BatchEdit.mnu_^=^
BatchEdit.mnu_+=+
BatchEdit.mnu_<=<
BatchEdit.mnu_===
BatchEdit.mnu_>=>
BatchEdit.mnu_|=|
BatchEdit.mnu_≤=≤
BatchEdit.mnu_≥=≥
BatchEdit.mnu_Set=Set
BatchEditor.B_Add=Añadir
BatchEditor.B_Go=Ejecutar
BatchEditor.RB_Boxes=Cajas
@ -219,6 +236,8 @@ LocalizedDescription.ExportLegalityAlwaysVerbose=Always displays the verbose leg
LocalizedDescription.ExportLegalityNeverClipboard=Always skips the prompt option asking if you would like to export a legality report to clipboard.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Propiedades adicionales para mostrar junto a las propiedades por defecto.
LocalizedDescription.FilterMismatchGrayscale=Grayscale amount to apply to an entity that does not match a filter (0.0 = no grayscale, 1.0 = fully grayscale).
LocalizedDescription.FilterMismatchOpacity=Opacity of an entity that does not match a filter.
LocalizedDescription.FilterUnavailableSpecies=Ocultar Especie no disponible si la partida cargada no puede importarla.
LocalizedDescription.FlagIllegal=Detectar ilegal
LocalizedDescription.FocusBorderDeflate=Focus border indentation for custom drawn image controls.
@ -1022,6 +1041,7 @@ SAV_Database.Label_CurLevel=Nivel:
SAV_Database.Label_HeldItem=Objeto Equipado:
SAV_Database.Label_HiddenPowerPrefix=Poder Oculto:
SAV_Database.Label_Nature=Naturaleza:
SAV_Database.Label_Nickname=Nickname:
SAV_Database.Label_Species=Especie:
SAV_Database.Menu_Close=Archivo
SAV_Database.Menu_DeleteClones=Eliminar clones

View File

@ -90,6 +90,23 @@ TrashEditor=Caracteres especiales
About.L_Thanks=¡Gracias a todos los investigadores!
About.Tab_Changelog=Registro de cambios
About.Tab_Shortcuts=Accesos directos
BatchEdit.mnu_-=-
BatchEdit.mnu_!=!
BatchEdit.mnu_«=«
BatchEdit.mnu_»=»
BatchEdit.mnu_*=*
BatchEdit.mnu_/=/
BatchEdit.mnu_&&=&&
BatchEdit.mnu_%=%
BatchEdit.mnu_^=^
BatchEdit.mnu_+=+
BatchEdit.mnu_<=<
BatchEdit.mnu_===
BatchEdit.mnu_>=>
BatchEdit.mnu_|=|
BatchEdit.mnu_≤=≤
BatchEdit.mnu_≥=≥
BatchEdit.mnu_Set=Set
BatchEditor.B_Add=Añadir
BatchEditor.B_Go=Ejecutar
BatchEditor.RB_Boxes=Cajas
@ -219,6 +236,8 @@ LocalizedDescription.ExportLegalityAlwaysVerbose=Siempre muestra el informe de l
LocalizedDescription.ExportLegalityNeverClipboard=Siempre omite la opción que pregunta si desea exportar un informe de legalidad al portapapeles.
LocalizedDescription.ExportLegalityVerboseProperties=Mostrar todas las propiedades del encuentro (generadas automáticamente) al exportar un informe detallado.
LocalizedDescription.ExtraProperties=Propiedades adicionales para mostrar junto a las propiedades por defecto.
LocalizedDescription.FilterMismatchGrayscale=Grayscale amount to apply to an entity that does not match a filter (0.0 = no grayscale, 1.0 = fully grayscale).
LocalizedDescription.FilterMismatchOpacity=Opacity of an entity that does not match a filter.
LocalizedDescription.FilterUnavailableSpecies=Ocultar Especie no disponible si la partida cargada no puede importarla.
LocalizedDescription.FlagIllegal=Detectar ilegal
LocalizedDescription.FocusBorderDeflate=Sangría de borde de enfoque para controles de imágenes dibujadas personalizadas.
@ -1022,6 +1041,7 @@ SAV_Database.Label_CurLevel=Nivel:
SAV_Database.Label_HeldItem=Objeto Equipado:
SAV_Database.Label_HiddenPowerPrefix=Poder Oculto:
SAV_Database.Label_Nature=Naturaleza:
SAV_Database.Label_Nickname=Nickname:
SAV_Database.Label_Species=Especie:
SAV_Database.Menu_Close=Archivo
SAV_Database.Menu_DeleteClones=Eliminar clones

View File

@ -90,6 +90,23 @@ TrashEditor=personnages spéciaux
About.L_Thanks=Merci à tous les chercheurs !
About.Tab_Changelog=Suivi de changements
About.Tab_Shortcuts=Raccourcis
BatchEdit.mnu_-=-
BatchEdit.mnu_!=!
BatchEdit.mnu_«=«
BatchEdit.mnu_»=»
BatchEdit.mnu_*=*
BatchEdit.mnu_/=/
BatchEdit.mnu_&&=&&
BatchEdit.mnu_%=%
BatchEdit.mnu_^=^
BatchEdit.mnu_+=+
BatchEdit.mnu_<=<
BatchEdit.mnu_===
BatchEdit.mnu_>=>
BatchEdit.mnu_|=|
BatchEdit.mnu_≤=≤
BatchEdit.mnu_≥=≥
BatchEdit.mnu_Set=Set
BatchEditor.B_Add=Ajouter
BatchEditor.B_Go=Exécuter
BatchEditor.RB_Boxes=Boîtes
@ -219,6 +236,8 @@ LocalizedDescription.ExportLegalityAlwaysVerbose=Always displays the verbose leg
LocalizedDescription.ExportLegalityNeverClipboard=Always skips the prompt option asking if you would like to export a legality report to clipboard.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.FilterMismatchGrayscale=Grayscale amount to apply to an entity that does not match a filter (0.0 = no grayscale, 1.0 = fully grayscale).
LocalizedDescription.FilterMismatchOpacity=Opacity of an entity that does not match a filter.
LocalizedDescription.FilterUnavailableSpecies=Hides unavailable Species if the currently loaded save file cannot import them.
LocalizedDescription.FlagIllegal=Marquer les Pokémon illégaux dans la sauvegarde
LocalizedDescription.FocusBorderDeflate=Focus border indentation for custom drawn image controls.
@ -1022,6 +1041,7 @@ SAV_Database.Label_CurLevel=Niveau :
SAV_Database.Label_HeldItem=Objet :
SAV_Database.Label_HiddenPowerPrefix=Puiss. Cachée :
SAV_Database.Label_Nature=Nature :
SAV_Database.Label_Nickname=Nickname:
SAV_Database.Label_Species=Espèce :
SAV_Database.Menu_Close=Fichier
SAV_Database.Menu_DeleteClones=Supprimer les clones

View File

@ -90,6 +90,23 @@ TrashEditor=Caratteri Speciali
About.L_Thanks=Grazie a tutti i ricercatori!
About.Tab_Changelog=Log modifiche
About.Tab_Shortcuts=Scorciatoie
BatchEdit.mnu_-=-
BatchEdit.mnu_!=!
BatchEdit.mnu_«=«
BatchEdit.mnu_»=»
BatchEdit.mnu_*=*
BatchEdit.mnu_/=/
BatchEdit.mnu_&&=&&
BatchEdit.mnu_%=%
BatchEdit.mnu_^=^
BatchEdit.mnu_+=+
BatchEdit.mnu_<=<
BatchEdit.mnu_===
BatchEdit.mnu_>=>
BatchEdit.mnu_|=|
BatchEdit.mnu_≤=≤
BatchEdit.mnu_≥=≥
BatchEdit.mnu_Set=Set
BatchEditor.B_Add=Aggiungi
BatchEditor.B_Go=Avvia
BatchEditor.RB_Boxes=Box
@ -219,6 +236,8 @@ LocalizedDescription.ExportLegalityAlwaysVerbose=Always displays the verbose leg
LocalizedDescription.ExportLegalityNeverClipboard=Always skips the prompt option asking if you would like to export a legality report to clipboard.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.FilterMismatchGrayscale=Grayscale amount to apply to an entity that does not match a filter (0.0 = no grayscale, 1.0 = fully grayscale).
LocalizedDescription.FilterMismatchOpacity=Opacity of an entity that does not match a filter.
LocalizedDescription.FilterUnavailableSpecies=Nascondi specie non disponibili se il salvatggio caricato non è in grado di importarli.
LocalizedDescription.FlagIllegal=Segnala Slot Illegali nel Salvataggio
LocalizedDescription.FocusBorderDeflate=Focus border indentation for custom drawn image controls.
@ -1022,6 +1041,7 @@ SAV_Database.Label_CurLevel=Livello:
SAV_Database.Label_HeldItem=Strumento Tenuto:
SAV_Database.Label_HiddenPowerPrefix=Introforza:
SAV_Database.Label_Nature=Natura:
SAV_Database.Label_Nickname=Nickname:
SAV_Database.Label_Species=Specie:
SAV_Database.Menu_Close=File
SAV_Database.Menu_DeleteClones=Elimina Cloni

View File

@ -90,6 +90,23 @@ TrashEditor=Special Characters
About.L_Thanks=Thanks to all the researchers!
About.Tab_Changelog=変更履歴
About.Tab_Shortcuts=ショートカット
BatchEdit.mnu_-=-
BatchEdit.mnu_!=!
BatchEdit.mnu_«=«
BatchEdit.mnu_»=»
BatchEdit.mnu_*=*
BatchEdit.mnu_/=/
BatchEdit.mnu_&&=&&
BatchEdit.mnu_%=%
BatchEdit.mnu_^=^
BatchEdit.mnu_+=+
BatchEdit.mnu_<=<
BatchEdit.mnu_===
BatchEdit.mnu_>=>
BatchEdit.mnu_|=|
BatchEdit.mnu_≤=≤
BatchEdit.mnu_≥=≥
BatchEdit.mnu_Set=Set
BatchEditor.B_Add=追加
BatchEditor.B_Go=実行
BatchEditor.RB_Boxes=ボックス
@ -219,6 +236,8 @@ LocalizedDescription.ExportLegalityAlwaysVerbose=Always displays the verbose leg
LocalizedDescription.ExportLegalityNeverClipboard=Always skips the prompt option asking if you would like to export a legality report to clipboard.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.FilterMismatchGrayscale=Grayscale amount to apply to an entity that does not match a filter (0.0 = no grayscale, 1.0 = fully grayscale).
LocalizedDescription.FilterMismatchOpacity=Opacity of an entity that does not match a filter.
LocalizedDescription.FilterUnavailableSpecies=読み込まれているセーブファイルにインポートできないポケモンがいた場合、非表示にします。
LocalizedDescription.FlagIllegal=不正ポケモンのアイコンを表示。
LocalizedDescription.FocusBorderDeflate=Focus border indentation for custom drawn image controls.
@ -1022,6 +1041,7 @@ SAV_Database.Label_CurLevel=Lv
SAV_Database.Label_HeldItem=持ち物
SAV_Database.Label_HiddenPowerPrefix=めざめるパワー
SAV_Database.Label_Nature=性格
SAV_Database.Label_Nickname=Nickname:
SAV_Database.Label_Species=ポケモン
SAV_Database.Menu_Close=ファイル
SAV_Database.Menu_DeleteClones=複製を削除

View File

@ -90,6 +90,23 @@ TrashEditor=특수 문자
About.L_Thanks=모든 기여자분들께 감사드립니다!
About.Tab_Changelog=변경 사항
About.Tab_Shortcuts=간편 사용법
BatchEdit.mnu_-=-
BatchEdit.mnu_!=!
BatchEdit.mnu_«=«
BatchEdit.mnu_»=»
BatchEdit.mnu_*=*
BatchEdit.mnu_/=/
BatchEdit.mnu_&&=&&
BatchEdit.mnu_%=%
BatchEdit.mnu_^=^
BatchEdit.mnu_+=+
BatchEdit.mnu_<=<
BatchEdit.mnu_===
BatchEdit.mnu_>=>
BatchEdit.mnu_|=|
BatchEdit.mnu_≤=≤
BatchEdit.mnu_≥=≥
BatchEdit.mnu_Set=Set
BatchEditor.B_Add=추가
BatchEditor.B_Go=실행
BatchEditor.RB_Boxes=박스
@ -219,6 +236,8 @@ LocalizedDescription.ExportLegalityAlwaysVerbose=Always displays the verbose leg
LocalizedDescription.ExportLegalityNeverClipboard=Always skips the prompt option asking if you would like to export a legality report to clipboard.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.FilterMismatchGrayscale=Grayscale amount to apply to an entity that does not match a filter (0.0 = no grayscale, 1.0 = fully grayscale).
LocalizedDescription.FilterMismatchOpacity=Opacity of an entity that does not match a filter.
LocalizedDescription.FilterUnavailableSpecies=Hides unavailable Species if the currently loaded save file cannot import them.
LocalizedDescription.FlagIllegal=세이브 파일에서 적법하지 않은 포켓몬 표시
LocalizedDescription.FocusBorderDeflate=Focus border indentation for custom drawn image controls.
@ -1022,6 +1041,7 @@ SAV_Database.Label_CurLevel=레벨:
SAV_Database.Label_HeldItem=지닌 물건:
SAV_Database.Label_HiddenPowerPrefix=잠재파워:
SAV_Database.Label_Nature=성격:
SAV_Database.Label_Nickname=Nickname:
SAV_Database.Label_Species=종류:
SAV_Database.Menu_Close=파일
SAV_Database.Menu_DeleteClones=복제된 포켓몬 삭제

View File

@ -90,6 +90,23 @@ TrashEditor=特殊字符
About.L_Thanks=感谢所有研究人员!
About.Tab_Changelog=更新日志
About.Tab_Shortcuts=快捷键
BatchEdit.mnu_-=-
BatchEdit.mnu_!=!
BatchEdit.mnu_«=«
BatchEdit.mnu_»=»
BatchEdit.mnu_*=*
BatchEdit.mnu_/=/
BatchEdit.mnu_&&=&&
BatchEdit.mnu_%=%
BatchEdit.mnu_^=^
BatchEdit.mnu_+=+
BatchEdit.mnu_<=<
BatchEdit.mnu_===
BatchEdit.mnu_>=>
BatchEdit.mnu_|=|
BatchEdit.mnu_≤=≤
BatchEdit.mnu_≥=≥
BatchEdit.mnu_Set=Set
BatchEditor.B_Add=增加
BatchEditor.B_Go=运行
BatchEditor.RB_Boxes=盒子
@ -219,6 +236,8 @@ LocalizedDescription.ExportLegalityAlwaysVerbose=始终显示详细的合法性
LocalizedDescription.ExportLegalityNeverClipboard=始终跳过询问是否将合法性报告导出至剪贴板的提示选项。
LocalizedDescription.ExportLegalityVerboseProperties=导出详细报告时显示遭遇的所有信息(自动生成)。
LocalizedDescription.ExtraProperties=除了显示的默认信息之外,还尝试显示额外的信息。
LocalizedDescription.FilterMismatchGrayscale=Grayscale amount to apply to an entity that does not match a filter (0.0 = no grayscale, 1.0 = fully grayscale).
LocalizedDescription.FilterMismatchOpacity=Opacity of an entity that does not match a filter.
LocalizedDescription.FilterUnavailableSpecies=隐藏当前存档无法导入的宝可梦种类。
LocalizedDescription.FlagIllegal=标记非法。
LocalizedDescription.FocusBorderDeflate=自定义调整图标模块与的边框距离。
@ -1022,6 +1041,7 @@ SAV_Database.Label_CurLevel=等级:
SAV_Database.Label_HeldItem=持有物:
SAV_Database.Label_HiddenPowerPrefix=觉醒力量:
SAV_Database.Label_Nature=性格:
SAV_Database.Label_Nickname=Nickname:
SAV_Database.Label_Species=种类:
SAV_Database.Menu_Close=文件
SAV_Database.Menu_DeleteClones=删除重复

View File

@ -90,6 +90,23 @@ TrashEditor=特殊字元
About.L_Thanks=向各界研究人員致謝!
About.Tab_Changelog=更新日誌
About.Tab_Shortcuts=快捷鍵
BatchEdit.mnu_-=-
BatchEdit.mnu_!=!
BatchEdit.mnu_«=«
BatchEdit.mnu_»=»
BatchEdit.mnu_*=*
BatchEdit.mnu_/=/
BatchEdit.mnu_&&=&&
BatchEdit.mnu_%=%
BatchEdit.mnu_^=^
BatchEdit.mnu_+=+
BatchEdit.mnu_<=<
BatchEdit.mnu_===
BatchEdit.mnu_>=>
BatchEdit.mnu_|=|
BatchEdit.mnu_≤=≤
BatchEdit.mnu_≥=≥
BatchEdit.mnu_Set=Set
BatchEditor.B_Add=增加
BatchEditor.B_Go=運行
BatchEditor.RB_Boxes=盒子
@ -219,6 +236,8 @@ LocalizedDescription.ExportLegalityAlwaysVerbose=Always displays the verbose leg
LocalizedDescription.ExportLegalityNeverClipboard=Always skips the prompt option asking if you would like to export a legality report to clipboard.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.FilterMismatchGrayscale=Grayscale amount to apply to an entity that does not match a filter (0.0 = no grayscale, 1.0 = fully grayscale).
LocalizedDescription.FilterMismatchOpacity=Opacity of an entity that does not match a filter.
LocalizedDescription.FilterUnavailableSpecies=隱藏無法匯入當前儲存資料之寶可夢種類
LocalizedDescription.FlagIllegal=標記不合法
LocalizedDescription.FocusBorderDeflate=Focus border indentation for custom drawn image controls.
@ -1022,6 +1041,7 @@ SAV_Database.Label_CurLevel=等級:
SAV_Database.Label_HeldItem=携帶物品:
SAV_Database.Label_HiddenPowerPrefix=覺醒力量:
SAV_Database.Label_Nature=性格:
SAV_Database.Label_Nickname=Nickname:
SAV_Database.Label_Species=種類:
SAV_Database.Menu_Close=檔案
SAV_Database.Menu_DeleteClones=刪除重複

View File

@ -223,7 +223,7 @@ public static void ReformatDark(Control z)
else if (z is ButtonBase b)
{
b.FlatStyle = FlatStyle.Popup;
if (b.Image is Bitmap bmp)
if (b is Button { Image: Bitmap bmp })
b.Image = WinFormsUtil.BlackToWhite(bmp);
}
}