少年修仙传客户端代码仓库
client_linchunjie
2018-08-28 d967a51a34fe3ac68267b29b6f2ea4cb509d4977
System/MainInterfacePanel/ChatFrame.cs
@@ -1,474 +1,474 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, September 07, 2017
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;
using TableConfig;
using System.Collections.Generic;
//聊天面板
namespace Snxxz.UI
{
    public class ChatFrame : MonoBehaviour
    {
        [SerializeField] VoiceRecorder _TongVoiceBtn;//盟语音
        [SerializeField] VoiceRecorder _TeamChatBtn;//队语音
        [SerializeField] Button _MailBtn;//邮件按钮
        [SerializeField] Button _OneKeyBtn;//地图挂机
        [SerializeField] Button _AutoBtn;//自动挂机
        [SerializeField] Button _FriendsBtn;//好友按钮
        [SerializeField] Button _BackPack1Btn;//背包按钮
        [SerializeField] Button _SetupBtn;
        [SerializeField] GameObject _OneKeyBtnImg;//地图挂机
        [SerializeField] GameObject AutoImg;//原地挂机
        [SerializeField] Button m_TaskBtn;//任务按钮
        [SerializeField] Button m_TeamBtn;//队伍按钮
        [SerializeField] Button m_RealmBtn;//境界按钮
        [SerializeField] Image m_RealmLV;//境界等级
        [SerializeField] RedpointBehaviour m_RealmRed;
        [SerializeField] UIEffect m_RealmSfx;
        [SerializeField] FairyFeastBehaviour m_FairyFeast;
        List<int> OneKeyList = new List<int>();
        TeamModel m_Model;
        TeamModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TeamModel>()); } }
        RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
        CoinTaskTipModel m_CoinTaskTip;
        CoinTaskTipModel coinTaskTip { get { return m_CoinTaskTip ?? (m_CoinTaskTip = ModelCenter.Instance.GetModel<CoinTaskTipModel>()); } }
        public void Init()
        {
            OneKeyList.Clear();
            var funconfig = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("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;
            _TongVoiceBtn.voiceRecordSuccessEvent += OnVoiceRecordFairySuccessEvent;
            _TeamChatBtn.voiceRecordSuccessEvent += OnVoiceRecordTeamSuccessEvent;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418)
            RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent;
            m_FairyFeast.Init();
            _MailBtn.onClick.AddListener(MailButton);
            _OneKeyBtn.onClick.AddListener(OneKeyButton);
            _AutoBtn.onClick.AddListener(AutoButton);
            _FriendsBtn.onClick.AddListener(TeamBtn);
            _BackPack1Btn.onClick.AddListener(BackPack1Buton);
            _SetupBtn.onClick.AddListener(OnSetBtn);
            m_TaskBtn.AddListener(TaskButton);
            m_TeamBtn.AddListener(FriendsButton);
            m_RealmBtn.AddListener(OnRealmButton);
            myTeamRefreshEvent();
            OnRefreshFairyInfo();
            CheckRealmSfx();
            if (PlayerDatas.Instance.hero != null)
            {
                if (PlayerDatas.Instance.hero.aiHandler.IsAuto())
                {
                    OnHeroHandupAIStopPassive();
                }
            }
            MailCountChange();
            GetRealmLevel();
        }
        public void OnAfterOpen()
        {
            var inDungeon = IsDungeon();
            int MapId = PlayerDatas.Instance.baseData.MapID;
            if (inDungeon)
            {
                m_TaskBtn.gameObject.SetActive(false);
                if (OneKeyList.Contains(MapId))
                {
                    _OneKeyBtnImg.SetActive(true);
                }
                else
                {
                    _OneKeyBtnImg.SetActive(false);
                }
            }
            else
            {
                m_TaskBtn.gameObject.SetActive(true);
                _OneKeyBtnImg.SetActive(true);
            }
        }
        private void OnVoiceRecordTeamSuccessEvent(int _instId, float _seconds)
        {
            ModelCenter.Instance.GetModel<ChatCenter>().SetVoice(_instId, ChatInfoType.Team, _seconds);
        }
        private void OnVoiceRecordFairySuccessEvent(int _instId, float _seconds)
        {
            ModelCenter.Instance.GetModel<ChatCenter>().SetVoice(_instId, ChatInfoType.Fairy, _seconds);
        }
        private void OnFuncStateChangeEvent(int _type)
        {
            if ((FuncOpenEnum)_type == FuncOpenEnum.Chat)
            {
                OnRefreshFairyInfo();
                myTeamRefreshEvent();
            }
            if ((FuncOpenEnum)_type == FuncOpenEnum.Realm)
            {
                GetRealmLevel();
            }
        }
        private void MailCountChange()
        {
            List<MailInfo> maillist = MailAllModel.Instance.GetTimeOrderMaillist();
            bool isShowMail = false;
            if (maillist != null && PreFightMission.Instance.IsFinished())
            {
                for (int i = 0; i < maillist.Count; i++)
                {
                    if (maillist[i].IsRead == 0)
                    {
                        isShowMail = true;
                        break;
                    }
                    else
                    {
                        if (maillist[i].Gold > 0
                            || maillist[i].GoldPaper > 0
                            || maillist[i].Silver > 0
                            || maillist[i].Count > 0)
                        {
                            isShowMail = true;
                            break;
                        }
                    }
                }
            }
            _MailBtn.gameObject.SetActive(isShowMail);
        }
        private void GetRealmLevel()//关于境界
        {
            int realmLevel = PlayerDatas.Instance.baseData.realmLevel;
            var realmConfig = ConfigManager.Instance.GetTemplate<RealmConfig>(realmLevel);
            if (FuncOpen.Instance.IsFuncOpen(12))
            {
                if (realmConfig != null && realmConfig.Lv > 0)
                {
                    m_RealmLV.SetSprite(realmConfig.Img);
                }
                else
                {
                    m_RealmLV.SetSprite("NoRealm");
                }
            }
            else
            {
                m_RealmLV.SetSprite("NoRealm");
            }
        }
        public void CheckRealmSfx()
        {
            var _model = ModelCenter.Instance.GetModel<RealmModel>();
            if (_model.IsDungeonState && realmModel.realmRedpoint.state == RedPointState.Simple)
            {
                m_RealmRed.gameObject.SetActive(false);
                if (!m_RealmSfx.IsPlaying)
                {
                    m_RealmSfx.Play();
                }
            }
            else
            {
                m_RealmRed.gameObject.SetActive(true);
            }
        }
        private void OnSetBtn()
        {
            WindowCenter.Instance.Close<MainInterfaceWin>();
            WindowCenter.Instance.Open<SettingUpWin>(false, 3);
        }
        private void TaskButton()
        {
            WindowCenter.Instance.Close<MainInterfaceWin>();
            WindowCenter.Instance.Open<TaskWin>();
            if (coinTaskTip.IsPopup)
            {
                coinTaskTip.IsPopup = false;
            }
        }
        private void TeamBtn()
        {
            WindowCenter.Instance.Close<MainInterfaceWin>();
            if (model.myTeam.inTeam)
            {
                WindowCenter.Instance.Open<TeamFrameWin>(false, 1);
            }
            else
            {
                WindowCenter.Instance.Open<TeamFrameWin>(false, 0);
            }
        }
        public void UnInit()
        {
            _TongVoiceBtn.voiceRecordSuccessEvent -= OnVoiceRecordFairySuccessEvent;
            _TeamChatBtn.voiceRecordSuccessEvent -= OnVoiceRecordTeamSuccessEvent;
            model.myTeamRefreshEvent -= myTeamRefreshEvent;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
            HeroBehaviour.OnStopHandupAI -= OnHeroHandupAIStopPassive;
            HeroBehaviour.OnStartHandupAI -= OnHeroHandupAIStarted;
            MailAllModel.Instance.DeleteMailEvent -= MailCountChange;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418)
            RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
            m_FairyFeast.UnInit();
            m_RealmBtn.RemoveAllListeners();
            _MailBtn.onClick.RemoveAllListeners();
            _OneKeyBtn.onClick.RemoveAllListeners();
            _AutoBtn.onClick.RemoveAllListeners();
            _FriendsBtn.onClick.RemoveAllListeners();
            _BackPack1Btn.onClick.RemoveAllListeners();
            _SetupBtn.onClick.RemoveAllListeners();
            m_TeamBtn.RemoveAllListeners();
            m_TaskBtn.RemoveAllListeners();
        }
        private void RedpointValueChangeEvent(int _id)
        {
            if (_id == realmModel.realmRedpoint.id)
            {
                CheckRealmSfx();
            }
        }
        private void OnRefreshFairyInfo()
        {
            _TongVoiceBtn.gameObject.SetActive(PlayerDatas.Instance.fairyData.HasFairy
                && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat));
        }
        private void myTeamRefreshEvent()
        {
            _TeamChatBtn.gameObject.SetActive(model.myTeam.inTeam
                && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat));
        }
        private void LateUpdate()
        {
            if (PlayerDatas.Instance.hero == null
             || PlayerDatas.Instance.hero.aiHandler == null)
            {
                return;
            }
            if (PlayerDatas.Instance.hero.aiHandler.IsAuto())
            {
                AutoImg.SetActive(false);
                if (!WindowCenter.Instance.CheckOpen<ExperienceOpenWin>())
                {
                    WindowCenter.Instance.Open<ExperienceOpenWin>(true);
                }
            }
            else
            {
                AutoImg.SetActive(true);
                if (WindowCenter.Instance.CheckOpen<ExperienceOpenWin>())
                {
                    WindowCenter.Instance.CloseImmediately<ExperienceOpenWin>();
                }
            }
        }
        void FriendsButton()
        {
            //MainRedDot.Instance.redPointFriendChat.state = RedPointState.None;
            //ChatCtrl.Inst.presentChatType = ChatInfoType.Friend;
            //WindowCenter.Instance.Open<ChatWin>();
            WindowCenter.Instance.Open<SocialWin>();
        }
        void TeamChatButton()
        {
            SysNotifyMgr.Instance.ShowTip("UnopenedFunction");
        }
        void TongVoiceButton()
        {
            SysNotifyMgr.Instance.ShowTip("UnopenedFunction");
        }
        private void OnRealmButton()
        {
            WindowCenter.Instance.Open<RealmWin>();
            WindowCenter.Instance.Close<MainInterfaceWin>();
        }
        void MailButton()//邮件按钮
        {
            WindowCenter.Instance.Open<MailWin>();
            WindowCenter.Instance.Close<MainInterfaceWin>();
        }
        DungeonModel modelD { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        PlayerMainDate main { get { return ModelCenter.Instance.GetModel<PlayerMainDate>(); } }
        BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
        void OneKeyButton()//地图挂机按钮
        {
            if (OneKeyList.Contains(PlayerDatas.Instance.baseData.MapID))
            {
                var dataMapId = modelD.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
                var config = ConfigManager.Instance.GetTemplate<DungeonOpenTimeConfig>(dataMapId);
                string language = string.Empty;
                if (dataMapId == GeneralConfig.Instance.ruinsTranscriptMapId)
                {
                    language = Language.Get(modelD.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.DungeonMap(dataMapId, PlayerDatas.Instance.baseData.dungeonLineId);
                    var dungeonConfig = ConfigManager.Instance.GetTemplate<DungeonConfig>(dungeonId);
                    if (vipLevel < vipNeed)
                    {
                        var moneyNeed = bossHomeModel.GetVipLackCost(PlayerDatas.Instance.baseData.dungeonLineId + 1);
                        language = Language.Get("QuitRemindBossHome", dungeonConfig.FBName, vipNeed, moneyNeed);
                    }
                    else
                    {
                        language = Language.Get(config.ExitDescription);
                    }
                }
                else
                {
                    language = Language.Get(config.ExitDescription);
                }
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
               language, (bool isOk) =>
                {
                    if (isOk)
                    {
                        GoToOneKeyButton();
                    }
                });
            }
            else
            {
                GoToOneKeyButton();
            }
        }
        void GoToOneKeyButton()
        {
            var mapModel = ModelCenter.Instance.GetModel<MapModel>();
            var point = mapModel.GetRecommendHangPoint();
            var config = ConfigManager.Instance.GetTemplate<MapEventPointConfig>(point);
            var flyBootOwn = ModelCenter.Instance.GetModel<PlayerPackModel>().GetItemCountByID(PackType.rptItem, GeneralConfig.Instance.flyBootItemId);
            var isVipFreeTransfer = ModelCenter.Instance.GetModel<VipModel>().GetVipPrivilegeCnt(VipPrivilegeType.FreeTransfer) > 0;
            if (isVipFreeTransfer || flyBootOwn > 0)
            {
                MapTransferUtility.Instance.MissionFlyTo(config.MapID, config.NPCID);
            }
            else
            {
                MapTransferUtility.Instance.MoveToNPC(config.NPCID);
            }
        }
        void AutoButton()//原地挂机按钮
        {
            var _hero = PlayerDatas.Instance.hero;
            if (_hero != null && !_hero.ActorInfo.serverDie)
            {
                if (!_hero.aiHandler.IsAuto())
                {
                    if (!WindowCenter.Instance.CheckOpen<ExperienceOpenWin>())
                    {
                        WindowCenter.Instance.Open<ExperienceOpenWin>(true);
                    }
                    _hero.Behaviour.StartHandupAI();
                }
                else
                {
                    if (WindowCenter.Instance.CheckOpen<ExperienceOpenWin>())
                    {
                        WindowCenter.Instance.CloseImmediately<ExperienceOpenWin>();
                    }
                    _hero.Behaviour.StopHandupAI();
                }
            }
            AutoImg.SetActive(!AutoImg.activeSelf);
        }
        void BackPack1Buton()//背包按钮
        {
            WindowCenter.Instance.Open<KnapSackWin>();
            WindowCenter.Instance.Close<MainInterfaceWin>();
        }
        void OnHeroHandupAIStopPassive()
        {
            if (!AutoImg.activeSelf)
            {
                AutoImg.SetActive(true);
            }
        }
        void OnHeroHandupAIStarted()
        {
            if (AutoImg.activeSelf)
            {
                AutoImg.SetActive(false);
            }
        }
        private bool IsDungeon()//判断是否再副本中
        {
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var mapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(mapId);
            return mapConfig != null && mapConfig.MapFBType != 0;
        }
        void Updatefighting(PlayerDataRefresh _tCDBPlayerRefresh)//数据的刷新
        {
            switch (_tCDBPlayerRefresh)
            {
                case PlayerDataRefresh.OfficialRank:
                    GetRealmLevel();
                    break;
            }
        }
    }
}
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, September 07, 2017
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;
using TableConfig;
using System.Collections.Generic;
//聊天面板
namespace Snxxz.UI
{
    public class ChatFrame : MonoBehaviour
    {
        [SerializeField] VoiceRecorder _TongVoiceBtn;//盟语音
        [SerializeField] VoiceRecorder _TeamChatBtn;//队语音
        [SerializeField] Button _MailBtn;//邮件按钮
        [SerializeField] Button _OneKeyBtn;//地图挂机
        [SerializeField] Button _AutoBtn;//自动挂机
        [SerializeField] Button _FriendsBtn;//好友按钮
        [SerializeField] Button _BackPack1Btn;//背包按钮
        [SerializeField] Button _SetupBtn;
        [SerializeField] GameObject _OneKeyBtnImg;//地图挂机
        [SerializeField] GameObject AutoImg;//原地挂机
        [SerializeField] Button m_TaskBtn;//任务按钮
        [SerializeField] Button m_TeamBtn;//队伍按钮
        [SerializeField] Button m_RealmBtn;//境界按钮
        [SerializeField] Image m_RealmLV;//境界等级
        [SerializeField] RedpointBehaviour m_RealmRed;
        [SerializeField] UIEffect m_RealmSfx;
        [SerializeField] FairyFeastBehaviour m_FairyFeast;
        List<int> OneKeyList = new List<int>();
        TeamModel m_Model;
        TeamModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TeamModel>()); } }
        RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
        CoinTaskTipModel m_CoinTaskTip;
        CoinTaskTipModel coinTaskTip { get { return m_CoinTaskTip ?? (m_CoinTaskTip = ModelCenter.Instance.GetModel<CoinTaskTipModel>()); } }
        public void Init()
        {
            OneKeyList.Clear();
            var funconfig = Config.Instance.Get<FuncConfigConfig>("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;
            _TongVoiceBtn.voiceRecordSuccessEvent += OnVoiceRecordFairySuccessEvent;
            _TeamChatBtn.voiceRecordSuccessEvent += OnVoiceRecordTeamSuccessEvent;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418)
            RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent;
            m_FairyFeast.Init();
            _MailBtn.onClick.AddListener(MailButton);
            _OneKeyBtn.onClick.AddListener(OneKeyButton);
            _AutoBtn.onClick.AddListener(AutoButton);
            _FriendsBtn.onClick.AddListener(TeamBtn);
            _BackPack1Btn.onClick.AddListener(BackPack1Buton);
            _SetupBtn.onClick.AddListener(OnSetBtn);
            m_TaskBtn.AddListener(TaskButton);
            m_TeamBtn.AddListener(FriendsButton);
            m_RealmBtn.AddListener(OnRealmButton);
            myTeamRefreshEvent();
            OnRefreshFairyInfo();
            CheckRealmSfx();
            if (PlayerDatas.Instance.hero != null)
            {
                if (PlayerDatas.Instance.hero.aiHandler.IsAuto())
                {
                    OnHeroHandupAIStopPassive();
                }
            }
            MailCountChange();
            GetRealmLevel();
        }
        public void OnAfterOpen()
        {
            var inDungeon = IsDungeon();
            int MapId = PlayerDatas.Instance.baseData.MapID;
            if (inDungeon)
            {
                m_TaskBtn.gameObject.SetActive(false);
                if (OneKeyList.Contains(MapId))
                {
                    _OneKeyBtnImg.SetActive(true);
                }
                else
                {
                    _OneKeyBtnImg.SetActive(false);
                }
            }
            else
            {
                m_TaskBtn.gameObject.SetActive(true);
                _OneKeyBtnImg.SetActive(true);
            }
        }
        private void OnVoiceRecordTeamSuccessEvent(int _instId, float _seconds)
        {
            ModelCenter.Instance.GetModel<ChatCenter>().SetVoice(_instId, ChatInfoType.Team, _seconds);
        }
        private void OnVoiceRecordFairySuccessEvent(int _instId, float _seconds)
        {
            ModelCenter.Instance.GetModel<ChatCenter>().SetVoice(_instId, ChatInfoType.Fairy, _seconds);
        }
        private void OnFuncStateChangeEvent(int _type)
        {
            if ((FuncOpenEnum)_type == FuncOpenEnum.Chat)
            {
                OnRefreshFairyInfo();
                myTeamRefreshEvent();
            }
            if ((FuncOpenEnum)_type == FuncOpenEnum.Realm)
            {
                GetRealmLevel();
            }
        }
        private void MailCountChange()
        {
            List<MailInfo> maillist = MailAllModel.Instance.GetTimeOrderMaillist();
            bool isShowMail = false;
            if (maillist != null && PreFightMission.Instance.IsFinished())
            {
                for (int i = 0; i < maillist.Count; i++)
                {
                    if (maillist[i].IsRead == 0)
                    {
                        isShowMail = true;
                        break;
                    }
                    else
                    {
                        if (maillist[i].Gold > 0
                            || maillist[i].GoldPaper > 0
                            || maillist[i].Silver > 0
                            || maillist[i].Count > 0)
                        {
                            isShowMail = true;
                            break;
                        }
                    }
                }
            }
            _MailBtn.gameObject.SetActive(isShowMail);
        }
        private void GetRealmLevel()//关于境界
        {
            int realmLevel = PlayerDatas.Instance.baseData.realmLevel;
            var realmConfig = Config.Instance.Get<RealmConfig>(realmLevel);
            if (FuncOpen.Instance.IsFuncOpen(12))
            {
                if (realmConfig != null && realmConfig.Lv > 0)
                {
                    m_RealmLV.SetSprite(realmConfig.Img);
                }
                else
                {
                    m_RealmLV.SetSprite("NoRealm");
                }
            }
            else
            {
                m_RealmLV.SetSprite("NoRealm");
            }
        }
        public void CheckRealmSfx()
        {
            var _model = ModelCenter.Instance.GetModel<RealmModel>();
            if (_model.IsDungeonState && realmModel.realmRedpoint.state == RedPointState.Simple)
            {
                m_RealmRed.gameObject.SetActive(false);
                if (!m_RealmSfx.IsPlaying)
                {
                    m_RealmSfx.Play();
                }
            }
            else
            {
                m_RealmRed.gameObject.SetActive(true);
            }
        }
        private void OnSetBtn()
        {
            WindowCenter.Instance.Close<MainInterfaceWin>();
            WindowCenter.Instance.Open<SettingUpWin>(false, 3);
        }
        private void TaskButton()
        {
            WindowCenter.Instance.Close<MainInterfaceWin>();
            WindowCenter.Instance.Open<TaskWin>();
            if (coinTaskTip.IsPopup)
            {
                coinTaskTip.IsPopup = false;
            }
        }
        private void TeamBtn()
        {
            WindowCenter.Instance.Close<MainInterfaceWin>();
            if (model.myTeam.inTeam)
            {
                WindowCenter.Instance.Open<TeamFrameWin>(false, 1);
            }
            else
            {
                WindowCenter.Instance.Open<TeamFrameWin>(false, 0);
            }
        }
        public void UnInit()
        {
            _TongVoiceBtn.voiceRecordSuccessEvent -= OnVoiceRecordFairySuccessEvent;
            _TeamChatBtn.voiceRecordSuccessEvent -= OnVoiceRecordTeamSuccessEvent;
            model.myTeamRefreshEvent -= myTeamRefreshEvent;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
            HeroBehaviour.OnStopHandupAI -= OnHeroHandupAIStopPassive;
            HeroBehaviour.OnStartHandupAI -= OnHeroHandupAIStarted;
            MailAllModel.Instance.DeleteMailEvent -= MailCountChange;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418)
            RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
            m_FairyFeast.UnInit();
            m_RealmBtn.RemoveAllListeners();
            _MailBtn.onClick.RemoveAllListeners();
            _OneKeyBtn.onClick.RemoveAllListeners();
            _AutoBtn.onClick.RemoveAllListeners();
            _FriendsBtn.onClick.RemoveAllListeners();
            _BackPack1Btn.onClick.RemoveAllListeners();
            _SetupBtn.onClick.RemoveAllListeners();
            m_TeamBtn.RemoveAllListeners();
            m_TaskBtn.RemoveAllListeners();
        }
        private void RedpointValueChangeEvent(int _id)
        {
            if (_id == realmModel.realmRedpoint.id)
            {
                CheckRealmSfx();
            }
        }
        private void OnRefreshFairyInfo()
        {
            _TongVoiceBtn.gameObject.SetActive(PlayerDatas.Instance.fairyData.HasFairy
                && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat));
        }
        private void myTeamRefreshEvent()
        {
            _TeamChatBtn.gameObject.SetActive(model.myTeam.inTeam
                && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat));
        }
        private void LateUpdate()
        {
            if (PlayerDatas.Instance.hero == null
             || PlayerDatas.Instance.hero.aiHandler == null)
            {
                return;
            }
            if (PlayerDatas.Instance.hero.aiHandler.IsAuto())
            {
                AutoImg.SetActive(false);
                if (!WindowCenter.Instance.CheckOpen<ExperienceOpenWin>())
                {
                    WindowCenter.Instance.Open<ExperienceOpenWin>(true);
                }
            }
            else
            {
                AutoImg.SetActive(true);
                if (WindowCenter.Instance.CheckOpen<ExperienceOpenWin>())
                {
                    WindowCenter.Instance.CloseImmediately<ExperienceOpenWin>();
                }
            }
        }
        void FriendsButton()
        {
            //MainRedDot.Instance.redPointFriendChat.state = RedPointState.None;
            //ChatCtrl.Inst.presentChatType = ChatInfoType.Friend;
            //WindowCenter.Instance.Open<ChatWin>();
            WindowCenter.Instance.Open<SocialWin>();
        }
        void TeamChatButton()
        {
            SysNotifyMgr.Instance.ShowTip("UnopenedFunction");
        }
        void TongVoiceButton()
        {
            SysNotifyMgr.Instance.ShowTip("UnopenedFunction");
        }
        private void OnRealmButton()
        {
            WindowCenter.Instance.Open<RealmWin>();
            WindowCenter.Instance.Close<MainInterfaceWin>();
        }
        void MailButton()//邮件按钮
        {
            WindowCenter.Instance.Open<MailWin>();
            WindowCenter.Instance.Close<MainInterfaceWin>();
        }
        DungeonModel modelD { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        PlayerMainDate main { get { return ModelCenter.Instance.GetModel<PlayerMainDate>(); } }
        BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
        void OneKeyButton()//地图挂机按钮
        {
            if (OneKeyList.Contains(PlayerDatas.Instance.baseData.MapID))
            {
                var dataMapId = modelD.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
                var config = Config.Instance.Get<DungeonOpenTimeConfig>(dataMapId);
                string language = string.Empty;
                if (dataMapId == GeneralConfig.Instance.ruinsTranscriptMapId)
                {
                    language = Language.Get(modelD.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.DungeonMap(dataMapId, PlayerDatas.Instance.baseData.dungeonLineId);
                    var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
                    if (vipLevel < vipNeed)
                    {
                        var moneyNeed = bossHomeModel.GetVipLackCost(PlayerDatas.Instance.baseData.dungeonLineId + 1);
                        language = Language.Get("QuitRemindBossHome", dungeonConfig.FBName, vipNeed, moneyNeed);
                    }
                    else
                    {
                        language = Language.Get(config.ExitDescription);
                    }
                }
                else
                {
                    language = Language.Get(config.ExitDescription);
                }
                ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
               language, (bool isOk) =>
                {
                    if (isOk)
                    {
                        GoToOneKeyButton();
                    }
                });
            }
            else
            {
                GoToOneKeyButton();
            }
        }
        void GoToOneKeyButton()
        {
            var mapModel = ModelCenter.Instance.GetModel<MapModel>();
            var point = mapModel.GetRecommendHangPoint();
            var config = Config.Instance.Get<MapEventPointConfig>(point);
            var flyBootOwn = ModelCenter.Instance.GetModel<PlayerPackModel>().GetItemCountByID(PackType.rptItem, GeneralConfig.Instance.flyBootItemId);
            var isVipFreeTransfer = ModelCenter.Instance.GetModel<VipModel>().GetVipPrivilegeCnt(VipPrivilegeType.FreeTransfer) > 0;
            if (isVipFreeTransfer || flyBootOwn > 0)
            {
                MapTransferUtility.Instance.MissionFlyTo(config.MapID, config.NPCID);
            }
            else
            {
                MapTransferUtility.Instance.MoveToNPC(config.NPCID);
            }
        }
        void AutoButton()//原地挂机按钮
        {
            var _hero = PlayerDatas.Instance.hero;
            if (_hero != null && !_hero.ActorInfo.serverDie)
            {
                if (!_hero.aiHandler.IsAuto())
                {
                    if (!WindowCenter.Instance.CheckOpen<ExperienceOpenWin>())
                    {
                        WindowCenter.Instance.Open<ExperienceOpenWin>(true);
                    }
                    _hero.Behaviour.StartHandupAI();
                }
                else
                {
                    if (WindowCenter.Instance.CheckOpen<ExperienceOpenWin>())
                    {
                        WindowCenter.Instance.CloseImmediately<ExperienceOpenWin>();
                    }
                    _hero.Behaviour.StopHandupAI();
                }
            }
            AutoImg.SetActive(!AutoImg.activeSelf);
        }
        void BackPack1Buton()//背包按钮
        {
            WindowCenter.Instance.Open<KnapSackWin>();
            WindowCenter.Instance.Close<MainInterfaceWin>();
        }
        void OnHeroHandupAIStopPassive()
        {
            if (!AutoImg.activeSelf)
            {
                AutoImg.SetActive(true);
            }
        }
        void OnHeroHandupAIStarted()
        {
            if (AutoImg.activeSelf)
            {
                AutoImg.SetActive(false);
            }
        }
        private bool IsDungeon()//判断是否再副本中
        {
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var mapConfig = Config.Instance.Get<MapConfig>(mapId);
            return mapConfig != null && mapConfig.MapFBType != 0;
        }
        void Updatefighting(PlayerDataRefresh _tCDBPlayerRefresh)//数据的刷新
        {
            switch (_tCDBPlayerRefresh)
            {
                case PlayerDataRefresh.OfficialRank:
                    GetRealmLevel();
                    break;
            }
        }
    }
}