|
|
- 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
|