From 0d4c72478381aadfa98386a39fefeeb21ec992ef Mon Sep 17 00:00:00 2001 From: javierhimura Date: Thu, 23 Mar 2017 22:50:01 +0100 Subject: [PATCH] Fix addExtraTableSlots for areas only in extra table (#977) * Add shellos and gastrodom alt form in east sea locations * Improved MarkG4AltFormSlots * Remove inside of truck * Move code for group by Areas to a propert function, to avoid duplicate code, also group by Areas in gen 2, 6 and 7. Is not needed in gen 1 * Reduce all gen7 areas * legality_en.txt file format fix * addExtraTableSlots: Include locations from the SpecialSlots array that does not exits in game GameSlots array changed the types to IEnumerable to avoid using multiple ToArray when the function is used more that one time for the same game * Fix Shellos AltForm location --- PKHeX/Legality/Core.cs | 50 +-- PKHeX/Legality/Tables4.cs | 2 +- PKHeX/Resources/text/en/legality_en.txt | 494 ++++++++++++------------ 3 files changed, 273 insertions(+), 273 deletions(-) diff --git a/PKHeX/Legality/Core.cs b/PKHeX/Legality/Core.cs index 1a58199f9..0f4809a4a 100644 --- a/PKHeX/Legality/Core.cs +++ b/PKHeX/Legality/Core.cs @@ -159,14 +159,14 @@ private static EncounterArea[] getEncounterTables(byte[] mini, string ident) { return EncounterArea.getArray(Data.unpackMini(mini, ident)); } - private static EncounterArea[] addExtraTableSlots(EncounterArea[] GameSlots, EncounterArea[] SpecialSlots) + private static IEnumerable addExtraTableSlots(IEnumerable GameSlots, IEnumerable SpecialSlots) { foreach (EncounterArea g in GameSlots) { foreach (var slots in SpecialSlots.Where(l => l.Location == g.Location)) g.Slots = g.Slots.Concat(slots.Slots).ToArray(); } - return GameSlots; + return GameSlots.Concat(SpecialSlots.Where(s => !GameSlots.Any(g => g.Location == s.Location))).ToArray(); } private static void ReduceAreasSize(ref EncounterArea[] Areas) { @@ -318,17 +318,17 @@ private static void MarkG7SMSlots(ref EncounterArea[] Areas) } private static EncounterArea[] getTables1() { - var red = EncounterArea.getArray1_GW(Resources.encounter_red); - var blu = EncounterArea.getArray1_GW(Resources.encounter_blue); - var ylw = EncounterArea.getArray1_GW(Resources.encounter_yellow); + var red_gw = EncounterArea.getArray1_GW(Resources.encounter_red); + var blu_gw = EncounterArea.getArray1_GW(Resources.encounter_blue); + var ylw_gw = EncounterArea.getArray1_GW(Resources.encounter_yellow); var rb_fish = EncounterArea.getArray1_F(Resources.encounter_rb_f); var ylw_fish = EncounterArea.getArray1_FY(Resources.encounter_yellow_f); - red = addExtraTableSlots(red, rb_fish); - blu = addExtraTableSlots(blu, rb_fish); - ylw = addExtraTableSlots(ylw, ylw_fish); + var red = addExtraTableSlots(red_gw, rb_fish); + var blu = addExtraTableSlots(blu_gw, rb_fish); + var ylw = addExtraTableSlots(ylw_gw, ylw_fish); - var table = addExtraTableSlots(addExtraTableSlots(red, blu), ylw); + var table = addExtraTableSlots(addExtraTableSlots(red, blu), ylw).ToArray(); Array.Resize(ref table, table.Length + 1); table[table.Length - 1] = FishOldGood_RBY; @@ -348,7 +348,7 @@ private static EncounterArea[] getTables2(GameVersion Version) var h_g = EncounterArea.getArray2_H(Resources.encounter_gold_h); var h_s = EncounterArea.getArray2_H(Resources.encounter_silver_h); - Slots = addExtraTableSlots(addExtraTableSlots(addExtraTableSlots(addExtraTableSlots(g, s), h_g), h_s),f); + Slots = addExtraTableSlots(addExtraTableSlots(addExtraTableSlots(addExtraTableSlots(g, s), h_g), h_s),f).ToArray(); } if (Version == GameVersion.C || Version == GameVersion.GSC) { @@ -358,7 +358,7 @@ private static EncounterArea[] getTables2(GameVersion Version) var h_c = EncounterArea.getArray2_H(Resources.encounter_crystal_h); var extra = addExtraTableSlots(addExtraTableSlots(c, h_c),f); - return Version == GameVersion.C ? extra : addExtraTableSlots(Slots, extra); + return Version == GameVersion.C ? extra.ToArray() : addExtraTableSlots(Slots, extra).ToArray(); } return Slots; @@ -406,11 +406,11 @@ private static EncounterArea[] getTables2(GameVersion Version) MarkG3Slots_FRLG(ref FR_Slots); MarkG3Slots_FRLG(ref LG_Slots); - SlotsR = addExtraTableSlots(R_Slots, SlotsRSEAlt); - SlotsS = addExtraTableSlots(S_Slots, SlotsRSEAlt); - SlotsE = addExtraTableSlots(E_Slots, SlotsRSEAlt); - SlotsFR = addExtraTableSlots(FR_Slots, SlotsFRLGAlt); - SlotsLG = addExtraTableSlots(LG_Slots, SlotsFRLGAlt); + SlotsR = addExtraTableSlots(R_Slots, SlotsRSEAlt).ToArray(); + SlotsS = addExtraTableSlots(S_Slots, SlotsRSEAlt).ToArray(); + SlotsE = addExtraTableSlots(E_Slots, SlotsRSEAlt).ToArray(); + SlotsFR = addExtraTableSlots(FR_Slots, SlotsFRLGAlt).ToArray(); + SlotsLG = addExtraTableSlots(LG_Slots, SlotsFRLGAlt).ToArray(); Evolves3 = new EvolutionTree(new[] { Resources.evos_g3 }, GameVersion.RS, PersonalTable.RS, MaxSpeciesID_3); @@ -465,11 +465,11 @@ private static EncounterArea[] getTables2(GameVersion Version) MarkG4Slots(ref HG_Headbutt_Slots); MarkG4Slots(ref SS_Headbutt_Slots); - SlotsD = addExtraTableSlots(addExtraTableSlots(D_Slots, D_HoneyTrees_Slots), SlotsDPPPtAlt); - SlotsP = addExtraTableSlots(addExtraTableSlots(P_Slots, P_HoneyTrees_Slots), SlotsDPPPtAlt); - SlotsPt = addExtraTableSlots(addExtraTableSlots(Pt_Slots, Pt_HoneyTrees_Slots), SlotsDPPPtAlt); - SlotsHG = addExtraTableSlots(addExtraTableSlots(HG_Slots, HG_Headbutt_Slots), SlotsHGSSAlt); - SlotsSS = addExtraTableSlots(addExtraTableSlots(SS_Slots, SS_Headbutt_Slots), SlotsHGSSAlt); + SlotsD = addExtraTableSlots(addExtraTableSlots(D_Slots, D_HoneyTrees_Slots), SlotsDPPPtAlt).ToArray(); + SlotsP = addExtraTableSlots(addExtraTableSlots(P_Slots, P_HoneyTrees_Slots), SlotsDPPPtAlt).ToArray(); + SlotsPt = addExtraTableSlots(addExtraTableSlots(Pt_Slots, Pt_HoneyTrees_Slots), SlotsDPPPtAlt).ToArray(); + SlotsHG = addExtraTableSlots(addExtraTableSlots(HG_Slots, HG_Headbutt_Slots), SlotsHGSSAlt).ToArray(); + SlotsSS = addExtraTableSlots(addExtraTableSlots(SS_Slots, SS_Headbutt_Slots), SlotsHGSSAlt).ToArray(); Evolves4 = new EvolutionTree(new[] { Resources.evos_g4 }, GameVersion.DP, PersonalTable.DP, MaxSpeciesID_4); @@ -491,8 +491,8 @@ private static EncounterArea[] getTables2(GameVersion Version) MarkG5Slots(ref WSlots); MarkBWSwarmSlots(ref SlotsB_Swarm); MarkBWSwarmSlots(ref SlotsW_Swarm); - SlotsB = addExtraTableSlots(BSlots, SlotsB_Swarm); - SlotsW = addExtraTableSlots(WSlots, SlotsW_Swarm); + SlotsB = addExtraTableSlots(BSlots, SlotsB_Swarm).ToArray(); + SlotsW = addExtraTableSlots(WSlots, SlotsW_Swarm).ToArray(); var B2Slots = getEncounterTables(GameVersion.B2); var W2Slots = getEncounterTables(GameVersion.W2); @@ -518,8 +518,8 @@ private static EncounterArea[] getTables2(GameVersion Version) var YSlots = getEncounterTables(GameVersion.Y); MarkG6XYSlots(ref XSlots); MarkG6XYSlots(ref YSlots); - SlotsX = addExtraTableSlots(XSlots, SlotsXYAlt); - SlotsY = addExtraTableSlots(YSlots, SlotsXYAlt); + SlotsX = addExtraTableSlots(XSlots, SlotsXYAlt).ToArray(); + SlotsY = addExtraTableSlots(YSlots, SlotsXYAlt).ToArray(); SlotsA = getEncounterTables(GameVersion.AS); SlotsO = getEncounterTables(GameVersion.OR); diff --git a/PKHeX/Legality/Tables4.cs b/PKHeX/Legality/Tables4.cs index b5525857b..0474a7890 100644 --- a/PKHeX/Legality/Tables4.cs +++ b/PKHeX/Legality/Tables4.cs @@ -450,7 +450,7 @@ public static partial class Legal private static readonly int[] Shellos_EastSeaLocation_DP = { 28, // Route 213 - 34, // Route 224 + 39, // Route 224 }; private static readonly int[] Shellos_EastSeaLocation_Pt = diff --git a/PKHeX/Resources/text/en/legality_en.txt b/PKHeX/Resources/text/en/legality_en.txt index 64c45d171..74ac36425 100644 --- a/PKHeX/Resources/text/en/legality_en.txt +++ b/PKHeX/Resources/text/en/legality_en.txt @@ -1,248 +1,248 @@ -V = Valid. -V193 = Legal! -V190 = Internal error. -V189 = Analysis not available for this Pokémon. -V196 = {0}: {1} -V191 = {0} Move {1}: {2} -V192 = {0} Relearn Move {1}: {2} -V195 = Encounter Type: {0} -V205 = OT -V206 = HT -V167 = Empty Move. -V171 = Egg Move. -V172 = Relearnable Move. -V173 = Learned by TM/HM. -V174 = Learned by Move Tutor. -V175 = Special Non-Relearn Move. -V177 = Learned by Level-up. -V203 = Genderless Pokémon should not have a gender. -V201 = Encryption Constant is not set. -V204 = Held item is unreleased. -V187 = Species does not exist in origin game. -V188 = Fateful Encounter with no matching Encounter. Has the Mystery Gift data been contributed? -V194 = Ingame Trade for Sun/Moon not implemented. -V207 = PID is not set. -V208 = Encryption Constant matches PID. -V209 = Static Encounter shiny mismatch. -V210 = Wurmple evolution Encryption Constant mismatch. -V211 = Encryption Constant matches shinyxored PID. -V212 = Wurmple Evolution: {0} -V213 = Silcoon -V214 = Cascoon -V215 = PID should be equal to EC [with top bit flipped]! -V216 = PID should be equal to EC! -V14 = Egg matches language Egg name. -V17 = Nickname does not match another species name. -V18 = Nickname matches species name. -V19 = Nickname matches demo language name. -V11 = Ingame Trade OT and Nickname have not been altered. -V1 = Nickname too long. -V2 = Nickname is empty. -V4 = Language ID > 8. -V5 = Language ID > 10. -V3 = Species index invalid for Nickname comparison. -V20 = Nickname does not match species name. -V13 = Egg name does not match language Egg name. -V12 = Eggs must be nicknamed. -V7 = Ingame Trade invalid version? -V8 = Ingame Trade invalid index? -V10 = Ingame Trade OT has been altered. -V9 = Ingame Trade Nickname has been altered. -V15 = Nickname matches another species name (+language). -V16 = Nickname flagged, matches species name. -V21 = Matches: {0} {1} -V25 = EV total cannot be above 510. -V22 = Eggs cannot receive EVs. -V23 = All EVs are zero, but leveled above Met Level. -V24 = 2 EVs remaining. -V26 = EVs cannot go above 252. -V27 = EVs are all equal. -V31 = All IVs are 0. -V32 = All IVs are equal. -V28 = Should have at least {0} IVs {get; set;} = 31. -V29 = Friend Safari captures should have at least 2 IVs = 31. -V30 = IVs do not match Mystery Gift Data. -V38 = OT Name too long. -V39 = Incorrect RBY event OT Name. -V34 = SID should be 0. -V33 = TID and SID are 0. -V35 = TID and SID are equal. -V36 = TID is zero. -V37 = SID is zero. -V40 = Can't Hyper Train a pokemon that isn't level 100. -V41 = Can't Hyper Train a pokemon with perfect IVs. -V42 = Can't Hyper Train a perfect IV. -V49 = Valid Pokémon Link gift. -V47 = Pokémon Link gift Shiny mismatch. -V48 = Pokémon Link gift should not be Fateful Encounter. -V43 = Can't find matching Pokémon Link gift. -V44 = Can't obtain this Pokémon Link gift in XY. -V45 = Can't obtain this Pokémon Link gift in ORAS. -V46 = Can't obtain this Pokémon Link gift in SM. -V63 = Valid un-hatched egg. -V53 = Able to hatch an egg at Met Location. -V56 = Able to hatch a traded egg at Met Location. -V54 = Can't hatch an egg at Met Location. -V55 = Can't obtain egg from Egg Location. -V57 = Can't transfer eggs between generations. -V50 = Can't obtain egg for this species. -V51 = Invalid Met Location for hatched egg. -V52 = Invalid Met Level, expected {0}. -V58 = Invalid Met Level for transfer. -V59 = Invalid Egg Location, expected none. -V60 = Invalid Met Location, expected Pal Park. -V61 = Invalid Met Location, expected Transporter. -V62 = Invalid Egg Location, shouldn't be 'traded' while an egg. -V66 = Valid Friend Safari encounter. -V64 = Friend Safari: Not valid color. -V6 = Friend Safari: Not average sized. -V65 = Friend Safari: Not Spring form. -V67 = Valid Wild Encounter at location (Pressure/Hustle/Vital Spirit). -V68 = Valid Wild Encounter at location. -V69 = Valid Wild Encounter at location (White Flute & Pressure/Hustle/Vital Spirit). -V70 = Valid Wild Encounter at location (White Flute). -V71 = Valid Wild Encounter at location (Black Flute & Pressure/Hustle/Vital Spirit). -V72 = Valid Wild Encounter at location (Black Flute). -V73 = Valid Wild Encounter at location (DexNav). -V76 = Valid ingame trade. -V75 = Valid gift/static encounter. -V74 = Static encounter relearn move mismatch. -V77 = Can't obtain Species from Virtual Console games. -V79 = Can't obtain Special encounter in Virtual Console games. -V78 = Unable to match to a Mystery Gift in the database. -V80 = Unable to match an encounter from origin game. -V81 = Invalid Transfer Met Location. -V82 = Mewtwo cannot be transferred while knowing Pay Day. -V88 = Current level is not below met level. -V83 = Met Level does not match Mystery Gift level. -V84 = Current Level below Mystery Gift level. -V85 = Current level is below met level. -V86 = Evolution not valid (or level/trade evolution unsatisfied). -V87 = Current experience matches level threshold. -V89 = Can't Super Train an egg. -V90 = Super Training missions are not available in games visited. -V91 = Can't have active Super Training unlocked flag for origins. -V92 = Can't have active Super Training complete flag for origins. -V93 = Super Training complete flag mismatch. -V94 = Distribution Super Training missions are not released. -V95 = Can't receive Ribbon(s) as an egg. -V96 = GBA Champion Ribbon -V97 = Artist Ribbon -V98 = National Ribbon (Purified) -V99 = Sinnoh Champion Ribbon -V100 = Legend Ribbon -V104 = Record Ribbon -V101 = Missing Ribbons: {0} -V102 = Invalid Ribbons: {0} -V103 = All ribbons accounted for. -V105 = Battle Memory Ribbon -V106 = Contest Memory Ribbon -V107 = Ability is not valid for species/form. -V108 = Hidden Ability mismatch for encounter type. -V109 = Ability modified with Ability Capsule. -V110 = Ability does not match Mystery Gift. -V111 = Hidden Ability on non-SOS wild encounter. -V300 = Hidden Ability on non-horde/friend safari wild encounter. -V112 = Hidden Ability not available. -V217 = Hidden Grotto captures should have Hidden Ability. -V115 = Ability matches ability number. -V113 = Ability does not match PID. -V114 = Ability does not match ability number. -V119 = Correct ball for encounter type. -V118 = Can't have ball for encounter type. -V116 = Can't have Heavy Ball for light, low-catch rate species (Gen VII). -V117 = Can't have Master Ball for regular egg. -V120 = Can't have Cherish Ball for regular egg. -V121 = Can't obtain species in Ball. -V122 = Can't obtain Hidden Ability with Ball. -V123 = Ball possible for species. -V125 = No check satisfied, assuming illegal. -V126 = Ball unobtainable in origin generation. -V145 = History block is valid. -V155 = {0} Memory is valid. -V127 = Skipped History check due to other check being invalid. -V128 = No History Block to check. -V129 = OT Affection should be 0. -V130 = Can't have any OT Memory. -V124 = Current handler cannot be past gen OT for transferred specimen. -V131 = HT Gender invalid: {0} -V132 = Event OT Friendship does not match base friendship. -V133 = Event OT Affection should be zero. -V134 = Current handler should not be Event OT. -V138 = Contest Stats should be 0. -V301 = Invalid Console Region. -V302 = Geolocation: Country is not in 3DS region. -V303 = Geolocation: Country is in 3DS region. -V137 = GeoLocation Memory: Memories should be present. -V135 = GeoLocation Memory: Gap/Blank present. -V136 = GeoLocation Memory: Region without Country. -V146 = GeoLocation Memory: HT Name present but has no previous Country. -V147 = GeoLocation Memory: Previous country of residence present with no Handling Trainer. -V139 = Untraded: Current handler should not be the Handling Trainer. -V140 = Untraded: Handling Trainer Friendship should be 0. -V141 = Untraded: Handling Trainer Affection should be 0. -V142 = Untraded: Requires a trade evolution. -V143 = Untraded: Beauty is not high enough for Level-up Evolution. -V144 = Untraded: Beauty is high enough but still Level 1. -V148 = Memory: Handling Trainer Memory present with no Handling Trainer name. -V150 = Memory: Handling Trainer Memory missing. -V152 = Memory: Original Trainer Memory missing. -V329 = Memory: Not cleared properly. -V149 = Memory: Can't have Handling Trainer Memory as egg. -V151 = Memory: Can't have Original Trainer Memory as egg. -V164 = {0} Memory: Species can be captured in game. -V153 = {0} Memory: Species can't learn this move. -V154 = {0} Memory: Location doesn't have a Pokemon Center. -V160 = {0} Memory: {0} did not hatch this. -V202 = {0} Memory: {0} did not catch this. -V161 = {0} Memory: Link Trade is not a valid first memory. -V162 = {0} Memory: Can't obtain Location on {0} Version. -V163 = {0} Memory: Can't obtain Memory on {0} Version. -V165 = {0} Memory: Can't capture species in game. -V197 = {0} Memory: Should be index {1}. -V198 = {0} Memory: Intensity should be index {1}. -V199 = {0} Memory: TextVar should be index {1}. -V200 = {0} Memory: Feeling should be index {1}. -V168 = Duplicate Move. -V176 = Invalid Move. -V166 = Invalid Move (Sketch). -V169 = Keldeo Move/Form mismatch. -V181 = Expected the following Relearn Moves: {0} -V170 = Relearn Moves missing: {0} -V178 = Expected: {0}. -V179 = Base egg move. -V180 = Base egg move missing. -V182 = Not an expected Relearnable move. -V183 = Not an expected DexNav move. -V184 = Expected no Relearn Move in slot. -V185 = Egg Moves Source: {0}. -V186 = Egg Move set check unimplemented. -V156 = Should have a Link Trade HT Memory. -V157 = Should have a HT Memory TextVar value (somewhere). -V158 = Should have a HT Memory Intensity value (1st). -V159 = Should have a HT Memory Feeling value 0-9. -V318 = Form is Valid. -V304 = Form Count is out of range. Expected <= {0}, got {1}. -V305 = Cosplay Pikachu cannot have the default form. -V306 = Only Cosplay Pikachu can have this form. -V307 = Event Pikachu cannot have the default form. -V308 = Held item does not match Form. -V309 = Held item matches Form. -V310 = Form cannot exist outside of a battle. -V311 = Event Vivillon pattern on pre-evolution. -V312 = Invalid Vivillon pattern. -V313 = Valid Vivillon pattern. -V314 = Invalid Eternal Flower encounter. -V315 = Valid Eternal Flower encounter. -V316 = Form cannot exist outside of Party. -V317 = Form cannot be obtained for pre-Alola generation games. -V319 = Cannot apply PP Ups to an Egg. -V320 = Cannot increase Contest Stats of an Egg. -V321 = Mystery Gift Fateful Encounter. -V322 = Mystery Gift Fateful Encounter flag missing. -V323 = Special ingame Fateful Encounter. -V324 = Special ingame Fateful Encounter flag missing. -V325 = Fateful Encounter should not be checked. -V326 = Special ingame N's Sparkle flag missing. -V327 = Special ingame N's Sparkle flag should not be checked. +V = Valid. +V193 = Legal! +V190 = Internal error. +V189 = Analysis not available for this Pokémon. +V196 = {0}: {1} +V191 = {0} Move {1}: {2} +V192 = {0} Relearn Move {1}: {2} +V195 = Encounter Type: {0} +V205 = OT +V206 = HT +V167 = Empty Move. +V171 = Egg Move. +V172 = Relearnable Move. +V173 = Learned by TM/HM. +V174 = Learned by Move Tutor. +V175 = Special Non-Relearn Move. +V177 = Learned by Level-up. +V203 = Genderless Pokémon should not have a gender. +V201 = Encryption Constant is not set. +V204 = Held item is unreleased. +V187 = Species does not exist in origin game. +V188 = Fateful Encounter with no matching Encounter. Has the Mystery Gift data been contributed? +V194 = Ingame Trade for Sun/Moon not implemented. +V207 = PID is not set. +V208 = Encryption Constant matches PID. +V209 = Static Encounter shiny mismatch. +V210 = Wurmple evolution Encryption Constant mismatch. +V211 = Encryption Constant matches shinyxored PID. +V212 = Wurmple Evolution: {0} +V213 = Silcoon +V214 = Cascoon +V215 = PID should be equal to EC [with top bit flipped]! +V216 = PID should be equal to EC! +V14 = Egg matches language Egg name. +V17 = Nickname does not match another species name. +V18 = Nickname matches species name. +V19 = Nickname matches demo language name. +V11 = Ingame Trade OT and Nickname have not been altered. +V1 = Nickname too long. +V2 = Nickname is empty. +V4 = Language ID > 8. +V5 = Language ID > 10. +V3 = Species index invalid for Nickname comparison. +V20 = Nickname does not match species name. +V13 = Egg name does not match language Egg name. +V12 = Eggs must be nicknamed. +V7 = Ingame Trade invalid version? +V8 = Ingame Trade invalid index? +V10 = Ingame Trade OT has been altered. +V9 = Ingame Trade Nickname has been altered. +V15 = Nickname matches another species name (+language). +V16 = Nickname flagged, matches species name. +V21 = Matches: {0} {1} +V25 = EV total cannot be above 510. +V22 = Eggs cannot receive EVs. +V23 = All EVs are zero, but leveled above Met Level. +V24 = 2 EVs remaining. +V26 = EVs cannot go above 252. +V27 = EVs are all equal. +V31 = All IVs are 0. +V32 = All IVs are equal. +V28 = Should have at least {0} IVs {get; set;} = 31. +V29 = Friend Safari captures should have at least 2 IVs = 31. +V30 = IVs do not match Mystery Gift Data. +V38 = OT Name too long. +V39 = Incorrect RBY event OT Name. +V34 = SID should be 0. +V33 = TID and SID are 0. +V35 = TID and SID are equal. +V36 = TID is zero. +V37 = SID is zero. +V40 = Can't Hyper Train a pokemon that isn't level 100. +V41 = Can't Hyper Train a pokemon with perfect IVs. +V42 = Can't Hyper Train a perfect IV. +V49 = Valid Pokémon Link gift. +V47 = Pokémon Link gift Shiny mismatch. +V48 = Pokémon Link gift should not be Fateful Encounter. +V43 = Can't find matching Pokémon Link gift. +V44 = Can't obtain this Pokémon Link gift in XY. +V45 = Can't obtain this Pokémon Link gift in ORAS. +V46 = Can't obtain this Pokémon Link gift in SM. +V63 = Valid un-hatched egg. +V53 = Able to hatch an egg at Met Location. +V56 = Able to hatch a traded egg at Met Location. +V54 = Can't hatch an egg at Met Location. +V55 = Can't obtain egg from Egg Location. +V57 = Can't transfer eggs between generations. +V50 = Can't obtain egg for this species. +V51 = Invalid Met Location for hatched egg. +V52 = Invalid Met Level, expected {0}. +V58 = Invalid Met Level for transfer. +V59 = Invalid Egg Location, expected none. +V60 = Invalid Met Location, expected Pal Park. +V61 = Invalid Met Location, expected Transporter. +V62 = Invalid Egg Location, shouldn't be 'traded' while an egg. +V66 = Valid Friend Safari encounter. +V64 = Friend Safari: Not valid color. +V6 = Friend Safari: Not average sized. +V65 = Friend Safari: Not Spring form. +V67 = Valid Wild Encounter at location (Pressure/Hustle/Vital Spirit). +V68 = Valid Wild Encounter at location. +V69 = Valid Wild Encounter at location (White Flute & Pressure/Hustle/Vital Spirit). +V70 = Valid Wild Encounter at location (White Flute). +V71 = Valid Wild Encounter at location (Black Flute & Pressure/Hustle/Vital Spirit). +V72 = Valid Wild Encounter at location (Black Flute). +V73 = Valid Wild Encounter at location (DexNav). +V76 = Valid ingame trade. +V75 = Valid gift/static encounter. +V74 = Static encounter relearn move mismatch. +V77 = Can't obtain Species from Virtual Console games. +V79 = Can't obtain Special encounter in Virtual Console games. +V78 = Unable to match to a Mystery Gift in the database. +V80 = Unable to match an encounter from origin game. +V81 = Invalid Transfer Met Location. +V82 = Mewtwo cannot be transferred while knowing Pay Day. +V88 = Current level is not below met level. +V83 = Met Level does not match Mystery Gift level. +V84 = Current Level below Mystery Gift level. +V85 = Current level is below met level. +V86 = Evolution not valid (or level/trade evolution unsatisfied). +V87 = Current experience matches level threshold. +V89 = Can't Super Train an egg. +V90 = Super Training missions are not available in games visited. +V91 = Can't have active Super Training unlocked flag for origins. +V92 = Can't have active Super Training complete flag for origins. +V93 = Super Training complete flag mismatch. +V94 = Distribution Super Training missions are not released. +V95 = Can't receive Ribbon(s) as an egg. +V96 = GBA Champion Ribbon +V97 = Artist Ribbon +V98 = National Ribbon (Purified) +V99 = Sinnoh Champion Ribbon +V100 = Legend Ribbon +V104 = Record Ribbon +V101 = Missing Ribbons: {0} +V102 = Invalid Ribbons: {0} +V103 = All ribbons accounted for. +V105 = Battle Memory Ribbon +V106 = Contest Memory Ribbon +V107 = Ability is not valid for species/form. +V108 = Hidden Ability mismatch for encounter type. +V109 = Ability modified with Ability Capsule. +V110 = Ability does not match Mystery Gift. +V111 = Hidden Ability on non-SOS wild encounter. +V300 = Hidden Ability on non-horde/friend safari wild encounter. +V112 = Hidden Ability not available. +V217 = Hidden Grotto captures should have Hidden Ability. +V115 = Ability matches ability number. +V113 = Ability does not match PID. +V114 = Ability does not match ability number. +V119 = Correct ball for encounter type. +V118 = Can't have ball for encounter type. +V116 = Can't have Heavy Ball for light, low-catch rate species (Gen VII). +V117 = Can't have Master Ball for regular egg. +V120 = Can't have Cherish Ball for regular egg. +V121 = Can't obtain species in Ball. +V122 = Can't obtain Hidden Ability with Ball. +V123 = Ball possible for species. +V125 = No check satisfied, assuming illegal. +V126 = Ball unobtainable in origin generation. +V145 = History block is valid. +V155 = {0} Memory is valid. +V127 = Skipped History check due to other check being invalid. +V128 = No History Block to check. +V129 = OT Affection should be 0. +V130 = Can't have any OT Memory. +V124 = Current handler cannot be past gen OT for transferred specimen. +V131 = HT Gender invalid: {0} +V132 = Event OT Friendship does not match base friendship. +V133 = Event OT Affection should be zero. +V134 = Current handler should not be Event OT. +V138 = Contest Stats should be 0. +V301 = Invalid Console Region. +V302 = Geolocation: Country is not in 3DS region. +V303 = Geolocation: Country is in 3DS region. +V137 = GeoLocation Memory: Memories should be present. +V135 = GeoLocation Memory: Gap/Blank present. +V136 = GeoLocation Memory: Region without Country. +V146 = GeoLocation Memory: HT Name present but has no previous Country. +V147 = GeoLocation Memory: Previous country of residence present with no Handling Trainer. +V139 = Untraded: Current handler should not be the Handling Trainer. +V140 = Untraded: Handling Trainer Friendship should be 0. +V141 = Untraded: Handling Trainer Affection should be 0. +V142 = Untraded: Requires a trade evolution. +V143 = Untraded: Beauty is not high enough for Level-up Evolution. +V144 = Untraded: Beauty is high enough but still Level 1. +V148 = Memory: Handling Trainer Memory present with no Handling Trainer name. +V150 = Memory: Handling Trainer Memory missing. +V152 = Memory: Original Trainer Memory missing. +V329 = Memory: Not cleared properly. +V149 = Memory: Can't have Handling Trainer Memory as egg. +V151 = Memory: Can't have Original Trainer Memory as egg. +V164 = {0} Memory: Species can be captured in game. +V153 = {0} Memory: Species can't learn this move. +V154 = {0} Memory: Location doesn't have a Pokemon Center. +V160 = {0} Memory: {0} did not hatch this. +V202 = {0} Memory: {0} did not catch this. +V161 = {0} Memory: Link Trade is not a valid first memory. +V162 = {0} Memory: Can't obtain Location on {0} Version. +V163 = {0} Memory: Can't obtain Memory on {0} Version. +V165 = {0} Memory: Can't capture species in game. +V197 = {0} Memory: Should be index {1}. +V198 = {0} Memory: Intensity should be index {1}. +V199 = {0} Memory: TextVar should be index {1}. +V200 = {0} Memory: Feeling should be index {1}. +V168 = Duplicate Move. +V176 = Invalid Move. +V166 = Invalid Move (Sketch). +V169 = Keldeo Move/Form mismatch. +V181 = Expected the following Relearn Moves: {0} +V170 = Relearn Moves missing: {0} +V178 = Expected: {0}. +V179 = Base egg move. +V180 = Base egg move missing. +V182 = Not an expected Relearnable move. +V183 = Not an expected DexNav move. +V184 = Expected no Relearn Move in slot. +V185 = Egg Moves Source: {0}. +V186 = Egg Move set check unimplemented. +V156 = Should have a Link Trade HT Memory. +V157 = Should have a HT Memory TextVar value (somewhere). +V158 = Should have a HT Memory Intensity value (1st). +V159 = Should have a HT Memory Feeling value 0-9. +V318 = Form is Valid. +V304 = Form Count is out of range. Expected <= {0}, got {1}. +V305 = Cosplay Pikachu cannot have the default form. +V306 = Only Cosplay Pikachu can have this form. +V307 = Event Pikachu cannot have the default form. +V308 = Held item does not match Form. +V309 = Held item matches Form. +V310 = Form cannot exist outside of a battle. +V311 = Event Vivillon pattern on pre-evolution. +V312 = Invalid Vivillon pattern. +V313 = Valid Vivillon pattern. +V314 = Invalid Eternal Flower encounter. +V315 = Valid Eternal Flower encounter. +V316 = Form cannot exist outside of Party. +V317 = Form cannot be obtained for pre-Alola generation games. +V319 = Cannot apply PP Ups to an Egg. +V320 = Cannot increase Contest Stats of an Egg. +V321 = Mystery Gift Fateful Encounter. +V322 = Mystery Gift Fateful Encounter flag missing. +V323 = Special ingame Fateful Encounter. +V324 = Special ingame Fateful Encounter flag missing. +V325 = Fateful Encounter should not be checked. +V326 = Special ingame N's Sparkle flag missing. +V327 = Special ingame N's Sparkle flag should not be checked. V328 = Version Specific evolution requires a trade to opposite version. A Handling Trainer is required. \ No newline at end of file