using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UnityEngine; [Serializable] public abstract class MultiDialogueData : IModelMapper { [NonSerialized] public string name; [NonSerialized] public string modelName; [SerializeField] public string SpeakerName; [SerializeField] public int CurrentDialogue; [SerializeField] public List> DialogueStepModelDataList = new List>(); #region NotImplemented /* * we dont want to map it here, we will mark fields in NpcDialogfeManager after each loading and fetching dialogue */ public T MapDataToObject(string prefarbAssetName) { throw new NotImplementedException(); } public T MapDataToObject() { throw new NotImplementedException(); } #endregion } [Serializable] public class MultiDialogueData : MultiDialogueData { public MultiDialogueData(MultiDialogue dialogue) { SpeakerName = dialogue.SpeakerName; CurrentDialogue = dialogue.CurrentDialogue; DialogueStepModelDataList.Clear(); foreach(IndexValuePair DialogueStepModelData in dialogue.Dialogues) { DialogueStepModelDataList.Add( new IndexValuePair( DialogueStepModelData.Key, new DialogueData(DialogueStepModelData.Value) ) ); } } }