public static GameAction OrderDrinkWithoutFailure(Entity entity, DrinkOrder drinkOrder, Conversation conversation, int orderTimeoutInMins = 20) { var orderDrink = new ParallelUntilAllCompleteAction("OrderDrink"); orderDrink.Add(new ReportSuccessDecorator(new ConversationAction(conversation))); var waitForDrink = new ConditionalActionSequence("WaitForDrink"); waitForDrink.Add(new StartDrinkOrderAction(drinkOrder)); waitForDrink.Add(CommonActions.WaitForDrinkWithoutFailure(entity, drinkOrder, orderTimeoutInMins)); orderDrink.Add(waitForDrink); return(orderDrink); }
public static ActionSequence OrderDrink(Entity entity, DrinkOrder drinkOrder, Conversation conversation, Conversation correctDrinkConversation = null, Conversation incorrectDrinkConversation = null, Dictionary <String, GameAction> otherDrinkActions = null, int orderTimeoutInMins = 40) { var wrapper = new ActionSequence("DrinkOrderThenClear"); var orderDrink = new ParallelUntilAllCompleteAction("OrderDrink"); orderDrink.Add(new ReportSuccessDecorator(new ConversationAction(conversation))); var waitForDrink = new ConditionalActionSequence("WaitForDrink"); waitForDrink.Add(new StartDrinkOrderAction(drinkOrder)); waitForDrink.Add(CommonActions.WaitForDrink(entity, drinkOrder.OrderedItem, drinkOrder, orderTimeoutInMins, correctDrinkConversation: correctDrinkConversation, incorrectDrinkConversation: incorrectDrinkConversation, otherDrinkActions: otherDrinkActions)); orderDrink.Add(waitForDrink); wrapper.Add(orderDrink); wrapper.Add(new ClearConversationAction()); return(wrapper); }