예제 #1
0
 public override void GoHome()
 {
     cts.Cancel();
     isWorking = false;
     LogHandler.UpdateLog("The bouncer went home.", LogHandler.MainWindow.GuestAndBouncerLog);
     ChangePubState(PubState.Closed);
 }
예제 #2
0
        private Patron LetPatronInside(Func <string> CheckID)
        {
            var patron = new Patron(Pub.GetGuestCount(), CheckID(), Pub, LogHandler, guestDrinkingModifer);

            LogHandler.UpdateLog($" {patron.Name} joined the party.", LogHandler.MainWindow.GuestAndBouncerLog);
            return(patron);
        }
예제 #3
0
 public override void GoHome()
 {
     LogHandler.UpdateLog($" {Name} went home.",
                          LogHandler.MainWindow.GuestAndBouncerLog);
     Pub.RemoveGuest(this);
     Pub.TotalNumberOfGuests--;
     Pub.RemovePatronFromChair(this);
 }
예제 #4
0
 private void ReturnCleanGlasses()
 {
     Thread.Sleep(3000);
     LogHandler.UpdateLog(" returned glasses to bar", LogHandler.MainWindow.WaitressLog);
     foreach (var glass in tray)
     {
         Pub.Bar.AddAvailableGlass(GlassFromTray());
     }
 }
예제 #5
0
 private Glass GetGlass()
 {
     while (Pub.Bar.HasAvailableGlasses() == false)
     {
         Thread.Sleep(10);
     }
     Thread.Sleep(fetchGlass / Pub.GlobalSpeedModifer);
     LogHandler.UpdateLog(" fetched a glass", LogHandler.MainWindow.BartenderLog);
     return(Pub.Bar.GetOneCleanGlass());
 }
예제 #6
0
 private void DrinkBeer()
 {
     LogHandler.UpdateLog($" {Name} sat down, and is drinking their beer",
                          LogHandler.MainWindow.GuestAndBouncerLog);
     Thread.Sleep(drinkingTime / Pub.GlobalSpeedModifer);
     LogHandler.UpdateLog($" {Name} finished their beer.",
                          LogHandler.MainWindow.GuestAndBouncerLog);
     Pub.Bar.AddUsedGlass(Beer);
     Beer = null;
     GoHome();
 }
예제 #7
0
 private void WaitForGuest()
 {
     if (Pub.CheckForLine() == false)
     {
         LogHandler.UpdateLog(" waiting for guest", LogHandler.MainWindow.BartenderLog);
     }
     while (Pub.CheckForLine() == false)
     {
         Thread.Sleep(10);
     }
 }
예제 #8
0
 private void WaitForEmptyChair()
 {
     LogHandler.UpdateLog($" {Name} is looking for a chair", LogHandler.MainWindow.GuestAndBouncerLog);
     while (IsLookingForChair())
     {
         Chair chair;
         if (Pub.TryGetChair(out chair))
         {
             chair.Occupant = this;
             IsSittingDown  = true;
             break;
         }
         Thread.Sleep(10);
     }
 }
예제 #9
0
 private void FetchGlasses()
 {
     while (TrayIsEmpty())
     {
         if (Pub.Bar.HasUsedGlasses())
         {
             LogHandler.UpdateLog(" fetching dirty glasses", LogHandler.MainWindow.WaitressLog);
             Thread.Sleep(fetchingTime / speedModifier / Pub.GlobalSpeedModifer);
             for (int i = 0; i < Pub.Bar.NumberOfUsedGlasses; i++)
             {
                 tray.Add(Pub.Bar.GetOneUsedGlass());
             }
         }
         Thread.Sleep(10);
     }
 }
예제 #10
0
 private void GoToBar()
 {
     Thread.Sleep(timeToWalkToBar / Pub.GlobalSpeedModifer);
     LogHandler.UpdateLog($" {Name} went to the bar.", LogHandler.MainWindow.GuestAndBouncerLog);
     Pub.GetInBarQueue(this);
 }
예제 #11
0
 public override void GoHome()
 {
     cts.Cancel();
     LogHandler.UpdateLog(" drank a beer and went home.", LogHandler.MainWindow.WaitressLog);
 }
예제 #12
0
 private void WashDishes()
 {
     LogHandler.UpdateLog(" washing dishes", LogHandler.MainWindow.WaitressLog);
     Thread.Sleep(washingTime / speedModifier / Pub.GlobalSpeedModifer);
 }
예제 #13
0
 public override void GoHome()
 {
     cts.Cancel();
     LogHandler.UpdateLog(" closed bar and went home.", LogHandler.MainWindow.BartenderLog);
 }
예제 #14
0
 private void PourBeer(Glass beerToServe, Patron patron)
 {
     Thread.Sleep(pourBeer / Pub.GlobalSpeedModifer);
     LogHandler.UpdateLog($" poured {patron.Name} a beer.", LogHandler.MainWindow.BartenderLog);
     beerToServe.HasBeer = true;
 }