60 lines
1.7 KiB
C#
60 lines
1.7 KiB
C#
![]() |
using System;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
|
||
|
[Serializable]
|
||
|
public class NpcDialogueManager : MonoBehaviour
|
||
|
{
|
||
|
[SerializeField]
|
||
|
public List<DialogueStepModel> 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<Tuple<string, Action>> {
|
||
|
new Tuple<string, Action>("AcceptButton", CustomPanel),
|
||
|
new Tuple<string, Action>("RejectButton", QuestionPanel)
|
||
|
}));*//*
|
||
|
DialogueStep.SetActionAfterDialogueEnds(() => { });
|
||
|
|
||
|
DialogueStepModel dialogueStepModel = new DialogueStepModel(DialogueStep);
|
||
|
|
||
|
DialogueStepsList = new List<DialogueStepModel> { dialogueStepModel };
|
||
|
*/
|
||
|
|
||
|
BuildDialogue();
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Function to begin dialogue - will be invoked after user reaction from other script :)
|
||
|
/// </summary>
|
||
|
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;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Build each step of dialogue
|
||
|
/// </summary>
|
||
|
private void BuildDialogue()
|
||
|
{
|
||
|
foreach(var dialogueStep in DialogueStepsList)
|
||
|
{
|
||
|
dialogueStep.Build();
|
||
|
}
|
||
|
}
|
||
|
}
|