using ET; using FairyGUI; using Hutool; using UI.League; using UnityEngine; namespace GFGGame { //联盟 public class LeagueView : BaseWindow { private UI_LeagueUI _ui; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_LeagueUI.PACKAGE_NAME; _ui = UI_LeagueUI.Create(); this.viewCom = _ui.target; isfullScreen = true; _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("zjm_2_2"); _ui.m_btnBack.onClick.Add(OnBtnBackClick); _ui.m_btnMember.target.onClick.Add(OnBtnMemberClick); _ui.m_btnConstruct.target.onClick.Add(OnBtnConstructClick); _ui.m_comLeagueHead.target.onClick.Add(OnComLeagueHeadClick); _ui.m_btnChangeNotice.onClick.Add(OnBtnChangeNoticeClick); _ui.m_btnPray.target.onClick.Add(OnBtnPrayClick); _ui.m_btnSkill.target.onClick.Add(OnBtnSkillClick); _ui.m_btnAnswer.target.onClick.Add(OnBtnAnswerClick); _ui.m_btnGift.target.onClick.Add(OnBtnGiftClick); _ui.m_btnShop.target.onClick.Add(OnBtnShopClick); _ui.m_btnParty.target.onClick.Add(OnBtnPartyClick); _ui.m_btnChat.onClick.Add(OnBtnChatClick); _ui.m_comHead.onClick.Add(OnShowOhterInfo); _ui.m_btnRule.onClick.Add(RuleController.ShowRuleView); _ui.m_btnRule.data = 300015; } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.LEAGUE_INFO_CHANGE, UpdateView); EventAgent.AddEventListener(ConstMessage.LEAGUE_NUMBERIC_CHANGE, UpdateView); EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRedDot); } protected override void OnShown() { base.OnShown(); int myPos = LeagueDataManager.Instance.GetMyPos(); _ui.m_btnChangeNotice.visible = myPos == LeaguePos.Owner || myPos == LeaguePos.SubOwner; UpdateView(); UpdateRedDot(); UpdateTeaPartyShowText(); ChatSProxy.ReqQueryChatMsg(ChatType.League).Coroutine(); ChatSProxy.ReqQueryChatMsg(ChatType.LeagueQuestion).Coroutine(); } protected override void OnHide() { base.OnHide(); Timers.inst.Remove(UpdateTime); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.LEAGUE_INFO_CHANGE, UpdateView); EventAgent.RemoveEventListener(ConstMessage.LEAGUE_NUMBERIC_CHANGE, UpdateView); EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRedDot); } private void OnBtnBackClick() { ViewManager.GoBackFrom(typeof(LeagueView).FullName); } private void OnBtnMemberClick() { ViewManager.Show(null, new object[] { typeof(LeagueView).FullName, null }); } private void OnBtnConstructClick() { ViewManager.Show(null, new object[] { typeof(LeagueView).FullName, null }); } private void OnComLeagueHeadClick() { ViewManager.Show(null, new object[] { typeof(LeagueView).FullName, null }); } private void OnBtnChangeNoticeClick() { ViewManager.Show(null, new object[] { typeof(LeagueView).FullName, null }); } private async void OnShowOhterInfo() { long roleId = LeagueDataManager.Instance.LeagueData.OwnerId; OtherRoleInfoData roleInfoData = LeagueDataManager.Instance.GetMemberRoleInfo(roleId); OtherRoleInfoDetailData detailData = await RoleInfoSProxy.ReqOtherRoleDetailInfo(roleId); ViewManager.Show(new object[] { roleInfoData, detailData }, new object[] { typeof(LeagueView).FullName, null }); } private void OnBtnChatClick() { ViewManager.Show(); } private void OnBtnPrayClick() { ViewManager.Show(null, new object[] { typeof(LeagueView).FullName, null }); } private void OnBtnPartyClick() { if (LeagueDataManager.Instance.TeaPartyStatus == 0) ViewManager.Show(1); else if (LeagueDataManager.Instance.TeaPartyStatus == 2 && !LeagueDataManager.Instance.RoleTeapartyInfo.IsComplete) ViewManager.Show(); else ViewManager.Show(); } private void OnBtnShopClick() { ViewManager.Show(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_EXCHANGE_LEAGUE });//new object[] { typeof(LeaguePrayView).FullName, true } } private void OnBtnSkillClick() { ViewManager.Show(null, new object[] { typeof(LeagueView).FullName, null }); } private void OnBtnAnswerClick() { ViewManager.Show(null, new object[] { typeof(LeagueView).FullName, null }); } private void OnBtnGiftClick() { ViewManager.Show(null, new object[] { typeof(LeagueView).FullName, null }); } private void UpdateView() { UpdateInfo(); UpdateValue(); UpdateButton(); UpdateRedDot(); } private void UpdateInfo() { LeagueData leagueData = LeagueDataManager.Instance.LeagueData; long lowKeepDay = LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LowKeepDay); _ui.m_grpLowKeep.visible = lowKeepDay > 0; _ui.m_txtLowKeep.text = string.Format("已连续低维护:{0}天", lowKeepDay); _ui.m_txtUnionName.text = leagueData.Name; _ui.m_comLeagueHead.m_loaUnionIcon.url = ResPathUtil.GetLeagueIconPath(leagueData.Icon); _ui.m_comLeagueHead.m_txtUnionLv.text = LeagueDataManager.Instance.HallLevel.ToString(); _ui.m_comtxtNotice.m_txtNotice.text = leagueData.Notice; _ui.m_txtLeaderName.text = leagueData.LeagueMemberDatas[leagueData.OwnerId].RoleInfo.roleName; RoleInfoManager.Instance.UpdateHead(_ui.m_comHead, leagueData.LeagueMemberDatas[leagueData.OwnerId].RoleInfo.headId, leagueData.LeagueMemberDatas[leagueData.OwnerId].RoleInfo.headBorderId); } private void UpdateValue() { LeagueData leagueData = LeagueDataManager.Instance.LeagueData; _ui.m_btnMember.m_txtCount.SetVar("value", leagueData.Num.ToString()).FlushVars(); LeagueHotelCfg hotelCfg = LeagueHotelCfgArray.Instance.GetCfg(LeagueDataManager.Instance.HotelLevel); _ui.m_btnMember.m_txtCount.SetVar("maxValue", hotelCfg.limit.ToString()).FlushVars(); _ui.m_btnConstruct.m_txtCount.SetVar("value", LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueCoin).ToString()).FlushVars(); LeagueStoreCfg storeCfg = LeagueStoreCfgArray.Instance.GetCfg(LeagueDataManager.Instance.StoreLevel); _ui.m_btnConstruct.m_txtCount.SetVar("maxValue", storeCfg.limitStore.ToString()).FlushVars(); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(ConstItemID.LEAGUE_COIN); } private void UpdateButton() { Timers.inst.Add(1, 0, UpdateTime); } private void UpdateTime(object param) { if (LeagueDataManager.Instance.GetNumeriValue(LeagueNumericType.LeagueQuestionStatus) == LeagueQuestionStatus.End) { int curIndex = DateUtil.GetNearestStartTimeIndex(GlobalCfgArray.globalCfg.leagueQuestionCloseTimeArr); var questionStartTimeStr = GlobalCfgArray.globalCfg.leagueQuestionStartTimeArr[curIndex]; var endTime = TimeUtil.GetNextTime(questionStartTimeStr); long curTime = TimeHelper.ServerNow(); _ui.m_btnAnswer.m_txtTime.text = string.Format("{0}后开启", TimeUtil.FormattingTimeTo_HHmmss((endTime - curTime))); } else { _ui.m_btnAnswer.m_txtTime.text = "进行中"; } } private void UpdateTeaPartyShowText() { // 0未开启 1集结中 2已集结 _ui.m_btnParty.m_showText.selectedIndex = 0; string text = ""; if (LeagueDataManager.Instance.TeaPartyStatus == 0) { text = "未开启"; _ui.m_btnParty.m_showText.selectedIndex = 1; } else if (LeagueDataManager.Instance.TeaPartyStatus == 1) { text = "集结中"; _ui.m_btnParty.m_showText.selectedIndex = 1; } _ui.m_btnParty.m_txtTime.text = text; } private void UpdateRedDot() { RedDotController.Instance.SetComRedDot(_ui.m_btnMember.target, RedDotDataManager.Instance.GetLeagueMemberJoinRed()); RedDotController.Instance.SetComRedDot(_ui.m_btnGift.target, RedDotDataManager.Instance.GetLeagueGiftBoxRed(), "", -120, 100); RedDotController.Instance.SetComRedDot(_ui.m_btnPray.target, RedDotDataManager.Instance.GetLeaguePrayRed(), "", -70, 60); } } }