From bcbbdae9f85dbb3efd58f0eaafe9f548caa5d923 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 10 六月 2026 18:14:00 +0800
Subject: [PATCH] 588 公会攻防战 移除多余using DG.DemiEditor

---
 Main/System/Guild/GuildManager.cs |  125 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 111 insertions(+), 14 deletions(-)

diff --git a/Main/System/Guild/GuildManager.cs b/Main/System/Guild/GuildManager.cs
index 4890e77..8265ced 100644
--- a/Main/System/Guild/GuildManager.cs
+++ b/Main/System/Guild/GuildManager.cs
@@ -3,12 +3,12 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
-using Cysharp.Threading.Tasks;
-using LitJson;
-using UnityEngine;
-
-
-public partial class GuildManager : GameSystemManager<GuildManager>
+using Cysharp.Threading.Tasks;
+using LitJson;
+using UnityEngine;
+
+
+public partial class GuildManager : GameSystemManager<GuildManager>
 {
     // 瀹舵棌鑷畾涔夎褰曠被鍨�
     public const int MemberChangeActionType = 12;      //鍏細鍙樻洿璁板綍
@@ -173,7 +173,24 @@
 
 
     //鐝嶅疂闃�(琛屽晢)
-    public int zhenbaogeCutState = 0;
+    int m_ZhenbaogeCutState = 0;
+    public int zhenbaogeCutState
+    {
+        get
+        {
+            if (familyZBGActions.Count - 1 >= 50)
+            {
+                //鐮嶄环浜烘暟瓒呰繃涓婇檺鍚庡彲鐩存帴璐拱
+                m_ZhenbaogeCutState = 1;
+            }
+            return m_ZhenbaogeCutState;
+        }
+        set
+        {
+
+            m_ZhenbaogeCutState = value;
+        }
+    }
     public int zhenbaogeBuyState = 0;
     public bool needCheckCutCD = false;
     public event Action UpdateZhenbaogeEvent;
@@ -189,6 +206,8 @@
     public int zbgChangFamilyCD;
     public List<int> cutCntListForTalk = new List<int>();
     public int familyRecordMaxCount;
+    public const int DefaultEmblemWordCharacterLimit = 1;
+    public Dictionary<string, int> emblemWordCharacterLimitDict = new Dictionary<string, int>();
 
     void ParseConfig()
     {
@@ -235,6 +254,9 @@
         config = FuncConfigConfig.Get("FamilyBillboardSet");
         pageCnt = int.Parse(config.Numerical1);
         queryPointNum = int.Parse(config.Numerical2);
+
+        config = FuncConfigConfig.Get("FamilyEmblem");
+        emblemWordCharacterLimitDict = JsonMapper.ToObject<Dictionary<string, int>>(config.Numerical1);
     }
 
 
@@ -327,6 +349,44 @@
         });
     }
 
+    public int GetEmblemWordCharacterLimit()
+    {
+        string langId = Language.Id;
+        if (!string.IsNullOrEmpty(langId) && emblemWordCharacterLimitDict.TryGetValue(langId, out int limit) && limit > 0)
+        {
+            return limit;
+        }
+
+        return DefaultEmblemWordCharacterLimit;
+    }
+
+    public string LimitEmblemWord(string emblemWord)
+    {
+        if (string.IsNullOrEmpty(emblemWord))
+        {
+            return string.Empty;
+        }
+
+        int limit = GetEmblemWordCharacterLimit();
+        if (emblemWord.Length <= limit)
+        {
+            return emblemWord;
+        }
+
+        return emblemWord.Substring(0, limit);
+    }
+
+    bool CheckEmblemWord(string emblemWord)
+    {
+        if (string.IsNullOrEmpty(emblemWord))
+        {
+            return true;
+        }
+
+        int limit = GetEmblemWordCharacterLimit();
+        return emblemWord.Length <= limit;
+    }
+
 
 
 
@@ -354,7 +414,7 @@
                 punishTime = quitGuildPunishTime[Math.Min(quitCount, quitGuildPunishTime.Length - 1)];
         }
 
-        return punishTime * 60 - (TimeUtility.GetCommServerTick(zoneID)- PlayerDatas.Instance.baseData.leaveFamilyTime);
+        return punishTime * 60 - (TimeUtility.GetCommServerTick(zoneID) - PlayerDatas.Instance.baseData.leaveFamilyTime);
     }
 
 
@@ -373,9 +433,8 @@
             return;
         }
 
-        if (emblemWord.Length > 1)
+        if (!CheckEmblemWord(emblemWord))
         {
-            //棰勫埗浣撹緭鍏ユ闄愬埗锛屼笉闄愪换鎰忓瓧绗﹂兘鍙兘杈撳叆1涓瓧
             return;
         }
 
@@ -462,7 +521,18 @@
     #region  鍏細鑷畾涔夎褰�
     public void UpdateFamilyAction(HA513_tagMCFamilyActionInfo _package)
     {
-        if (PlayerDatas.Instance.baseData.FamilyId != _package.FamilyID)
+        // 鍏細鏀婚槻鎴� 闇�瑕佸悓鏃舵帴鏀舵晫鏂规敾鍑绘棩蹇�
+        if (GuildAtkDefBatManager.Instance.UpdateFamilyActionInfo(_package))
+        {
+            return;
+        }
+
+        if (GuildAtkDefBatManager.Instance.UpdateAtkDefBatLogInfo(_package))
+        {
+            return;
+        }
+        
+        if (PlayerDatas.Instance.baseData.FamilyId != _package.FamilyID)
         {
             return;
         }
@@ -672,14 +742,41 @@
     #region 鏌ョ湅鐩爣鍏細
     public Dictionary<int, FairyData> viewGuildsDict = new Dictionary<int, FairyData>();
 
-    public event Action OnUpdateViewFamilyInfo;
+    public event Action<int> OnUpdateViewFamilyInfo;
 
     public void UpdateViewFamilyInfo(HA519_tagSCTagFamilyInfo pack)
     {
         FairyData data = new FairyData();
         SetFairyViewData(data, pack);
+
+        // 瀛樺偍骞舵帓搴忔垚鍛樺垪琛�
+        var memberList = new List<HA519_tagSCTagFamilyInfo.tagSCTagFamilyInfoMem>(pack.MemberList);
+        memberList.Sort((a, b) =>
+        {
+            // 涓绘帓搴忥細鑱屽姟闄嶅簭锛�3-鏃忛暱 > 2-鍓棌闀� > 1-绮捐嫳 > 0-鎴愬憳锛�
+            int jobCompare = b.FmLV.CompareTo(a.FmLV);
+            if (jobCompare != 0) return jobCompare;
+            // 娆℃帓搴忥細鎴樺姏闄嶅簭
+            long powerA = a.FightPowerEx * Constants.ExpPointValue + a.FightPower;
+            long powerB = b.FightPowerEx * Constants.ExpPointValue + b.FightPower;
+            return powerB.CompareTo(powerA);
+        });
+        data.memberList = memberList;
+
         viewGuildsDict[(int)data.FamilyID] = data;
-        OnUpdateViewFamilyInfo?.Invoke();
+        OnUpdateViewFamilyInfo?.Invoke((int)data.FamilyID);
+    }
+
+    /// <summary>
+    /// 鑾峰彇鎸囧畾鍏細鐨勬帓搴忓悗鐨勬垚鍛樺垪琛紙鑱屽姟闄嶅簭 鈫� 鎴樺姏闄嶅簭锛�
+    /// </summary>
+    public List<HA519_tagSCTagFamilyInfo.tagSCTagFamilyInfoMem> GetSortedMemberList(int familyID)
+    {
+        if (viewGuildsDict.TryGetValue(familyID, out var data))
+        {
+            return data.memberList;
+        }
+        return null;
     }
 
     public static void SetFairyViewData(FairyData data, HA519_tagSCTagFamilyInfo view)
@@ -1242,4 +1339,4 @@
     PublishNotice = 3,
     Kick = 4,
 
-}
\ No newline at end of file
+}

--
Gitblit v1.8.0