PKHeX/PKHeX.Core/Legality/Enums/EncounterTime.cs

33 lines
803 B
C#
Raw Normal View History

using System;
namespace PKHeX.Core
{
/// <summary>
/// Generation 2 Time of Encounter enum
/// </summary>
[Flags]
internal enum EncounterTime : byte
{
Any = 0,
Morning = 1 << 1,
Day = 1 << 2,
Night = 1 << 3,
}
internal static class EncounterTimeExtension
{
internal static bool Contains(this EncounterTime t1, int t2) => t1 == EncounterTime.Any || (t1 & (EncounterTime)(1 << t2)) != 0;
internal static int RandomValidTime(this EncounterTime t1)
{
var rnd = Util.Rand;
int val = rnd.Next(1, 4);
if (t1 == EncounterTime.Any)
return val;
while (!t1.Contains(val))
val = rnd.Next(1, 4);
return val;
}
}
}