using System; using System.Collections; using System.Collections.Generic; using UnityEngine; [Serializable] public class NpcDialogueManager : MonoBehaviour { [SerializeField] public List DialogueStepsList; public void Start() { /* CODE DIALOGUE DECLARATION EXAMPLE DialogueController DialogueStep = new DialogueController(); DialogueStep.AddSentence(new DialogueModel("lorem ipsum")); *//* di.AddSentence(new QuestionDialogueModel("tolore dolore?", new List> { new Tuple("AcceptButton", CustomPanel), new Tuple("RejectButton", QuestionPanel) }));*//* DialogueStep.SetActionAfterDialogueEnds(() => { }); DialogueStepModel dialogueStepModel = new DialogueStepModel(DialogueStep); DialogueStepsList = new List { dialogueStepModel }; */ BuildDialogue(); } /// /// Function to begin dialogue - will be invoked after user reaction from other script :) /// public void ShowStep() { // 1. Find first yet undisplayed for player anbd show foreach(var DialogueStep in DialogueStepsList) { if(!DialogueStep.WasDisplayed) { DialogueStep.DialogueController.Show(DialogueStep.DialogueController.listOfDialogue.Dequeue()); break; } } } /// /// Build each step of dialogue /// private void BuildDialogue() { foreach(var dialogueStep in DialogueStepsList) { dialogueStep.Build(); } } }