GuildEventCollectView = GuildEventCollectView or BaseClass(BaseItem) local GuildEventCollectView = GuildEventCollectView function GuildEventCollectView:__init() self.base_file = "guild" self.layout_file = "GuildEventCollectView" self.model = GuildModel:getInstance() self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40802) --打开界面时要请求活动次数 self:Load() end function GuildEventCollectView:Load_callback() self.nodes = { "bg:raw", "event_time:tmp",--活动时间 "activityTimes:tmp",--活动次数 "enter_btn/reddot:obj", -- 活动奖励容器 "reward_scroll", "reward_scroll/Viewport/reward_con", -- 入口按钮 "enter_btn:obj", "help_btn:obj", "title_txt_img:img", } self:GetChildren(self.nodes) lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("guild_event_bg_408_0"), false) lua_resM:setOutsideImageSprite(self,self.title_txt_img_img,GameResPath.GetGuildImage("guild_event_ad_txt_pointfilter")) self:AddEvents() if self.need_refresh_evt_time then self:UpdateView() self:UpdateEventTime() end end function GuildEventCollectView:AddEvents( ) local on_click = function ( click_obj ) if self.enter_btn_obj == click_obj then -- 进入社团驻地场景 self.model:Fire(GuildModel.ENTER_GUILD_BASE) elseif click_obj == self.help_btn_obj then EventSystem.Fire(GlobalEventSystem,EventName.OPEN_INSTRUCTION_VIEW, 40801) end end AddClickEvent(self.enter_btn_obj, on_click, LuaSoundManager.SOUND_UI.NONE) AddClickEvent(self.help_btn_obj, on_click, LuaSoundManager.SOUND_UI.NONE) local function onUpdateActivityTimes() if not self.is_loaded then return end self:UpdateActivityTimes() end self:BindEvent(self.model,GuildModel.UODATE_GUILD_COLLECT_ACTIVITY_TIMES,onUpdateActivityTimes) local function update_nightboss_red(type) if type == GuildEventType.NoonCollect then self:UpdateRedDot() end end self:BindEvent(self.model, GuildModel.UPDATE_RED_DOT_BY_TYPE, update_nightboss_red) end function GuildEventCollectView:UpdateView( ) self:UpdateActivityTimes() self:UpdateRewardItem() self:UpdateRedDot() end -- 刷新活动次数显示 function GuildEventCollectView:UpdateActivityTimes( ) local MaxCollectDayTimes = self.model:GetGuildCollectKvByKey("join_time_day").value local NowCollectDayTimes = self.model:GetDayTotalCollectTimes() local day_collect_color = NowCollectDayTimes < MaxCollectDayTimes and ColorUtil.GREEN_TIPS or ColorUtil.RED_DARK local left_day_collect_times = MaxCollectDayTimes-NowCollectDayTimes >= 0 and MaxCollectDayTimes-NowCollectDayTimes or 0 local day_collect_str = left_day_collect_times.."/"..MaxCollectDayTimes self.activityTimes_tmp.text = "今日封印总次数:"..WordManager:AddColorToString(left_day_collect_times,day_collect_color,true).."/"..MaxCollectDayTimes.."" end --刷新活动时间显示 function GuildEventCollectView:UpdateEventTime( ) -- self.event_time_tmp.text = self.model:GetGuildEventOpenTime(self.evt_time_data.module_id, self.evt_time_data.module_sub) local s_h = Split((Split(self.evt_time_data.time_str, "~")[1]),":")[1] local s_m = Split((Split(self.evt_time_data.time_str, "~")[1]),":")[2] local round = self.model:GetActivityRound(s_h,s_m)--获取活动场次 self.event_time_tmp.text = self.model:GetGuildEventCollectOpenTime(round) end -- 这里只传入活动日历中的活动时间相关数据,活动协议内容界面自己获取 function GuildEventCollectView:SetEventAcData( evt_time_data) self.evt_time_data = evt_time_data if self.is_loaded then self.need_refresh_evt_time = false self:UpdateView() self:UpdateEventTime() self:UpdateRedDot() else self.need_refresh_evt_time = true end end function GuildEventCollectView:UpdateRewardItem( ) local reward_data = DailyModel.Instance:GetRewardList(408,0,1) self.reward_item_creator = self.reward_item_creator or self:AddUIComponent(UI.ItemListCreator) local info = { data_list = reward_data, item_con = self.reward_con, scroll_view = self.reward_scroll, obj_pool_type = UIObjPool.UIType.AwardItem, item_width = 78, -- item_height = 78, start_x = 5, start_y = -6, space_x = 9, create_frequency = 0.01, alignment = UnityEngine.TextAnchor.UpperLeft, on_update_item = function(item, i, v) local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2]) local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id) if goodVo then item:SetData(goodVo.type_id, v.count , goodVo.color, nil, lock) end end, } self.reward_item_creator:UpdateItems(info) end function GuildEventCollectView:UpdateRedDot( ) if self.is_loaded then local s_h = Split((Split(self.evt_time_data.time_str, "~")[1]),":")[1] local s_m = Split((Split(self.evt_time_data.time_str, "~")[1]),":")[2] local round = self.model:GetActivityRound(s_h,s_m)--获取活动场次 -- self.reddot_obj:SetActive(self.model:GetGuildEventTabRed("408@"..round)) -- 2021.3.23 优化需求:社团活动页签不再给红点 self.reddot_obj:SetActive(false) end end function GuildEventCollectView:__delete( ) end