From 89343a7a0909e5244a3b69c4db1294de4536243b Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期一, 15 十二月 2025 18:15:22 +0800
Subject: [PATCH] 262 幻境阁系统-客户端 新增仅适用武将解锁的头像和形象的红点移除规则

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

diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index 20b3bee..e26736f 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
 using DG.Tweening;
 using UnityEngine;
 using UnityEngine.UI;
@@ -10,7 +11,6 @@
 /// </summary>
 public class HomeWin : UIBase
 {
-
     //缁忛獙鍖�
     [SerializeField] Text playerLevelText;
     [SerializeField] SmoothSlider expSlider;
@@ -61,13 +61,33 @@
     [SerializeField] RightFuncInHome rightFuncInHome;
 
     [SerializeField] Button FirstChargeBtn;
+    [SerializeField] Button osMainLevelBtn;
+    [SerializeField] Button osHeroCallBtn;
+    [SerializeField] Button osGalaBtn;
 
     //鍧愰獞
     [SerializeField] Image horseBGImg;
     [SerializeField] Button horseBtn;
-    [SerializeField] Image horseImg;
+    [SerializeField] HorseController horseImg;
     [SerializeField] Text horseLVText;
-    
+
+    //鑱婂ぉ
+    [SerializeField] Button chatBtn;
+    [SerializeField] Transform transFastChat;
+    [SerializeField] InputField inputFastChat;
+    [SerializeField] ButtonEx btnFastChatSend;
+    [SerializeField] ImageEx imgFastChatSend;
+    [SerializeField] TextEx txtFastChatSend;
+    [SerializeField] ButtonEx btnFastChatClose;
+    [SerializeField] ButtonEx btnChatWin;
+    [SerializeField] TextEx txtChatChannel;
+
+
+    [SerializeField] Transform transChatBulletView;
+    GameObject chatBulletViewPrefab;
+
+
+
     /// <summary>
     /// 鍒濆鍖栫粍浠�
     /// </summary>
@@ -121,12 +141,68 @@
         });
 
         restBtn.AddListener(GotoRest);
-        funcColBtn.AddListener(()=>
+        funcColBtn.AddListener(() =>
         {
             rightFuncInHome.ShowFuncCol(true);
         });
 
         horseBtn.AddListener(OpenHorse);
+
+        chatBtn.SetListener(() =>
+        {
+            if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat, true))
+                return;
+
+            transFastChat.SetActive(true);
+            chatBtn.SetActive(false);
+            UpdateChat(ChatManager.Instance.nowChatTab);
+
+        });
+        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);
+                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;
+        });
+
+        osMainLevelBtn.AddListener(() =>
+        {
+            UIManager.Instance.OpenWindow<OSMainLevelBaseWin>();
+        });
+        osHeroCallBtn.AddListener(() =>
+        {
+            UIManager.Instance.OpenWindow<OSHeroCallBaseWin>();
+        });
+        osGalaBtn.AddListener(() =>
+        {
+            UIManager.Instance.OpenWindow<OSGalaBaseWin>();
+        });
     }
 
 
@@ -147,6 +223,12 @@
         officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
 
         DisplayHorse();
+
+        DisplayChatBulletView();
+        chatBtn.SetActive(true);
+        transFastChat.SetActive(false);
+        inputFastChat.characterLimit = ChatManager.Instance.characterLimit;
+        UpdateSendButton();
     }
 
     protected override void OnPreOpen()
@@ -165,11 +247,18 @@
         OfficialRankManager.Instance.OnOfficialCanLVUpEvent += OnOfficialCanLVUpEvent;
         FirstChargeManager.Instance.OnFirstChargeTaskUpdateEvent += OnFirstChargeTaskUpdateEvent;
         OfficialRankManager.Instance.RealmMissionRefreshEvent += OnOfficialCanLVUpEvent;
+        HorseManager.Instance.OnHorseUpdateEvent += DisplayHorse;
+        ChatManager.Instance.OnChatTabChangeEvent += OnChatTabChangeEvent;
+        GuildManager.Instance.EnterOrQuitGuildEvent += EnterOrQuitGuildEvent;
+        TimeMgr.Instance.OnDayEvent += OnDayEvent;
         Display();
         DisplayFirstChargeBtn();
+        DisplayOSActivity();
 
         // var battleWin = UIManager.Instance.OpenWindow<BattleWin>();
         // battleWin.SetBattleField(BattleManager.Instance.storyBattleField);
+
+        DelayPlayMusic().Forget();
     }
 
 
@@ -190,14 +279,71 @@
         OfficialRankManager.Instance.OnOfficialCanLVUpEvent -= OnOfficialCanLVUpEvent;
         FirstChargeManager.Instance.OnFirstChargeTaskUpdateEvent -= OnFirstChargeTaskUpdateEvent;
         OfficialRankManager.Instance.RealmMissionRefreshEvent -= OnOfficialCanLVUpEvent;
+        HorseManager.Instance.OnHorseUpdateEvent -= DisplayHorse;
+        ChatManager.Instance.OnChatTabChangeEvent -= OnChatTabChangeEvent;
+        GuildManager.Instance.EnterOrQuitGuildEvent -= EnterOrQuitGuildEvent;
+        TimeMgr.Instance.OnDayEvent -= OnDayEvent;
+
         //  鍏抽棴鐨勬椂鍊欐妸鎴樻枟鐣岄潰涔熺粰鍏充簡 铏界劧鏄湪澶栭潰寮�鐨�
         UIManager.Instance.CloseWindow<BattleWin>();
+    }
+
+    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);
+        }
+    }
+
+    private void OnChatTabChangeEvent(ChatTab tab)
+    {
+        UpdateChat(tab);
+    }
+
+    void UpdateChat(ChatTab tab)
+    {
+        txtChatChannel.text = ChatManager.Instance.GetChatTabName(tab);
+    }
+
+    void DisplayChatBulletView()
+    {
+        if (chatBulletViewPrefab == null)
+        {
+            chatBulletViewPrefab = UIUtility.CreateWidget("ChatBulletView", "ChatBulletView");
+        }
+        chatBulletViewPrefab.transform.SetParentEx(transChatBulletView.transform, Vector3.zero, Quaternion.identity, Vector3.one);
+        // 鏂板锛氱‘淇� ChatBulletView 缁勪欢鍚敤
+        // var chatBulletView = chatBulletViewPrefab.GetComponent<ChatBulletView>();
+        // if (chatBulletView != null)
+        // {
+        //     chatBulletView.enabled = true;
+        // }
     }
 
     void OnOfficialCanLVUpEvent()
     {
         officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
     }
+
+    async UniTask DelayPlayMusic()
+    {
+        await UniTask.Delay(1200);
+        if (!SoundPlayer.Instance.IsPlayBackGroundMuisic())
+            SoundPlayer.Instance.PlayBackGroundMusic(38);
+    }
+
 
     private void OnClickEnterBoss()
     {
@@ -239,6 +385,9 @@
 
             case PlayerDataType.RealmLevel:
                 OnOfficialCanLVUpEvent();
+                break;
+            case PlayerDataType.EquipShowSwitch:
+                DisplayHorse();
                 break;
         }
 
@@ -291,7 +440,7 @@
         if (showEffect)
         {
             headEffect.transform.DOLocalMove(new Vector3(400 * expSlider.value - 200 - 24, 0, 0), 0.5f);
-            headEffect.Play(closePMA:true);
+            headEffect.Play(closePMA: true);
         }
     }
 
@@ -323,7 +472,9 @@
             {
                 taskEffect.Stop();
             }
-            awardIcon.SetOrgSprite(ItemConfig.Get(taskConfig.AwardItemList[0][0]).IconKey);
+            var config = ItemConfig.Get(taskConfig.AwardItemList[0][0]);
+            awardIcon.SetOrgSprite(ItemConfig.Get(taskConfig.AwardItemList[0][0]).IconKey, GeneralDefine.itemIconDict.ContainsKey(config.Type) ? GeneralDefine.itemIconDict[config.Type] : "icon");
+
             awardCnt.text = taskConfig.AwardItemList[0][1].ToString();
         }
     }
@@ -339,7 +490,7 @@
             GameNetSystem.Instance.SendInfo(getReward);
             return;
         }
-        
+
         TaskManager.Instance.ClickTask();
     }
 
@@ -453,17 +604,23 @@
 
     private void DisplayFirstChargeBtn()
     {
-        bool isFirstChargeFuncOpen = FirstChargeManager.Instance.IsFuncOpen();
-        if (FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed() &&
-        FirstChargeManager.Instance.IsNextDayAfterAllClaimed())
+        bool isFuncOpen = FirstChargeManager.Instance.IsFuncOpen();
+        bool isAllHave = FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed();
+        bool isNextDay = FirstChargeManager.Instance.IsNextDayAfterAllClaimed();
+
+        if (isAllHave && isNextDay)
         {
             FirstChargeBtn.SetActive(false);
         }
         else
         {
-            FirstChargeBtn.SetActive(isFirstChargeFuncOpen);
+            FirstChargeBtn.SetActive(isFuncOpen);
         }
     }
+
+
+
+
 
     private void OnFirstChargeTaskUpdateEvent()
     {
@@ -480,6 +637,11 @@
         {
             DisplayHorse();
         }
+        else if (funcId == (int)FuncOpenEnum.OSMainLevl || funcId == (int)FuncOpenEnum.OSHeroCall
+        || funcId == (int)FuncOpenEnum.OSGala)
+        {
+            DisplayOSActivity();
+        }
     }
 
     private void OnUpdateFirstChargeInfo()
@@ -490,6 +652,7 @@
     private void OnSecondEvent()
     {
         DisplayFirstChargeBtn();
+        UpdateSendButton();
     }
 
     void OnUnLockHeroCountEvent()
@@ -503,10 +666,10 @@
         if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Horse))
         {
             horseBGImg.SetActive(true);
-            //equipShowSwitch;//褰撳墠閰嶇疆鐨勫潗楠戝瑙侷D瀛樺偍鍦�  涓綅鏁板崄浣嶆暟锛堟渶澶ф敮鎸� 1~99锛�
-            var skinConfig = HorseSkinConfig.Get(HorseManager.Instance.GetHorseSkinID());
-            horseImg.SetOrgSprite(skinConfig.Icon, "Horse");
-            horseLVText.text = Language.Get("Horse8",HorseManager.Instance.classLV, HorseManager.Instance.horseLV);
+            //equipShowSwitch;//褰撳墠閰嶇疆鐨勫潗楠戝瑙侷D瀛樺偍鍦紙鏈�澶ф敮鎸� 1~999锛�
+            var skinConfig = HorseSkinConfig.Get(HorseManager.Instance.GetUsingHorseSkinID(true));
+            horseImg.Create(skinConfig.SkinID, 0, 0.6f);
+            horseLVText.text = Language.Get("Horse8", HorseManager.Instance.classLV, HorseManager.Instance.horseLV);
         }
         else
         {
@@ -521,4 +684,18 @@
             UIManager.Instance.OpenWindow<HorseWin>();
         }
     }
-}
\ No newline at end of file
+
+    void DisplayOSActivity()
+    {
+        osMainLevelBtn.SetActive(OSActivityManager.Instance.IsOpened(3));
+        osHeroCallBtn.SetActive(OSActivityManager.Instance.IsOpened(4));
+        osGalaBtn.SetActive(OSActivityManager.Instance.IsOpenedOSGala());
+    }
+
+    void OnDayEvent()
+    {
+        DisplayOSActivity();
+    }
+}
+
+

--
Gitblit v1.8.0