From 9c792ed781267c073209664925fc8d1098aa25aa Mon Sep 17 00:00:00 2001 From: milimoe Date: Sat, 2 Aug 2025 05:29:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A4=BE=E5=9B=A2=E9=82=80?= =?UTF-8?q?=E8=AF=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Entity/System/Club.cs | 10 +++++++++- Library/Common/JsonConverter/ClubConverter.cs | 18 ++++++++++++++++++ Model/TeamGamingQueue.cs | 3 +-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/Entity/System/Club.cs b/Entity/System/Club.cs index ca13c61..71af0ba 100644 --- a/Entity/System/Club.cs +++ b/Entity/System/Club.cs @@ -1,4 +1,5 @@ using Milimoe.FunGame.Core.Interface.Entity; +using Milimoe.FunGame.Core.Library.Constant; namespace Milimoe.FunGame.Core.Entity { @@ -10,12 +11,19 @@ namespace Milimoe.FunGame.Core.Entity public bool IsNeedApproval { get; set; } = false; public bool IsPublic { get; set; } = false; public double ClubPoins { get; set; } = 0; - public User? Master { get; set; } + public User Master { get; set; } = General.UnknownUserInstance; public Dictionary Admins { get; set; } = []; public Dictionary Members { get; set; } = []; public Dictionary Applicants { get; set; } = []; + public Dictionary Invitees { get; set; } = []; public Dictionary MemberJoinTime { get; set; } = []; public Dictionary ApplicationTime { get; set; } = []; + public Dictionary InvitedTime { get; set; } = []; + + public override string ToString() + { + return $"{Name} [{Prefix}]"; + } public override bool Equals(IBaseEntity? other) { diff --git a/Library/Common/JsonConverter/ClubConverter.cs b/Library/Common/JsonConverter/ClubConverter.cs index c37e7eb..eb3980d 100644 --- a/Library/Common/JsonConverter/ClubConverter.cs +++ b/Library/Common/JsonConverter/ClubConverter.cs @@ -73,6 +73,13 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter result.Applicants[id] = new(id); } break; + case nameof(Club.Invitees): + List invitees = NetworkUtility.JsonDeserialize>(ref reader, options) ?? []; + foreach (long id in invitees) + { + result.Invitees[id] = new(id); + } + break; case nameof(Club.MemberJoinTime): Dictionary memberJoinTime = NetworkUtility.JsonDeserialize>(ref reader, options) ?? []; foreach (long id in memberJoinTime.Keys) @@ -87,6 +94,13 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter result.ApplicationTime[id] = applicationTime[id]; } break; + case nameof(Club.InvitedTime): + Dictionary invitedTime = NetworkUtility.JsonDeserialize>(ref reader, options) ?? []; + foreach (long id in invitedTime.Keys) + { + result.InvitedTime[id] = invitedTime[id]; + } + break; } } @@ -111,10 +125,14 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter JsonSerializer.Serialize(writer, value.Members.Keys, options); writer.WritePropertyName(nameof(Club.Applicants)); JsonSerializer.Serialize(writer, value.Applicants.Keys, options); + writer.WritePropertyName(nameof(Club.Invitees)); + JsonSerializer.Serialize(writer, value.Invitees.Keys, options); writer.WritePropertyName(nameof(Club.MemberJoinTime)); JsonSerializer.Serialize(writer, value.MemberJoinTime, options); writer.WritePropertyName(nameof(Club.ApplicationTime)); JsonSerializer.Serialize(writer, value.ApplicationTime, options); + writer.WritePropertyName(nameof(Club.InvitedTime)); + JsonSerializer.Serialize(writer, value.InvitedTime, options); writer.WriteEndObject(); } diff --git a/Model/TeamGamingQueue.cs b/Model/TeamGamingQueue.cs index ef4d197..1ee7079 100644 --- a/Model/TeamGamingQueue.cs +++ b/Model/TeamGamingQueue.cs @@ -35,7 +35,7 @@ namespace Milimoe.FunGame.Core.Model /// public void AddTeam(string teamName, IEnumerable characters) { - if (teamName != "" && characters.Any()) + if (teamName != "" && characters.Any(c => c.HP > 0)) { _teams.Add(teamName, new(teamName, characters)); } @@ -176,7 +176,6 @@ namespace Milimoe.FunGame.Core.Model if (killTeam != null) { List actives = killTeam.GetActiveCharacters(this); - actives.Add(killer); int remainCount = actives.Count; if (remainCount > 0 && MaxRespawnTimes == 0) {