|
|
- GuildActiveTaskItem = GuildActiveTaskItem or BaseClass(BaseItem)
- local GuildActiveTaskItem = GuildActiveTaskItem
-
- function GuildActiveTaskItem:__init(parent_wnd,prefab_asset,layer_name)
- self.base_file = "guild"
- self.layout_file = "GuildActiveTaskItem"
- self.parent_wnd = parent_wnd
- self.layer_name = layer_name
- self.model = GuildModel:getInstance()
- self:Load()
- end
-
- function GuildActiveTaskItem:Load_callback()
- self.nodes = {
- "bg:imgex", "go_btn:obj", "item_con", "finish_flag:obj",
- "task_desc:tmp", "task_name:tmp", "task_act:obj:tmp",
- "finish_btn:obj:img",
- }
- self:GetChildren(self.nodes)
- self.award_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_con)
- self.award_item:SetItemSize(78, 78)
- self.award_item:SetVisible(false)
- self.award_item:SetAnchoredPosition(0, 0)
- self:AddEvents()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function GuildActiveTaskItem:AddEvents( )
- local function click_event(target)
- if target == self.go_btn_obj then
- self:ClickGoBtnFunc()
- elseif target == self.finish_btn_obj then
- self:ClickFinishBtnFunc()
- end
- end
- AddClickEvent(self.go_btn_obj, click_event)
- AddClickEvent(self.finish_btn_obj, click_event)
- end
-
- function GuildActiveTaskItem:UpdateView( )
- if self.data then
- self.task_name_tmp.text = Trim(self.data.name)
- local task_desc_str = Trim(self.data.desc)
- self.task_act_tmp.text = string.format("活跃 <color=#fdffc2>%s</color>", self.data.add)
- local act_condition = stringtotable(self.data.content)
- local progress_condition = act_condition[3]
- local task_data = self.model:GetGuildActiveTaskData(self.data.id)
- local cur_progress = task_data and task_data.progress or act_condition[2]
- local state = task_data and task_data.state or 0 -- 完成情况
- if state == 0 then
- task_desc_str = task_desc_str .. string.format("(%s/%s)", cur_progress, progress_condition)
- end
- self.task_desc_tmp.text = task_desc_str
-
- self.finish_flag_obj:SetActive(state == 2)
- self.go_btn_obj:SetActive(state == 0)
- self.task_act_obj:SetActive(state ~= 2)
- self.finish_btn_obj:SetActive(state == 1)
- -- 加载奖励
- local reward = stringtotable(self.data.awards)
- self.award_item:SetDataWithMapId(reward[1][2], reward[1][3], reward[1][1])
- self.award_item:SetVisible(true)
- end
- end
-
- function GuildActiveTaskItem:SetData( data )
- self.data = data
- if self.is_loaded then
- self.need_refreshData = false
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- function GuildActiveTaskItem:ClickGoBtnFunc( )
- if not self.data then return end
- if self.data.id == 1 then -- 完成跑环任务10环
- TaskModel:getInstance():DoGuildTask()
- -- OpenFun.Open(157, 0)
- GlobalEventSystem:Fire(EventName.CLOSE_GUILD_MAIN_VIEW)
- elseif self.data.id == 2 then -- 完成派单
- OpenFun.Open(400, 3)
- elseif self.data.id == 3 then -- 午间幻魔
- OpenFun.Open(406, 1)
- elseif self.data.id == 4 then -- 晚间幻魔
- OpenFun.Open(406, 2)
- elseif self.data.id == 5 then -- 封印裂隙
- OpenFun.Open(408, 0)
- elseif self.data.id == 6 then -- 社团晚宴
- OpenFun.Open(400, 7)
- end
- end
-
- function GuildActiveTaskItem:ClickFinishBtnFunc( )
- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40407, self.data.id)
- end
-
- function GuildActiveTaskItem:__delete( )
- if self.award_item then
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item)
- end
- self.award_item = nil
- end
|