| | |
| | |
|
| | | 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;//自动挂机
|
| | |
| | | [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);
|
| | |
| | | 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)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | 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();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | private void OpenTeam()
|
| | | {
|
| | | WindowCenter.Instance.Close<MainInterfaceWin>();
|
| | | if (model.myTeam.inTeam)
|
| | | if (teamModel.myTeam.inTeam)
|
| | | {
|
| | | WindowCenter.Instance.Open<TeamFrameWin>(false, 1);
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | 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()
|
| | |
| | | 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()//地图挂机按钮
|
| | |
| | |
|
| | | 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)
|
| | |
| | | {
|
| | | 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;
|
| | | }
|
| | |
|
| | | }
|