From a9a32429556df290f8d20050dbd819ec63c8d4ac Mon Sep 17 00:00:00 2001 From: yeziuku <53083103+yeziuku@users.noreply.github.com> Date: Sat, 2 May 2026 16:31:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B4=BB=E5=8A=A8=E6=9C=AA?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E9=A2=86=E5=A5=96=E7=94=A8=E6=88=B7=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A2=86=E5=A5=96=E7=AA=97=E5=8F=A3=E6=9C=9F?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E7=8A=B6=E6=80=81=E6=9C=BA=EF=BC=9B?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=A1=86=E6=9E=B6=E7=89=88=E6=9C=AC=E5=8F=B7?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=96=B9=E6=B3=95=20(#156)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Entity/Explore/Activity.cs | 9 +++++++-- .../Common/JsonConverter/ActivityConverter.cs | 9 +++++++++ Library/Constant/ConstantSet.cs | 1 + Library/Constant/FunGameInfo.cs | 18 ++++++++++-------- Library/Constant/StateEnum.cs | 1 + 5 files changed, 28 insertions(+), 10 deletions(-) diff --git a/Entity/Explore/Activity.cs b/Entity/Explore/Activity.cs index 000a6b9..fdfbaec 100644 --- a/Entity/Explore/Activity.cs +++ b/Entity/Explore/Activity.cs @@ -58,7 +58,7 @@ namespace Milimoe.FunGame.Core.Entity DateTime now = DateTime.Now; DateTime? upComingTime = StartTime?.AddHours(-16); - if (Predecessor != -1 && PredecessorStatus != ActivityState.Ended) + if (Predecessor != -1 && PredecessorStatus != ActivityState.Ended && PredecessorStatus != ActivityState.ClaimPeriod) { // 如果有前置活动且前置活动未结束,则当前活动状态为未来 newState = ActivityState.Future; @@ -83,6 +83,11 @@ namespace Milimoe.FunGame.Core.Entity newState = ActivityState.Ended; } + if (newState != ActivityState.Ended && Quests.All(q => q.Status == QuestState.Completed)) + { + newState = ActivityState.ClaimPeriod; + } + if (Status != newState) { Status = newState; @@ -179,7 +184,7 @@ namespace Milimoe.FunGame.Core.Entity public string GetTimeString(bool full = true) { - if (Predecessor != -1 && PredecessorStatus != ActivityState.Ended) + if (Predecessor != -1 && PredecessorStatus != ActivityState.Ended && PredecessorStatus != ActivityState.ClaimPeriod) { return $"在前置活动结束后开启"; } diff --git a/Library/Common/JsonConverter/ActivityConverter.cs b/Library/Common/JsonConverter/ActivityConverter.cs index bfd2d78..5f14c31 100644 --- a/Library/Common/JsonConverter/ActivityConverter.cs +++ b/Library/Common/JsonConverter/ActivityConverter.cs @@ -60,6 +60,13 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter result.PredecessorStatus = (ActivityState)reader.GetInt32(); result.UpdateState(); break; + case nameof(Activity.QuestsAwardedUsers): + Dictionary> questAwardedUsers = NetworkUtility.JsonDeserialize>>(ref reader, options) ?? []; + foreach (long key in questAwardedUsers.Keys) + { + result.QuestsAwardedUsers[key] = questAwardedUsers[key]; + } + break; } } @@ -81,6 +88,8 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter JsonSerializer.Serialize(writer, value.Quests, options); writer.WriteNumber(nameof(Activity.Predecessor), value.Predecessor); writer.WriteNumber(nameof(Activity.PredecessorStatus), (int)value.PredecessorStatus); + writer.WritePropertyName(nameof(Activity.QuestsAwardedUsers)); + JsonSerializer.Serialize(writer, value.QuestsAwardedUsers, options); writer.WriteEndObject(); } diff --git a/Library/Constant/ConstantSet.cs b/Library/Constant/ConstantSet.cs index d95a2c7..ab0e7bf 100644 --- a/Library/Constant/ConstantSet.cs +++ b/Library/Constant/ConstantSet.cs @@ -42,6 +42,7 @@ namespace Milimoe.FunGame.Core.Library.Constant ActivityState.Future => "预告中", ActivityState.Upcoming => "即将开始", ActivityState.InProgress => "进行中", + ActivityState.ClaimPeriod => "可领取奖励", _ => "已结束" }; } diff --git a/Library/Constant/FunGameInfo.cs b/Library/Constant/FunGameInfo.cs index e94578e..0f75725 100644 --- a/Library/Constant/FunGameInfo.cs +++ b/Library/Constant/FunGameInfo.cs @@ -1,4 +1,6 @@ -namespace Milimoe.FunGame.Core.Library.Constant +using System.Reflection; + +namespace Milimoe.FunGame.Core.Library.Constant { public class FunGameInfo { @@ -27,22 +29,22 @@ { get { - string patch = FunGame_VersionPatch.StartsWith('.') ? FunGame_VersionPatch : $".{FunGame_VersionPatch}"; - return $"{FunGame_Version_Major}.{FunGame_Version_Minor}{patch}"; + Assembly assembly = Assembly.GetExecutingAssembly(); + AssemblyInformationalVersionAttribute? informationalVersionAttribute = assembly.GetCustomAttribute(); + return informationalVersionAttribute?.InformationalVersion ?? $"{FunGame_Version_Major}.{FunGame_Version_Minor}{(FunGame_VersionPatch.StartsWith('.') ? FunGame_VersionPatch : $".{FunGame_VersionPatch}")}"; } } + public const int FunGame_Version_Major = 2; + public const int FunGame_Version_Minor = 0; + public const string FunGame_VersionPatch = "0"; + public const string FunGame_Core = "FunGame Core"; public const string FunGame_Core_Api = "FunGame Core Api"; public const string FunGame_Console = "FunGame Console"; public const string FunGame_Desktop = "FunGame Desktop"; public const string FunGame_Server = "FunGame Server Console"; - public const int FunGame_Version_Major = 2; - public const int FunGame_Version_Minor = 0; - public const string FunGame_VersionPatch = "0-dev"; - public const string FunGame_Version_Build = ""; - public const string FunGameCoreTitle = @" _____ _ _ _ _ ____ _ __ __ _____ ____ ___ ____ _____ | ___| | | | \ | |/ ___| / \ | \/ | ____| / ___/ _ \| _ \| ____| | |_ | | | | \| | | _ / _ \ | |\/| | _| | | | | | | |_) | _| diff --git a/Library/Constant/StateEnum.cs b/Library/Constant/StateEnum.cs index e962d6f..3d92c6d 100644 --- a/Library/Constant/StateEnum.cs +++ b/Library/Constant/StateEnum.cs @@ -114,6 +114,7 @@ namespace Milimoe.FunGame.Core.Library.Constant Future, Upcoming, InProgress, + ClaimPeriod, Ended }