|
|
- CSMainTaskItem = CSMainTaskItem or BaseClass(BaseItem)
- local CSMainTaskItem = CSMainTaskItem
-
- function CSMainTaskItem:__init()
- self.base_file = "csMain"
- self.layout_file = "CSMainTaskItem"
- self.model = CSMainModel:getInstance()
-
- self:Load()
- end
-
- function CSMainTaskItem:Load_callback()
- self.nodes = {
- "finishedFlag:obj",
- "getBtn:obj", "goBtn:obj", "getBtn/getRed:obj",
- "ScrollView", "ScrollView/Viewport/Content",
- "taskDes:tmp",
- "dot:img",
- "bg:img",
- }
- self:GetChildren(self.nodes)
-
- self.getRed_obj:SetActive(true)
-
-
- self:AddEvents()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function CSMainTaskItem:AddEvents( )
- local on_click = function ( click_obj )
- if self.getBtn_obj == click_obj then--领取
- self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60304,1,self.data.id)
- elseif self.goBtn_obj == click_obj then--前往
- if self.data.id == 18 or self.data.id == 32 then
- local act_info = GuildModel:getInstance():GetGuildEventByType(GuildEventType.GuildBossNoon)
- if act_info and act_info.state <= 1 then --没结束,跳午间
- OpenFun.Open(406,1)
- else
- OpenFun.Open(406,2)
- end
- return
- end
-
- self.model:Fire(CSMainConst.OPEN_CS_MAIN_TASK_VIEW,true)
- self.model:Fire(CSMainConst.OPEN_CS_MAIN_BASE_VIEW,true)
- -- if self.data.id == 3 or self.data.id == 11 or self.data.id == 26 or self.data.id == 41 then
- -- self.model:Fire(CSMainConst.OPEN_CS_MAIN_TASK_VIEW,true)
- -- self.model:Fire(CSMainConst.OPEN_CS_MAIN_BASE_VIEW,true)
- -- end
- local open_fun_data = stringtotable(self.data.link)
- OpenFun.Open(open_fun_data[1],open_fun_data[2])
- end
- end
- AddClickEvent(self.getBtn_obj, on_click)
- AddClickEvent(self.goBtn_obj, on_click)
-
- local function on_update_task_item(task_id)
- self:UpdateView()
- end
- self:BindEvent(self.model, CSMainConst.UPDATE_CS_MAIN_TASK_ITEM, on_update_task_item)
- end
-
- function CSMainTaskItem:UpdateView( )
- local server_task_info = self.model:GetCSMainTaskDataById(self.data.id)
- if server_task_info then
- if server_task_info.state == 0 or server_task_info.state == 1 then
- lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetCSMainImage("cs_main_task_bg_yellow"))
- lua_resM:setImageSprite(self, self.dot_img, "csMain_asset","cs_main_dot_white",true)
- else
- lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetCSMainImage("cs_main_task_bg_gray"))
- lua_resM:setImageSprite(self, self.dot_img, "csMain_asset","cs_main_dot",true)
- end
- else
- lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetCSMainImage("cs_main_task_bg_yellow"))
- lua_resM:setImageSprite(self, self.dot_img, "csMain_asset","cs_main_dot_white",true)
- end
-
- --任务描述
- local des_color = ColorUtil.RED_DARK
- if server_task_info then
- if server_task_info.state == 1 or server_task_info.state == 2 then
- des_color = ColorUtil.GREEN_TIPS
- end
- end
- local bar = 0
- if server_task_info then
- bar = server_task_info.bar
- end
- self.taskDes_tmp.text = string.format("%s(<%s>%s/%s</color>)", Trim(self.data.desc), des_color, bar, stringtotable(self.data.content)[3])
- --领取状态
- local task_state = 0
- if server_task_info then
- task_state = server_task_info.state
- end
- self.goBtn_obj:SetActive(task_state == 0)
- self.getBtn_obj:SetActive(task_state == 1)
- self.finishedFlag_obj:SetActive(task_state == 2)
- --奖励展示
- local reward_cfg = DeepCopy(stringtotable(self.data.awards))
- --插入一个活跃的awarditem展示
- local active_goods_data = {0,100020,self.data.active}
- table.insert(reward_cfg,active_goods_data)
-
- if not self.item_list_com then
- self.item_list_com = self:AddUIComponent(UI.ItemListCreator)
- end
- local info = {
- data_list = reward_cfg,
- item_con = self.Content,
- obj_pool_type = UIObjPool.UIType.AwardItem,
- item_width = 62,
- space_x = 14,
- -- space_y = 0,
- start_x = 9,
- start_y = -9,
- scroll_view = self.ScrollView,
- create_frequency = 0.01,
- on_update_item = function(item, i, v)
- item:SetItemSize(62, 62)
- SetLocalScale(item.transform,0.8,0.8,0.8)
- item:SetData(v[2], v[3])
- end,
- }
- self.item_list_com:UpdateItems(info)
- end
-
- function CSMainTaskItem:SetData( data,index)
- self.data = data
- self.index = index
- if self.is_loaded then
- self.need_refreshData = false
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- function CSMainTaskItem:__delete( )
-
- end
|