diff --git a/RedCatEngineUnityProject/Packages/Quests/Mechanics/QuestSystems/DailyQuestSystem.cs b/RedCatEngineUnityProject/Packages/Quests/Mechanics/QuestSystems/DailyQuestSystem.cs index 1078448..0df89d6 100644 --- a/RedCatEngineUnityProject/Packages/Quests/Mechanics/QuestSystems/DailyQuestSystem.cs +++ b/RedCatEngineUnityProject/Packages/Quests/Mechanics/QuestSystems/DailyQuestSystem.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using RedCatEngine.Quests.Mechanics.Data; using RedCatEngine.Quests.Mechanics.Factories; using RedCatEngine.Quests.Mechanics.Quests; @@ -19,6 +20,7 @@ int dailyTimeLiveSeconds { _countQuests = countQuests; _dailyTimeLiveSeconds = dailyTimeLiveSeconds; + LoadData(QuestsDataContainer.Empty); } protected override void DoAfterLoadData() @@ -48,8 +50,11 @@ Func PredicateForRemoveQuests() var toRemove = ActiveQuests.Where(PredicateForRemoveQuests()).ToArray(); foreach (var quest in toRemove) { - quest.Disable(); quest.ChangeQuestStateEvent -= OnChangeQuestState; + + if (quest.QuestState == QuestState.InProgress) + quest.Disable(); + ActiveQuests.Remove(quest); } @@ -79,4 +84,4 @@ private void AddNewQuest() ActiveQuests.Add(newQuest); } } -} \ No newline at end of file +} diff --git a/RedCatEngineUnityProject/Packages/Quests/Tests/SpecialSubClasses/TestQuestData.cs b/RedCatEngineUnityProject/Packages/Quests/Tests/SpecialSubClasses/TestQuestData.cs index de0d914..c2215e7 100644 --- a/RedCatEngineUnityProject/Packages/Quests/Tests/SpecialSubClasses/TestQuestData.cs +++ b/RedCatEngineUnityProject/Packages/Quests/Tests/SpecialSubClasses/TestQuestData.cs @@ -9,9 +9,19 @@ namespace RedCatEngine.Quests.Tests.SpecialSubClasses [Serializable] public class TestQuestData : IQuestData { - public ConfigID Config => ConfigID.Invalid; - public DateTime CreateTime { get; } - public QuestState QuestState { get; } + private ConfigID _config = ConfigID.Invalid; + private DateTime _createTime = DateTime.UtcNow; + private QuestState _questState = QuestState.InProgress; + + public ConfigID Config + => _config; + + public DateTime CreateTime + => _createTime; + + public QuestState QuestState + => _questState; + public ConfigID GetConfig() { return Config; @@ -19,17 +29,17 @@ public ConfigID GetConfig() public DateTime GetCreateTime() { - throw new NotImplementedException(); + return CreateTime; } public QuestState GetQuestState() { - throw new NotImplementedException(); + return QuestState; } public void SetQuestState(QuestState newQuestState) { - throw new NotImplementedException(); + _questState = newQuestState; } public void ConstructSerialization( @@ -38,7 +48,9 @@ public void ConstructSerialization( QuestState questState ) { - throw new NotImplementedException(); + _config = config; + _createTime = createTime; + _questState = questState; } } -} \ No newline at end of file +} diff --git a/RedCatEngineUnityProject/Packages/Quests/Tests/SpecialSubClasses/TestQuestFactory.cs b/RedCatEngineUnityProject/Packages/Quests/Tests/SpecialSubClasses/TestQuestFactory.cs index 6160784..5db5aef 100644 --- a/RedCatEngineUnityProject/Packages/Quests/Tests/SpecialSubClasses/TestQuestFactory.cs +++ b/RedCatEngineUnityProject/Packages/Quests/Tests/SpecialSubClasses/TestQuestFactory.cs @@ -19,7 +19,7 @@ public IQuest MakeFromConfig(ConfigID questId) public IQuest MakeNewQuest(List currentActiveQuests) { - throw new System.NotImplementedException(); + return MakeNewQuest(); } public IQuest LoadFrom(IQuestData saveData) @@ -48,4 +48,4 @@ public IQuest MakeNewQuest() return result; } } -} \ No newline at end of file +}