2018-04-02 03:22:10 +00:00
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
namespace PKHeX.Core
|
2017-07-06 23:03:41 +00:00
|
|
|
|
{
|
2017-10-24 06:12:58 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Generation 2 Time of Encounter enum
|
|
|
|
|
/// </summary>
|
2018-04-02 03:22:10 +00:00
|
|
|
|
[Flags]
|
2022-03-07 06:47:03 +00:00
|
|
|
|
internal enum EncounterTime : byte
|
2017-07-06 23:03:41 +00:00
|
|
|
|
{
|
2018-04-02 03:22:10 +00:00
|
|
|
|
Any = 0,
|
|
|
|
|
Morning = 1 << 1,
|
|
|
|
|
Day = 1 << 2,
|
|
|
|
|
Night = 1 << 3,
|
2017-07-06 23:03:41 +00:00
|
|
|
|
}
|
|
|
|
|
|
2017-10-24 06:12:58 +00:00
|
|
|
|
internal static class EncounterTimeExtension
|
2017-07-06 23:03:41 +00:00
|
|
|
|
{
|
2018-05-12 19:28:48 +00:00
|
|
|
|
internal static bool Contains(this EncounterTime t1, int t2) => t1 == EncounterTime.Any || (t1 & (EncounterTime)(1 << t2)) != 0;
|
2018-08-03 03:11:42 +00:00
|
|
|
|
|
2018-04-02 03:22:10 +00:00
|
|
|
|
internal static int RandomValidTime(this EncounterTime t1)
|
2017-07-06 23:03:41 +00:00
|
|
|
|
{
|
2020-01-26 05:49:52 +00:00
|
|
|
|
var rnd = Util.Rand;
|
|
|
|
|
int val = rnd.Next(1, 4);
|
2018-04-02 03:22:10 +00:00
|
|
|
|
if (t1 == EncounterTime.Any)
|
|
|
|
|
return val;
|
|
|
|
|
while (!t1.Contains(val))
|
2020-01-26 05:49:52 +00:00
|
|
|
|
val = rnd.Next(1, 4);
|
2018-04-02 03:22:10 +00:00
|
|
|
|
return val;
|
2017-07-06 23:03:41 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2022-03-07 06:47:03 +00:00
|
|
|
|
}
|