namespace PKHeX.Core
{
///
/// Source the Move was learned from
///
public enum MoveSource
{
Unknown,
None,
Relearn,
Initial,
LevelUp,
TMHM,
Tutor,
EggMove,
InheritLevelUp,
Special,
SpecialEgg,
ShedinjaEvo,
Sketch,
Shared,
}
///
/// Move specific to contain in which Generation it was learned & source.
///
public sealed class CheckMoveResult : CheckResult
{
public readonly MoveSource Source;
public readonly int Generation;
public bool Flag;
internal CheckMoveResult(MoveSource m, int g, CheckIdentifier i)
: base(i)
{
Source = m;
Generation = g;
}
internal CheckMoveResult(MoveSource m, int g, Severity s, string c, CheckIdentifier i)
: base(s, c, i)
{
Source = m;
Generation = g;
}
internal CheckMoveResult(CheckMoveResult Org, Severity s, string c, CheckIdentifier i)
: base(s, c, i)
{
Source = Org?.Source ?? MoveSource.Unknown;
Generation = Org?.Generation ?? 0;
}
}
}