using System.Collections.Generic; using Core.Runtime; using Quest.Runtime; using Quests.Runtime; using UnityEngine; namespace Quests.Runtime._.Features.Quests { public class QuestInitializer : BaseMonobehaviour { void Awake() { var _ = QuestManager.Instance; QuestManager.Instance.QuestDatabase = _questFactoryDatabase; } void Start() { if (!FactExists>(SaveKeys.Active, out var _)) { SetFact>(SaveKeys.Active, new List(), FactPersistence.Persistent); } QuestManager.Instance.ActiveQuests = GetFact>(SaveKeys.Active); if (!FactExists>(SaveKeys.Completed, out var _)) { SetFact>(SaveKeys.Completed, new List(), FactPersistence.Persistent); } QuestManager.Instance.CompletedQuests = GetFact>(SaveKeys.Completed); if (!FactExists>>(SaveKeys.EventLogs, out var _)) { SetFact>>(SaveKeys.EventLogs, new Dictionary>(), FactPersistence.Persistent); } Invoke(nameof(NotifyLater), 0.1f); } void NotifyLater() { QuestManager.Instance.NotifyCompletedQuests(); } [SerializeField] QuestFactoryDatabase _questFactoryDatabase; } }