少年修仙传客户端代码仓库
client_linchunjie
2019-03-30 7eb09b918853609ec835c58097d0c564708f288e
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
2个文件已添加
1个文件已修改
260 ■■■■ 已修改文件
System/MainInterfacePanel/ChatFrame.cs 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainWin/VoiceWidget.cs 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainWin/VoiceWidget.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
        }
    }
System/MainWin/VoiceWidget.cs
New file
@@ -0,0 +1,119 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Saturday, March 30, 2019
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class VoiceWidget : MonoBehaviour
    {
        [SerializeField] RectTransform m_Content;
        [SerializeField] ClickScreenOtherSpace m_ClickOtherSpace;
        [SerializeField] VoiceRecorder m_TeamVoice;
        [SerializeField] VoiceRecorder m_GuildVoice;
        LogicBool active = new LogicBool();
        ChatCenter chatModel { get { return ModelCenter.Instance.GetModel<ChatCenter>(); } }
        TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        public void Init()
        {
            m_Content.gameObject.SetActive(active.Fetch());
            UpdateRecorderState();
            m_ClickOtherSpace.AddListener(Hide);
            m_GuildVoice.voiceRecordSuccessEvent += OnVoiceRecordFairySuccessEvent;
            m_TeamVoice.voiceRecordSuccessEvent += OnVoiceRecordTeamSuccessEvent;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += UpdateRecorderState;
            teamModel.myTeamRefreshEvent += UpdateRecorderState;
        }
        public void UnInit()
        {
            active.value = false;
            m_GuildVoice.voiceRecordSuccessEvent -= OnVoiceRecordFairySuccessEvent;
            m_TeamVoice.voiceRecordSuccessEvent -= OnVoiceRecordTeamSuccessEvent;
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= UpdateRecorderState;
            teamModel.myTeamRefreshEvent -= UpdateRecorderState;
        }
        public void Show()
        {
            active.value = true;
        }
        public void Hide()
        {
            active.value = false;
        }
        private void Update()
        {
            if (active.dirty)
            {
                m_Content.gameObject.SetActive(active.Fetch());
            }
        }
        private void OnVoiceRecordTeamSuccessEvent(int _instId, float _seconds)
        {
            chatModel.SetVoice(_instId, ChatInfoType.Team, _seconds);
        }
        private void OnVoiceRecordFairySuccessEvent(int _instId, float _seconds)
        {
            chatModel.SetVoice(_instId, ChatInfoType.Fairy, _seconds);
        }
        private void UpdateRecorderState()
        {
            var chatable = FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat);
            var guildVoiceEnable = false;
            var teamVoiceEnable = false;
            if (chatable)
            {
                guildVoiceEnable = PlayerDatas.Instance.fairyData.HasFairy;
                teamVoiceEnable = teamModel.myTeam.inTeam;
            }
            else
            {
                guildVoiceEnable = false;
                teamVoiceEnable = false;
            }
            m_GuildVoice.gameObject.SetActive(guildVoiceEnable);
            m_TeamVoice.gameObject.SetActive(teamVoiceEnable);
        }
        private void OnFuncStateChangeEvent(int _type)
        {
            if ((FuncOpenEnum)_type == FuncOpenEnum.Chat)
            {
                UpdateRecorderState();
            }
        }
        void TeamChatButton()
        {
            SysNotifyMgr.Instance.ShowTip("UnopenedFunction");
        }
        void TongVoiceButton()
        {
            SysNotifyMgr.Instance.ShowTip("UnopenedFunction");
        }
    }
}
System/MainWin/VoiceWidget.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 0f7b70cba4cac9e4a9aee003d2aeedc5
timeCreated: 1553925475
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant: