From 31edf20c87a12484024756ef330c34bc2de4eff5 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 21 Dec 2025 12:59:55 -0600 Subject: [PATCH] Update 25.12.21 Moves one of the Evolution deferral checks to the encounter template where it triggers; no other encounter case will trip that check so it's OK to move it there. One less thing for every other encounter to check. Revises the "met date present but no met location" to only flag if the encounter was matched to something. It'll already yell at mismatched encounters, no need to pile on more. The check only exists for eggs (no location). --- Directory.Build.props | 2 +- .../Templates/Gen5/EncounterSlot5.cs | 5 +++++ .../Encounters/Verifiers/EvolutionVerifier.cs | 4 ---- PKHeX.Core/Legality/Verifiers/MiscVerifier.cs | 2 +- .../legality/wild/encounter_go_home.pkl | Bin 172136 -> 173172 bytes .../legality/wild/encounter_go_lgpe.pkl | Bin 35108 -> 35160 bytes PKHeX.WinForms/Resources/text/changelog.txt | 19 +++++++++++++++++- 7 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 66eb28cfd..39df1d39f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,6 +1,6 @@ - 25.12.15 + 25.12.21 13 enable en diff --git a/PKHeX.Core/Legality/Encounters/Templates/Gen5/EncounterSlot5.cs b/PKHeX.Core/Legality/Encounters/Templates/Gen5/EncounterSlot5.cs index a286ca884..0ac4e9a42 100644 --- a/PKHeX.Core/Legality/Encounters/Templates/Gen5/EncounterSlot5.cs +++ b/PKHeX.Core/Legality/Encounters/Templates/Gen5/EncounterSlot5.cs @@ -113,6 +113,11 @@ public EncounterMatchRating GetMatchRating(PKM pk) bool isHidden = pk.AbilityNumber == 4; if (isHidden && this.IsPartialMatchHidden(pk.Species, Species)) return EncounterMatchRating.PartialMatch; + + // B2/W2 Vespiquen (Level 24 both evolutions available at same location) + // Bigender->Fixed (non-Genderless) destination species, accounting for PID-Gender relationship + if (Species == (int)Core.Species.Combee && pk.Species == (int)Core.Species.Vespiquen && (pk.EncryptionConstant & 0xFF) >= 0x1F) // Combee->Vespiquen Invalid Evolution + return EncounterMatchRating.DeferredErrors; if (IsDeferredHiddenAbility(isHidden)) return EncounterMatchRating.Deferred; return EncounterMatchRating.Match; diff --git a/PKHeX.Core/Legality/Encounters/Verifiers/EvolutionVerifier.cs b/PKHeX.Core/Legality/Encounters/Verifiers/EvolutionVerifier.cs index 6deefedcb..cbc55b986 100644 --- a/PKHeX.Core/Legality/Encounters/Verifiers/EvolutionVerifier.cs +++ b/PKHeX.Core/Legality/Encounters/Verifiers/EvolutionVerifier.cs @@ -52,10 +52,6 @@ private static bool IsValidEvolution(PKM pk, EvolutionHistory history, IEncounte if (!EvolutionHistory.HasVisited(original, encSpecies)) return false; - // Bigender->Fixed (non-Genderless) destination species, accounting for PID-Gender relationship - if (curSpecies == (int)Species.Vespiquen && enc.Generation < 6 && (pk.EncryptionConstant & 0xFF) >= 0x1F) // Combee->Vespiquen Invalid Evolution - return false; - return true; } } diff --git a/PKHeX.Core/Legality/Verifiers/MiscVerifier.cs b/PKHeX.Core/Legality/Verifiers/MiscVerifier.cs index 61758fd82..b6ef17879 100644 --- a/PKHeX.Core/Legality/Verifiers/MiscVerifier.cs +++ b/PKHeX.Core/Legality/Verifiers/MiscVerifier.cs @@ -131,7 +131,7 @@ private static void VerifyDateValues(LegalityAnalysis data, PKM pk) if (pk.MetDate is null) data.AddLine(GetInvalid(Memory, DateCalendarInvalidMet)); } - else + else if (data.EncounterMatch is not EncounterInvalid) { if (pk.MetMonth != 0 || pk.MetDay != 0 || pk.MetYear != 0) data.AddLine(GetInvalid(Memory, DateCalendarInvalidMet)); diff --git a/PKHeX.Core/Resources/legality/wild/encounter_go_home.pkl b/PKHeX.Core/Resources/legality/wild/encounter_go_home.pkl index 426bee6170f68240b33e46010772ea4f2229a1d8..c5f8eaddb32235eb402b705a344a90d7c52d92ae 100644 GIT binary patch delta 6893 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 delta 5431 zcmXxoe_Ydb9>DSU=j+lPVXd4&7wR(+`okltpjfxZti*y+pB^D+nB^9<=RI_HS zAip@tR<}zk>Q;C`7kPA1$JMe~RAf|`%Ud1UDyn5%-D^z$cz%Cq(gO;bc{XNeRe0OQ%L0q<0i_Gu!{=_1kT;u4u5(u0ASA_cQVB1v|U!r3CG zIRtf{NM@dh;d~~BWu8c$L!^GbhMBDsaE-(M)wcnMi8q4QFLC?X()m+^k7Ncv@Dk5DmzEGIK`UM^B|1=*Gmu6s~^;}%Sge|<3!-K_ z+k-Nlz|ag!1AC0@9n6j3P8M$@u*aD9an3`4{cjHt75ZU#f69A>?DXx~R7?=r6|!r|CY#_w@LF#zZL>@NmU)XiX2en30iAJYFL27k==qyzN- zgsgk1;-{4VGrpnrbIwE`TY;Q|oTa2M*!M#uiJT~Zif~nb$-`mF55s@hL&RhFis!Ex z@LvWX0AoJ~6`jcZhJ}w%QnY`|x41|QrthiJ4;;(^0{W5hKQZoSs`U%&9AzDZ|Hl^m zMxWo=|4dPmhYSJdae;4adn!%FqXc ziSNio2-Z`TRRA7eUSCYtQ68S9p*fE<*U;xE)2oB~vB{?WQpE=Nss(B>0KuHAk3rTK~ z67OQNFHquY=OPyo4Jy%yE|gtNFvu(<+Diy-37IS<>mq_##+F@5HVD9W8C67WF_tsm z0G_KUYbk-jgVNP}UqhB< zEPO3}k$D~aTFzO3cO8@8K)@9&0OyTLnlJ#z29iQ3sgi(iq8c07|IRA*^H%n*nmxXa z#qUtkP{Z?P%1C>ro5|qb!XP;AqCzOUn=OH-mVWo(UiKL6_c5`DIkytn{dj;%Al*wF z?Axd&(jR1tTwJ<*e5_N_`zYmsZ#(7E`Hs8>7DWQ~9h4WHF!-q!e2BunlXrwr-beuG zKmxYM_=W%m(6@_k0fK_7<_SJL$;+Ra2-!gvMJIxPVc=6_wwp*%gL*V0g3>1T@M(g5 zhAiQP`C0nG*-Ry$qms|#ubi6@=imkUq8`mCdXfEaYT?kmL^<17G0zsW>hJpY@8-sX28Og}Uuf*8#2uw7_^X&-%He3w2bi}0JU zpZyK*C#v^Y813&f5dAQ8vxjI#`Ugx7!-pI)7(ZewVD2GX1kj0IWPME4&<^_n7J?7$ zh{5~`LBWe27niDDPWh)~_!%9r=W`Wb^su4zRoQk6OJI0{;d&Z&Q2ln61C5SHcqi}$Xk^Up4|A`X)Ob`k7_ZRjQ z=|@=%?m^mqBNJGDCrAWElQ{B}CRJ!gx~7Q-9f%@pm?jQ*(Kk$UNwGnbUX-1nNf-sg zHGb;zKX2V>RhV-#A!Ud_03;nxIMfnJk)3uoDRe z0mvjxdJvjS##WM;qDjtKWQ~%uNe2CB%psU_G|8Mw&@L_>G$WdP{u2w?$Zi^$As112 z⪚|oqjOq@{V3q%phBo&!jS_pG6;p(2Fd)CdKfg4N;h86FA&(1-V2p2;J8AQcDTB^&S-!*(?X5xJ!Vjt*E>GZt;gSwqlk z*#8(0)@z6w4QNLU&NB8ArfZ2F74TsXdSJSah2dSxUjS_D=yN@pqu>U%3C0RCMHxKU zg8}5M=NlT=v;W;ZSZ|~Qx?$bGzQK!56jl-#qA0wHNf1Wu%>)9|M*1Rz%qlWO43)Pq z1|_$WJ$ev_c@q`IAe^ph2EuR~2L{I5nHW(FApH)0oZv-P4HbZ4Gw(3pNe0LyiF%ma z%z-`>Y@xg`-o+va!E`s!o8D&hY-4vKz1XOp$c9E z(T>n#^g#kyyBLQAN**U6L=Zy)rU2Q)f#D@w$^$KjPpQbLGg()(v`y(W)a{)%mfTx{ zQ%%E;Kle^MFrsePthBnfX7e{9E%rG}RPydSFEUPzYFWKa-7xlH5s%c`wo>TI`n z)fI2f8|t+A&ZTvk?;L({pVzW|oievHAF-y>?}MW=Cg|od>Y3J#G3toYy%UsK506vt zwFWGzX1Gezw^`L%y>YU-c^LmEAob?8s`8hns7YhhsMg6BsNJmF`fhg3E zs-9FMMx}o>!kuPo-T$k4B02XNzpMLZB>ObyY6p^c-wZ9PyJu>gdTBMy(sm^a(aOKB z*-DSi)^b`cbF?gjYS8yPv<$ssu9m6$xD0F14Elz-+Gtu<&(|_|A3pT1TjmY58jrVr zmugK*wT4oy>Bn2QEEpPlQmWPA7#eFj-g?SHEyKW}61{S+X4WG#s~!6KxmpIdhq(>g zaV!kIbUs6O91DWh@$-gSQ(@@wRBI{-T3<-DrozzO3x>v~f}nLisWMk844r>MGn1z} z6@>B+Rf5}482(fk{^Ql~r>fyU9*92`h+jKa55GQC55IOS6n`odzjmx5etoDSe(hK= z{!}pjW5KX&vLlK@{2^_JL^pVxt+Sc@H bt$(6=RiD30o7L*rrOnimJ>3CqVA%fwY93H7 diff --git a/PKHeX.Core/Resources/legality/wild/encounter_go_lgpe.pkl b/PKHeX.Core/Resources/legality/wild/encounter_go_lgpe.pkl index 96739904c68eef9af7c80a0ca50281f1afe3ff0b..931296d68c622d933d007493f3abfe800364fd2e 100644 GIT binary patch delta 766 zcmY+?J4{ny7{>9ZEv85qDru=0u|-iTR;|)tja91@bHH0MRZ+oetj0^Dct@=kutsAT zkkdp52L}cRO-zajgF^=f2L}dB7&>%tz{|kEfC(}FP1NY{YtQ-4`QGn&-*#l!IyGz^ zif6`LQW3st=@I5pxkQTAN+XCblX~$SA&-=Wyi$3cRKTm{Qf!43u9r%fUrDW1QW`H% z`gPqPeZn;#YnVlLHDwx=QLa&Ptf3Hk{S;p-eS?3UG=W(})=P^6(o1x1kj6JkLroM8 zO1Wl&z`IF$hiMog-bG+D&1_*03V0TlCbvpG+X%W{3Pv(?9bpr~J0#~$x<m<)HdYXxy;jps=gZ~`e zpC=4b7dR{>bzP+XB_`8D6PKm#z!iS$t5Whhhu&Z#W)QncAS7?G`8MhANN>^kZ delta 712 zcmXxiKTH#09LDjdXNL|B6|Nf0fkjb3QL7L@tx&a+Q&Foyty&NxYSBhCiUJl}5u=F= zP0zu>!59VyNle#hHB|K+H0f)vamKtNi38FrI)pgZch7Lna1bvH?0F}q#T4rv;5Fn3Bnkq${syQEjUrGaKPZXr-B zL9mQmoAe1*J9FXPBYoS;ntjYcDlEO*FGV{D+9~-W8EzM05&Q?FC5#*--62BYO_cUw zf^`wZrZPw9A7vgUk8z`J)*^nKK4K@N59mKhB{34?VyC1ph@2(_%pPg#j1)dAea`UX zJx4O+P=pny3NX(z@d6uM*l|Pg0GiQt%nyMPbJHQQ^D|n4W+$Ucav3228K>tE$G33ai)qSN(5C yt5b%P3wAM{5B@7Z_0>*Pcq*M2&EGwhh2fUJ9{z?}oi&adEjqJyxICw1Cn77`mz<#h diff --git a/PKHeX.WinForms/Resources/text/changelog.txt b/PKHeX.WinForms/Resources/text/changelog.txt index 749ce6e64..e26b419b5 100644 --- a/PKHeX.WinForms/Resources/text/changelog.txt +++ b/PKHeX.WinForms/Resources/text/changelog.txt @@ -1,7 +1,24 @@ PKHeX - By Kaphotics http://projectpokemon.org/pkhex/ -25/12/15 - New Update: +25/12/21 - New Update: + - Note: This will be the last release on .NET 9; future releases will be on .NET 10 + - Legality: Misc fixes for parsing forms/evolutions in Z-A. + - Fixed: Gen9a evolutions that require a move are now checked more accurately when evolutions have less learnset restrictions. + - Fixed: Gen9a Morpeko-Hangry in-party now flagged if it hasn't been able to learn Aura Wheel yet. + - Fixed: Gen9a Tatsugiri/Magearna/Meowstic-Mega are now checked properly when in-party. + - Fixed: Gen9a Baxcaliburite now released, can exist in inventory/held. Removed Cherish Ball from Allowed items list. + - Fixed: Gen9a Rotom form changing with Plus moves/move count now recognized correctly. + - Fixed: Gen9a Raichu-Alola alpha move now recognized correctly. + - Fixed: Gen9a Farfetch'd/Sirfetch'd now allow form argument. + - Fixed: Gen9a Gimmighoul Coin can no longer be held (matches game restrictions). + - Fixed: Gen9a Primal Orbs can no longer be traded (matches game restrictions). + - Fixed: Gen9a encounter templates without specified moves will now initialize the moveset in the correct order, rather than reversed. + - Added: Donut editor now shows star count, flavor icon, and auto calculates more properties. Thanks @ilmakio & @RandomGuy155 ! + - Fixed: Gen9a TM collection button now only returns the count of TMs not yet collected, not the total count of collectible. + - Fixed: Gen9a TMs added in DLC now indicate the correct item name string in the Inventory Editor. + +25/12/15 - New Update: (105489) [12006971] - Legality: Improved location ID detection of wild encounters, should work for 99.9%. - - Crossovers are not currently handled for detecting location IDs. Generating from encounter template is 100% legal. - Added: Gen9a Donut editor. Can randomize, clone, fill, export, import, and manually edit individual donuts. Thanks @Lusamine & @sora10pls !