Beispiel #1
0
    // Controls dialogue that happens outside of battle.
    public void DialogueEventOutsideBattle()
    {
        dialogueAnimator = dialogueContainer.GetComponent <Animator>();
        dialogueContainer.SetActive(true);

        if (!dialogueInitialization)
        {
            startTime              = Time.time;
            endAnimCheck           = dialogueContainer.GetComponent <CheckForAnimationFinish>();
            dialogueInitialization = true;
        }

        if (trackDialogue < gameLoop.dialogueInstance.allDialogueForEvent.Length)
        {
            switch (gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue].animationIntroTrigger)
            {
            case (DialogueAnimatorChoice.AnimateInFromLeft):
                if (trackDialogue == 0)
                {
                    dialogueAnimator.SetBool("EnterLeft", true);
                }
                else if (gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue - 1].animationIntroTrigger == DialogueAnimatorChoice.AnimateInFromRight)
                {
                    dialogueAnimator.SetBool("EnterRight", false);
                    dialogueAnimator.SetBool("ExitLeft", false);
                    dialogueAnimator.SetBool("ExitRight", true);
                    dialogueAnimator.SetBool("EnterLeft", true);
                }
                break;

            case (DialogueAnimatorChoice.AnimateInFromRight):
                if (trackDialogue == 0)
                {
                    dialogueAnimator.SetBool("EnterRight", true);
                }
                else if (gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue - 1].animationIntroTrigger == DialogueAnimatorChoice.AnimateInFromLeft)
                {
                    dialogueAnimator.SetBool("EnterRight", true);
                    dialogueAnimator.SetBool("ExitLeft", true);
                    dialogueAnimator.SetBool("ExitRight", false);
                    dialogueAnimator.SetBool("EnterLeft", false);
                }
                break;
            }

            if (trackDialogue == 0)
            {
                speakerName.text = gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue].speakerName;
                timeStamp.text   = gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue].timestamp;
                bodyText.text    = gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue].textToSay;
                gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue].characterImage.SetActive(true);
                endAnimCheck.moveIsFinished = false;
            }
            else
            {
                if (endAnimCheck.moveIsFinished)
                {
                    speakerName.text = gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue].speakerName;
                    timeStamp.text   = gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue].timestamp;
                    bodyText.text    = gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue].textToSay;
                    gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue - 1].characterImage.SetActive(false);
                    gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue].characterImage.SetActive(true);
                    endAnimCheck.moveIsFinished = false;
                }
            }

            if (Input.GetKeyDown("space") && gameLoop.dialogueInstance.stopMovement)
            {
                trackDialogue++;
            }
            else if (Time.time - startTime >= gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue].timeToSay && !gameLoop.dialogueInstance.stopMovement)
            {
                startTime = Time.time;
                trackDialogue++;
            }
        }
        else
        {
            switch (gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue - 1].animationIntroTrigger)
            {
            case (DialogueAnimatorChoice.AnimateInFromLeft):
                dialogueAnimator.SetBool("ExitLeft", true);
                break;

            case (DialogueAnimatorChoice.AnimateInFromRight):
                dialogueAnimator.SetBool("ExitRight", true);
                break;
            }
            if (endAnimCheck.moveIsFinished)
            {
                endAnimCheck.moveIsFinished = false;
                dialogueAnimator.SetBool("EnterRight", false);
                dialogueAnimator.SetBool("ExitLeft", false);
                dialogueAnimator.SetBool("ExitRight", false);
                dialogueAnimator.SetBool("EnterLeft", false);
                gameLoop.dialogueInstance.allDialogueForEvent[trackDialogue - 1].characterImage.SetActive(false);
                dialogueContainer.SetActive(false);
                trackDialogue             = 0;
                dialogueInitialization    = false;
                gameLoop.dialogueInstance = null;
                gameLoop.isDialogue       = false;
                gameLoop.isRunning        = true;
            }
        }
    }
Beispiel #2
0
    public void DialogueEventInsideBattle(DialogueBattleClass dialogueData)
    {
        dialogueAnimator = dialogueContainer.GetComponent <Animator>();
        dialogueContainer.SetActive(true);

        if (!dialogueInitialization)
        {
            startTime              = Time.time;
            endAnimCheck           = dialogueContainer.GetComponent <CheckForAnimationFinish>();
            dialogueInitialization = true;
        }

        if (trackDialogue < dialogueData.allDialogueForEvent.Length)
        {
            switch (dialogueData.allDialogueForEvent[trackDialogue].animationIntroTrigger)
            {
            case (DialogueAnimatorChoice.AnimateInFromLeft):
                if (trackDialogue == 0)
                {
                    dialogueAnimator.SetBool("EnterLeft", true);
                }
                else if (dialogueData.allDialogueForEvent[trackDialogue - 1].animationIntroTrigger == DialogueAnimatorChoice.AnimateInFromRight)
                {
                    dialogueAnimator.SetBool("EnterRight", false);
                    dialogueAnimator.SetBool("ExitLeft", false);
                    dialogueAnimator.SetBool("ExitRight", true);
                    dialogueAnimator.SetBool("EnterLeft", true);
                }
                break;

            case (DialogueAnimatorChoice.AnimateInFromRight):
                if (trackDialogue == 0)
                {
                    dialogueAnimator.SetBool("EnterRight", true);
                }
                else if (dialogueData.allDialogueForEvent[trackDialogue - 1].animationIntroTrigger == DialogueAnimatorChoice.AnimateInFromLeft)
                {
                    dialogueAnimator.SetBool("EnterRight", true);
                    dialogueAnimator.SetBool("ExitLeft", true);
                    dialogueAnimator.SetBool("ExitRight", false);
                    dialogueAnimator.SetBool("EnterLeft", false);
                }
                break;
            }

            if (trackDialogue == 0)
            {
                speakerName.text = dialogueData.allDialogueForEvent[trackDialogue].speakerName;
                timeStamp.text   = dialogueData.allDialogueForEvent[trackDialogue].timestamp;
                bodyText.text    = dialogueData.allDialogueForEvent[trackDialogue].textToSay;
                dialogueData.allDialogueForEvent[trackDialogue].characterImage.SetActive(true);
                endAnimCheck.moveIsFinished = false;
            }
            else
            {
                if (endAnimCheck.moveIsFinished)
                {
                    speakerName.text = dialogueData.allDialogueForEvent[trackDialogue].speakerName;
                    timeStamp.text   = dialogueData.allDialogueForEvent[trackDialogue].timestamp;
                    bodyText.text    = dialogueData.allDialogueForEvent[trackDialogue].textToSay;
                    dialogueData.allDialogueForEvent[trackDialogue - 1].characterImage.SetActive(false);
                    dialogueData.allDialogueForEvent[trackDialogue].characterImage.SetActive(true);
                    endAnimCheck.moveIsFinished = false;
                }
            }

            if (Input.GetKeyDown("space"))
            {
                trackDialogue++;
            }

            /*else if (Time.time - startTime >= dialogueData.allDialogueForEvent[trackDialogue].timeToSay)
             * {
             *  startTime = Time.time;
             *  trackDialogue++;
             * }*/
        }
        else
        {
            switch (dialogueData.allDialogueForEvent[trackDialogue - 1].animationIntroTrigger)
            {
            case (DialogueAnimatorChoice.AnimateInFromLeft):
                dialogueAnimator.SetBool("ExitLeft", true);
                break;

            case (DialogueAnimatorChoice.AnimateInFromRight):
                dialogueAnimator.SetBool("ExitRight", true);
                break;
            }
            if (endAnimCheck.moveIsFinished)
            {
                endAnimCheck.moveIsFinished = false;
                dialogueAnimator.SetBool("EnterRight", false);
                dialogueAnimator.SetBool("ExitLeft", false);
                dialogueAnimator.SetBool("ExitRight", false);
                dialogueAnimator.SetBool("EnterLeft", false);
                dialogueData.allDialogueForEvent[trackDialogue - 1].characterImage.SetActive(false);
                dialogueContainer.SetActive(false);
                trackDialogue          = 0;
                dialogueInitialization = false;
                battleSystem.dialogueConditionIsMet = false;
                dialogueData.thisEventIsDone        = true;
                //gameLoop.dialogueInstance = null;
                //gameLoop.isDialogue = false;
                //gameLoop.isRunning = true;
            }
        }
    }