From 1adf0932629c4154f6e2ff854e75c48019a3972b Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 10 六月 2026 18:11:38 +0800
Subject: [PATCH] 588 公会攻防战

---
 Main/System/Guild/GuildBaseWin.cs |   99 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 98 insertions(+), 1 deletions(-)

diff --git a/Main/System/Guild/GuildBaseWin.cs b/Main/System/Guild/GuildBaseWin.cs
index 8f43f62..2cde036 100644
--- a/Main/System/Guild/GuildBaseWin.cs
+++ b/Main/System/Guild/GuildBaseWin.cs
@@ -27,6 +27,23 @@
     [SerializeField] Button requestBtn;
 
 
+    [SerializeField] ImageEx guildBattleLockImg;
+    [SerializeField] Text guildBattleTitleText;
+    [SerializeField] Button guildBattleBtn;
+    [SerializeField] Text guildBattleState;
+    [SerializeField] Image guildBattleStateImg;
+    [SerializeField] Text GuildBattleCountDownTime;
+    [SerializeField] ImageEx guildBattleImg;
+    [SerializeField] UIEffectPlayer guildBattleEffect;
+
+
+    [SerializeField] Color32 guildBattleState1;//鏈弬鎴�
+    [SerializeField] Color32 guildBattleState2;//瀵规垬澶辫触
+    [SerializeField] Color32 guildBattleState3;//澶囨垬涓�
+    [SerializeField] Color32 guildBattleState4;//婵�鎴樹腑
+    [SerializeField] Color32 guildBattleState5;//瀵规垬鑳滃埄
+
+
     //NPC瀵硅瘽鐩稿叧
     [Header("琛屽晢蹇呴』鏀剧涓�涓�")]
     [SerializeField] HeroSkinModel[] funcNPCs;
@@ -61,6 +78,12 @@
         {
             UIManager.Instance.OpenWindow<GuildRankWin>();
         });
+        guildBattleBtn.AddListener(() =>
+        {
+            if (!GuildAtkDefBatManager.Instance.IsOpen(true))
+                return;
+            UIManager.Instance.OpenWindowAsync<GuildAtkDefBatWin>().Forget();
+        });
         InitHawker();
         talkBtn.AddListener(OnClickTalkButton);
         talkBtn1.AddListener(OnClickTalkButton);
@@ -71,11 +94,12 @@
     {
         if (PlayerDatas.Instance.fairyData.fairy == null)
             return;
-
         GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
         GlobalTimeEvent.Instance.fiveSecondEvent += OnFiveSecondEvent;
         ChatManager.Instance.OnUpdateTalkEvent += OnUpdateTalkEvent;
         PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
+        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
+        GuildAtkDefBatManager.Instance.OnUpdateAtkDefBatInfoEvent += OnUpdateAtkDefBatInfoEvent;
         Display();
     }
 
@@ -85,6 +109,18 @@
         GlobalTimeEvent.Instance.fiveSecondEvent -= OnFiveSecondEvent;
         ChatManager.Instance.OnUpdateTalkEvent -= OnUpdateTalkEvent;
         PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
+        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
+        GuildAtkDefBatManager.Instance.OnUpdateAtkDefBatInfoEvent -= OnUpdateAtkDefBatInfoEvent;
+    }
+    private void OnUpdateAtkDefBatInfoEvent()
+    {
+        ShowGuildBattleInfo();
+    }
+
+    private void OnFuncStateChangeEvent(int funcId)
+    {
+        if (funcId == (int)FuncOpenEnum.GuildAtkDefBat)
+            ShowGuildBattleInfo();
     }
 
     void OnRefreshFairyInfo()
@@ -104,11 +140,72 @@
         ShowGuildInfo();
         ShowHawkerTime();
         ShowTalkInfo();
+        ShowGuildBattleInfo();
     }
 
     void OnSecondEvent()
     {
         ShowHawkerTime(true);
+        UpdateGuildBattleCountdown();
+    }
+
+    /// <summary>
+    /// 鍒锋柊鏀婚槻鎴樼殑褰撳墠鐘舵�佸強瀵瑰簲鎻忚竟棰滆壊
+    /// </summary>
+    void ShowGuildBattleInfo()
+    {
+        bool isOpen = GuildAtkDefBatManager.Instance.IsOpen();
+        guildBattleLockImg.SetActive(!isOpen);
+        guildBattleTitleText.color = isOpen ? new Color32(222, 212, 200, 255) : UIHelper.GetUIColor(TextColType.Gray);
+        guildBattleStateImg.SetActive(isOpen);
+        guildBattleImg.SetActive(isOpen);
+        guildBattleEffect.SetActive(false);
+
+        if (!isOpen)
+            return;
+
+        // 鐘舵�佹爣璇嗭細1-鏈弬鎴�, 2-澶囨垬涓�, 3-婵�鎴樹腑, 4-鑳滃埄(浼戞垬涓�), 5-澶辫触(浼戞垬涓�)
+        int displayState = GuildAtkDefBatManager.Instance.GetGuildBattleDisplayState();
+
+        switch (displayState)
+        {
+            case 1: // 鏈弬鎴�
+                guildBattleState.text = Language.Get("GuildAtkDefBat27");
+                guildBattleState.color = guildBattleState1;
+                break;
+            case 2: // 澶囨垬涓�
+                guildBattleState.text = Language.Get("GuildAtkDefBat25");
+                guildBattleState.color = guildBattleState3;
+                break;
+            case 3: // 婵�鎴樹腑
+                guildBattleState.text = Language.Get("GuildAtkDefBat24");
+                guildBattleState.color = guildBattleState4;
+                guildBattleImg.SetActive(false);
+                guildBattleEffect.SetActive(true);
+                break;
+            case 4: // 鑳滃埄(浼戞垬涓�)
+                guildBattleState.text = Language.Get("GuildAtkDefBat23");
+                guildBattleState.color = guildBattleState5;
+                break;
+            case 5: // 澶辫触(浼戞垬涓�)
+                guildBattleState.text = Language.Get("GuildAtkDefBat26");
+                guildBattleState.color = guildBattleState2;
+                break;
+        }
+        UpdateGuildBattleCountdown();
+    }
+
+    /// <summary>
+    /// 鍒锋柊鍊掕鏃舵枃鏈� (姣忕璋冪敤), 浠呭鎴樻湡/婵�鎴樻湡鏄剧ず
+    /// </summary>
+    void UpdateGuildBattleCountdown()
+    {
+        int state = GuildAtkDefBatManager.Instance.BatState;
+        bool show = state == 2 || state == 3;
+        GuildBattleCountDownTime.SetActive(show);
+        if (!show) return;
+
+        GuildBattleCountDownTime.text = GuildAtkDefBatManager.Instance.GetGetCountdownToCurrentPeriodEndString();
     }
 
     void ShowGuildInfo()

--
Gitblit v1.8.0