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 6675a8dd2..da94fc6aa 100644 Binary files a/PKHeX.Core/Resources/legality/wild/Gen4/encounter_d.pkl and b/PKHeX.Core/Resources/legality/wild/Gen4/encounter_d.pkl differ diff --git a/PKHeX.Core/Resources/legality/wild/Gen4/encounter_p.pkl b/PKHeX.Core/Resources/legality/wild/Gen4/encounter_p.pkl index e7ea50d2b..712879053 100644 Binary files a/PKHeX.Core/Resources/legality/wild/Gen4/encounter_p.pkl and b/PKHeX.Core/Resources/legality/wild/Gen4/encounter_p.pkl differ diff --git a/PKHeX.Core/Resources/legality/wild/Gen4/encounter_pt.pkl b/PKHeX.Core/Resources/legality/wild/Gen4/encounter_pt.pkl index 44e325b45..a0417d2c6 100644 Binary files a/PKHeX.Core/Resources/legality/wild/Gen4/encounter_pt.pkl and b/PKHeX.Core/Resources/legality/wild/Gen4/encounter_pt.pkl differ