namespace PKHeX.Core; /// /// Stores details about a (PID) and any associated details being traced to a known correlation. /// /// Type of PIDIV correlation /// The RNG seed which immediately generates the PIDIV (starting with PID or IVs, whichever comes first) public readonly record struct PIDIV(PIDType Type, uint OriginSeed = 0) { internal static readonly PIDIV None = new(); internal static readonly PIDIV CuteCharm = new(PIDType.CuteCharm); internal static readonly PIDIV Pokewalker = new(PIDType.Pokewalker); internal static readonly PIDIV G5MGShiny = new(PIDType.G5MGShiny); /// Indicates that there is no to refer to. /// Some PIDIVs may be generated without a single seed, but may follow a traceable pattern. public bool NoSeed => Type is PIDType.None or PIDType.CuteCharm or PIDType.Pokewalker or PIDType.G5MGShiny; #if DEBUG public override string ToString() => NoSeed ? Type.ToString() : $"{Type} - 0x{OriginSeed:X8}"; #endif }