예제 #1
0
        // Intro
        private static ActionSequence InspectorAskToDrink(Entity inspector)
        {
            var incorrectDrinkConversation = new NoResponseConversation("Well.. this isn't right. I hope you do better when you serve him drinks.", DialogueOutcome.Default);
            var correctDrinkConversation   = new NoResponseConversation("Mm, great drink. Make them like this and he'll be sure to slip up.", DialogueOutcome.Default);

            var sequence = new ActionSequence("InspectorAskToDrink");

            sequence.Add(new ConversationAction(new InspectorAskToGetDrugPusherDrunk()));
            sequence.Add(DrinkOrders.GetRandomAlcoholicDrinkOrder(inspector, correctDrinkConversation: correctDrinkConversation, incorrectDrinkConversation: incorrectDrinkConversation));
            sequence.Add(CommonActions.GoToSeat());
            sequence.Add(CommonActions.SitDownLoop());
            return(sequence);
        }
예제 #2
0
        private static ActionSequence DrinkTest(int currentSuccesses, int maxSuccesses, Entity drinker, List <Conversation> failureConversations, List <Conversation> successConversations, List <GameAction> betweenDrinks, GameAction afterSuccess)
        {
            var sequence = new ActionSequence("DrinkTest: " + drinker);

            var drinkOrder = DrinkOrders.GetRandomAlcoholicDrinkOrderWithoutFailure(drinker);

            sequence.Add(new OnActionStatusDecorator(
                             drinkOrder,
                             () =>
            {
                var successSequence = new ActionSequence("DrinkTestSuccess1: " + drinker);
                if (currentSuccesses + 1 == maxSuccesses)
                {
                    successSequence.Add(new ClearConversationAction());
                    successSequence.Add(new EndDrinkOrderAction());
                    successSequence.Add(new ConversationAction(successConversations[currentSuccesses]));
                    successSequence.Add(new ReleaseWaypointAction());
                    successSequence.Add(afterSuccess);
                }
                else
                {
                    var nextDrinkTest = DrinkTest(currentSuccesses + 1, maxSuccesses, drinker, failureConversations, successConversations, betweenDrinks, afterSuccess);

                    successSequence.Add(new ClearConversationAction());
                    successSequence.Add(new EndDrinkOrderAction());
                    successSequence.Add(new ConversationAction(successConversations[currentSuccesses]));
                    successSequence.Add(new ReleaseWaypointAction());
                    successSequence.Add(betweenDrinks[currentSuccesses]);
                    successSequence.Add(new DestoryEntityInInventoryAction());
                    successSequence.Add(new QueueForBarWithPriority(nextDrinkTest));
                }
                ActionManagerSystem.Instance.AddActionToFrontOfQueueForEntity(drinker, successSequence);
            },
                             () =>
            {
                var failureSequence = new ActionSequence("DrinkTestFail: " + currentSuccesses + " " + drinker);
                failureSequence.Add(new ClearConversationAction());
                failureSequence.Add(new EndDrinkOrderAction());
                failureSequence.Add(new ConversationAction(failureConversations[currentSuccesses]));
                failureSequence.Add(new DestoryEntityInInventoryAction());
                failureSequence.Add(new ReleaseWaypointAction());
                failureSequence.Add(new LeaveBarAction());
                ActionManagerSystem.Instance.AddActionToFrontOfQueueForEntity(drinker, failureSequence);
                StaticStates.Get <PlayerDecisionsState>().NumberOfDrinksServedInDrugStory = currentSuccesses;
            }
                             ));

            return(sequence);
        }
예제 #3
0
        public List <DrinkOrders> GetDrinkOrders()
        {
            try
            {
                List <DrinkOrders> drinkorders = drinkorders_db.Db_Get_All_DrinkOrders();
                return(drinkorders);
            }
            catch (Exception)
            {
                // something went wrong connecting to the database, so we will add a fake student to the list to make sure the rest of the application continues working!
                List <DrinkOrders> drinkorders = new List <DrinkOrders>();
                DrinkOrders        a           = new DrinkOrders();

                return(drinkorders);
            }
        }
예제 #4
0
        public void AddDrinkOrder()
        {
            if (!CanAddDrinkOrder)
            {
                return;                    // for safety
            }
            if (DrinkOrders.Count == 10)
            {
                DrinkOrders.Clear(); // Reset at 10 drinks of any kind
            }
            var drink = new DrinkOrder(SelectedBeverage);

            DrinkOrders.Add(drink);
            SelectedDrinkOrder = drink;
            SetInebriationState();
            ReadyForNewDrink();
        }
        private List <DrinkOrders> ReadTables(DataTable dataTable)
        {
            List <DrinkOrders> drinkorders = new List <DrinkOrders>();

            foreach (DataRow dr in dataTable.Rows)
            {
                DrinkOrders order = new DrinkOrders()
                {
                    DrinkName = (String)dr["DrinkName"],
                    StudentId = (int)dr["StudentId"],
                    Amount    = (int)dr["Amount"],
                    dateTime  = (DateTime)dr["DateTime"]
                };
                drinkorders.Add(order);
            }
            return(drinkorders);
        }
예제 #6
0
        private void SetInebriationState()
        {
            var state = InebriationStates.Sober;

            var alkyDrinkCount = DrinkOrders.Count(d => d.Beverage.HasAlcohol);

            if (alkyDrinkCount > 5)
            {
                state = InebriationStates.Drunk;
            }
            else if (alkyDrinkCount > 3)
            {
                state = InebriationStates.Woozy;
            }
            else if (alkyDrinkCount > 1)
            {
                state = InebriationStates.Tipsy;
            }

            InebriationState = state;
        }
예제 #7
0
        public static ActionSequence EllieAskForDrink(Entity ellie)
        {
            var incorrectDrinkConversation = new NoResponseConversation("This doesn't seem quite right. I'm sure you'll do better next time.", DialogueOutcome.Default);
            var correctDrinkConversation   = new NoResponseConversation("Mm, delicious!.", DialogueOutcome.Default);

            var favoriteDrinkActions = new ActionSequence("Favorite drink received.");

            favoriteDrinkActions.Add(new ConversationAction(new FavoriteDrinkConversation()));
            favoriteDrinkActions.Add(new UpdateMoodAction(Mood.Happy));

            var otherDrinkActions = new Dictionary <String, GameAction>()
            {
                { elliesFavoriteDrink, favoriteDrinkActions }
            };

            var sequence = new ActionSequence("Ellie ask for drink.");

            sequence.Add(DrinkOrders.GetRandomAlcoholicDrinkOrder(ellie, correctDrinkConversation: correctDrinkConversation, incorrectDrinkConversation: incorrectDrinkConversation, otherDrinkActions: otherDrinkActions));
            sequence.Add(CommonActions.GoToSeat());
            sequence.Add(CommonActions.SitDownLoop());
            return(sequence);
        }
예제 #8
0
    /// <summary>
    ///  Adds a new drink to rail if there's room, returns true if successful
    /// </summary>
    /// <param name="newOrder"></param>
    /// <returns></returns>
    public bool NewDrinkOrder(GameObject newOrder)
    {
        // if the list is not full
        if (isRailFull == false)
        {
            theRail.Add(newOrder);                                      // add the order to the rail
            DrinkOrders ticket = newOrder.GetComponent <DrinkOrders>(); // add the DrinkOrder Component
            ticket.onRail       = true;                                 // set the ticket to onRail
            ticket.railPosition = theRail.IndexOf(newOrder);            // Save the tickets rail position

            // Subscribe to rail change callback event
            if (railChangedCallback != null)
            {
                railChangedCallback.Invoke();
            }
            return(true);
        }
        else
        {
            Debug.Log("Rail Full");
            return(false);
        }
    }
예제 #9
0
파일: Table.cs 프로젝트: dvasilev89/SoftUni
 public decimal GetBill()
 {
     return(FoodOrders.Sum(x => x.Price) + DrinkOrders.Sum(x => x.Price) + Price);
 }
예제 #10
0
파일: Table.cs 프로젝트: dvasilev89/SoftUni
 public void OrderDrink(IDrink drink)
 {
     DrinkOrders.Add(drink);
 }
예제 #11
0
 public void Omzet(DrinkOrders drink)
 {
     //  omzet += afzet * drink.Price; /// ?? Price toevoegen aan database
 }
예제 #12
0
 public void Afzet(DrinkOrders drink)
 {
     afzet += drink.Amount;
 }