源战役客户端
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 

216 wiersze
6.3 KiB

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