using Newtonsoft.Json;
namespace ProgressionGates
{
internal class EngagementGate
{
[JsonIgnore]
public readonly Engagements Engagement;
public DateTime UnlockTime;
[JsonIgnore]
private bool? Allowed_Override;
[JsonIgnore]
public bool AllowedToSpawn => DetermineAllowed();
public EngagementGate(Engagements engagement, DateTime unlockTime)
{
Engagement = engagement;
UnlockTime = unlockTime;
Allowed_Override = null;
}
private bool DetermineAllowed()
{
if (Allowed_Override == true) return true;
if (Allowed_Override == false) return false;
return DateTime.Now >= UnlockTime;
}
public void OverrideAllowance(bool? allowed)
{
Allowed_Override = allowed;
}
public void SetUnlockTime(DateTime unlockTime)
{
UnlockTime = unlockTime;
}
public bool? GetOverrideStatus()
{
return Allowed_Override;
}
}
}