local UIHonorOrderBase = UIViewClass() local EventSystem = require('Event/EventSystem') local HonorOrderSubViewIndex = { Reward = 0, Challenge = 1, Shop = 2, } local HonorOrderSubViews = { [0] = Const_UI_Lua.UIEnum.UIHonorOrderReward, [1] = Const_UI_Lua.UIEnum.UIHonorOrderChallenge, [2] = Const_UI_Lua.UIEnum.UIHonorOrderShop, } local function StringFormat(text) return string.FormatByIdsId(Const_IDS.IDS_HonorOrder_DaoJiShi, text) end local function ShopStringFormat(text) return string.FormatByIdsId(Const_IDS.IDS_HonorOrder_ShangDianDaoJiShi, text) end function UIHonorOrderBase:OnOpened(context) self:RegistSystemEvent(EventID.UI_HonorOrder_InterTemporalRefresh, self.UpdateHonorOrderView) -- 刷新界面 self:RegistSystemEvent(EventID.UI_HonorOrder_OpenRewardList, self.OpenRewardList) -- 打开战令奖励界面 self:RegistSystemEvent(EventID.UI_HonorOrder_OpenRewardPurchase, self.OpenRewardPurchase) -- 打开升阶典藏战令界面 -- 设置左侧页签 self.curHonorOrderConstData = MDL.HonorOrder.GetCurHonorOrderConstData() if MDL.Shop.GetShopTypeInfoByTabID(self.curHonorOrderConstData.StoreType) then -- 商店是否开启 local storeTypeData = MDL.OperationActivity.StoreTypeData:GetDataByTabID(self.curHonorOrderConstData.StoreType) local shopTitle = MDL.Shop.GetStoreTypeTabName(storeTypeData.TabID) UTL.Toggle.InitToggleGroupByIDS(self.toggle_LeftGroup, "text_toggle", {Const_IDS.IDS_HonorOrder_JiangLi, Const_IDS.IDS_HonorOrder_TiaoZhan, Const_IDS[shopTitle]}) else UTL.Toggle.InitToggleGroupByIDS(self.toggle_LeftGroup, "text_toggle", {Const_IDS.IDS_HonorOrder_JiangLi, Const_IDS.IDS_HonorOrder_TiaoZhan}) end self:RegistSystemEvent(CTL.RedPoint.RedPointKey.HonorOrder_Reward, self.RefreshRewardRed) -- 奖励红点 self:RegistSystemEvent(CTL.RedPoint.RedPointKey.HonorOrder_Challenge, self.RefreshChallengeRed) -- 挑战红点 self:RegistSystemEvent(CTL.RedPoint.RedPointKey.HonorOrder_Shop, self.RefreshShopRed) -- 商店红点 self:RefreshRewardRed(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.HonorOrder_Reward)) -- 奖励红点 self:RefreshChallengeRed(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.HonorOrder_Challenge)) -- 挑战红点 self:RefreshShopRed(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.HonorOrder_Shop)) -- 商店红点 local isChallengeRedPoint = CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.HonorOrder_Challenge) local isRewardRedPoint = CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.HonorOrder_Reward) if isChallengeRedPoint and not isRewardRedPoint then MDL.HonorOrder.CurOpenSubView = HonorOrderSubViewIndex.Challenge end self:UpdateHonorOrderView() UIManager.ActiveUIModle(false, "UIHonorOrderBase") end function UIHonorOrderBase:OnClosed() UIManager.ActiveUIModle(true, "UIHonorOrderBase") end function UIHonorOrderBase:UpdateHonorOrderView() self:StopRepeatFunc(self.TimerOpenActiveFunc) local time = MDL.HonorOrder.GetCurHonorOrderEndTime() - UTL.Time.GetServerTimestamp() if time > 0 then self:StartRepeatFunc(self.TimerOpenActiveFunc, time, 1) end self.activityId = MDL.HonorOrder.HonorOrderActivityId self.toggle_LeftGroup:SelectIndex(MDL.HonorOrder.CurOpenSubView) end function UIHonorOrderBase:OnValueChanged(comp, value) if comp == self.toggle_LeftGroup then self.ui_SubView:CloseAll() self:StopRepeatFunc(self.TimerFunc) self.cdTimer:EndTimer() local time = 0 local formatFunc if value == 2 then -- 商店 self.curPanel = self.ui_SubView:OpenView(GetViewClass(HonorOrderSubViews[value]), {activityId = self.activityId, storeType = self.curHonorOrderConstData.StoreType}) UIUtils.SetActive(self.currency_Info,false) --战力商店有自己的 货币栏,需要隐藏父级的 time = self.curHonorOrderConstData.StoreCloseTime - UTL.Time.GetServerTimestamp() formatFunc = ShopStringFormat else UIUtils.SetActive(self.currency_Info,true) self.curPanel = self.ui_SubView:OpenView(GetViewClass(HonorOrderSubViews[value])) time = MDL.HonorOrder.GetCurHonorOrderEndTime() - UTL.Time.GetServerTimestamp() formatFunc = StringFormat end if time > 0 then self.cdTimer:SetDHMSStr(formatFunc(UIUtils.GetLocalizedTxt(Const_IDS.IDS_OfficialPrivilege_BuffShow)), formatFunc("{0}:{1}:{2}"), formatFunc("{0}:{1}"), formatFunc("{0}:{1}")) self.cdTimer:ResetAndBeginCustomTimer(false, time, 0, nil) self:StartRepeatFunc(self.TimerFunc, time, 1) else UIUtils.SetLabelText(self.txt_Time, Const_IDS.IDS_HonorOrder_HuoDongJieShuTiShi) end self.uistate_Time:SetState(value) MDL.HonorOrder.CurOpenSubView = value end end --打开战令奖励界面 function UIHonorOrderBase:OpenRewardList() EventSystem.Dispatch(EventID.UI_PayMall_HideSomeBaseUI) EventSystem.Dispatch(EventID.UI_HonorOrder_HideRenderModel) UIManager.OpenView(Const_UI_Lua.UIEnum.UIHonorOrderRewardList) end --打开升阶典藏战令界面 function UIHonorOrderBase:OpenRewardPurchase() EventSystem.Dispatch(EventID.UI_PayMall_HideSomeBaseUI) EventSystem.Dispatch(EventID.UI_HonorOrder_HideRenderModel) EventSystem.Dispatch(EventID.UI_HonorOrderChallenge_HideSomeEffectUI) UIManager.OpenView(Const_UI_Lua.UIEnum.UIHonorOrderRewardPurchase) end -- 奖励红点 function UIHonorOrderBase:RefreshRewardRed(active) self.toggle_LeftGroup:SetRedPoint(0, active) end -- 挑战红点 function UIHonorOrderBase:RefreshChallengeRed(active) self.toggle_LeftGroup:SetRedPoint(1, active) end -- 商店红点 function UIHonorOrderBase:RefreshShopRed(active) self.toggle_LeftGroup:SetRedPoint(2, active) end -- 商店用的倒计时 function UIHonorOrderBase:TimerFunc(deltaTime, timeSinceUpdate) self.cdTimer:EndTimer() self.toggle_LeftGroup:SelectIndex(MDL.HonorOrder.CurOpenSubView) end -- 奖励和挑战用的倒计时 function UIHonorOrderBase:TimerOpenActiveFunc(deltaTime, timeSinceUpdate) CTL.RedPoint.RemoveRedPoint(CTL.RedPoint.RedPointKey.HonorOrder_Reward) CTL.RedPoint.RemoveRedPoint(CTL.RedPoint.RedPointKey.HonorOrder_Challenge_Daily) CTL.RedPoint.RemoveRedPoint(CTL.RedPoint.RedPointKey.HonorOrder_Challenge_Cycle) self.toggle_LeftGroup:SelectIndex(MDL.HonorOrder.CurOpenSubView) EventSystem.Dispatch(EventID.UI_HonorOrder_UnOpenActiveRefreshUI) -- 活动结束刷新界面 end return UIHonorOrderBase