private IEnumerator ShowCustomerResponse(int level, float distraction) { this.conversationTracker.AdvanceDialogueWithQuality(level); CraftingManager.IncreaseDistraction(distraction); int quality = this.conversationTracker.Quality; yield return(new WaitForSeconds(0.15f)); playerResponseDraggedSuccess = false; focusedViewDialogueHub.SetMostRecentPlayerResponse(null); yield return(new WaitForSeconds(0.25f)); string[] getLines = this.conversationTracker.GetDisplayLinesAtDialogueIndex(quality); yield return(StartCoroutine(ReadMultiLineConversationSnippet(getLines))); yield return(new WaitWhile(() => conversationUiBusy)); yield return(new WaitForSeconds(0.15f)); conversationResponseManager.SetActiveInConversation(this.conversationTracker.GetPlayerDialogueChoices()); if (this.conversationTracker.ResponseDialogueComplete) { ConversationSnippet.DestroyAllSnippets(this); } }
private void ApplyValuesToConvoSnippet(ConversationSnippet convoSnippet, bool response) { convoSnippet.UpdateChildIndex(); convoSnippet.SetIsResponse(response); convoSnippet.SetConversationUi(conversationUi); convoSnippet.ApplyConversationAesthetic(conversationUi.currentConversationAesthetic); }
private void OnDialogueOutroExitFocusedView(object source, EventArgs args) { ConversationSnippet.DestroyAllCustomerResponseSnippets(this); StartCoroutine(ExitFocusedCraftingModeAfterTimeDelay(1f)); CameraManager.ChangeViewTo(); }
private void DestroyHangingResponse() { if (hangingNpcResponse != null) { responseTimeTracker.StopTracking(); ConversationSnippet.DestroyAllCustomerResponseSnippets(this); hangingNpcResponse = null; } }
private ConversationSnippet GenerateConversationSnippet(bool response) { GameObject snippet = GameObject.Instantiate(conversationUi.conversationSnippetPrefab, conversationUi.transform); ConversationSnippet convoSnippet = snippet.GetComponent <ConversationSnippet>(); ApplyValuesToConvoSnippet(convoSnippet, response); return(convoSnippet); }
private IEnumerator ReadMultiLineConversationSnippet(string[] lines) { if (!lines.CollectionIsNotNullOrEmpty()) { yield return(null); } responseEnabled = false; conversationUiBusy = true; int tracker = 0; int amount = lines.Length; yield return(new WaitForSeconds(0.5f)); Vector2 spawnPoint = CraftingManager.FocusedOnCrafting ? focusedViewDialogueHub.focusedConversationSnippetSpawnPoint : conversationSnippetSpawnPoint; if (tracker < amount) { string snipLine = lines[tracker]; ConversationSnippet active = snippetFactory.CreateNpcSnippet(snipLine, spawnPoint); BroadcastCustomerSnippetSpawn(); while (tracker < amount) { yield return(new WaitWhile(() => active.Typing)); yield return(new WaitForSeconds(0.15f)); try { active = snippetFactory.CreateNpcSnippet(lines[tracker + 1], spawnPoint); BroadcastCustomerSnippetSpawn(); hangingNpcResponse = active; responseTimeTracker.StartTrackingSnippet(hangingNpcResponse); tracker++; } catch (IndexOutOfRangeException) { break; } } } responseEnabled = true; conversationUiBusy = false; }
private void OnRecipeCompleteRunOutro() { ConversationSnippet.DestroyAllSnippets(this); var outro = conversationTracker.GetOutroDialogue(); if (!outro.ValidArray()) { StartCoroutine(RunCustomerDialogueOutro(outro)); } }
private ConversationSnippet GetSnippetAtPosition(string message, bool response, Vector2 position) { ConversationSnippet convoSnippet = this.GenerateConversationSnippet(response); bool scaleDown = CraftingManager.FocusedOnCrafting && !response; convoSnippet.InitializeSnippetTransform(position, scaleDown); convoSnippet.ReadLine(message, 0.07f); return(convoSnippet); }
public void StopTracking() { if (runningInactivityCoroutine != null) { lastActiveSnippet.StopCoroutine(runningInactivityCoroutine); runningInactivityCoroutine = null; } lastActiveSnippet = null; isInactive = false; timeTracker = 0; }
internal static Conversation textFileToConversation(string conversationId) { string[] textLines; if (textFile != null) { // instatiate entities snippets = new List <ConversationSnippet>(); conversationFound = false; snippetId = 0; // convert CSV file to text lines textLines = conversationTextFileToStringArray(textFile); // convert text lines to conversation foreach (string sLine in textLines) { string[] tableRow = conversationSnippetTextLineToStringArry(sLine); // extract conversation snippets from CSV file if (conversationId == tableRow[0]) { if (!conversationFound) { conversationFound = true; } // prepare next snippet snippet = new ConversationSnippet(); snippet.id = snippetId; snippet.text = tableRow[2]; snippet.talkerName = tableRow[1]; snippet.vocals = Resources.Load <AudioClip>("_TextBoxContent/vocals/" + conversationId + "/" + snippet.id); snippet.image = Resources.Load <Sprite>("_TextBoxContent/images/" + conversationId + "/" + snippet.id); snippets.Add(snippet); snippetId++; } else if (conversationFound) { break; } } // wrap up snippets to one conversation return(new Conversation(conversationId, snippets.ToArray())); } Debug.LogWarning("File is null"); return(null); }
public ConversationSnippet CreatePlayerSnippetFromResponseDisplay(ConversationResponseDisplay response) { Transform parent = response.gameObject.transform.parent; GameObject duplicated = GameObject.Instantiate(response.gameObject, parent); duplicated.name = "New Snippet"; ConversationSnippet convoSnippet = duplicated.AddComponent <ConversationSnippet>(); convoSnippet.InitializeSnippetFromBubbleDisplay(response); convoSnippet.transform.SetParent(conversationUi.transform); ApplyValuesToConvoSnippet(convoSnippet, true); return(convoSnippet); }
private IEnumerator CreateConversationSnippetForResponseTaken(ConversationResponseDisplay responseTaken, float distraction) { conversationResponseManager.SetAllInactive(); ConversationSnippet snippet = snippetFactory.CreatePlayerSnippetFromResponseDisplay(responseTaken); yield return(new WaitWhile(() => !CraftingManager.FocusedOnCrafting && CraftingManager.CraftingUiBusy)); yield return(new WaitForSeconds(0.05f)); snippet.GrowToFullScale(0.1f); snippet.ApplyLocalJumpAndJitter(Vector3.up); snippet.SetDragWeight(distraction); focusedViewDialogueHub.SetMostRecentPlayerResponse(snippet); yield return(new WaitWhile(() => snippet.Typing)); yield return(new WaitForSeconds(0.15f)); }
public void StartTrackingSnippet(ConversationSnippet snippetToTrack) { lastActiveSnippet = snippetToTrack; timeTracker = 0; }