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
|