SceneSpecialTipView = SceneSpecialTipView or BaseClass(BaseView)
|
|
|
|
local SceneSpecialTipView = SceneSpecialTipView
|
|
function SceneSpecialTipView:__init()
|
|
self.base_file = "common"
|
|
self.layout_file = "SceneSpecialTipView"
|
|
self.layer_name = "Main"
|
|
self.close_mode = CloseMode.CloseVisible
|
|
self.destroy_imm = false
|
|
self.use_background = false
|
|
self.append_to_ctl_queue = false --是否要添加进界面堆栈
|
|
self.need_show_money = false --是否要显示顶部的金钱栏
|
|
|
|
self.particle_mgr = ParticleManager:getInstance()
|
|
|
|
self.taskShowList = {} --队列
|
|
self.task_effect_loaded_flag = {}
|
|
self.isShowTask = false
|
|
|
|
self.wait_show_list = {} --所有等待显示队列
|
|
|
|
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:AddEvent()
|
|
end
|
|
self.open_callback = function ( )
|
|
self:OpenSuccess()
|
|
end
|
|
self.destroy_callback = function ( )
|
|
self:DestroySuccess()
|
|
end
|
|
end
|
|
|
|
function SceneSpecialTipView:Open(data)
|
|
self.data = data
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function SceneSpecialTipView:LoadSuccess()
|
|
self.nodes = {
|
|
--"task_icon:img:obj", "up_grade_icon:img:obj",
|
|
"up_grade_effect:obj", "accept_effect_cont:obj", "complete_effect_cont:obj", "ball_buff:obj:img",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
--设置sceneView的自适应
|
|
--self.transform.sizeDelta = Vector2(ScreenWidth, ScreenHeight)
|
|
SetAnchoredPosition(self.transform, 0, 0)
|
|
--SetAnchoredPosition(self.task_icon, 0, ScreenHeight / 3 - 165)
|
|
end
|
|
|
|
function SceneSpecialTipView:AddEvent()
|
|
|
|
end
|
|
|
|
function SceneSpecialTipView:OpenSuccess()
|
|
self:UpdateTips(self.data)
|
|
end
|
|
|
|
function SceneSpecialTipView:UpdateTips(data)
|
|
self.data = data
|
|
--[[
|
|
type :
|
|
isAccept:
|
|
]]
|
|
|
|
if self.is_playing_level_up_effect or self.isShowTask then
|
|
table.insert(self.wait_show_list, data)
|
|
return
|
|
end
|
|
if self.data.type == SceneSpecialTipType.upgrade then
|
|
-- self:AddUIEffect("ui_effcet_rolelvup",self.up_grade_effect, self.layer_name, nil, 1, false)
|
|
-- local data = {
|
|
-- resname = "ui_effcet_rolelvup",
|
|
-- uiTranform = self.up_grade_effect,
|
|
-- layer_name = self.layer_name,
|
|
-- scale = 1,
|
|
-- is_loop = false,
|
|
-- }
|
|
-- self:AddUIEffectByTime(data,0.1,"SceneSpecialTipView_ui_effcet_rolelvup")
|
|
if self.is_playing_level_up_effect then
|
|
return
|
|
end
|
|
self.is_playing_level_up_effect = true
|
|
|
|
if not self.has_load_level_up_effect then
|
|
self.has_load_level_up_effect = true
|
|
self:AddUIEffect("ui_effcet_rolelvup", self.up_grade_effect, self.layer_name, nil, 1, false, -1)
|
|
else
|
|
self.up_grade_effect_obj:SetActive(true)
|
|
end
|
|
|
|
if self.scene_upgrade_effect_id then
|
|
self.particle_mgr:DelEffect(self.scene_upgrade_effect_id)
|
|
self.scene_upgrade_effect_id = false
|
|
end
|
|
local main_role = Scene.Instance.main_role
|
|
if main_role then
|
|
self.scene_upgrade_effect_id = self.particle_mgr:AddTargetEffect("effect_rolelvup", main_role.compress_id, true, nil, nil, 7)
|
|
end
|
|
|
|
local function on_reset( )
|
|
self.is_playing_level_up_effect = false
|
|
self.up_grade_effect_obj:SetActive(false)
|
|
self:CheckNextShow()
|
|
end
|
|
if self.delay_id2 then
|
|
GlobalTimerQuest:CancelQuest(self.delay_id2)
|
|
self.delay_id2 = nil
|
|
end
|
|
self.delay_id2 = setTimeout(on_reset, 1)
|
|
lua_soundM:PlayUIEffectSound(LuaSoundManager.SOUND_UI.LEVELUP)
|
|
elseif self.data.type == SceneSpecialTipType.task then
|
|
--接受任务不显示
|
|
if not self.data.isAccept then
|
|
self:SetTaskShow(self.data.isAccept)
|
|
end
|
|
-- elseif self.data.type == SceneSpecialTipType.ballBuff then
|
|
-- self.ball_buff_obj:SetActive(true)
|
|
-- lua_resM:setImageSprite(self, self.ball_buff_img, "dungeonPet_asset","dun_pet_buff_"..self.data.buff_id,true)
|
|
|
|
-- local function delay_close( )
|
|
-- self:Close()
|
|
-- end
|
|
-- -- self.delay_close_view_timer = GlobalTimerQuest:AddDelayQuest(delay_close,0.6)
|
|
|
|
-- -- local scaleAction = cc.ScaleTo.New(0.2, 1, 1, 1)
|
|
-- local moveAction = cc.MoveTo.createAnchoredType(0.6, 0, 85)
|
|
-- local callfun1 = cc.CallFunc.New(delay_close)
|
|
-- local action = cc.Sequence.New(moveAction,cc.DelayTime.New(1), callfun1)
|
|
-- cc.ActionManager:getInstance():addAction(action, self.transform)
|
|
end
|
|
end
|
|
|
|
function SceneSpecialTipView:SetTaskShow( whichNext )
|
|
if self.taskShowList and #self.taskShowList >= 2 then
|
|
return
|
|
end
|
|
table.insert(self.taskShowList,whichNext)
|
|
if self.isShowTask == false then
|
|
self:TakShowAnimation()
|
|
end
|
|
end
|
|
|
|
function SceneSpecialTipView:TakShowAnimation()
|
|
if #self.taskShowList <= 0 then
|
|
self.isShowTask = false
|
|
return
|
|
end
|
|
self.isShowTask = true
|
|
|
|
local effect_name = "ui_effcet_complete"
|
|
local effect_cont = self.accept_effect_cont
|
|
if self.taskShowList[1] then
|
|
effect_name = "ui_effcet_accepttask"
|
|
effect_cont = self.complete_effect_cont
|
|
end
|
|
if not self.task_effect_loaded_flag[effect_name] then
|
|
self.task_effect_loaded_flag[effect_name] = true
|
|
self:AddUIEffect(effect_name, effect_cont, self.layer_name, nil, 1, false, -1)
|
|
else
|
|
effect_cont.gameObject:SetActive(true)
|
|
end
|
|
if effect_name == "ui_effcet_complete" then
|
|
lua_soundM:PlayUIEffectSound(LuaSoundManager.SOUND_UI.UPGRADE)
|
|
end
|
|
|
|
local function delay( )
|
|
table.remove(self.taskShowList,1)
|
|
if not IsNull(effect_cont) then
|
|
effect_cont.gameObject:SetActive(false)
|
|
end
|
|
self.isShowTask = false
|
|
self:CheckNextShow()
|
|
end
|
|
if self.delay_id then
|
|
GlobalTimerQuest:CancelQuest(self.delay_id)
|
|
self.delay_id = nil
|
|
end
|
|
self.delay_id = setTimeout(delay, 1)
|
|
end
|
|
|
|
function SceneSpecialTipView:DestroySuccess( )
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.transform)
|
|
if self.delay_id then
|
|
GlobalTimerQuest:CancelQuest(self.delay_id)
|
|
self.delay_id = nil
|
|
end
|
|
self:ClearUIEffect(self.accept_effect_cont)
|
|
self:ClearUIEffect(self.complete_effect_cont)
|
|
self:ClearUIEffect(self.up_grade_effect)
|
|
if self.scene_upgrade_effect_id then
|
|
self.particle_mgr:DelEffect(self.scene_upgrade_effect_id)
|
|
self.scene_upgrade_effect_id = false
|
|
end
|
|
|
|
GlobalTimerQuest:CancelQuest(self.delay_timer_id)
|
|
self.delay_timer_id = nil
|
|
|
|
if self.delay_close_view_timer then
|
|
GlobalTimerQuest:CancelQuest(self.delay_close_view_timer)
|
|
self.delay_close_view_timer = nil
|
|
end
|
|
if self.delay_id2 then
|
|
GlobalTimerQuest:CancelQuest(self.delay_id2)
|
|
self.delay_id2 = nil
|
|
end
|
|
self.wait_show_list = {}
|
|
end
|
|
|
|
function SceneSpecialTipView:CheckNextShow()
|
|
if #self.wait_show_list > 0 then
|
|
local d = table.remove(self.wait_show_list, 1)
|
|
self:UpdateTips(d)
|
|
end
|
|
end
|