2022-07-11 00:34:46 +00:00
// ReSharper disable AutoPropertyCanBeMadeGetOnly.Global
2017-03-21 07:18:38 +00:00
2022-06-18 18:04:24 +00:00
namespace PKHeX.Core ;
/// <summary>
/// Legality Check Message Strings to indicate why certain <see cref="PKM"/> <see cref="LegalInfo"/> values are flagged.
/// </summary>
public static class LegalityCheckStrings
2017-03-21 07:18:38 +00:00
{
2022-06-18 18:04:24 +00:00
// Message String Name format: L/F[Category][Summary]
#region General Strings
/// <summary>Default text for indicating validity.</summary>
public static string L_AValid { get ; set ; } = "Valid." ;
/// <summary>Default text for indicating legality.</summary>
public static string L_ALegal { get ; set ; } = "Legal!" ;
/// <summary>Default text for indicating an error has occurred.</summary>
public static string L_AError { get ; set ; } = "Internal error." ;
/// <summary>Analysis not available for the <see cref="PKM"/></summary>
public static string L_AnalysisUnavailable { get ; set ; } = "Analysis not available for this Pokémon." ;
/// <summary>Format text for exporting a legality check result.</summary>
public static string L_F0_1 { get ; set ; } = "{0}: {1}" ;
/// <summary>Format text for exporting a legality check result for a Move.</summary>
public static string L_F0_M_1_2 { get ; set ; } = "{0} Move {1}: {2}" ;
/// <summary>Format text for exporting a legality check result for a Relearn Move.</summary>
public static string L_F0_RM_1_2 { get ; set ; } = "{0} Relearn Move {1}: {2}" ;
/// <summary>Format text for exporting the type of Encounter that was matched for the <see cref="PKM"/></summary>
public static string L_FEncounterType_0 { get ; set ; } = "Encounter Type: {0}" ;
/// <summary>Format text for exporting the <see cref="PIDIV.OriginSeed"/> that was matched for the <see cref="PKM"/></summary>
public static string L_FOriginSeed_0 { get ; set ; } = "Origin Seed: {0}" ;
/// <summary>Format text for exporting the <see cref="PIDIV.Type"/> that was matched for the <see cref="PKM"/></summary>
public static string L_FPIDType_0 { get ; set ; } = "PID Type: {0}" ;
/// <summary>Severity string for <see cref="Severity.Indeterminate"/></summary>
public static string L_SIndeterminate { get ; set ; } = "Indeterminate" ;
/// <summary>Severity string for <see cref="Severity.Invalid"/></summary>
public static string L_SInvalid { get ; set ; } = "Invalid" ;
/// <summary>Severity string for <see cref="Severity.Fishy"/></summary>
public static string L_SFishy { get ; set ; } = "Fishy" ;
/// <summary>Severity string for <see cref="Severity.Valid"/></summary>
public static string L_SValid { get ; set ; } = "Valid" ;
/// <summary>Severity string for anything not implemented.</summary>
public static string L_SNotImplemented { get ; set ; } = "Not Implemented" ;
public static string L_XOT { get ; set ; } = "OT" ;
public static string L_XHT { get ; set ; } = "HT" ;
public static string L_XKorean { get ; set ; } = "Korean" ;
public static string L_XKoreanNon { get ; set ; } = "Non-Korean" ;
public static string L_XEnigmaBerry_0 { get ; set ; } = "{0} Berry" ;
public static string L_XMatches0_1 { get ; set ; } = "Matches: {0} {1}" ;
public static string L_XWurmpleEvo_0 { get ; set ; } = "Wurmple Evolution: {0}" ;
public static string LAbilityCapsuleUsed { get ; set ; } = "Ability available with Ability Capsule." ;
public static string LAbilityPatchUsed { get ; set ; } = "Ability available with Ability Patch." ;
public static string LAbilityFlag { get ; set ; } = "Ability matches ability number." ;
public static string LAbilityHiddenFail { get ; set ; } = "Hidden Ability mismatch for encounter type." ;
public static string LAbilityHiddenUnavailable { get ; set ; } = "Hidden Ability not available." ;
public static string LAbilityMismatch { get ; set ; } = "Ability mismatch for encounter." ;
public static string LAbilityMismatch3 { get ; set ; } = "Ability does not match Generation 3 species ability." ;
public static string LAbilityMismatchFlag { get ; set ; } = "Ability does not match ability number." ;
public static string LAbilityMismatchGift { get ; set ; } = "Ability does not match Mystery Gift." ;
public static string LAbilityMismatchGrotto { get ; set ; } = "Hidden Grotto captures should have Hidden Ability." ;
public static string LAbilityMismatchHordeSafari { get ; set ; } = "Hidden Ability on non-horde/friend safari wild encounter." ;
public static string LAbilityMismatchPID { get ; set ; } = "Ability does not match PID." ;
public static string LAbilityMismatchSOS { get ; set ; } = "Hidden Ability on non-SOS wild encounter." ;
public static string LAbilityUnexpected { get ; set ; } = "Ability is not valid for species/form." ;
public static string LAwakenedCap { get ; set ; } = "Individual AV cannot be greater than {0}." ;
2022-07-11 00:34:46 +00:00
public static string LAwakenedShouldBeValue { get ; set ; } = "Individual AV ({1}) should be greater than {0}." ;
2022-06-18 18:04:24 +00:00
public static string LBallAbility { get ; set ; } = "Can't obtain Hidden Ability with Ball." ;
public static string LBallEggCherish { get ; set ; } = "Can't have Cherish Ball for regular Egg." ;
public static string LBallEggMaster { get ; set ; } = "Can't have Master Ball for regular Egg." ;
public static string LBallEnc { get ; set ; } = "Correct ball for encounter type." ;
public static string LBallEncMismatch { get ; set ; } = "Can't have ball for encounter type." ;
public static string LBallHeavy { get ; set ; } = "Can't have Heavy Ball for light, low-catch rate species (Gen VII)." ;
public static string LBallNone { get ; set ; } = "No check satisfied, assuming illegal." ;
public static string LBallSpecies { get ; set ; } = "Can't obtain species in Ball." ;
public static string LBallSpeciesPass { get ; set ; } = "Ball possible for species." ;
public static string LBallUnavailable { get ; set ; } = "Ball unobtainable in origin Generation." ;
public static string LContestZero { get ; set ; } = "Contest Stats should be 0." ;
public static string LContestZeroSheen { get ; set ; } = "Contest Stat Sheen should be 0." ;
public static string LContestSheenTooLow_0 { get ; set ; } = "Contest Stat Sheen should be >= {0}." ;
public static string LContestSheenTooHigh_0 { get ; set ; } = "Contest Stat Sheen should be <= {0}." ;
public static string LDateOutsideDistributionWindow { get ; set ; } = "Met Date is outside of distribution window." ;
public static string LEggContest { get ; set ; } = "Cannot increase Contest Stats of an Egg." ;
public static string LEggEXP { get ; set ; } = "Eggs cannot receive experience." ;
public static string LEggFMetLevel_0 { get ; set ; } = "Invalid Met Level, expected {0}." ;
public static string LEggHatchCycles { get ; set ; } = "Invalid Egg hatch cycles." ;
public static string LEggLocation { get ; set ; } = "Able to hatch an Egg at Met Location." ;
public static string LEggLocationInvalid { get ; set ; } = "Can't hatch an Egg at Met Location." ;
public static string LEggLocationNone { get ; set ; } = "Invalid Egg Location, expected none." ;
public static string LEggLocationPalPark { get ; set ; } = "Invalid Met Location, expected Pal Park." ;
public static string LEggLocationTrade { get ; set ; } = "Able to hatch a traded Egg at Met Location." ;
public static string LEggLocationTradeFail { get ; set ; } = "Invalid Egg Location, shouldn't be 'traded' while an Egg." ;
public static string LEggMetLocationFail { get ; set ; } = "Can't obtain Egg from Egg Location." ;
public static string LEggNature { get ; set ; } = "Eggs cannot have their Stat Nature changed." ;
public static string LEggPokeathlon { get ; set ; } = "Eggs cannot have Pokéathlon stats." ;
public static string LEggPokerus { get ; set ; } = "Eggs cannot be infected with Pokérus." ;
public static string LEggPP { get ; set ; } = "Eggs cannot have modified move PP counts." ;
public static string LEggPPUp { get ; set ; } = "Cannot apply PP Ups to an Egg." ;
public static string LEggRelearnFlags { get ; set ; } = "Expected no Relearn Move Flags." ;
public static string LEggShinyLeaf { get ; set ; } = "Eggs cannot have Shiny Leaf/Crown." ;
public static string LEggShinyPokeStar { get ; set ; } = "Eggs cannot be a Pokéstar Studios star." ;
public static string LEggSpecies { get ; set ; } = "Can't obtain Egg for this species." ;
public static string LEggUnhatched { get ; set ; } = "Valid un-hatched Egg." ;
public static string LEncCondition { get ; set ; } = "Valid Wild Encounter at location." ;
public static string LEncConditionBadRNGFrame { get ; set ; } = "Unable to match encounter conditions to a possible RNG frame." ;
public static string LEncConditionBadSpecies { get ; set ; } = "Species does not exist in origin game." ;
public static string LEncConditionBlack { get ; set ; } = "Valid Wild Encounter at location (Black Flute)." ;
public static string LEncConditionBlackLead { get ; set ; } = "Valid Wild Encounter at location (Black Flute & Pressure/Hustle/Vital Spirit)." ;
public static string LEncConditionDexNav { get ; set ; } = "Valid Wild Encounter at location (DexNav)." ;
public static string LEncConditionLead { get ; set ; } = "Valid Wild Encounter at location (Pressure/Hustle/Vital Spirit)." ;
public static string LEncConditionWhite { get ; set ; } = "Valid Wild Encounter at location (White Flute)." ;
public static string LEncConditionWhiteLead { get ; set ; } = "Valid Wild Encounter at location (White Flute & Pressure/Hustle/Vital Spirit)." ;
public static string LEncGift { get ; set ; } = "Unable to match a gift Egg encounter from origin game." ;
public static string LEncGiftEggEvent { get ; set ; } = "Unable to match an event Egg encounter from origin game." ;
public static string LEncGiftIVMismatch { get ; set ; } = "IVs do not match Mystery Gift Data." ;
public static string LEncGiftNicknamed { get ; set ; } = "Event gift has been nicknamed." ;
public static string LEncGiftNotFound { get ; set ; } = "Unable to match to a Mystery Gift in the database." ;
public static string LEncGiftPIDMismatch { get ; set ; } = "Mystery Gift fixed PID mismatch." ;
public static string LEncGiftShinyMismatch { get ; set ; } = "Mystery Gift shiny mismatch." ;
public static string LEncGiftVersionNotDistributed { get ; set ; } = "Mystery Gift cannot be received by this version." ;
public static string LEncInvalid { get ; set ; } = "Unable to match an encounter from origin game." ;
public static string LEncMasteryInitial { get ; set ; } = "Initial move mastery flags do not match the encounter's expected state." ;
public static string LEncTradeChangedNickname { get ; set ; } = "In-game Trade Nickname has been altered." ;
public static string LEncTradeChangedOT { get ; set ; } = "In-game Trade OT has been altered." ;
public static string LEncTradeIndexBad { get ; set ; } = "In-game Trade invalid index?" ;
public static string LEncTradeMatch { get ; set ; } = "Valid In-game trade." ;
public static string LEncTradeUnchanged { get ; set ; } = "In-game Trade OT and Nickname have not been altered." ;
public static string LEncStaticMatch { get ; set ; } = "Valid gift/static encounter." ;
public static string LEncStaticPIDShiny { get ; set ; } = "Static Encounter shiny mismatch." ;
public static string LEncStaticRelearn { get ; set ; } = "Static encounter relearn move mismatch." ;
public static string LEncTypeMatch { get ; set ; } = "Encounter Type matches encounter." ;
public static string LEncTypeMismatch { get ; set ; } = "Encounter Type does not match encounter." ;
public static string LEncUnreleased { get ; set ; } = "Unreleased event." ;
public static string LEncUnreleasedEMewJP { get ; set ; } = "Non japanese Mew from Faraway Island. Unreleased event." ;
public static string LEncUnreleasedHoOArceus { get ; set ; } = "Arceus from Hall of Origin. Unreleased event." ;
public static string LEncUnreleasedPtDarkrai { get ; set ; } = "Non Platinum Darkrai from Newmoon Island. Unreleased event." ;
public static string LEncUnreleasedPtShaymin { get ; set ; } = "Non Platinum Shaymin from Flower Paradise. Unreleased event." ;
public static string LEReaderAmerica { get ; set ; } = "American E-Reader Berry in Japanese save file." ;
public static string LEReaderInvalid { get ; set ; } = "Invalid E-Reader Berry." ;
public static string LEReaderJapan { get ; set ; } = "Japanese E-Reader Berry in international save file." ;
public static string LEffort2Remaining { get ; set ; } = "2 EVs remaining." ;
public static string LEffortAbove252 { get ; set ; } = "EVs cannot go above 252." ;
public static string LEffortAbove510 { get ; set ; } = "EV total cannot be above 510." ;
public static string LEffortAllEqual { get ; set ; } = "EVs are all equal." ;
public static string LEffortCap100 { get ; set ; } = "Individual EV for a level 100 encounter in Generation 4 cannot be greater than 100." ;
public static string LEffortEgg { get ; set ; } = "Eggs cannot receive EVs." ;
public static string LEffortShouldBeZero { get ; set ; } = "Cannot receive EVs." ;
public static string LEffortEXPIncreased { get ; set ; } = "All EVs are zero, but leveled above Met Level." ;
public static string LEffortUntrainedCap { get ; set ; } = "Individual EV without changing EXP cannot be greater than {0}." ;
public static string LEvoInvalid { get ; set ; } = "Evolution not valid (or level/trade evolution unsatisfied)." ;
public static string LEvoTradeReq { get ; set ; } = "In-game trade {0} should have evolved into {1}." ;
public static string LEvoTradeReqOutsider { get ; set ; } = "Outsider {0} should have evolved into {1}." ;
public static string LEvoTradeRequired { get ; set ; } = "Version Specific evolution requires a trade to opposite version. A Handling Trainer is required." ;
public static string LFateful { get ; set ; } = "Special In-game Fateful Encounter." ;
public static string LFatefulGiftMissing { get ; set ; } = "Fateful Encounter with no matching Encounter. Has the Mystery Gift data been contributed?" ;
public static string LFatefulInvalid { get ; set ; } = "Fateful Encounter should not be checked." ;
public static string LFatefulMissing { get ; set ; } = "Special In-game Fateful Encounter flag missing." ;
public static string LFatefulMystery { get ; set ; } = "Mystery Gift Fateful Encounter." ;
public static string LFatefulMysteryMissing { get ; set ; } = "Mystery Gift Fateful Encounter flag missing." ;
public static string LFavoriteMarkingUnavailable { get ; set ; } = "Favorite Marking is not available." ;
public static string LFormArgumentHigh { get ; set ; } = "Form argument is too high for current form." ;
public static string LFormArgumentLow { get ; set ; } = "Form argument is too low for current form." ;
public static string LFormArgumentNotAllowed { get ; set ; } = "Form argument is not allowed for this encounter." ;
public static string LFormArgumentValid { get ; set ; } = "Form argument is valid." ;
public static string LFormArgumentInvalid { get ; set ; } = "Form argument is not valid." ;
public static string LFormBattle { get ; set ; } = "Form cannot exist outside of a battle." ;
public static string LFormEternal { get ; set ; } = "Valid Eternal Flower encounter." ;
public static string LFormEternalInvalid { get ; set ; } = "Invalid Eternal Flower encounter." ;
public static string LFormInvalidGame { get ; set ; } = "Form cannot be obtained in origin game." ;
public static string LFormInvalidNature { get ; set ; } = "Form cannot have this nature." ;
public static string LFormInvalidRange { get ; set ; } = "Form Count is out of range. Expected <= {0}, got {1}." ;
public static string LFormItem { get ; set ; } = "Held item matches Form." ;
public static string LFormItemInvalid { get ; set ; } = "Held item does not match Form." ;
public static string LFormParty { get ; set ; } = "Form cannot exist outside of Party." ;
public static string LFormPikachuCosplay { get ; set ; } = "Only Cosplay Pikachu can have this form." ;
public static string LFormPikachuCosplayInvalid { get ; set ; } = "Cosplay Pikachu cannot have the default form." ;
public static string LFormPikachuEventInvalid { get ; set ; } = "Event Pikachu cannot have the default form." ;
public static string LFormValid { get ; set ; } = "Form is Valid." ;
public static string LFormVivillon { get ; set ; } = "Valid Vivillon pattern." ;
public static string LFormVivillonEventPre { get ; set ; } = "Event Vivillon pattern on pre-evolution." ;
public static string LFormVivillonInvalid { get ; set ; } = "Invalid Vivillon pattern." ;
public static string LFormVivillonNonNative { get ; set ; } = "Non-native Vivillon pattern." ;
public static string LG1CatchRateChain { get ; set ; } = "Catch rate does not match any species from Pokémon evolution chain." ;
public static string LG1CatchRateEvo { get ; set ; } = "Catch rate match species without encounters. Expected a preevolution catch rate." ;
public static string LG1CatchRateItem { get ; set ; } = "Catch rate does not match a valid held item from Generation 2." ;
public static string LG1CatchRateMatchPrevious { get ; set ; } = "Catch Rate matches a species from Pokémon evolution chain." ;
public static string LG1CatchRateMatchTradeback { get ; set ; } = "Catch rate matches a valid held item from Generation 2." ;
public static string LG1CatchRateNone { get ; set ; } = "Catch rate does not match any species from Pokémon evolution chain or any Generation 2 held items." ;
public static string LG1CharNick { get ; set ; } = "Nickname from Generation 1/2 uses unavailable characters." ;
public static string LG1CharOT { get ; set ; } = "OT from Generation 1/2 uses unavailable characters." ;
public static string LG1GBEncounter { get ; set ; } = "Can't obtain Special encounter in Virtual Console games." ;
public static string LG1MoveExclusive { get ; set ; } = "Generation 1 exclusive move. Incompatible with Non-tradeback moves." ;
public static string LG1MoveLearnSameLevel { get ; set ; } = "Incompatible moves. Learned at the same level in Red/Blue and Yellow." ;
public static string LG1MoveTradeback { get ; set ; } = "Non-tradeback Egg move. Incompatible with Generation 1 exclusive moves." ;
public static string LG1OTEvent { get ; set ; } = "Incorrect RBY event OT Name." ;
public static string LG1OTGender { get ; set ; } = "Female OT from Generation 1/2 is invalid." ;
public static string LG1Stadium { get ; set ; } = "Incorrect Stadium OT." ;
public static string LG1StadiumInternational { get ; set ; } = "Valid International Stadium OT." ;
public static string LG1StadiumJapanese { get ; set ; } = "Valid Japanese Stadium OT." ;
public static string LG1TradebackPreEvoMove { get ; set ; } = "Non-tradeback pre evolution move. Incompatible with Generation 1 exclusive moves." ;
public static string LG1Type1Fail { get ; set ; } = "Invalid Type A, does not match species type." ;
public static string LG1Type2Fail { get ; set ; } = "Invalid Type B, does not match species type." ;
public static string LG1TypeMatch1 { get ; set ; } = "Valid Type A, matches species type." ;
public static string LG1TypeMatch2 { get ; set ; } = "Valid Type B, matches species type." ;
public static string LG1TypeMatchPorygon { get ; set ; } = "Porygon with valid Type A and B values." ;
public static string LG1TypePorygonFail { get ; set ; } = "Porygon with invalid Type A and B values. Does not a match a valid type combination." ;
public static string LG1TypePorygonFail1 { get ; set ; } = "Porygon with invalid Type A value." ;
public static string LG1TypePorygonFail2 { get ; set ; } = "Porygon with invalid Type B value." ;
public static string LG2InvalidTilePark { get ; set ; } = "National Park fishing encounter. Unreachable Water tiles." ;
public static string LG2InvalidTileR14 { get ; set ; } = "Kanto Route 14 fishing encounter. Unreachable Water tiles." ;
public static string LG2InvalidTileSafari { get ; set ; } = "Generation 2 Safari Zone fishing encounter. Unreachable zone." ;
public static string LG2InvalidTileTreeID { get ; set ; } = "Found an unreachable 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." ;
public static string LG4InvalidTileR45Surf { get ; set ; } = "Johto Route 45 surfing encounter. Unreachable Water tiles." ;
public static string LG5ID_N { get ; set ; } = "The Name/TID/SID of N is incorrect." ;
public static string LG5IVAll30 { get ; set ; } = "All IVs of N's Pokémon should be 30." ;
public static string LG5OTGenderN { get ; set ; } = "N's Pokémon must have a male OT gender." ;
public static string LG5PIDShinyGrotto { get ; set ; } = "Hidden Grotto captures cannot be shiny." ;
public static string LG5PIDShinyN { get ; set ; } = "N's Pokémon cannot be shiny." ;
public static string LG5SparkleInvalid { get ; set ; } = "Special In-game N's Sparkle flag should not be checked." ;
public static string LG5SparkleRequired { get ; set ; } = "Special In-game N's Sparkle flag missing." ;
public static string LGanbaruStatTooHigh { get ; set ; } = "One or more Ganbaru Value is above the natural limit of (10 - IV bonus)." ;
public static string LGenderInvalidNone { get ; set ; } = "Genderless Pokémon should not have a gender." ;
public static string LGeoBadOrder { get ; set ; } = "GeoLocation Memory: Gap/Blank present." ;
public static string LGeoHardwareInvalid { get ; set ; } = "Geolocation: Country is not in 3DS region." ;
public static string LGeoHardwareRange { get ; set ; } = "Invalid Console Region." ;
public static string LGeoHardwareValid { get ; set ; } = "Geolocation: Country is in 3DS region." ;
public static string LGeoMemoryMissing { get ; set ; } = "GeoLocation Memory: Memories should be present." ;
public static string LGeoNoCountryHT { get ; set ; } = "GeoLocation Memory: HT Name present but has no previous Country." ;
public static string LGeoNoRegion { get ; set ; } = "GeoLocation Memory: Region without Country." ;
public static string LHyperBelow100 { get ; set ; } = "Can't Hyper Train a Pokémon that isn't level 100." ;
public static string LHyperPerfectAll { get ; set ; } = "Can't Hyper Train a Pokémon with perfect IVs." ;
public static string LHyperPerfectOne { get ; set ; } = "Can't Hyper Train a perfect IV." ;
public static string LHyperPerfectUnavailable { get ; set ; } = "Can't Hyper Train any IV(s)." ;
public static string LItemEgg { get ; set ; } = "Eggs cannot hold items." ;
public static string LItemUnreleased { get ; set ; } = "Held item is unreleased." ;
public static string LIVAllEqual_0 { get ; set ; } = "All IVs are {0}." ;
public static string LIVNotCorrect { get ; set ; } = "IVs do not match encounter requirements." ;
public static string LIVF_COUNT0_31 { get ; set ; } = "Should have at least {0} IVs = 31." ;
public static string LLevelEXPThreshold { get ; set ; } = "Current experience matches level threshold." ;
public static string LLevelEXPTooHigh { get ; set ; } = "Current experience exceeds maximum amount for level 100." ;
public static string LLevelMetBelow { get ; set ; } = "Current level is below met level." ;
public static string LLevelMetGift { get ; set ; } = "Met Level does not match Mystery Gift level." ;
public static string LLevelMetGiftFail { get ; set ; } = "Current Level below Mystery Gift level." ;
public static string LLevelMetSane { get ; set ; } = "Current level is not below met level." ;
public static string LMarkValueOutOfRange_0 { get ; set ; } = "Individual marking at index {0} is not within the allowed value range." ;
public static string LMarkValueShouldBeZero { get ; set ; } = "Marking flags cannot be set." ;
public static string LMarkValueUnusedBitsPresent { get ; set ; } = "Marking flags uses bits beyond the accessible range." ;
public static string LMemoryArgBadCatch { get ; set ; } = "{0} Memory: {0} did not catch this." ;
public static string LMemoryArgBadHatch { get ; set ; } = "{0} Memory: {0} did not hatch this." ;
public static string LMemoryArgBadHT { get ; set ; } = "Memory: Can't have Handling Trainer Memory as Egg." ;
public static string LMemoryArgBadID { get ; set ; } = "{0} Memory: Can't obtain Memory on {0} Version." ;
public static string LMemoryArgBadItem { get ; set ; } = "{0} Memory: Species can't hold this item." ;
public static string LMemoryArgBadLocation { get ; set ; } = "{0} Memory: Can't obtain Location on {0} Version." ;
public static string LMemoryArgBadMove { get ; set ; } = "{0} Memory: Species can't learn this move." ;
public static string LMemoryArgBadOTEgg { get ; set ; } = "{0} Memory: Link Trade is not a valid first memory." ;
public static string LMemoryArgBadSpecies { get ; set ; } = "{0} Memory: Can't capture species in game." ;
public static string LMemoryArgSpecies { get ; set ; } = "{0} Memory: Species can be captured in game." ;
public static string LMemoryCleared { get ; set ; } = "Memory: Not cleared properly." ;
public static string LMemoryF_0_Valid { get ; set ; } = "{0} Memory is valid." ;
public static string LMemoryFeelInvalid { get ; set ; } = "{0} Memory: Invalid Feeling." ;
public static string LMemoryHTFlagInvalid { get ; set ; } = "Untraded: Current handler should not be the Handling Trainer." ;
public static string LMemoryHTGender { get ; set ; } = "HT Gender invalid: {0}" ;
public static string LMemoryHTLanguage { get ; set ; } = "HT Language is missing." ;
public static string LMemoryIndexArgHT { get ; set ; } = "Should have a HT Memory TextVar value (somewhere)." ;
public static string LMemoryIndexFeel { get ; set ; } = "{0} Memory: Feeling should be index {1}." ;
public static string LMemoryIndexFeelHT09 { get ; set ; } = "Should have a HT Memory Feeling value 0-9." ;
public static string LMemoryIndexID { get ; set ; } = "{0} Memory: Should be index {1}." ;
public static string LMemoryIndexIntensity { get ; set ; } = "{0} Memory: Intensity should be index {1}." ;
public static string LMemoryIndexIntensityHT1 { get ; set ; } = "Should have a HT Memory Intensity value (1st)." ;
public static string LMemoryIndexIntensityMin { get ; set ; } = "{0} Memory: Intensity should be at least {1}." ;
public static string LMemoryIndexLinkHT { get ; set ; } = "Should have a Link Trade HT Memory." ;
public static string LMemoryIndexVar { get ; set ; } = "{0} Memory: TextVar should be index {1}." ;
public static string LMemoryMissingHT { get ; set ; } = "Memory: Handling Trainer Memory missing." ;
public static string LMemoryMissingOT { get ; set ; } = "Memory: Original Trainer Memory missing." ;
public static string LMemorySocialZero { get ; set ; } = "Social Stat should be zero." ;
public static string LMemorySocialTooHigh_0 { get ; set ; } = "Social Stat should be <= {0}" ;
public static string LMemoryStatAffectionHT0 { get ; set ; } = "Untraded: Handling Trainer Affection should be 0." ;
public static string LMemoryStatAffectionOT0 { get ; set ; } = "OT Affection should be 0." ;
public static string LMemoryStatFriendshipHT0 { get ; set ; } = "Untraded: Handling Trainer Friendship should be 0." ;
public static string LMemoryStatFriendshipOTBaseEvent { get ; set ; } = "Event OT Friendship does not match base friendship." ;
public static string LMemoryStatFullness { get ; set ; } = "Fullness should be {0}." ;
public static string LMemoryStatEnjoyment { get ; set ; } = "Enjoyment should be {0}." ;
public static string LMoveEggFIncompatible0_1 { get ; set ; } = "{0} Inherited Move. Incompatible with {1} inherited moves." ;
public static string LMoveEggIncompatible { get ; set ; } = "Egg Move. Incompatible with event Egg moves." ;
public static string LMoveEggIncompatibleEvent { get ; set ; } = "Event Egg Move. Incompatible with normal Egg moves." ;
public static string LMoveEggInherited { get ; set ; } = "Inherited Egg move." ;
public static string LMoveEggInheritedTutor { get ; set ; } = "Inherited tutor move." ;
public static string LMoveEggInvalid { get ; set ; } = "Not an expected Egg move." ;
public static string LMoveEggInvalidEvent { get ; set ; } = "Egg Move. Not expected in an event Egg." ;
public static string LMoveEggInvalidEventLevelUp { get ; set ; } = "Inherited move learned by Level-up. Not expected in an event Egg." ;
public static string LMoveEggInvalidEventLevelUpGift { get ; set ; } = "Inherited move learned by Level-up. Not expected in a gift Egg." ;
public static string LMoveEggInvalidEventTMHM { get ; set ; } = "Inherited TM/HM move. Not expected in an event Egg." ;
public static string LMoveEggInvalidEventTutor { get ; set ; } = "Inherited tutor move. Not expected in an event Egg." ;
public static string LMoveEggLevelUp { get ; set ; } = "Inherited move learned by Level-up." ;
public static string LMoveEggMissing { get ; set ; } = "Event Egg move missing." ;
public static string LMoveEggMoveGift { get ; set ; } = "Egg Move. Not expected in a gift Egg." ;
public static string LMoveEggTMHM { get ; set ; } = "Inherited TM/HM move." ;
public static string LMoveEventEggLevelUp { get ; set ; } = "Inherited move learned by Level-up. Incompatible with event Egg moves." ;
public static string LMoveEvoFCombination_0 { get ; set ; } = "Moves combinations is not compatible with {0} evolution." ;
public static string LMoveEvoFHigher { get ; set ; } = "Incompatible evolution moves. {1} Move learned at a higher level than other {0} moves." ;
public static string LMoveEvoFLower { get ; set ; } = "Incompatible evolution moves. {0} Move learned at a lower level than other {1} moves." ;
public static string LMoveFDefault_0 { get ; set ; } = "Default move in Generation {0}." ;
public static string LMoveFExpect_0 { get ; set ; } = "Expected the following Moves: {0}" ;
Refactoring: Move Source (Legality) (#3560)
Rewrites a good amount of legality APIs pertaining to:
* Legal moves that can be learned
* Evolution chains & cross-generation paths
* Memory validation with forgotten moves
In generation 8, there are 3 separate contexts an entity can exist in: SW/SH, BD/SP, and LA. Not every entity can cross between them, and not every entity from generation 7 can exist in generation 8 (Gogoat, etc). By creating class models representing the restrictions to cross each boundary, we are able to better track and validate data.
The old implementation of validating moves was greedy: it would iterate for all generations and evolutions, and build a full list of every move that can be learned, storing it on the heap. Now, we check one game group at a time to see if the entity can learn a move that hasn't yet been validated. End result is an algorithm that requires 0 allocation, and a smaller/quicker search space.
The old implementation of storing move parses was inefficient; for each move that was parsed, a new object is created and adjusted depending on the parse. Now, move parse results are `struct` and store the move parse contiguously in memory. End result is faster parsing and 0 memory allocation.
* `PersonalTable` objects have been improved with new API methods to check if a species+form can exist in the game.
* `IEncounterTemplate` objects have been improved to indicate the `EntityContext` they originate in (similar to `Generation`).
* Some APIs have been extended to accept `Span<T>` instead of Array/IEnumerable
2022-08-03 23:15:27 +00:00
public static string LMoveFExpectSingle_0 { get ; set ; } = "Expected: {0}" ;
2022-06-18 18:04:24 +00:00
public static string LMoveFLevelUp_0 { get ; set ; } = "Learned by Level-up in Generation {0}." ;
public static string LMoveFTMHM_0 { get ; set ; } = "Learned by TM/HM in Generation {0}." ;
public static string LMoveFTutor_0 { get ; set ; } = "Learned by Move Tutor in Generation {0}." ;
public static string LMoveKeldeoMismatch { get ; set ; } = "Keldeo Move/Form mismatch." ;
public static string LMoveNincada { get ; set ; } = "Only one Ninjask move allowed." ;
public static string LMoveNincadaEvo { get ; set ; } = "Learned by evolving Nincada into Ninjask." ;
public static string LMoveNincadaEvoF_0 { get ; set ; } = "Learned by evolving Nincada into Ninjask in Generation {0}." ;
public static string LMovePPTooHigh_0 { get ; set ; } = "Move {0} PP is above the amount allowed." ;
public static string LMovePPUpsTooHigh_0 { get ; set ; } = "Move {0} PP Ups is above the amount allowed." ;
public static string LMoveSourceShared { get ; set ; } = "Shared Non-Relearn Move." ;
public static string LMoveSourceSharedF { get ; set ; } = "Shared Non-Relearn Move in Generation {0}." ;
public static string LMoveRelearnDexNav { get ; set ; } = "Not an expected DexNav move." ;
public static string LMoveRelearnUnderground { get ; set ; } = "Not an expected Underground egg move." ;
public static string LMoveRelearnEgg { get ; set ; } = "Base Egg move." ;
public static string LMoveRelearnEggMissing { get ; set ; } = "Base Egg move missing." ;
public static string LMoveRelearnFExpect_0 { get ; set ; } = "Expected the following Relearn Moves: {0} ({1})" ;
public static string LMoveRelearnFMiss_0 { get ; set ; } = "Relearn Moves missing: {0}" ;
public static string LMoveRelearnInvalid { get ; set ; } = "Not an expected Relearnable move." ;
public static string LMoveRelearnNone { get ; set ; } = "Expected no Relearn Move in slot." ;
public static string LMoveShopAlphaMoveShouldBeMastered { get ; set ; } = "Alpha Move should be marked as mastered." ;
public static string LMoveShopAlphaMoveShouldBeOther { get ; set ; } = "Alpha encounter cannot be found with this Alpha Move." ;
public static string LMoveShopAlphaMoveShouldBeZero { get ; set ; } = "Only Alphas may have an Alpha Move set." ;
public static string LMoveShopMasterInvalid_0 { get ; set ; } = "Cannot manually master {0}: not permitted to master." ;
public static string LMoveShopMasterNotLearned_0 { get ; set ; } = "Cannot manually master {0}: not in possible learned level up moves." ;
public static string LMoveShopPurchaseInvalid_0 { get ; set ; } = "Cannot purchase {0} from the move shop." ;
public static string LMoveSourceDefault { get ; set ; } = "Default move." ;
public static string LMoveSourceDuplicate { get ; set ; } = "Duplicate Move." ;
public static string LMoveSourceEgg { get ; set ; } = "Egg Move." ;
public static string LMoveSourceEggEvent { get ; set ; } = "Event Egg Move." ;
public static string LMoveSourceEmpty { get ; set ; } = "Empty Move." ;
public static string LMoveSourceInvalid { get ; set ; } = "Invalid Move." ;
public static string LMoveSourceInvalidSketch { get ; set ; } = "Invalid Move (Sketch)." ;
public static string LMoveSourceLevelUp { get ; set ; } = "Learned by Level-up." ;
public static string LMoveSourceRelearn { get ; set ; } = "Relearnable Move." ;
public static string LMoveSourceSpecial { get ; set ; } = "Special Non-Relearn Move." ;
public static string LMoveSourceTMHM { get ; set ; } = "Learned by TM/HM." ;
public static string LMoveSourceTutor { get ; set ; } = "Learned by Move Tutor." ;
public static string LMoveSourceTR { get ; set ; } = "Unexpected Technical Record Learned flag: {0}" ;
public static string LNickFlagEggNo { get ; set ; } = "Egg must be not nicknamed." ;
public static string LNickFlagEggYes { get ; set ; } = "Egg must be nicknamed." ;
public static string LNickInvalidChar { get ; set ; } = "Cannot be given this Nickname." ;
public static string LNickLengthLong { get ; set ; } = "Nickname too long." ;
public static string LNickLengthShort { get ; set ; } = "Nickname is empty." ;
public static string LNickMatchLanguage { get ; set ; } = "Nickname matches species name." ;
public static string LNickMatchLanguageEgg { get ; set ; } = "Egg matches language Egg name." ;
public static string LNickMatchLanguageEggFail { get ; set ; } = "Egg name does not match language Egg name." ;
public static string LNickMatchLanguageFail { get ; set ; } = "Nickname does not match species name." ;
public static string LNickMatchLanguageFlag { get ; set ; } = "Nickname flagged, matches species name." ;
public static string LNickMatchNoOthers { get ; set ; } = "Nickname does not match another species name." ;
public static string LNickMatchNoOthersFail { get ; set ; } = "Nickname matches another species name (+language)." ;
public static string LOTLanguage { get ; set ; } = "Language ID should be {0}, not {1}." ;
public static string LOTLong { get ; set ; } = "OT Name too long." ;
public static string LOTShort { get ; set ; } = "OT Name too short." ;
public static string LOTSuspicious { get ; set ; } = "Suspicious Original Trainer details." ;
public static string LOT_IDEqual { get ; set ; } = "TID and SID are equal." ;
public static string LOT_IDs0 { get ; set ; } = "TID and SID are 0." ;
public static string LOT_SID0 { get ; set ; } = "SID is zero." ;
public static string LOT_SID0Invalid { get ; set ; } = "SID should be 0." ;
public static string LOT_TID0 { get ; set ; } = "TID is zero." ;
public static string LOT_IDInvalid { get ; set ; } = "TID and SID combination is not possible." ;
public static string LPIDEncryptWurmple { get ; set ; } = "Wurmple evolution Encryption Constant mismatch." ;
public static string LPIDEncryptZero { get ; set ; } = "Encryption Constant is not set." ;
public static string LPIDEqualsEC { get ; set ; } = "Encryption Constant matches PID." ;
public static string LPIDGenderMatch { get ; set ; } = "Gender matches PID." ;
public static string LPIDGenderMismatch { get ; set ; } = "PID-Gender mismatch." ;
public static string LPIDNatureMatch { get ; set ; } = "Nature matches PID." ;
public static string LPIDNatureMismatch { get ; set ; } = "PID-Nature mismatch." ;
public static string LPIDTypeMismatch { get ; set ; } = "Encounter Type PID mismatch." ;
public static string LPIDZero { get ; set ; } = "PID is not set." ;
public static string LPokerusDaysTooHigh_0 { get ; set ; } = "Pokérus Days Remaining value is too high; expected <= {0}." ;
public static string LPokerusStrainUnobtainable_0 { get ; set ; } = "Pokérus Strain {0} cannot be obtained." ;
public static string LRibbonAllValid { get ; set ; } = "All ribbons accounted for." ;
public static string LRibbonEgg { get ; set ; } = "Can't receive Ribbon(s) as an Egg." ;
public static string LRibbonFInvalid_0 { get ; set ; } = "Invalid Ribbons: {0}" ;
public static string LRibbonFMissing_0 { get ; set ; } = "Missing Ribbons: {0}" ;
public static string LRibbonMarkingFInvalid_0 { get ; set ; } = "Invalid Marking: {0}" ;
public static string LRibbonMarkingAffixedF_0 { get ; set ; } = "Invalid Affixed Ribbon/Marking: {0}" ;
public static string LStatDynamaxInvalid { get ; set ; } = "Dynamax Level is not within the expected range." ;
public static string LStatIncorrectHeight { get ; set ; } = "Calculated Height does not match stored value." ;
public static string LStatIncorrectHeightCopy { get ; set ; } = "Copy Height does not match the original value." ;
public static string LStatIncorrectHeightValue { get ; set ; } = "Height does not match the expected value." ;
public static string LStatIncorrectWeight { get ; set ; } = "Calculated Weight does not match stored value." ;
public static string LStatIncorrectWeightValue { get ; set ; } = "Weight does not match the expected value." ;
public static string LStatInvalidHeightWeight { get ; set ; } = "Height / Weight values are statistically improbable." ;
public static string LStatIncorrectCP { get ; set ; } = "Calculated CP does not match stored value." ;
public static string LStatGigantamaxInvalid { get ; set ; } = "Gigantamax Flag mismatch." ;
public static string LStatGigantamaxValid { get ; set ; } = "Gigantamax Flag was changed via Max Soup." ;
public static string LStatNatureInvalid { get ; set ; } = "Stat Nature is not within the expected range." ;
public static string LStatBattleVersionInvalid { get ; set ; } = "Battle Version is not within the expected range." ;
public static string LStatNobleInvalid { get ; set ; } = "Noble Flag mismatch." ;
public static string LStatAlphaInvalid { get ; set ; } = "Alpha Flag mismatch." ;
public static string LSuperComplete { get ; set ; } = "Super Training complete flag mismatch." ;
public static string LSuperDistro { get ; set ; } = "Distribution Super Training missions are not released." ;
public static string LSuperEgg { get ; set ; } = "Can't Super Train an Egg." ;
public static string LSuperNoComplete { get ; set ; } = "Can't have active Super Training complete flag for origins." ;
public static string LSuperNoUnlocked { get ; set ; } = "Can't have active Super Training unlocked flag for origins." ;
public static string LSuperUnavailable { get ; set ; } = "Super Training missions are not available in games visited." ;
public static string LSuperUnused { get ; set ; } = "Unused Super Training Flag is flagged." ;
public static string LTransferBad { get ; set ; } = "Incorrectly transferred from previous generation." ;
public static string LTransferCurrentHandlerInvalid { get ; set ; } = "Invalid Current handler value, trainer details for save file expected another value." ;
public static string LTransferEgg { get ; set ; } = "Can't transfer Eggs between Generations." ;
public static string LTransferEggLocationTransporter { get ; set ; } = "Invalid Met Location, expected Poké Transfer." ;
public static string LTransferEggMetLevel { get ; set ; } = "Invalid Met Level for transfer." ;
public static string LTransferFlagIllegal { get ; set ; } = "Flagged as illegal by the game (glitch abuse)." ;
public static string LTransferHTFlagRequired { get ; set ; } = "Current handler cannot be past gen OT for transferred specimen." ;
public static string LTransferHTMismatchName { get ; set ; } = "Handling trainer does not match the expected trainer name." ;
public static string LTransferHTMismatchLanguage { get ; set ; } = "Handling trainer does not match the expected trainer language." ;
public static string LTransferMet { get ; set ; } = "Invalid Met Location, expected Poké Transfer or Crown." ;
public static string LTransferNotPossible { get ; set ; } = "Unable to transfer into current format from origin format." ;
public static string LTransferMetLocation { get ; set ; } = "Invalid Transfer Met Location." ;
public static string LTransferMove { get ; set ; } = "Incompatible transfer move." ;
public static string LTransferMoveG4HM { get ; set ; } = "Defog and Whirlpool. One of the two moves should have been removed before transferred to Generation 5." ;
public static string LTransferMoveHM { get ; set ; } = "Generation {0} HM. Should have been removed before transferred to Generation {1}." ;
public static string LTransferNature { get ; set ; } = "Invalid Nature for transfer Experience." ;
public static string LTransferOriginFInvalid0_1 { get ; set ; } = "{0} origin cannot exist in the currently loaded ({1}) save file." ;
public static string LTransferPIDECBitFlip { get ; set ; } = "PID should be equal to EC [with top bit flipped]!" ;
public static string LTransferPIDECEquals { get ; set ; } = "PID should be equal to EC!" ;
public static string LTransferPIDECXor { get ; set ; } = "Encryption Constant matches shinyxored PID." ;
public static string LTransferTrackerMissing { get ; set ; } = "Pokémon HOME Transfer Tracker is missing." ;
public static string LTransferTrackerShouldBeZero { get ; set ; } = "Pokémon HOME Transfer Tracker should be 0." ;
#endregion
2017-03-21 07:18:38 +00:00
}