Example #1
0
    public ConversationResponseDisplay[] GetResponseDisplays(GameObject[] uiElements, ConversationAesthetic aesthetics)
    {
        ConversationResponseDisplay[] arr = new ConversationResponseDisplay[3];

        for (int i = 0; i < arr.Length; i++)
        {
            ResponseTier tier = (ResponseTier)i;
            arr[i] = this.CreateConversationResponseDisplay(uiElements[i], aesthetics, tier);
        }

        return(arr);
    }
    private IEnumerator TakeResponseFromConversation(KeyCode pressed)
    {
        responding = true;

        float distraction = keyMap.CalculateDistractionAmount(pressed);

        ResponseTier tier = keyMap.GetResponseTierForKey(pressed);

        int levelIndex = (int)tier;

        if (conversationResponseManager.IsActive(tier) && !this.conversationTracker.ResponseDialogueComplete)
        {
            DestroyHangingResponse();

            var    responseTaken = conversationResponseManager.GetDisplayForResponseTier(tier);
            string message       = responseTaken.DisplayMessage;

            if (message != string.Empty)
            {
                yield return(StartCoroutine(CreateConversationSnippetForResponseTaken(responseTaken, distraction)));
            }

            StartCoroutine(focusedViewDialogueHub.ChangeAppearanceWhenOverlapping());

            while (!playerResponseDraggedSuccess)
            {
                Debug.Log("Waiting for response to get dragged!");

                // run some other routines for animations

                yield return(new WaitForEndOfFrame());
            }

            focusedViewDialogueHub.ShrinkMostReceptPlayerResponse();

            BroadcastResponseSnippetSpawn();

            yield return(new WaitForSeconds(0.15f));

            yield return(StartCoroutine(ShowCustomerResponse(levelIndex, distraction)));
        }

        responding = false;
    }
 public void AddToActiveInConversation(ConversationResponseDisplay response, ResponseTier priorityIndex)
 {
     activeInConversation.AddOrReplaceKeyValue(priorityIndex, response);
 }
 public ConversationResponseDisplay GetDisplayForResponseTier(ResponseTier tier)
 {
     return(activeInConversation[tier]);
 }
 public bool IsActive(ResponseTier tier)
 {
     return(activeInConversation[tier].Active);
 }
Example #6
0
    public ConversationResponseDisplay CreateConversationResponseDisplay(GameObject obj, ConversationAesthetic aesthetic, ResponseTier priorityIndex)
    {
        ConversationResponseDisplay responseDisplay = new ConversationResponseDisplay(obj);

        responseDisplay.InitializeConversationResponseDisplayBubble(aesthetic);

        responseDisplayManager.AddToActiveInConversation(responseDisplay, priorityIndex);
        responseDisplay.SetActiveState(false);

        return(responseDisplay);
    }