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 |  591 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 547 insertions(+), 44 deletions(-)

diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index f4e73cd..e26736f 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -1,5 +1,8 @@
+using System;
 using System.Collections;
 using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
+using DG.Tweening;
 using UnityEngine;
 using UnityEngine.UI;
 
@@ -8,10 +11,13 @@
 /// </summary>
 public class HomeWin : UIBase
 {
-
     //缁忛獙鍖�
     [SerializeField] Text playerLevelText;
     [SerializeField] SmoothSlider expSlider;
+    [SerializeField] UIEffectPlayer fullEffect;
+    [SerializeField] UIEffectPlayer headEffect;
+    [SerializeField] Button officialUpBtn;
+    [SerializeField] Transform officialTip;
 
     //浠诲姟鍖�
     [SerializeField] Button taskButton; //寮曞鎴栬�呴鍙栦换鍔″鍔�
@@ -20,18 +26,67 @@
     [SerializeField] Image awardIcon;
     [SerializeField] Text awardCnt;
     [SerializeField] UIEffectPlayer taskEffect;
-
+    [SerializeField] UIEffectPlayer lvUPEffect;
 
     //鍏冲崱
     [SerializeField] Button bossBtn;
+    [SerializeField] MainLevelWaveCell[] mainLevelWaves;
+    [SerializeField] ScrollRect mainLevelScrollRect;
+    [SerializeField] Text levelName;
 
+    [SerializeField] GameObject restMark;
+    [SerializeField] Button restBtn;
+    [SerializeField] GameObject fightMark;
+    [SerializeField] ScaleTween bossTween;
+    [SerializeField] GameObject bossmask;   //瀹屾垚杩涘害閬尅绠¢亾 绾樉绀�
+    [SerializeField] GameObject bossActiveGo;
+    [SerializeField] GameObject bitemeGo;
+    [SerializeField] Text processText;
+
+
+    //鍗$墝
+    [SerializeField] HeroFightingCardCell[] heroFightingCardCells;
     [SerializeField] Button changeHeroPosBtn;
 
+    //搴曢儴鍔熻兘
     [SerializeField] Button autoBtn;
+    [SerializeField] Image autoCloseImg;
+    [SerializeField] UIEffectPlayer autoOpenEffect;
+    [SerializeField] Button blessLVBtn;
+    [SerializeField] Text blessLVText;
+    [SerializeField] Button mailBtn;
+
+    //鍙充晶鍔熻兘
+    [SerializeField] Button funcColBtn;
+    [SerializeField] RightFuncInHome rightFuncInHome;
+
+    [SerializeField] Button FirstChargeBtn;
+    [SerializeField] Button osMainLevelBtn;
+    [SerializeField] Button osHeroCallBtn;
+    [SerializeField] Button osGalaBtn;
+
+    //鍧愰獞
+    [SerializeField] Image horseBGImg;
+    [SerializeField] Button horseBtn;
+    [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] Button monthCardBtn;
+    [SerializeField] Transform transChatBulletView;
+    GameObject chatBulletViewPrefab;
+
+
 
     /// <summary>
     /// 鍒濆鍖栫粍浠�
@@ -39,10 +94,7 @@
     protected override void InitComponent()
     {
         taskButton.AddListener(OnClickTaskButton);
-        bossBtn.AddListener(() =>
-        {
-            UIManager.Instance.OpenWindow<MainBossEnterWin>();
-        });
+        bossBtn.AddListener(OnClickEnterBoss);
 
         changeHeroPosBtn.AddListener(() =>
         {
@@ -52,68 +104,262 @@
 
         autoBtn.AddListener(() =>
         {
-            //娴嬭瘯鎷惧彇鎵�鏈夌墿鍝�
-            var items = PackManager.Instance.GetItems(PackType.DropItem);
-            List<int> dropindexs = new List<int>();
-            for (int i = 0; i < items.Count; i++)
+            if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.AutoFight, true))
             {
-                var item = items[i];
-                if (dropindexs.Count > 5)
-                {
-                    EquipModel.Instance.NotifyItemDrop(dropindexs, BattleManager.Instance.storyBattleField.battleRootNode.blueTeamNodeList[Random.Range(0, 5)].GetComponent<RectTransform>());
-                    dropindexs.Clear();
-                }
-
-                dropindexs.Add(item.gridIndex);
+                return;
             }
-            if (dropindexs.Count > 0)
-            {
-                EquipModel.Instance.NotifyItemDrop(dropindexs, BattleManager.Instance.storyBattleField.battleRootNode.blueTeamNodeList[Random.Range(0, 5)].GetComponent<RectTransform>());
-                dropindexs.Clear();
-            }
+            UIManager.Instance.OpenWindow<AutoFightWin>();
         });
 
 
-        monthCardBtn.AddListener(() =>
+
+
+        FirstChargeBtn.AddListener(() =>
         {
-            InvestModel.Instance.BuyInvest(InvestModel.monthCardType);
+            UIManager.Instance.OpenWindow<FirstChargeWin>();
+        });
+
+        blessLVBtn.AddListener(() =>
+        {
+            if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BlessLV, true))
+            {
+                return;
+            }
+            UIManager.Instance.OpenWindow<BlessLVWin>();
+        });
+
+        mailBtn.AddListener(() =>
+        {
+            UIManager.Instance.OpenWindow<MailWin>();
+        });
+
+        officialUpBtn.AddListener(() =>
+        {
+            if (RealmConfig.GetKeys().Count <= PlayerDatas.Instance.baseData.realmLevel)
+                return;
+            UIManager.Instance.OpenWindow<OfficialUpWin>();
+        });
+
+        restBtn.AddListener(GotoRest);
+        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>();
         });
     }
 
 
 
 
-    public override void Refresh()
+    public void Display()
     {
         UpdatePlayerInfo();
         UpdateTask();
         RefreshRecharge();
+        ShowBlessLV();
+        DisplayAutoFight();
+        DisplayCard(TeamType.Story);
+        DisplayLevel();
+        DisplayRestState();
+
+        funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID));
+        officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
+
+        DisplayHorse();
+
+        DisplayChatBulletView();
+        chatBtn.SetActive(true);
+        transFastChat.SetActive(false);
+        inputFastChat.characterLimit = ChatManager.Instance.characterLimit;
+        UpdateSendButton();
     }
 
     protected override void OnPreOpen()
     {
         PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
         TaskManager.Instance.OnTaskUpdate += UpdateTask;
-        Refresh();
+        BlessLVManager.Instance.OnBlessLVUpdateEvent += ShowBlessLV;
+        AutoFightModel.Instance.ChangeAutoEvent += DisplayAutoFight;
+        AutoFightModel.Instance.OnFightEvent += ChangeMode;
+        TeamManager.Instance.OnTeamChange += DisplayCard;
+        UIManager.Instance.OnCloseWindow += OnCloseWindow;
+        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChange;
+        FirstChargeManager.Instance.OnUpdateFirstChargeInfo += OnUpdateFirstChargeInfo;
+        GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
+        HeroUIManager.Instance.OnUnLockHeroCountEvent += OnUnLockHeroCountEvent;
+        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();
     }
-    protected override void OnOpen()
-    {
-        base.OnOpen();
-        
-    }
+
 
 
     protected override void OnPreClose()
     {
         PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
         TaskManager.Instance.OnTaskUpdate -= UpdateTask;
+        BlessLVManager.Instance.OnBlessLVUpdateEvent -= ShowBlessLV;
+        AutoFightModel.Instance.ChangeAutoEvent -= DisplayAutoFight;
+        AutoFightModel.Instance.OnFightEvent -= ChangeMode;
+        TeamManager.Instance.OnTeamChange -= DisplayCard;
+        UIManager.Instance.OnCloseWindow -= OnCloseWindow;
+        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChange;
+        FirstChargeManager.Instance.OnUpdateFirstChargeInfo -= OnUpdateFirstChargeInfo;
+        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
+        HeroUIManager.Instance.OnUnLockHeroCountEvent -= OnUnLockHeroCountEvent;
+        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()
+    {
+        // BattleField battleField = BattleManager.Instance.GetBattleFieldByMapID(2); //BOSS鎴樻枟
+
+        // if (null != battleField)
+        // {
+        //     StoryBossBattleWin fsBattleWin = UIManager.Instance.OpenWindow<StoryBossBattleWin>();
+        //     fsBattleWin.SetBattleField(battleField);
+        //     return;
+        // }
+
+        UIManager.Instance.OpenWindow<MainBossEnterWin>();
+    }
+
+    int lastLV = 0;
     void PlayerDataRefresh(PlayerDataType type)
     {
         switch (type)
@@ -123,7 +369,25 @@
                 ShowExp();
                 break;
             case PlayerDataType.LV:
+                if (lastLV != PlayerDatas.Instance.baseData.LV)
+                {
+                    lastLV = PlayerDatas.Instance.baseData.LV;
+                    lvUPEffect.Play();
+                    fullEffect.Play(closePMA: true);
+                    headEffect.Stop();
+                }
                 playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString();
+                break;
+            case PlayerDataType.ExAttr1:
+            case PlayerDataType.ExAttr2:
+                DisplayLevel();
+                break;
+
+            case PlayerDataType.RealmLevel:
+                OnOfficialCanLVUpEvent();
+                break;
+            case PlayerDataType.EquipShowSwitch:
+                DisplayHorse();
                 break;
         }
 
@@ -131,8 +395,30 @@
     }
 
     void RefreshRecharge()
-    { 
-        monthCardBtn.SetActive(!InvestModel.Instance.IsInvested(InvestModel.monthCardType));
+    {
+        //monthCardBtn.SetActive(!InvestModel.Instance.IsInvested(InvestModel.monthCardType));
+    }
+
+
+    void ShowBlessLV()
+    {
+        blessLVText.text = BlessLVManager.Instance.m_TreeLV.ToString();
+    }
+
+    void DisplayAutoFight()
+    {
+        if (AutoFightModel.Instance.isAutoAttackSet)
+        {
+            autoCloseImg.SetActive(false);
+            autoOpenEffect.Play();
+        }
+        else
+        {
+            autoCloseImg.SetActive(true);
+            autoOpenEffect.Stop();
+        }
+
+
     }
 
     /// <summary>
@@ -141,20 +427,26 @@
     private void UpdatePlayerInfo()
     {
         playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString();
-        ShowExp();
+        headEffect.transform.localPosition = new Vector3(400 * expSlider.value - 200 - 24, 0, 0);
+        ShowExp(false);
 
     }
 
-    void ShowExp()
+    void ShowExp(bool showEffect = true)
     {
         var lvConfig = PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV);
         expSlider.value = (float)PlayerDatas.Instance.baseData.curExp / lvConfig.EXP;
         expSlider.Text.text = PlayerDatas.Instance.baseData.curExp + "/" + PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV).EXP;
+        if (showEffect)
+        {
+            headEffect.transform.DOLocalMove(new Vector3(400 * expSlider.value - 200 - 24, 0, 0), 0.5f);
+            headEffect.Play(closePMA: true);
+        }
     }
 
 
     void UpdateTask()
-    { 
+    {
         var task = TaskManager.Instance.mainTask;
         if (task.TaskID == 0)
         {
@@ -164,18 +456,25 @@
         {
             taskButton.SetActive(true);
             var taskConfig = TaskConfig.Get(task.TaskID);
+            if (taskConfig == null)
+            {
+                Debug.LogError("鎵句笉鍒颁换鍔� " + task.TaskID);
+                return;
+            }
             taskText.text = taskConfig.TaskDescribe;
             taskNumText.text = string.Format("({0}/{1})", task.CurValue, taskConfig.NeedValue);
-            taskNumText.color = task.CurValue >= taskConfig.NeedValue ? UIHelper.GetUIColor(TextColType.NavyYellow) :  UIHelper.GetUIColor(TextColType.Red);
+            taskNumText.color = task.CurValue >= taskConfig.NeedValue ? UIHelper.GetUIColor(TextColType.NavyYellow) : UIHelper.GetUIColor(TextColType.Red);
             if (TaskManager.Instance.GetMainTaskState() == 2)
-            { 
+            {
                 taskEffect.Play();
             }
             else
             {
                 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();
         }
     }
@@ -189,10 +488,214 @@
             getReward.RewardType = 66;
             getReward.DataEx = (uint)TaskManager.Instance.mainTask.TaskID;
             GameNetSystem.Instance.SendInfo(getReward);
+            return;
+        }
+
+        TaskManager.Instance.ClickTask();
+    }
+
+    void DisplayCard(TeamType teamType)
+    {
+        if (teamType != TeamType.Story)
+            return;
+        var team = TeamManager.Instance.GetTeam(teamType);
+        var heros = team.GetHerosOnTeam();
+        //鏄剧ず鍗$墝
+        for (int i = 0; i < heroFightingCardCells.Length; i++)
+        {
+            heroFightingCardCells[i].Display(i, heros);
+        }
+    }
+
+    private void OnCloseWindow(UIBase closeUI)
+    {
+        //鍏朵粬姝﹀皢鍔熻兘浜х敓鏁版嵁鍙樺寲锛岄渶瑕佸埛鏂版灏嗗垪琛�
+        if (closeUI is HeroTrainWin)
+        {
+            DisplayCard(TeamType.Story);
+        }
+    }
+
+
+    private void DisplayLevel()
+    {
+        var value = PlayerDatas.Instance.baseData.ExAttr2;
+        var chapterID = value / 10000;
+        var levelNum = value % 10000 / 100;
+        var waveID = value % 100;
+
+        var config = MainLevelConfig.GetMainLevelConfig(chapterID, levelNum);
+        var totalWave = MainLevelConfig.GetwaveCount(config);
+        for (int i = 0; i < mainLevelWaves.Length; i++)
+        {
+            if (i < totalWave)
+            {
+                mainLevelWaves[i].SetActive(true);
+                mainLevelWaves[i].Display(i);
+            }
+            else
+            {
+                mainLevelWaves[i].SetActive(false);
+            }
+        }
+
+        mainLevelScrollRect.normalizedPosition = new Vector2(waveID > 3 ? 1 : 0, 0);
+
+        var chapterConfig = MainChapterConfig.Get(chapterID);
+        //銆愭櫘閫氥�戝叧鍗″悕瀛�1-6
+        levelName.text = Language.Get("mainui7", chapterConfig.Level, chapterConfig.ChapterName, chapterID, levelNum);
+
+        bool canChallengeBoss = MainLevelManager.Instance.CanChallengeBoss();
+        //BOSS
+        if (canChallengeBoss)
+        {
+            bossActiveGo.SetActive(true);
+            processText.SetActive(false);
+            bossTween.Play();
+            bitemeGo.SetActive(true);
+            bossmask.SetActive(true);
         }
         else
         {
-            //鏍规嵁浠诲姟绫诲瀷寮曞
+            bossActiveGo.SetActive(false);
+            processText.SetActive(true);
+            processText.text = (waveID - 1) * 100 / totalWave + "%";
+            bossTween.Stop();
+            bitemeGo.SetActive(false);
+            bossmask.SetActive(false);
+        }
+
+    }
+
+    void DisplayRestState()
+    {
+        if (BattleManager.Instance.storyBattleField != null &&
+            BattleManager.Instance.storyBattleField.GetBattleMode() == BattleMode.Stop)
+        {
+            //浼戞伅涓�
+            restMark.SetActive(true);
+            fightMark.SetActive(false);
+        }
+        else
+        {
+            //鎴樻枟涓�
+            restMark.SetActive(false);
+            fightMark.SetActive(true);
+        }
+
+    }
+
+    void ChangeMode(bool isFight)
+    {
+        if (isFight)
+            return;
+        DisplayRestState();
+        DisplayLevel();
+    }
+
+    void GotoRest()
+    {
+        if (BattleManager.Instance.storyBattleField != null &&
+            BattleManager.Instance.storyBattleField.GetBattleMode() != BattleMode.Stop)
+        {
+            BattleManager.Instance.storyBattleField.HaveRest();
         }
     }
-}
\ No newline at end of file
+
+    private void DisplayFirstChargeBtn()
+    {
+        bool isFuncOpen = FirstChargeManager.Instance.IsFuncOpen();
+        bool isAllHave = FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed();
+        bool isNextDay = FirstChargeManager.Instance.IsNextDayAfterAllClaimed();
+
+        if (isAllHave && isNextDay)
+        {
+            FirstChargeBtn.SetActive(false);
+        }
+        else
+        {
+            FirstChargeBtn.SetActive(isFuncOpen);
+        }
+    }
+
+
+
+
+
+    private void OnFirstChargeTaskUpdateEvent()
+    {
+        DisplayFirstChargeBtn();
+    }
+
+    private void OnFuncStateChange(int funcId)
+    {
+        if (funcId == GeneralDefine.mainRightFuncOpenFuncID)
+        {
+            funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID));
+        }
+        else if (funcId == (int)FuncOpenEnum.Horse)
+        {
+            DisplayHorse();
+        }
+        else if (funcId == (int)FuncOpenEnum.OSMainLevl || funcId == (int)FuncOpenEnum.OSHeroCall
+        || funcId == (int)FuncOpenEnum.OSGala)
+        {
+            DisplayOSActivity();
+        }
+    }
+
+    private void OnUpdateFirstChargeInfo()
+    {
+        DisplayFirstChargeBtn();
+    }
+
+    private void OnSecondEvent()
+    {
+        DisplayFirstChargeBtn();
+        UpdateSendButton();
+    }
+
+    void OnUnLockHeroCountEvent()
+    {
+        DisplayCard(TeamType.Story);
+    }
+
+
+    void DisplayHorse()
+    {
+        if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Horse))
+        {
+            horseBGImg.SetActive(true);
+            //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
+        {
+            horseBGImg.SetActive(false);
+        }
+    }
+
+    void OpenHorse()
+    {
+        if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Horse, true))
+        {
+            UIManager.Instance.OpenWindow<HorseWin>();
+        }
+    }
+
+    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