mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-23 12:33:06 +00:00
95fbf66a6e
In addition to the Method 1 (and other sibling PIDIV types) correlation, an encounter can only be triggered if the calls prior land on the Method {1} seed. The RNG community has dubbed these patterns as "Method J" (D/P/Pt), "Method K" (HG/SS), and "Method H" (Gen3, coined by yours truly). The basic gist of these is that they are pre-requisites, like the Shadow locks of Colosseum/XD. Rename/re-type a bunch of properties to get the codebase more in line with correct property names & more obvious underlying types.
28 lines
754 B
C#
28 lines
754 B
C#
using System.Collections.Generic;
|
|
|
|
namespace PKHeX.Core;
|
|
|
|
public readonly struct LeadEncounterQueue<TEnc>
|
|
{
|
|
public readonly List<LeadEncounter<TEnc>> List = new(0);
|
|
public LeadEncounterQueue() { }
|
|
|
|
public void Insert(LeadSeed lead, TEnc encounter) => Insert(new(lead, encounter));
|
|
|
|
public void Insert(LeadEncounter<TEnc> toInsert)
|
|
{
|
|
for (int i = 0; i < List.Count; i++)
|
|
{
|
|
if (!toInsert.IsBetterThan(List[i]))
|
|
continue;
|
|
List.Insert(i, toInsert);
|
|
return;
|
|
}
|
|
List.Add(toInsert);
|
|
}
|
|
}
|
|
|
|
public readonly record struct LeadEncounter<T>(LeadSeed Lead, T Encounter)
|
|
{
|
|
public bool IsBetterThan(LeadEncounter<T> other) => Lead.IsBetterThan(other.Lead);
|
|
}
|