using static PKHeX.Core.LeadRequired; namespace PKHeX.Core; /// /// Result wrapper for encounter lead information. /// public struct LeadSeed(uint Seed, LeadRequired Lead) { /// /// Seed the encounter was triggered from. /// public uint Seed = Seed; /// /// Lead condition required for the encounter. /// public LeadRequired Lead = Lead; public readonly void Deconstruct(out uint seed, out LeadRequired lead) { seed = Seed; lead = Lead; } public readonly bool IsNoRequirement() => Lead == None; public readonly bool IsNoAbilityLead() => Lead == None; public readonly bool IsValid() => Lead != Invalid; /// /// Prefers the lead with the most likely value (lowest value). /// public readonly bool IsBetterThan(LeadSeed other) => Lead > other.Lead; }