From 7eb09b918853609ec835c58097d0c564708f288e Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期六, 30 三月 2019 15:14:47 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/MainInterfacePanel/ChatFrame.cs |  129 ++++++++++++++++++-------------------------
 1 files changed, 54 insertions(+), 75 deletions(-)

diff --git a/System/MainInterfacePanel/ChatFrame.cs b/System/MainInterfacePanel/ChatFrame.cs
index 11259c6..dfc85b9 100644
--- a/System/MainInterfacePanel/ChatFrame.cs
+++ b/System/MainInterfacePanel/ChatFrame.cs
@@ -15,9 +15,6 @@
 
     public class ChatFrame : MonoBehaviour
     {
-        [SerializeField] Button m_Voice;
-        [SerializeField] VoiceRecorder m_TeamVoice;
-        [SerializeField] VoiceRecorder m_GuildVoice;
         [SerializeField] Button _MailBtn;//閭欢鎸夐挳
         [SerializeField] Button _OneKeyBtn;//鍦板浘鎸傛満
         [SerializeField] Button _AutoBtn;//鑷姩鎸傛満  
@@ -31,29 +28,27 @@
         [SerializeField] Button m_SocialBtn;//绀句氦鎸夐挳
         [SerializeField] Button m_TeamBtn;//闃熶紞鎸夐挳
 
+        [SerializeField] RectTransform m_ContainerVoice;
+        [SerializeField] Button m_Voice;
+        [SerializeField] VoiceWidget m_VoiceWidget;
+
         List<int> OneKeyList = new List<int>();
 
-        TeamModel model { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
+        TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
         CoinTaskTipModel coinTaskTip { get { return ModelCenter.Instance.GetModel<CoinTaskTipModel>(); } }
+
+        void Awake()
+        {
+            var funconfig = FuncConfigConfig.Get("OneKeyBtnMap");
+            OneKeyList.AddRange(ConfigParse.GetMultipleStr<int>(funconfig.Numerical1));
+        }
 
         public void Init()
         {
-            OneKeyList.Clear();
-            var funconfig = FuncConfigConfig.Get("OneKeyBtnMap");
-            int[] Listmap = ConfigParse.GetMultipleStr<int>(funconfig.Numerical1);
-            for (int i = 0; i < Listmap.Length; i++)
-            {
-                OneKeyList.Add(Listmap[i]);
-            }
             MailAllModel.Instance.MailCntChangeEvent += MailCountChange;
-            model.myTeamRefreshEvent += myTeamRefreshEvent;
             HeroBehaviour.OnStopHandupAI += OnHeroHandupAIStopPassive;
             HeroBehaviour.OnStartHandupAI += OnHeroHandupAIStarted;
-            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
             FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
-
-            m_GuildVoice.voiceRecordSuccessEvent += OnVoiceRecordFairySuccessEvent;
-            m_TeamVoice.voiceRecordSuccessEvent += OnVoiceRecordTeamSuccessEvent;
 
             _MailBtn.SetListener(MailButton);
             _OneKeyBtn.SetListener(OneKeyButton);
@@ -63,9 +58,11 @@
             m_TaskBtn.SetListener(TaskButton);
             m_SocialBtn.SetListener(FriendsButton);
             m_TeamBtn.SetListener(OpenTeam);
-            myTeamRefreshEvent();
-            OnRefreshFairyInfo();
+            m_Voice.SetListener(OpenVoice);
+
             MailCountChange();
+            UpdateVoiceState();
+            m_VoiceWidget.Init();
 
             if (PlayerDatas.Instance.hero != null)
             {
@@ -76,44 +73,31 @@
             }
         }
 
-        public void OnAfterOpen()
+        public void UnInit()
         {
-            var inDungeon = IsDungeon();
-            int MapId = PlayerDatas.Instance.baseData.MapID;
-            if (inDungeon)
-            {
-                m_TaskBtn.gameObject.SetActive(false);
-                if (OneKeyList.Contains(MapId))
-                {
-                    _OneKeyBtn.gameObject.SetActive(true);
-                }
-                else
-                {
-                    _OneKeyBtn.gameObject.SetActive(false);
-                }
-            }
-            else
-            {
-                m_TaskBtn.gameObject.SetActive(true);
-                _OneKeyBtn.gameObject.SetActive(true);
-            }
-        }
-        private void OnVoiceRecordTeamSuccessEvent(int _instId, float _seconds)
-        {
-            ModelCenter.Instance.GetModel<ChatCenter>().SetVoice(_instId, ChatInfoType.Team, _seconds);
+            m_VoiceWidget.Init();
+            teamModel.myTeamRefreshEvent -= UpdateVoiceState;
+            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= UpdateVoiceState;
+            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
+            HeroBehaviour.OnStopHandupAI -= OnHeroHandupAIStopPassive;
+            HeroBehaviour.OnStartHandupAI -= OnHeroHandupAIStarted;
+            MailAllModel.Instance.DeleteMailEvent -= MailCountChange;
         }
 
-        private void OnVoiceRecordFairySuccessEvent(int _instId, float _seconds)
+        public void OnAfterOpen()
         {
-            ModelCenter.Instance.GetModel<ChatCenter>().SetVoice(_instId, ChatInfoType.Fairy, _seconds);
+            var mapId = PlayerDatas.Instance.baseData.MapID;
+            var inDungeon = MapUtility.IsDungeon(mapId);
+
+            m_TaskBtn.gameObject.SetActive(!inDungeon);
+            _OneKeyBtn.gameObject.SetActive(!inDungeon || OneKeyList.Contains(mapId));
         }
 
         private void OnFuncStateChangeEvent(int _type)
         {
             if ((FuncOpenEnum)_type == FuncOpenEnum.Chat)
             {
-                OnRefreshFairyInfo();
-                myTeamRefreshEvent();
+                UpdateVoiceState();
             }
         }
 
@@ -172,7 +156,7 @@
         private void OpenTeam()
         {
             WindowCenter.Instance.Close<MainInterfaceWin>();
-            if (model.myTeam.inTeam)
+            if (teamModel.myTeam.inTeam)
             {
                 WindowCenter.Instance.Open<TeamFrameWin>(false, 1);
             }
@@ -182,28 +166,29 @@
             }
         }
 
-        public void UnInit()
+        private void OpenVoice()
         {
-            m_GuildVoice.voiceRecordSuccessEvent -= OnVoiceRecordFairySuccessEvent;
-            m_TeamVoice.voiceRecordSuccessEvent -= OnVoiceRecordTeamSuccessEvent;
-            model.myTeamRefreshEvent -= myTeamRefreshEvent;
-            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
-            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
-            HeroBehaviour.OnStopHandupAI -= OnHeroHandupAIStopPassive;
-            HeroBehaviour.OnStartHandupAI -= OnHeroHandupAIStarted;
-            MailAllModel.Instance.DeleteMailEvent -= MailCountChange;
+            m_VoiceWidget.Show();
         }
 
-        private void OnRefreshFairyInfo()
+        private void UpdateVoiceState()
         {
-            m_GuildVoice.gameObject.SetActive(PlayerDatas.Instance.fairyData.HasFairy
-                && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat));
-        }
+            var chatable = FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat);
+            var guildVoiceEnable = false;
+            var teamVoiceEnable = false;
 
-        private void myTeamRefreshEvent()
-        {
-            m_TeamVoice.gameObject.SetActive(model.myTeam.inTeam
-                && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat));
+            if (chatable)
+            {
+                guildVoiceEnable = PlayerDatas.Instance.fairyData.HasFairy;
+                teamVoiceEnable = teamModel.myTeam.inTeam;
+            }
+            else
+            {
+                guildVoiceEnable = false;
+                teamVoiceEnable = false;
+            }
+
+            m_ContainerVoice.gameObject.SetActive(chatable && (guildVoiceEnable || teamVoiceEnable));
         }
 
         private void LateUpdate()
@@ -256,7 +241,8 @@
             WindowCenter.Instance.Open<MailWin>();
             WindowCenter.Instance.Close<MainInterfaceWin>();
         }
-        DungeonModel modelD { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
+
+        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
         PlayerMainDate main { get { return ModelCenter.Instance.GetModel<PlayerMainDate>(); } }
         BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
         void OneKeyButton()//鍦板浘鎸傛満鎸夐挳
@@ -269,18 +255,18 @@
 
             if (OneKeyList.Contains(PlayerDatas.Instance.baseData.MapID))
             {
-                var dataMapId = modelD.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
+                var dataMapId = MapUtility.GetDataMapId();
                 var config = DungeonOpenTimeConfig.Get(dataMapId);
                 string language = string.Empty;
                 if (dataMapId == GeneralDefine.ruinsTranscriptMapId)
                 {
-                    language = Language.Get(modelD.mission.lineID > main.LayerNumberNow ? "WHMJ_Quit2" : "WHMJ_Quit1");
+                    language = Language.Get(dungeonModel.mission.lineID > main.LayerNumberNow ? "WHMJ_Quit2" : "WHMJ_Quit1");
                 }
                 else if (dataMapId == BossHomeModel.BOSSHOME_MAPID)
                 {
                     var vipLevel = PlayerDatas.Instance.baseData.VIPLv;
                     var vipNeed = bossHomeModel.GetFloorVipRequirement(PlayerDatas.Instance.baseData.dungeonLineId + 1);
-                    var dungeonId = modelD.GetDungeonId(dataMapId, PlayerDatas.Instance.baseData.dungeonLineId);
+                    var dungeonId = dungeonModel.GetDungeonId(dataMapId, PlayerDatas.Instance.baseData.dungeonLineId);
                     var dungeonConfig = DungeonConfig.Get(dungeonId);
 
                     if (vipLevel < vipNeed)
@@ -400,13 +386,6 @@
             {
                 m_ImgUnAuto.gameObject.SetActive(true);
             }
-        }
-
-        private bool IsDungeon()//鍒ゆ柇鏄惁鍐嶅壇鏈腑
-        {
-            var mapId = PlayerDatas.Instance.baseData.MapID;
-            var mapConfig = MapConfig.Get(mapId);
-            return mapConfig != null && mapConfig.MapFBType != 0;
         }
 
     }

--
Gitblit v1.8.0