local UIActivitiesPreview = UIViewClass() -------------------- function UIActivitiesPreview:OnOpened(context) self:RegistSystemEvent(EventID.UI_Activity_Refresh_Preview, self.RefreshBtnState) self:RegistSystemEvent(EventID.UI_Guild_SelfInfoRefresh, self.RefreshBtnState) self:RegistSystemEvent(EventID.FunctionUnlockUpdate, self.RefreshActivity) self:RegistSystemEvent(CTL.RedPoint.RedPointKey.ActivityPreview, self.RefreshActivityPreview) self:RefreshActivityPreview(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.ActivityPreview)) self:InitPanel() end function UIActivitiesPreview:OnBackButtonPressed() self:OnButtonClicked(self.btn_Close) end function UIActivitiesPreview:OnButtonClicked(comp) if comp == self.btn_Close then self:CloseView() elseif comp == self.btn_Calendar then UIManager.OpenView(Const_UI_Lua.UIEnum.UIActivitiesCalendar) elseif comp == self.btn_Join then CTL.Guild.OpenGuildMain() elseif comp == self.btn_Signup then if not MDL.Activities.GetActivationCalenderSignUp() then MDL.Activities.WeeklyCalendarSignUpReq() end else for i, v in ipairs(self.group_OnlyOne.group_Reward) do if v.event_Click == comp then local activityIdList = CTL.Activities.GetActivityPreviewIdList() local weeklyCalendarData = DataSheetManager.WeeklyCalendar:GetDataByActivityID(activityIdList[1]) if weeklyCalendarData then UTL.ItemTips.ShowCommonTipsById(weeklyCalendarData.ItemID[i]) end end end end end function UIActivitiesPreview:OnCellInit(scrollRect, index, cellTable, data) if scrollRect == self.loop_Activities then self:SetCellState(cellTable, data, false) end end function UIActivitiesPreview:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_Activities then for i, v in ipairs(cellTable.group_Reward) do if v.event_Click == target then local weeklyCalendarData = DataSheetManager.WeeklyCalendar:GetDataByActivityID(data) if weeklyCalendarData then UTL.ItemTips.ShowCommonTipsById(weeklyCalendarData.ItemID[i]) end end end end end -------------------- function UIActivitiesPreview:InitPanel() self:RefreshBtnState() self:RefreshActivity() end function UIActivitiesPreview:RefreshBtnState() if MDL.Guild.IsHasGuild() then self.obj_btnState:SetState(1) if MDL.Activities.GetActivationCalenderSignUp() then self.btn_Signup:SetGray(true, false) self.state_Lock:SetState(1) else self.btn_Signup:SetGray(false, true) self.state_Lock:SetState(0) end else self.obj_btnState:SetState(0) end end function UIActivitiesPreview:RefreshActivity() local activityIdList = CTL.Activities.GetActivityPreviewIdList() if #activityIdList == 0 then self:OnBackButtonPressed() elseif #activityIdList == 1 then -- 单个活动 UIUtils.SetActive(self.group_OnlyOne.gameObject, true) UIUtils.SetActive(self.loop_Activities.gameObject, false) self:SetCellState(self.group_OnlyOne, activityIdList[1], true) else -- 多个活动 UIUtils.SetActive(self.group_OnlyOne.gameObject, false) UIUtils.SetActive(self.loop_Activities.gameObject, true) self.loop_Activities:ReloadAll(activityIdList) end end function UIActivitiesPreview:SetCellState(cellTable, activityId, isSingle) local weeklyCalendarData = DataSheetManager.WeeklyCalendar:GetDataByActivityID(activityId) if isSingle then UIUtils.SetTextureByAssetBundle(cellTable.img_ActivityShow, weeklyCalendarData.ActivationPictureBig) else UIUtils.SetImageByAssetBundle(cellTable.img_ActivityShow, weeklyCalendarData.ActivationPicture) end UIUtils.SetImageByAssetBundle(cellTable.img_Sign, weeklyCalendarData.ActivationTab) UIUtils.SetLabelText(cellTable.txt_Sign, Const_IDS[weeklyCalendarData.ActivationTabIDS]) -- 设置奖励 for i, itemId in ipairs(weeklyCalendarData.ItemID) do local itemObj = cellTable.group_Reward[i] if itemObj then UIUtils.SetActive(itemObj.gameObject, true) UTL.Item.SetItemCell(itemObj, itemId) end end for i = #weeklyCalendarData.ItemID + 1, #cellTable.group_Reward do UIUtils.SetActive(cellTable.group_Reward[i].gameObject, false) end local activityData = DataSheetManager.ActivityData:GetDataByID(activityId) local _, time, _ = CTL.Activities.GetDetailsTimeDesc(activityData, true) UIUtils.SetLabelText(cellTable.txt_Name, Const_IDS[activityData.Activity]) UIUtils.SetLabel(cellTable.txt_Time, time) -- 设置活动状态 if CTL.Activities.GetState(activityId, true) == CTL.Activities.ActivityState.NotOpen then cellTable.obj_signState:SetState(0) UIUtils.SetActive(cellTable.img_Mask, false) elseif CTL.Activities.GetState(activityId, true) == CTL.Activities.ActivityState.Opening then cellTable.obj_signState:SetState(1) UIUtils.SetActive(cellTable.img_Mask, false) elseif CTL.Activities.GetState(activityId, true) == CTL.Activities.ActivityState.End then cellTable.obj_signState:SetState(2) UIUtils.SetActive(cellTable.img_Mask, true) end end function UIActivitiesPreview:RefreshActivityPreview(active) self.btn_Join:SetRedPoint(active) self.btn_Signup:SetRedPoint(active) end return UIActivitiesPreview