Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
 private void ApplyValuesToConvoSnippet(ConversationSnippet convoSnippet, bool response)
 {
     convoSnippet.UpdateChildIndex();
     convoSnippet.SetIsResponse(response);
     convoSnippet.SetConversationUi(conversationUi);
     convoSnippet.ApplyConversationAesthetic(conversationUi.currentConversationAesthetic);
 }
Exemplo n.º 3
0
    private void OnDialogueOutroExitFocusedView(object source, EventArgs args)
    {
        ConversationSnippet.DestroyAllCustomerResponseSnippets(this);

        StartCoroutine(ExitFocusedCraftingModeAfterTimeDelay(1f));

        CameraManager.ChangeViewTo();
    }
Exemplo n.º 4
0
 private void DestroyHangingResponse()
 {
     if (hangingNpcResponse != null)
     {
         responseTimeTracker.StopTracking();
         ConversationSnippet.DestroyAllCustomerResponseSnippets(this);
         hangingNpcResponse = null;
     }
 }
Exemplo n.º 5
0
    private ConversationSnippet GenerateConversationSnippet(bool response)
    {
        GameObject          snippet      = GameObject.Instantiate(conversationUi.conversationSnippetPrefab, conversationUi.transform);
        ConversationSnippet convoSnippet = snippet.GetComponent <ConversationSnippet>();

        ApplyValuesToConvoSnippet(convoSnippet, response);

        return(convoSnippet);
    }
Exemplo n.º 6
0
    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;
    }
Exemplo n.º 7
0
    private void OnRecipeCompleteRunOutro()
    {
        ConversationSnippet.DestroyAllSnippets(this);

        var outro = conversationTracker.GetOutroDialogue();

        if (!outro.ValidArray())
        {
            StartCoroutine(RunCustomerDialogueOutro(outro));
        }
    }
Exemplo n.º 8
0
    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);
    }
Exemplo n.º 9
0
    public void StopTracking()
    {
        if (runningInactivityCoroutine != null)
        {
            lastActiveSnippet.StopCoroutine(runningInactivityCoroutine);
            runningInactivityCoroutine = null;
        }

        lastActiveSnippet = null;
        isInactive        = false;
        timeTracker       = 0;
    }
Exemplo n.º 10
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);
    }
Exemplo n.º 11
0
    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);
    }
Exemplo n.º 12
0
    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));
    }
Exemplo n.º 13
0
 public void StartTrackingSnippet(ConversationSnippet snippetToTrack)
 {
     lastActiveSnippet = snippetToTrack;
     timeTracker       = 0;
 }