源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

119 lines
4.6 KiB

ChildMainTaskItem = ChildMainTaskItem or BaseClass(BaseItem)
function ChildMainTaskItem:__init()
self.base_file = "child"
self.layout_file = "ChildMainTaskItem"
self.is_delay_callback = true
-- self.use_local_view = true
self.model = ChildModel:GetInstance()
self:Load()
end
function ChildMainTaskItem:Load_callback()
self.nodes = {
"bg/txt_desc:tmp","bg/image_had:obj","bg/image_go:obj:img","bg/image_get:obj:img",
"bg/image_go/lb_image_go:tmp", "bg/image_get/lb_image_get:tmp",
"bg:obj","bg/red_dot:obj",
"bg/txt_num:tmp", "bg/fillImg:img", "bg/progressText:tmp",
"bg/awardCon",
}
self:GetChildren(self.nodes)
self:InitEvent()
if self.need_refreshData then
self:SetData(self.data)
end
end
function ChildMainTaskItem:InitEvent()
local function onBtnClickHandler(target, x, y)
if self.model:IsHeartValueMax() then
Message.show("同心值已满,请尽快领取奖励!")
return
end
if target == self.image_get_obj then
if self.data.task_state == 1 then
-- Message.show("完成任务:",self.data.task_id)
self.model:Fire(ChildConst.CHILD_REQ_EVENT, 16506,1,self.data.task_id,0)
elseif self.data.task_state == 2 then
Message.show("已领取")
else
end
elseif target == self.image_go_obj then
local list = stringtotable(self.data.client_skip)
local winId = tonumber(list[1][1])
local subId = tonumber(list[1][2])
OpenFun.Open(winId, subId)
end
end
AddClickEvent(self.image_get_obj, onBtnClickHandler)
AddClickEvent(self.image_go_obj, onBtnClickHandler)
end
function ChildMainTaskItem:SetData(data)
self.data = data
if self.is_loaded then
if not data then return end
local color = "#18a426"
if data.progress < data.progress_max then
color = "#ff373c"
end
-- 描述
self.txt_desc_tmp.text = string.format("%s (<color=%s>%s</color>/%s)",Trim(data.desc),color,data.progress,data.progress_max) or ""
--同心值
--self.txt_num_tmp.text = data.reward_exp or 0
self.main_reward_item = self.main_reward_item or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.awardCon)
self.main_reward_item:SetPosition(0, 0)
self.main_reward_item:SetItemSize(62, 62)
self.main_reward_item:SetVisible(true)
local reward = stringtotable(self.model:GetConfigChildKvVal("heart_feed"))[1]
local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(0, reward[1])
local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
if goodVo then
self.main_reward_item:SetData(goodVo.type_id, data.reward_exp or 0, goodVo.color, 0, lock,true,nil)
end
-- 进度
self.progressText_tmp.text = string.format("(<color=%s>%s</color>/%s)", ColorUtil.WHITE_DARK, data.progress,data.progress_max)
self.fillImg_img.fillAmount = data.progress / data.progress_max
-- 按钮状态
self.image_get_obj:SetActive(false)
self.image_had_obj:SetActive(false)
self.image_go_obj:SetActive(false)
self.red_dot_obj:SetActive(false)
--0-未完成 1-已完成未领取 2-已领取
if data.task_state == 1 then
self.image_get_obj:SetActive(true) --未领取
self.red_dot_obj:SetActive(not self.model:IsHeartValueMax())
elseif data.task_state == 2 then
self.image_had_obj:SetActive(true) --已完成
else
self.image_go_obj:SetActive(true) --已领取未完成
end
if self.model:IsHeartValueMax() then
SetImageGray(self.image_get_img, true)
SetTMPSharedMaterial(self.lb_image_get_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
SetImageGray(self.image_go_img, true)
SetTMPSharedMaterial(self.lb_image_go_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
else
SetImageGray(self.image_get_img, false)
SetTMPSharedMaterial(self.lb_image_get_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
SetImageGray(self.image_go_img, false)
SetTMPSharedMaterial(self.lb_image_go_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkBlueBtn)
end
else
self.need_refreshData = true
end
end
function ChildMainTaskItem:__delete( )
if self.main_reward_item then
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.main_reward_item)
self.main_reward_item = nil
end
end