local UINewYearPray = UIViewClass() function UINewYearPray:OnOpened(context) self.activityId = context.activityId self.activityType = context.activityType self:RegistSystemEvent(EventID.BagItem_Update, self.RefreshPrayItem) self:RegistSystemEvent(EventID.UI_NewYear_RefreshRp, self.SetButtonRedPoint) self:RefreshPrayItem() self:SetButtonRedPoint() end function UINewYearPray:RefreshPrayItem() local modeData = MDL.OperationActivity.ActivityBaseData[self.activityType]:GetDataByActivityID(self.activityId) self.isEnough = true local isInit = self.loop_PrayItem.Count > 0 for i, v in ipairs(modeData.LuckyBagItem) do if isInit then self.loop_PrayItem:UpdateIndex(i - 1, v) else self.loop_PrayItem:AddData(v, 0) end if UTL.Item.GetItemStockCount(v) == 0 then self.isEnough = false end end end function UINewYearPray:SetButtonRedPoint() self.btn_Change:SetRedPoint(CTL.NewYear.IsShowActivityRedPoint(self.activityId)) self.btn_Pray:SetRedPoint(CTL.NewYear.IsCanPrayReward(self.activityId)) --该state是用来切换是否显示祈福按钮,新需求是会一直显示按钮,state没用了 --为了防止旧换皮活动prefab默认状态不对,设置State 0 if self.state_Btn then self.state_Btn:SetState(0) end end function UINewYearPray:OnBackButtonPressed() self:OnButtonClicked(self.btn_Close) end function UINewYearPray:OnButtonClicked(comp) if comp == self.btn_Close then self:CloseView() elseif comp == self.btn_ViewReward then CTL.NewYear.OpenView(self.activityId, CTL.NewYear.ViewName.UINewYearPrayReward, {activityId = self.activityId}) elseif comp == self.btn_Change then CTL.NewYear.OpenView(self.activityId, CTL.NewYear.ViewName.UINewYearExchange, {activityId = self.activityId}) elseif comp == self.btn_Pray then if self.isEnough then self.effect_Pray:PlayUIEffect() MDL.NewYear.NewYearLuckyBagRewardReq(self.activityId) else CTL.Tips.AddTipsMsg(Const_IDS.IDS_NewYearActivity_LuckyBagHint_2) end elseif comp == self.btn_Info or comp == self.btn_InfoLoc then UIManager.OpenView(Const_UI_Lua.UIEnum.UICommonNoteView, {id = LuaConst.NoteID.NewYearPray}) elseif comp == self.btn_DirectGift then CTL.NewYear.OpenView(self.activityId, CTL.NewYear.ViewName.UINewYearGiftMain, {activityType = self.activityType, activityId = self.activityId, Title = "IDS_NewYearActivity_ChildTitle_5"}) end end function UINewYearPray:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_PrayItem then local hasCount = UTL.Item.GetItemStockCount(data) UTL.Item.SetItemCell(cellTable.Item, data, hasCount) UIUtils.SetActive(cellTable.btn_Add, hasCount == 0) end end function UINewYearPray:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_PrayItem then if target == cellTable.Item.event_Click then UTL.ItemTips.ShowCommonTipsById(data) elseif target == cellTable.btn_Add then CTL.OperationActivity.OpenGetActivityItemPanel(data, self.activityId, self.activityType) end end end return UINewYearPray