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
|