private QuestData HandlingQuestData(QuestSaveData questData) { TalkerData questGiver = DialogueManager.Instance.Talkers[questData.originalGiverID]; if (!questGiver) { return(null); } QuestData quest = questGiver.questInstances.Find(x => x.Model.ID == questData.questID); if (!quest) { return(null); } AcceptQuest(quest); foreach (ObjectiveSaveData od in questData.objectiveDatas) { foreach (ObjectiveData o in quest.Objectives) { if (o.ID == od.objectiveID) { o.CurrentAmount = od.currentAmount; break; } } } return(quest); }
public void Init() { if (!talkerRoot) { talkerRoot = new GameObject("Talkers").transform; } Talkers.Clear(); scenedTalkers.Clear(); foreach (var ti in Resources.LoadAll <TalkerInformation>("Configuration").Where(x => x.IsValid && x.Enable)) { TalkerData data = new TalkerData(ti); if (ti.Scene == ZetanUtility.ActiveScene.name) { Talker talker = ti.Prefab.Instantiate(talkerRoot).GetComponent <Talker>(); talker.Init(data); } Talkers.Add(ti.ID, data); if (scenedTalkers.TryGetValue(ti.Scene, out var talkers)) { talkers.Add(data); } else { scenedTalkers.Add(ti.Scene, new List <TalkerData>() { data }); } } }
public ShopData(TalkerData vendor, ShopInformation info) { Vendor = vendor; Info = info; foreach (MerchandiseInfo mi in Info.Commodities) { Commodities.Add(new GoodsData(this, mi, GoodsType.SellToPlayer)); } foreach (MerchandiseInfo mi in Info.Acquisitions) { Acquisitions.Add(new GoodsData(this, mi, GoodsType.BuyFromPlayer)); } }
public void Init(TalkerData data) { base.Init(data); transform.position = GetData <TalkerData>().GetInfo <NPCInformation>().Position; flagAgent = ObjectPool.Get(MiscSettings.Instance.QuestFlagsPrefab, UIManager.Instance.QuestFlagParent); flagAgent.Init(this); if (iconHolder) { iconHolder.textToDisplay = GetMapIconName(); iconHolder.iconEvents.RemoveAllListner(); iconHolder.iconEvents.onFingerClick.AddListener(ShowNameAtMousePosition); iconHolder.iconEvents.onMouseEnter.AddListener(ShowNameAtMousePosition); iconHolder.iconEvents.onMouseExit.AddListener(HideNameImmediately); } }
public void Init() { if (!info) { return; } Data = new TalkerData(); Data.info = Info; if (Info.IsQuestGiver) { Data.InitQuest(info.QuestsStored); Debug.Log("任务-" + TalkerName + "---" + Data.questInstances.Count); } }
public void Init() { if (!GameManager.Talkers.ContainsKey(TalkerID)) { GameManager.Talkers.Add(TalkerID, this); } else if (!GameManager.Talkers[TalkerID] || !GameManager.Talkers[TalkerID].gameObject) { GameManager.Talkers.Remove(TalkerID); GameManager.Talkers.Add(TalkerID, this); } else { Destroy(gameObject); } GameManager.TalkerDatas.TryGetValue(TalkerID, out TalkerData dataFound); if (!dataFound) { Data = new TalkerData(); if (Info.IsVendor) { Data.shop = Instantiate(Info.Shop); Data.shop.Init(); } else if (Info.IsWarehouseAgent) { Data.warehouse = new Warehouse(Info.Warehouse.size.Max); } Data.info = Info; Data.InitQuest(Info.QuestsStored); GameManager.TalkerDatas.Add(TalkerID, Data); } else { Data = dataFound; } Data.currentScene = UnityEngine.SceneManagement.SceneManager.GetActiveScene().name; Data.currentPosition = transform.position; if (Info.IsVendor && !ShopManager.Vendors.Contains(Data)) { ShopManager.Vendors.Add(Data); } flagAgent = ObjectPool.Get(QuestManager.Instance.QuestFlagsPrefab.gameObject, UIManager.Instance.QuestFlagParent).GetComponent <QuestFlag>(); flagAgent.Init(this); }
public override void SetData(CharacterData value) { data = (TalkerData)value; }