源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

106 lines
3.7 KiB

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