Exemple #1
0
 /// <summary>
 /// Sets up the currently queued node to be acted on
 /// </summary>
 private void ProcessNewNode()
 {
     if (toDisplay.Count > 0)
     {
         DialogueNode next = toDisplay[0];
         if (next is DialogueLine)
         {
             textAnimator.Enqueue(next as DialogueLine);
             animatingText = true;
         }
     }
 }
 /// <summary>
 /// Sets up the currently queued node to be acted on
 /// </summary>
 private void ProcessNewNode()
 {
     if (toDisplay.Count > 0 && !paused)
     {
         DialogueNode next = toDisplay[0];
         if (next is DialogueLine)
         {
             textAnimator.Enqueue(next as DialogueLine);
             animatingText = true;
         }
         else if (next is DialogueSpriteSwitch)
         {
             DialogueSpriteSwitch trueNext = next as DialogueSpriteSwitch;
             trueNext.target.sprite = GameStorage.sprites[trueNext.newTexture];
             ToNextNode();
         }
         else if (next is DialogueWaitForButton)
         {
             waitingForKey = (next as DialogueWaitForButton).key;
         }
         else if (next is DialogueShowObject)
         {
             (next as DialogueShowObject).target.SetActive(true);
             ToNextNode();
         }
         else if (next is DialogueHideObject)
         {
             (next as DialogueHideObject).target.SetActive(false);
             ToNextNode();
         }
         else if (next is DialogueMoveObject)
         {
             DialogueMoveObject trueNext = next as DialogueMoveObject;
             trueNext.target.transform.position = trueNext.position;
             ToNextNode();
         }
         else if (next is DialoguePause)
         {
             StartCoroutine(PauseDialogue((next as DialoguePause).seconds));
         }
     }
 }
    /// <summary>
    /// Sets up the currently queued node to be acted on
    /// </summary>
    private void ProcessNewNode()
    {
        if (toDisplay.Count > 0 && !paused)
        {
            DialogueNode next = toDisplay[0];
            switch (next)
            {
            case DialogueLine line:
                textAnimator.Enqueue(line);
                animatingText = true;
                break;

            case DialogueConditionalBranch condBranch:
                ToNextNode();
                break;

            //Also handles DialogueLockedChoiceBranch
            case DialogueChoiceBranch choiceBranch:
                List <string> options = choiceBranch.GetOptions();
                foreach (string option in options)
                {
                    Button optionButton = Instantiate(branchButtonPrefab, new Vector3(), Quaternion.Euler(Vector3.zero), branchButtonContainer.transform);
                    string tempString   = string.Copy(option);
                    optionButton.GetComponentInChildren <Text>().text = tempString;
                    optionButton.name = tempString;
                    optionButton.onClick.AddListener(delegate { SelectBranch(tempString); });
                    Cursor.lockState = CursorLockMode.None;
                    Cursor.visible   = true;
                }
                break;

            case DialoguePause pause:
                StartCoroutine(PauseDialogue(pause.seconds));
                break;

            case DialogueVisibleOther objVis:
                objVis.target.SetActive(objVis.newVisibility);
                ToNextNode();
                break;

            case DialogueVisibleSelf objVis:
                gameObject.SetActive(objVis.newVisibility);
                ToNextNode();
                break;

            case DialogueSpriteSwitch spriteSwitch:
                //spriteSwitch.target.sprite = GameStorage.sprites[spriteSwitch.newTexture];
                ToNextNode();
                break;

            case DialogueAcceptQuest giveQuest:
                QuestManager.Instance.AcceptQuest(giveQuest.questID);
                ToNextNode();
                break;

            case DialogueSubmitQuest submitQuest:
                QuestManager.Instance.SubmitQuest(submitQuest.questID);
                ToNextNode();
                break;

            case DialogueQuestReward questReward:
                ToNextNode();
                break;

            case DialogueTriggerBattle battleTrigger:
                ToNextNode();
                break;

            case DialogueCanPlayerMove playerMove:
                GameStorage.mapPlayer.CanMove = playerMove.canMove;
                ToNextNode();
                break;
            }
        }
    }