using UnityEngine;

public class Storyline : MonoBehaviour {
    public Node currentNode;

    
    public void ApplyTransition(int count) {
        currentNode = currentNode.transitions[count].target;
        UpdateUi();
    }

    public void UpdateUi() {
        var dialogueBox = GetComponent<DialogueBox>();
        dialogueBox.SetActor(currentNode.actorName);
        dialogueBox.SetText(currentNode.dialogueText);
        dialogueBox.SetTransitions(currentNode.transitions);
    }


    public class Node {
        public readonly string actorName;
        public readonly string dialogueText;
        public readonly Transition[] transitions;

        public Node(string actor, string dialogue) {
            actorName = actor;
            dialogueText = dialogue;
        }

        public Node(string actor, string dialogue, Transition[] transitions) : this(actor, dialogue) {
            this.transitions = transitions;
        }
    }

    
    public class Transition {
        public readonly string transitionText;
        public readonly Node target;

        public Transition(string text, Node target) {
            transitionText = text;
            this.target = target;
        }
    }
}