From 7a81bce4a27c1b641d4a811becc3af16b6fda1d5 Mon Sep 17 00:00:00 2001 From: Andrey Boronnikov Date: Fri, 13 Feb 2026 14:54:30 +0300 Subject: [PATCH 1/2] Fix daily quest refresh and test quest factory creation --- .../Quests/Mechanics/QuestSystems/DailyQuestSystem.cs | 9 +++++++-- .../Quests/Tests/SpecialSubClasses/TestQuestFactory.cs | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) 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/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 +} From 15dce0a9a75a7dc094135ca07be98330c46ca140 Mon Sep 17 00:00:00 2001 From: Andrey Boronnikov Date: Fri, 13 Feb 2026 15:03:09 +0300 Subject: [PATCH 2/2] Implement missing TestQuestData serialization methods --- .../Tests/SpecialSubClasses/TestQuestData.cs | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) 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 +}