void WaitingForCleanGlass(Bar bar) { if (!bar.CheckBarShelfForGlass()) { Log("is waiting at the shelf for a clean glass"); while (!bar.CheckBarShelfForGlass()) { Thread.Sleep(SpeedModifier(300)); } } else { currentState = State.PouringBeer; } }
void PouringBeer(Bar bar) { Glass glass; if (bar.CheckBarShelfForGlass()) { glass = bar.GetGlassFromShelf(); Log("fetching glass"); Thread.Sleep(SpeedModifier(3000)); Log($"pouring {bar.GetFirstInBarQueue().Name} a beer"); Thread.Sleep(SpeedModifier(3000)); glass.CurrentState = Glass.State.Full; bar.AddGlassToBarTop(glass); currentState = State.WaitingForPatron; } else { currentState = State.WaitingForCleanGlass; } }