local UIHonorOrderRewardPurchase = UIViewClass() local titleImage = "sjzl_msz.png" local EventSystem = require('Event/EventSystem') -- 排序 local function SortFunc(item_1, item_2) local a_RewardShowPriority = DataSheetManager.ItemData:GetDataByID(item_1.ItemID).RewardShowPriority local b_RewardShowPriority = DataSheetManager.ItemData:GetDataByID(item_2.ItemID).RewardShowPriority if a_RewardShowPriority == b_RewardShowPriority then return item_1.ItemID < item_2.ItemID end return a_RewardShowPriority > b_RewardShowPriority end function UIHonorOrderRewardPurchase:OnOpened(context) self:RegistSystemEvent(EventID.UI_HonorOrder_IsSenior, self.CloseUI) UTL.Item.SetLocalizationImage(self.loc_Title, self.img_Title, titleImage) self.activityId = MDL.HonorOrder.HonorOrderActivityId self.effect_BG:SetSortingCanvas(self.group_btn) self.effect_BG:PlayUIEffect() self.effect_Btn:SetSortingCanvas(self.canvas_Btn) self.effect_Btn:PlayUIEffect() self.curHonorOrderConstData = MDL.HonorOrder.GetCurHonorOrderConstData() self.grandRewardCfg = MDL.HonorOrder.GetGrandRewardInfo() --道具数据 local itemCfgData = DataSheetManager.ItemData:GetDataByID(self.grandRewardCfg.SeniorItem) UIUtils.SetLabel(self.txt_Info1, string.FormatByIdsId(Const_IDS.IDS_HonorOrder_ShengJiJiangLi_1, MDL.HonorOrder.GetCurHonorOrderConstData().ExpGrowRate)) UIUtils.SetLabel(self.txt_Info2, string.FormatByIdsId(Const_IDS.IDS_HonorOrder_ShengJiJiangLi_2, UIUtils.GetLocalizedTxt(Const_IDS[itemCfgData.Name]))) self.curHonorOrderInfo = MDL.HonorOrder.GetAwardInfo() if not self.curHonorOrderInfo.IsSenior then UIUtils.SetLabel(self.txt_Get, string.FormatByIdsId(Const_IDS.IDS_HonorOrder_JieSuoJiaGe, MDL.Currency.GetFullyIAPPrice(self.curHonorOrderConstData.IAPid))) -- 购买价格 end local amount = MDL.Currency.GetAmountByIAPIndex(self.curHonorOrderConstData.IAPid) UIUtils.SetActive(self.lab_Remind, amount and true or false) if amount then UIUtils.SetLabel(self.lab_Remind, string.FormatByIdsId(Const_IDS.IDS_TotalTopUp_Score_Tips_Giftbag, amount)) end UIUtils.SetActive(self.btn_Play, self.curHonorOrderConstData.PromotionalVideo ~= "") self:GetRewardList() CTL.HonorOrder.Show3DModel(self.renderModel, self.curHonorOrderConstData) if MDL.Currency.IsNotShowRechargeButton() then UIUtils.SetActive(self.btn_BuyOrder, false) end end function UIHonorOrderRewardPurchase:OnButtonClicked(comp) if comp == self.btn_Close then self:CloseUI() elseif comp == self.btn_BuyOrder then if not MDL.HonorOrder.GetCurHonorOrderIsOpen() then CTL.Tips.AddTipsMsg(Const_IDS["IDS_ERRORCODE_174_WarnCode_Activity_EndWrongHint"]) -- 活动已结束 return end --购买战令 if self.curHonorOrderInfo.IsSenior then CTL.Tips.AddTipsMsg(Const_IDS.IDS_Fund_Button_Paid) else MDL.Currency.GetOrderIDReq(self.curHonorOrderConstData.IAPid, MDL.Currency.PayType.HonorOrder, self.curHonorOrderConstData.ID) end elseif comp == self.btn_Play then UIManager.OpenView(Const_UI_Lua.UIEnum.UICommonPlayMovie, {MovieName = self.curHonorOrderConstData.PromotionalVideo}) end end --region ------------ Loop ------------------- function UIHonorOrderRewardPurchase:OnCellInit(scrollRect, index, cellTable, data) UTL.Item.SetItemCell(cellTable.item, data.ItemID, data.ItemNum) -- 普通奖励 end function UIHonorOrderRewardPurchase:OnCellClicked(scrollRect, index, cellTable, target, data) UTL.ItemTips.ShowCommonTipsById(data.ItemID) end --endregion ------------ Loop ------------------- function UIHonorOrderRewardPurchase:GetRewardList() local rewardList = {} for i = 1, self.curHonorOrderInfo.HonorLv do local isNew = true local rewardData = MDL.OperationActivity.HonorOrderReward:GetDataByActivityID_HonorOrderID_RewardID(self.curHonorOrderInfo.ActivityId, self.curHonorOrderInfo.HonorOrderId, i) for k,v in ipairs(rewardList) do if v.ItemID == rewardData.SeniorItem then v.ItemNum = v.ItemNum + rewardData.SeniorNum isNew = false break end end if isNew then table.insert(rewardList, {ItemID = rewardData.SeniorItem, ItemNum = rewardData.SeniorNum}) end end table.sort(rewardList, SortFunc) for k,v in pairs(rewardList) do self.loop_Rewards:AddData(v, 0) end end function UIHonorOrderRewardPurchase:CloseUI() self:CloseView() EventSystem.Dispatch(EventID.UI_HonorOrder_ShowRenderModel) EventSystem.Dispatch(EventID.UI_PayMall_ShowSomeBaseUI) EventSystem.Dispatch(EventID.UI_HonorOrderChallenge_ShowSomeEffectUI) end return UIHonorOrderRewardPurchase