RedLightGreenLight.cs
using Sandbox;
public sealed class RedLightGreenLight : Component
{
public enum GameState
{
Green,
Red,
}
public GameState State { get; set; }
float timer = 0f;
static float minWait = 2f;
static float maxWait = 6f;
float stateDuration = Game.Random.Float(minWait, maxWait);
protected override void OnStart()
{
}
protected override void OnUpdate()
{
timer += Time.Delta;
// State Change
if (timer >= stateDuration)
{
if (State == GameState.Green)
State = GameState.Red;
else if (State == GameState.Red)
State = GameState.Green;
timer = 0f;
stateDuration = Game.Random.Float(minWait, maxWait);
}
}
}