源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

169 行
5.1 KiB

NewerTaskItem = NewerTaskItem or BaseClass(BaseItem)
local NewerTaskItem = NewerTaskItem
function NewerTaskItem:__init()
self.base_file = "newerTask"
self.layout_file = "NewerTaskItem"
self.model = NewerTaskModel:getInstance()
self:Load()
end
function NewerTaskItem:Load_callback()
self.nodes = {
"icon:img", "finish_flag:obj", "bg:img",
"show_cont:obj", "show_cont/task_tips:tmp", "show_cont/award_tips:tmp",
"get_btn:obj", "get_btn/btn_lable:tmp", "show_cont/award_cont:img",
"effect_2:obj",
}
self:GetChildren(self.nodes)
self:AddEvents()
if self.need_refreshData then
self:SetData(self.data, self.index, self.is_first_show, self.auto_do_task)
end
end
function NewerTaskItem:AddEvents( )
local function on_click( obj )
if obj == self.get_btn_obj then
self:OnGetAward()
end
end
AddClickEvent(self.get_btn_obj, on_click)
local function onGuideTrigger()
self:OnUnLockHelper()
end
self:BindEvent(GlobalEventSystem, EventName.TRIGGER_GUIDE_TYPE, onGuideTrigger)
end
function NewerTaskItem:OnGetAward( )
GlobalEventSystem:Fire(NewerTaskConst.REQ_GET_AWARD, self.data.type, self.data.task_id)
self:OnCloseGuide()
end
function NewerTaskItem:SetData( data, index , is_first_show, auto_do_task)
self.data = data
self.index = index
self.is_first_show = is_first_show
self.auto_do_task = auto_do_task
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
--首次打开不要主动触发,等待动画播完
if not self.is_first_show then
self:OnUnLockHelper()
end
else
self.need_refreshData = true
end
end
function NewerTaskItem:UpdateView( )
SetLocalScale(self.transform, 1)
local icon_name = NewerTaskConst.ItemIcon[self.index]
lua_resM:setImageSprite(self,self.icon_img, "newerTask_asset", icon_name, true)
local bg_name = self.index == 1 and "newer_task_img11" or "newer_task_img5"
lua_resM:setImageSprite(self,self.bg_img, "newerTask_asset", bg_name, true)
local is_finished = self.model:IsAwardFinish(self.data.type, self.data.task_id)
if is_finished then
self.show_cont_obj:SetActive(false)
self.get_btn_obj:SetActive(false)
self.finish_flag_obj:SetActive(true)
self.effect_2_obj:SetActive(false)
else
local can_finish = TaskModel:getInstance():IsTaskFinished(self.data.task_id)
-- local next_task_id = self.model:GetNextCanGetAward(self.data.type)
if can_finish then-- and next_task_id == self.data.task_id then
self.show_cont_obj:SetActive(false)
self.get_btn_obj:SetActive(true)
self.finish_flag_obj:SetActive(false)
local function call_back( go )
if not IsNull(go) then
UIDepth.SetUIDepth(go,false,0)
end
end
self:AddUIEffect("ui_motuoyindao02", self.effect_2, "Main", nil, 1, true,nil,nil,nil, call_back,nil)
self.effect_2_obj:SetActive(true)
if self.auto_do_task then
self:AddUIEffect("ui_jujiaodianji", self.get_btn.transform, "Activity", nil, 1, true)
end
else
self.show_cont_obj:SetActive(true)
self.get_btn_obj:SetActive(false)
self.finish_flag_obj:SetActive(false)
self.effect_2_obj:SetActive(false)
--任务描述
local task_db = ConfigItemMgr.Instance:GetTaskData(self.data.task_id)
if task_db then
local str = string.format("完成%s主线任务", HtmlColorTxt(task_db.level.."", "#2cf86f"))
self.task_tips_tmp.text = str
end
--奖励
local award_vo = stringtotable(self.data.awards)
award_vo = award_vo and award_vo[1] or {}
local num = award_vo[3] or "1"
self.award_tips_tmp.text = WordManager:GetMoneyFaceStr( price_type ) .."x"..num
local typeId, lock = GoodsModel:getInstance():GetMappingTypeId(award_vo[1], award_vo[2])
self.goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(typeId)
local goods_icon = self.goods_basic.goods_icon
lua_resM:setOutsideImageSprite(self,self.award_cont_img, GameResPath.GetGoodsIcon(goods_icon))
end
end
end
function NewerTaskItem:OnAnimation( )
if IsNull(self.gameObject) then
return
end
self:SetVisible(true)
local pos = NewerTaskConst.ItemPos[self.index]
SetLocalPosition(self.transform, pos.x+200, pos.y, 0)
TweenLite.to(self, self.transform, TweenLite.UiAnimationType.POSX, pos.x, 0.2)
end
function NewerTaskItem:OnUnLockHelper( )
if IsNull(self.gameObject) then
return
end
local help_vo = GuideModel:getInstance():GetCurHelpTypeAndStep()
if not help_vo then
return
end
local target_index = help_vo.unlock_index or 1
if self.index ~= target_index then
return
end
if help_vo.help_type == HelpType.NEWER_TASK_AWARD_UNLOCK and help_vo.step == 2 then
local button = self.get_btn_obj
if button then
self.is_on_award_helper = true
local function call_back()
self:OnGetAward()
end
GlobalEventSystem:Fire(EventName.OPEN_GUIDE_PROMPT_VIEW,button.transform,self.transform,call_back,help_vo)
end
end
end
function NewerTaskItem:OnCloseGuide( )
local help_vo, help_type, step = GuideModel:getInstance():GetCurHelpTypeAndStep()
if help_vo then
if help_type == HelpType.NEWER_TASK_AWARD_UNLOCK then
if step and step == 2 then
GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,help_vo)
end
end
end
end
function NewerTaskItem:__delete( )
end