using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UnityEngine; [Serializable] public abstract class DialogueData : IModelMapper { [SerializeField] public int CurrentStep; [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 DialogueData : DialogueData { /// /// build Data model based on Object /// /// public DialogueData(Dialogue dialogue) { CurrentStep = dialogue.CurrentStep; DialogueStepModelDataList.Clear(); foreach(DialogueStepModel dialogueStepModelData in dialogue.DialogueSteps) { /* * pass WasDisplayed value from model to data representative class */ DialogueStepModelDataList.Add(new DialogueStepData(dialogueStepModelData.WasDisplayed)); } } }