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); }
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); }