From 2a845f0babe52ac324b3cbe294db7dcec9346042 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 22 十二月 2025 19:07:24 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts

---
 Main/System/Main/HomeWin.cs |  209 ++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 152 insertions(+), 57 deletions(-)

diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index 7036c9f..78e80dc 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -73,8 +73,16 @@
     [SerializeField] Text horseLVText;
 
     //鑱婂ぉ
-    [SerializeField] Button chatBtn;
+    [SerializeField] Transform transChatInfo;
     [SerializeField] Transform transFastChat;
+
+    [SerializeField] Button chatBtn;
+    [SerializeField] Button chatBtn1;
+
+    [SerializeField] ImageEx imgChatType;
+    [SerializeField] TextEx txtChatType;
+    [SerializeField] RichText txtChatInfo;
+
     [SerializeField] InputField inputFastChat;
     [SerializeField] ButtonEx btnFastChatSend;
     [SerializeField] ImageEx imgFastChatSend;
@@ -149,48 +157,41 @@
 
         horseBtn.AddListener(OpenHorse);
 
-        chatBtn.SetListener(() =>
-        {
-            if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat, true))
-                return;
+        chatBtn.SetListener(OnClickChatBtn);
+        chatBtn1.SetListener(OnClickChatBtn);
 
-            transFastChat.SetActive(true);
-            chatBtn.SetActive(false);
-            UpdateChat(ChatManager.Instance.nowChatTab);
+        // btnFastChatClose.SetListener(() =>
+        // {
+        //     transFastChat.SetActive(false);
+        //     transChatInfo.SetActive(true);
+        // });
+        // btnChatWin.SetListener(() =>
+        // {
+        //     transFastChat.SetActive(false);
+        //     transChatInfo.SetActive(true);
+        //     UIManager.Instance.OpenWindow<ChatWin>();
+        // });
 
-        });
-        btnFastChatClose.SetListener(() =>
-        {
-            transFastChat.SetActive(false);
-            chatBtn.SetActive(true);
-        });
-        btnChatWin.SetListener(() =>
-        {
-            transFastChat.SetActive(false);
-            chatBtn.SetActive(true);
-            UIManager.Instance.OpenWindow<ChatWin>();
-        });
+        // btnFastChatSend.SetListener(() =>
+        // {
+        //     // 濡傛灉鍦ㄨ亰澶╄緭鍏ョ晫闈㈡棤杈撳叆鏂囧瓧鐐瑰嚮鍙戦�侊紝鍒欏叧闂亰澶╄緭鍏ョ晫闈�
+        //     if (string.IsNullOrEmpty(inputFastChat.text))
+        //     {
+        //         transFastChat.SetActive(false);
+        //         transChatInfo.SetActive(true);
+        //         return;
+        //     }
 
-        btnFastChatSend.SetListener(() =>
-        {
-            // 濡傛灉鍦ㄨ亰澶╄緭鍏ョ晫闈㈡棤杈撳叆鏂囧瓧鐐瑰嚮鍙戦�侊紝鍒欏叧闂亰澶╄緭鍏ョ晫闈�
-            if (string.IsNullOrEmpty(inputFastChat.text))
-            {
-                transFastChat.SetActive(false);
-                chatBtn.SetActive(true);
-                return;
-            }
-
-            if (!ChatManager.Instance.CheckChatLimit(inputFastChat.text, out int errorCode))
-            {
-                ChatManager.Instance.ShowChatErrorTip(errorCode);
-                return;
-            }
-            ChatManager.Instance.SendChatInfo(ChatManager.Instance.nowChatChannel, inputFastChat.text);
-            ChatManager.Instance.AddChatChannelSendTime(ChatManager.Instance.nowChatChannel, TimeUtility.AllSeconds);
-            UpdateSendButton();
-            inputFastChat.text = string.Empty;
-        });
+        //     if (!ChatManager.Instance.CheckChatLimit(inputFastChat.text, out int errorCode))
+        //     {
+        //         ChatManager.Instance.ShowChatErrorTip(errorCode);
+        //         return;
+        //     }
+        //     ChatManager.Instance.SendChatInfo(ChatManager.Instance.nowChatChannel, inputFastChat.text);
+        //     ChatManager.Instance.AddChatChannelSendTime(ChatManager.Instance.nowChatChannel, TimeUtility.AllSeconds);
+        //     UpdateSendButton();
+        //     inputFastChat.text = string.Empty;
+        // });
 
         osMainLevelBtn.AddListener(() =>
         {
@@ -226,10 +227,11 @@
         DisplayHorse();
 
         DisplayChatBulletView();
-        chatBtn.SetActive(true);
-        transFastChat.SetActive(false);
-        inputFastChat.characterLimit = ChatManager.Instance.characterLimit;
-        UpdateSendButton();
+        transChatInfo.SetActive(true);
+        //transFastChat.SetActive(false);
+        //inputFastChat.characterLimit = ChatManager.Instance.characterLimit;
+        //UpdateSendButton();
+        ShowChatInfo();
     }
 
     protected override void OnPreOpen()
@@ -252,6 +254,8 @@
         ChatManager.Instance.OnChatTabChangeEvent += OnChatTabChangeEvent;
         GuildManager.Instance.EnterOrQuitGuildEvent += EnterOrQuitGuildEvent;
         TimeMgr.Instance.OnDayEvent += OnDayEvent;
+        ChatManager.Instance.OnUpdateTalkEvent += OnUpdateTalkEvent;
+        UIManager.Instance.OnOpenWindow += OnOpenWindow;
         Display();
         DisplayFirstChargeBtn();
         DisplayOSActivity();
@@ -284,39 +288,124 @@
         ChatManager.Instance.OnChatTabChangeEvent -= OnChatTabChangeEvent;
         GuildManager.Instance.EnterOrQuitGuildEvent -= EnterOrQuitGuildEvent;
         TimeMgr.Instance.OnDayEvent -= OnDayEvent;
+        ChatManager.Instance.OnUpdateTalkEvent -= OnUpdateTalkEvent;
+        UIManager.Instance.OnOpenWindow -= OnOpenWindow;
+
 
         //  鍏抽棴鐨勬椂鍊欐妸鎴樻枟鐣岄潰涔熺粰鍏充簡 铏界劧鏄湪澶栭潰寮�鐨�
         UIManager.Instance.CloseWindow<BattleWin>();
     }
 
-    private void UpdateSendButton()
+    private void OnOpenWindow(UIBase win)
     {
-        bool isCanSend = ChatManager.Instance.IsCanSend(ChatManager.Instance.nowChatChannel, out int remainingSeconds);
-        btnFastChatSend.interactable = isCanSend;
-        imgFastChatSend.gray = !isCanSend;
-        txtFastChatSend.text = isCanSend ? Language.Get("Chat11") : Language.Get("Chat14", remainingSeconds);
-        txtFastChatSend.colorType = isCanSend ? TextColType.NavyBrown : TextColType.LightWhite;
+        if (win is ChatWin)
+        {
+            transChatInfo.SetActive(false);
+        }
     }
 
+    private void OnUpdateTalkEvent(ChatChannel channel, TalkData data, bool isSendBullet)
+    {
+        ShowChatInfo();
+    }
 
+    private void OnClickChatBtn()
+    {
+        if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat, true))
+            return;
+
+        //transFastChat.SetActive(true);
+        // transChatInfo.SetActive(false);
+        // UpdateChat(ChatManager.Instance.nowChatTab);
+
+        bool hasLastTalkData = ChatManager.Instance.TryGetLastTalkData(out ChatChannel type, out TalkData data);
+        if (!hasLastTalkData)
+        {
+            ChatManager.Instance.nowChatTab = ChatTab.World;
+            ChatManager.Instance.nowChatChannel = ChatChannel.World;
+        }
+        else
+        {
+            switch (type)
+            {
+                case ChatChannel.World:
+                default:
+                    ChatManager.Instance.nowChatTab = ChatTab.World;
+                    ChatManager.Instance.nowChatChannel = ChatChannel.World;
+                    break;
+                case ChatChannel.Guild:
+                    ChatManager.Instance.nowChatTab = ChatTab.Guild;
+                    ChatManager.Instance.nowChatChannel = ChatChannel.Guild;
+                    break;
+            }
+        }
+        UIManager.Instance.OpenWindow<ChatWin>();
+    }
+
+    public string GetMainChatAreaContent(TalkData talkData)
+    {
+        int type = ChatManager.Instance.GetTalkDataType(talkData);
+        if (type == 0)
+        {
+            return Language.Get("L1100", Language.Get("Chat13"), talkData.Content);
+        }
+        else if (type == 1)
+        {
+            return Language.Get("L1100", Language.Get("Chat13"), talkData.Content);
+        }
+        else
+        {
+            return Language.Get("L1100", talkData.Name, talkData.Content);
+        }
+    }
+
+    private void ShowChatInfo()
+    {
+        bool hasLastTalkData = ChatManager.Instance.TryGetLastTalkData(out ChatChannel type, out TalkData data);
+        if (!hasLastTalkData)
+        {
+            imgChatType.SetActive(false);
+            txtChatInfo.text = string.Empty;
+            return;
+        }
+
+        imgChatType.SetActive(true);
+        txtChatType.text = Language.Get(StringUtility.Concat("ChatChannel", ((int)type).ToString()));
+        imgChatType.SetSprite(StringUtility.Concat("ChatChannelBg", ((int)type).ToString()));
+        if (data.InfoList != null)
+        {
+            txtChatInfo.SetExtenalData(data.InfoList);
+        }
+        txtChatInfo.text = GetMainChatAreaContent(data);
+    }
+
+    // private void UpdateSendButton()
+    // {
+    //     bool isCanSend = ChatManager.Instance.IsCanSend(ChatManager.Instance.nowChatChannel, out int remainingSeconds);
+    //     btnFastChatSend.interactable = isCanSend;
+    //     imgFastChatSend.gray = !isCanSend;
+    //     txtFastChatSend.text = isCanSend ? Language.Get("Chat11") : Language.Get("Chat14", remainingSeconds);
+    //     txtFastChatSend.colorType = isCanSend ? TextColType.NavyBrown : TextColType.LightWhite;
+    // }
 
     private void EnterOrQuitGuildEvent(bool obj)
     {
         if (!obj)
         {
-            UpdateChat(ChatManager.Instance.nowChatTab);
+            ShowChatInfo();
+            //UpdateChat(ChatManager.Instance.nowChatTab);
         }
     }
 
     private void OnChatTabChangeEvent(ChatTab tab)
     {
-        UpdateChat(tab);
+        //UpdateChat(tab);
     }
 
-    void UpdateChat(ChatTab tab)
-    {
-        txtChatChannel.text = ChatManager.Instance.GetChatTabName(tab);
-    }
+    // void UpdateChat(ChatTab tab)
+    // {
+    //     txtChatChannel.text = ChatManager.Instance.GetChatTabName(tab);
+    // }
 
     void DisplayChatBulletView()
     {
@@ -523,6 +612,12 @@
         {
             DisplayCard(TeamType.Story);
         }
+
+        if (closeUI is ChatWin)
+        {
+            transChatInfo.SetActive(true);
+        }
+
     }
 
 
@@ -661,7 +756,7 @@
     private void OnSecondEvent()
     {
         DisplayFirstChargeBtn();
-        UpdateSendButton();
+        //UpdateSendButton();
     }
 
     void OnUnLockHeroCountEvent()

--
Gitblit v1.8.0