From 8c93fd1cbdfba4e4aa4b882d2d62015e1851c2ac Mon Sep 17 00:00:00 2001 From: Kurt Date: Fri, 23 Sep 2022 13:36:44 -0700 Subject: [PATCH] Fix honeytree RNG frame matching See EncounterSlotDumper for associated change (forgot to retain SlotType) --- PKHeX.Core/Legality/Areas/EncounterArea.cs | 2 +- PKHeX.Core/Legality/RNG/Frame/Frame.cs | 5 ++++- PKHeX.Core/Legality/RNG/Frame/SlotRange.cs | 7 +++++-- .../legality/wild/Gen4/encounter_d.pkl | Bin 33752 -> 33752 bytes .../legality/wild/Gen4/encounter_p.pkl | Bin 33652 -> 33652 bytes .../legality/wild/Gen4/encounter_pt.pkl | Bin 32396 -> 32396 bytes 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/PKHeX.Core/Legality/Areas/EncounterArea.cs b/PKHeX.Core/Legality/Areas/EncounterArea.cs index c9bfce4a8..c6f26acca 100644 --- a/PKHeX.Core/Legality/Areas/EncounterArea.cs +++ b/PKHeX.Core/Legality/Areas/EncounterArea.cs @@ -9,7 +9,7 @@ namespace PKHeX.Core; public abstract record EncounterArea(GameVersion Version) : IVersion { public int Location { get; protected init; } - public SlotType Type { get; protected init; } = SlotType.Any; + public SlotType Type { get; protected init; } protected abstract IReadOnlyList Raw { get; } /// diff --git a/PKHeX.Core/Legality/RNG/Frame/Frame.cs b/PKHeX.Core/Legality/RNG/Frame/Frame.cs index 8640883a4..a3407e517 100644 --- a/PKHeX.Core/Legality/RNG/Frame/Frame.cs +++ b/PKHeX.Core/Legality/RNG/Frame/Frame.cs @@ -1,8 +1,11 @@ +using System.Diagnostics; + namespace PKHeX.Core; /// /// Represents an RNG seed and the conditions of which it occurs. /// +[DebuggerDisplay($"{{{nameof(FrameType)},nq}}[{{{nameof(Lead)},nq}}]")] public sealed class Frame { /// @@ -45,7 +48,7 @@ public sealed class Frame /// Slot number for this frame & lead value. public bool IsSlotCompatibile(T slot, PKM pk) where T : EncounterSlot, IMagnetStatic, INumberedSlot, ISlotRNGType { - if (FrameType != FrameType.MethodH) // gen3 always does level rand + if (FrameType != FrameType.MethodH && slot.Type is not (SlotType.HoneyTree or SlotType.BugContest)) // gen3 always does level rand { bool hasLevelCall = slot.IsRandomLevel; if (Lead.NeedsLevelCall() != hasLevelCall) diff --git a/PKHeX.Core/Legality/RNG/Frame/SlotRange.cs b/PKHeX.Core/Legality/RNG/Frame/SlotRange.cs index 31a31b647..82f1f1610 100644 --- a/PKHeX.Core/Legality/RNG/Frame/SlotRange.cs +++ b/PKHeX.Core/Legality/RNG/Frame/SlotRange.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using static PKHeX.Core.SlotType; namespace PKHeX.Core; @@ -122,7 +122,10 @@ public static class SlotRange public static bool GetIsEncounterable(T slot, FrameType frameType, int rand, LeadRequired lead) where T : ISlotRNGType #pragma warning restore IDE0060, RCS1163 // Unused parameter. { - if (slot.Type.IsSweetScentType()) + var type = slot.Type; + if (type.IsSweetScentType()) + return true; + if (type is HoneyTree) return true; return true; // todo //return GetCanEncounter(slot, frameType, rand, lead); diff --git a/PKHeX.Core/Resources/legality/wild/Gen4/encounter_d.pkl b/PKHeX.Core/Resources/legality/wild/Gen4/encounter_d.pkl index 6675a8dd23f9664cae99334a1a854c4586b0473c..da94fc6aacec9d3412b0e51f21413968ff53c26c 100644 GIT binary patch delta 634 zcmXZYKWGzS7{~G7d#^%BR-Z}`Cbd*1hb?tL!Ya>6ZV`_ty> zfYiAnDK6bc13tQN2c?JbdlH;UN=LZkO0y~HDL&vQ;%PGKL((Z;4NKV(X&04Isfj(D zAfF*)J*!PU9+P(P9p}brjvdsm@{t^kP??Yllhp7Qhv>T|Enow?=*vq#5Sx=pcY!nYn@UHaP*s-WmEq^n?+RPhcb5W%>$K{DAc(+zA2EXpDSzC%K?ZvFI YUKHH>9mkfV&|O|inEz7+&3Y~K557Ty8UO$Q delta 636 zcmXxhElgWc7{>AE+%tjbHq!A?*hafjSb;KVfPrXIQzz2>iBtP_R0>PQ zXHslLDxrohG%9W204-m_ zX@SR~3#E7*YAFssTx7!=DYry1RF2vz8m*_`se=~S~)kC8TflI*F57cukSt?>^sH2U6tn?F+8R;H2@D-6+ zK7NDYP(usH{hX7$e1-;jY3(M>3QXZkWxT>ZdVb^3OwSz5(PN%FsG$WdFev<6(la#C zX(XIa#VaL#j4kZpw4awbwIY4PQkh55Mi*Z2$GJ2ZtPVf2HmXQt(S7nEX6(rMvQdej z*q9>0qMLVYoW+ae&_(N>?*^UpzGD+%=uS3`O>*Ro_tM%?7K7Qp#-_sUwb_obV`1B! zT-T0=8}xaR8 VP<3oE4E2XAG4p?_AXTlT{{c74fi3_5 delta 636 zcmXxhElgWc7{>AE+%ti=Fv9pKAETw~x&md;00TjSfus~jYL+z1#6$(6ViM5=1R)4S zLlF~*CLl;Qv2Z6V8iHt02*ec=6UfSvOib{fV7OSxP%5V#2Ktaq*ELZOE>t3g%PQQ8`MXsIVL?|_qF7XOEviDjY?VU z!;flDcQNVLgw#SJE`7!+TByI_k_3fNdn+9z*+U!YcTy2&xQCk}BQ+^~!8hEYYl@7* zG@nBgO7l5X(p+Ai;lO)oZI)sv%}E#djs8sa)+8s3^E7CI8mOQNEs~M{ARVEBztv&q zd*;u&w3Fq<@X@=$mr+9_Cq*{7Xp2|F-R5HN(dm9^R9%gKyz0waOS^;h`Q?DIv^`j# z3_VynA1u9W^31LI{}69&_NVc-GS|=9oj)^{83bpq7JcK*Eq&_goIP6Kv6gm)MY9_* VV>6x5$Q2#0yqz2DoE$3_qEEN%g-8GZ diff --git a/PKHeX.Core/Resources/legality/wild/Gen4/encounter_pt.pkl b/PKHeX.Core/Resources/legality/wild/Gen4/encounter_pt.pkl index 44e325b45a25a6b9dc6c3e8aef641e3ab3de3b8c..a0417d2c6d3ce70bb904322aec96dbe953fdd6e9 100644 GIT binary patch delta 633 zcmXZYKS*0q6bA6`zLOzC(4ywAF*WsR5{-XSF*rI@OlpRV9a`GKA!CN%6i~#$A&BrE zQi_6zL!d&%=a9i61O*32hlg|srEY!t@j_84WG2jgy zQ1vBH8pjq+#sQaJ#DN^yRDT7$n*h$JWCF{RK$+^)rqC3ZqCIMoF9F;UlFU+>>eM4Q z#j~e*Hf>XbJTts7A++Hbl1I+v$CYC6A-zXMKoC?YZfuQiy+TStCZ{JL%i zTnY4R=V$OAE+>@b0D7GfXUrn{9M(g!Qsz?V1hl&jqbnH;*;vWzpgG0d%8AA!& zOL4ev83JYqy%{<szvzw9J0=Z`b4Kf)bb*Pi z^a3@UqjO&eYEMX)$W2Nw5u%6w1F1g6a%ktI%0uY{efZPTE+U*EnP)IkGtw3+I6)ul zv&??PY=roN#2lA`e70=(QgvSHB3z&WiA8BG_-yjCZwk`W$I@%Gaf#eA89}S$g%TP; z+B+_sZm`HEH$(?|Mh7Zr7Ny_tpR+t7oW;MqKevs7?MyMgxHE1oF<%$KPP%J}+MUZo zT}#~Yb|&pvGI!mrkuYHi+ZDC!2hWnaE5gZ7#&R)N)TbEA8@M8wkBsFZT+yGQjaRrX zg2Y_wz5mwy-=sPpnYg_8@uprW)Qu%~_g`+gWaHlIyPLJk8~dJJV!a=md&Ux%>uMHL PUYy+eHfZ?p>L~jUW*&)#