using System.Collections.Generic; using UnityEngine; using OctoCore.Localization; namespace Unheimlich.Features.Dialogue.Data { [CreateAssetMenu(fileName = "NewConversation", menuName = "Unheimlich/Dialogue/Conversation")] public class DialogueConversation : ScriptableObject { [Header("Speaker Information")] [Tooltip("Localized name of the speaker (common to all texts in this conversation)")] public OctoLocalizedTextData SpeakerName; [Header("Display Mode")] [Tooltip("Choose how to display dialogue text: World (3D space) or Screen (Canvas UI)")] public DialogueDisplayMode DisplayMode = DialogueDisplayMode.World; [Header("Dialogue Flow")] [Tooltip("Ordered list of dialogue nodes for this conversation")] public List DialogueNodes = new List(); public string GetLocalizedSpeakerName() { if (SpeakerName != null) return OctoLocalization.GetLocalizedText(SpeakerName); return string.Empty; } public DialogueNode GetFirstNode() { return DialogueNodes != null && DialogueNodes.Count > 0 ? DialogueNodes[0] : null; } } }