local UIRebelStrikeMain = UIViewClass() function UIRebelStrikeMain:OnOpened(context) UIUtils.SetLabelText(self.txt_Go, Const_IDS.IDS_RebelStrike_GoNow) self:RegistSystemEvent(EventID.UI_Team_MemberInfoChange, self.RefreshTeamInfo) self:RegistSystemEvent(EventID.UI_Activity_Refresh_Single_RedPoint, self.OnActivityRedChanged) self:RegistSystemEvent(EventID.UI_UpdateRebelStrike_TeamReward,self.UpdateTeamRewardTimes) self:InitInfo() end function UIRebelStrikeMain:InitInfo() UIUtils.SetLabelText(self.UITemplateTitlePanel.lab_Title, Const_IDS["IDS_RebelStrike_Title1"]) local data = DataSheetManager.ActivityData:GetDataByID(LuaConst.ActivityType.RebelStrike) --解锁等级 local unlockConfig = DataSheetManager.FuctionUnlock:GetDataByFucID(data.FuctionUnlockID).Unlock_Table[1] local isUnlock, unlockDes = MDL.Unlock.IsComplete(unlockConfig.UnlockCondition, unlockConfig.UnlockConditionParam, data.SheetShowConditionIDS) self.txt_Level.text = unlockDes --活动时间(读常量表) local timeTab = DataSheetManager.ConstData:GetDataByID("RebelStrikeShowTime").IntListValue local timeValue = {StartTime = timeTab[1], EndTime = timeTab[2]} local desc = UTL.Time.GetBeginAndEndTime({timeValue}) self.txt_Time.text = string.FormatByIdsId(Const_IDS.IDS_RebelStrike_Time2, desc) --奖励次数 self:UpdateRewardTimes() self:UpdateTeamRewardTimes() --组队人数 self:RefreshTeamInfo() --剩余活动时间倒计时 self.cdTimer:EndTimer() local timeToStart = CTL.RebelStrike.GetTimeToOpen() if timeToStart > 0 then self.btn_Go:SetGray(true) UIUtils.SetGray(self.txt_Go, true) self.cdTimer:ResetAndBeginCustomTimer(false, timeToStart, 0, UIUtils.GetLocalizedTxt(Const_IDS.IDS_RebelStrike_Countdown)) self:StartRepeatFunc(self.OnUpdateFun, timeToStart) else local offset = CTL.RebelStrike.GetTimeToClose() self:StartRepeatFunc(self.OnUpdateFun, offset) self.btn_Go:SetGray(false) UIUtils.SetGray(self.txt_Go, false) end --奖励展示 local rewardDataTab = CTL.RebelStrike.GetGurLevShowReward() if rewardDataTab then self.scroll_Reward:ReloadAll(rewardDataTab) end --组队奖励 local rewardArray = DataSheetManager.ConstData:GetDataByID("RebelForceReward").IntListValue local length = #rewardArray / 2 local teamRewardDatas = {} for i = 0,length - 1 do local rewardData = {} rewardData.ItemNum = rewardArray[i * 2 + 2] rewardData.ItemID = rewardArray[i * 2 + 1] table.insert(teamRewardDatas,rewardData) end self.ChestRewardScroll:ReloadAll(teamRewardDatas) end function UIRebelStrikeMain:OnActivityRedChanged(activityId, value) if activityId == LuaConst.ActivityType.RebelStrike then self:UpdateRewardTimes() end end function UIRebelStrikeMain:UpdateRewardTimes() local data = DataSheetManager.ActivityData:GetDataByID(LuaConst.ActivityType.RebelStrike) local leftTimes = MDL.RebelStrike.GetLeftAwardTimes() if leftTimes > 0 then self.txt_Reward.text = string.format("%s%s/%s", UIUtils.GetLocalizedTxt(Const_IDS.IDS_RebelStrike_RewardNum), UTL.Color.FormatGreenColor(leftTimes), data.DailyRefreshTimes) else self.txt_Reward.text = string.format("%s%s/%s", UIUtils.GetLocalizedTxt(Const_IDS.IDS_RebelStrike_RewardNum), UTL.Color.FormatRedColor(leftTimes), data.DailyRefreshTimes) end end function UIRebelStrikeMain:UpdateTeamRewardTimes() local remainTime,totalTime = MDL.RebelStrike.GetTeamRewardRemainTime() local remainText if remainTime <= 0 then remainText = UTL.Color.FormatRedColor(remainTime) else remainText = remainTime end self.txt_teamReward.text = string.format(UIUtils.GetLocalizedTxt(Const_IDS.IDS_RebelForce_RewardTips),remainText,totalTime) UIUtils.SetActive(self.effect_box,MDL.RebelStrike.IsCanGetTeamReward()) end function UIRebelStrikeMain:OnUpdateFun(deltaTime, timeSinceUpdate) self:StopRepeatFunc(self.OnUpdateFun) self:InitInfo() end function UIRebelStrikeMain:RefreshTeamInfo() local teamMemberNum = MDL.Team.GetTeamMemberNumbers() teamMemberNum = teamMemberNum == 0 and 1 or teamMemberNum UIUtils.SetLabel(self.txt_TeamNum, UIUtils.GetLocalizedTxt(Const_IDS.IDS_RebelStrike_TeamNum) .. string.format("%s/3", teamMemberNum)) end function UIRebelStrikeMain:OnCellInit(scrollRect, index, cellTable, data) UTL.Item.SetItemCell(cellTable.item, data.ItemID, data.ItemNum, false, data.TagType) end function UIRebelStrikeMain:OnCellClicked(scrollRect, index, cellTable, target, data) UTL.ItemTips.ShowCommonTipsById(data.ItemID) end function UIRebelStrikeMain:OnBackButtonPressed() self:OnButtonClicked(self.btn_Back) end function UIRebelStrikeMain:OnButtonClicked(comp) if comp == self.btn_Go then UIManager.OpenView(Const_UI_Lua.UIEnum.UIRebelStrikeAim,{isPushView = false}) elseif comp == self.btn_Team then CTL.Team.OpenTeamPanel(LuaConst.ActivityType.RebelStrike) elseif comp == self.btn_RewardInfo then CTL.RebelStrike.OpenRewardPreview() elseif comp == self.UITemplateTitlePanel.btn_close then self:CloseView(true) elseif comp == self.UITemplateTitlePanel.btn_Home then CTL.HomeMain.CloseViewBackHomeMain() elseif comp == self.UITemplateTitlePanel.btn_Info then local desc1,timeStr1 = UTL.Time.GetDateDescAndTime({{StartTime = 173101,EndTime = 173103}}) local timeStr2 = UTL.Time.GetDiffLocalStrById(1) UIManager.OpenView(Const_UI_Lua.UIEnum.UICommonNoteView, {id = LuaConst.NoteID.RebelStrike, params = { desc1..timeStr1,timeStr2 }}) elseif comp == self.btn_Shop then --店铺 UIManager.OpenAndPushAll(Const_UI_Lua.UIEnum.UIShopMain, {TabEnum = CTL.PayMall.ShopMainTabEnum.ZuDui}) elseif comp == self.btn_BxBg then if MDL.RebelStrike.IsCanGetTeamReward() then MDL.RebelStrike.ClaimTeamRewardReq() else self:ShowChestReward() end elseif comp == self.btn_Close then self:ClearChestViews() end end function UIRebelStrikeMain:ShowChestReward() UIUtils.SetActive(self.info_Reward, true) --组队奖励 if self.ChestRewardScroll.Count == 0 then local rewardArray = DataSheetManager.ConstData:GetDataByID("RebelForceReward").IntListValue local length = #rewardArray / 2 local teamRewardDatas = {} for i = 0,length - 1 do local rewardData = {} rewardData.ItemNum = rewardArray[i * 2 + 2] rewardData.ItemID = rewardArray[i * 2 + 1] table.insert(teamRewardDatas,rewardData) end self.ChestRewardScroll:ReloadAll(teamRewardDatas) end end function UIRebelStrikeMain:ClearChestViews() UIUtils.SetActive(self.info_Reward, false) end return UIRebelStrikeMain