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
|