|
|
-
- GuideMasktView = GuideMasktView or BaseClass(BaseView)
-
-
- GuideMasktView.FORCE_MASK_HELP_STEP = 7 --=强制黑色遮罩提示,所有的强制遮罩都做一起
-
- function GuideMasktView:__init()
- self.base_file = "guide"
- self.layout_file = "GuideMasktView"
- self.layer_name = "Activity"
- self.destroy_imm = true
- self.hide_maincancas = false
-
- self.model = GuideModel:getInstance()
-
- self.arrow_component = nil --箭头组件
- self.change_scene_close = true
- self.append_to_ctl_queue = true
-
- self.time_diff = 10
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:InitEvent()
- end
- self.open_callback = function ()
- GlobalEventSystem:Fire(EventName.STOP_AUTO_DO_TASK)
- self:ShowPrompt()
- end
- self.close_callback = function ()
- GlobalEventSystem:Fire(EventName.START_AUTO_DO_TASK)
- end
- self.destroy_callback = function ()
- self:Clear()
- end
-
- self.x = 0
- self.y = 0
- self.w = 0
- self.h = 0
-
- --黑幕的alpha值
- self.alpha_value = 0.5
-
- self.ref_tar = nil
- self.prompt_type = nil
- end
-
- function GuideMasktView:Open(ref_tar,prompt_type)
- self.ref_tar = ref_tar
- self.prompt_type = prompt_type
- BaseView.Open(self)
- end
-
- function GuideMasktView:ShowPrompt()
- local prompt_type = self.prompt_type
- if prompt_type == GuideMasktView.FORCE_MASK_HELP_STEP then
- self:ForceMaskHelpPrompt_1()
- end
-
- self:SetSkipBtnEvent()
- end
-
- function GuideMasktView:SetSkipBtnEvent()
-
- local function onBtnClickHandler(target)
- if target == self.skip_btn then
- local prompt_type = self.prompt_type
- if prompt_type == GuideMasktView.FORCE_MASK_HELP_STEP then
- local helpVo = GuideModel:getInstance():GetCurHelpVo()
- if helpVo then
- GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,helpVo)
- end
-
- ItemUseModel:getInstance():ShowItemUseView()
- GuideModel:getInstance():ShowUILayUI()
- end
-
- self:Close()
- end
- end
- AddClickEvent(self.skip_btn,onBtnClickHandler)
- end
-
- function GuideMasktView:Clear()
- if self.delay_timer then
- GlobalTimerQuest:CancelQuest(self.delay_timer)
- self.delay_timer = nil
- end
-
- if self.trigger_skill_id then
- GlobalEventSystem:UnBind(self.trigger_skill_id)
- self.trigger_skill_id = nil
- end
-
- if self.arrow_component then
- self.arrow_component:DeleteMe()
- self.arrow_component = nil
- end
-
- ItemUseModel:getInstance():ShowItemUseView()
- GuideModel:getInstance():ShowUILayUI()
-
- self:CancelTimer()
- end
-
- function GuideMasktView:Close()
- BaseView.Close(self)
- end
-
-
- function GuideMasktView:LoadSuccess()
-
- --左上
- self.C2 = UiFactory.createChild(self.transform,UIType.ImageExtend,"C2")
- self.C2.transform.pivot = Vector2(0,1)
- self.C2.transform:SetAsFirstSibling()
- self.C2_Image = self.C2:GetComponent("ImageExtend")
- self.C2_Image.color = Color(0,0,0,self.alpha_value)
-
- --左下
- self.C4 = UiFactory.createChild(self.transform,UIType.ImageExtend,"C4")
- self.C4.transform.pivot = Vector2(0,0)
- self.C4.transform:SetAsFirstSibling()
- self.C4_Image = self.C4:GetComponent("ImageExtend")
- self.C4_Image.color = Color(0,0,0,self.alpha_value)
-
- --右上
- self.C6 = UiFactory.createChild(self.transform,UIType.ImageExtend,"C6")
- self.C6.transform.pivot = Vector2(1,1)
- self.C6.transform:SetAsFirstSibling()
- self.C6_Image = self.C6:GetComponent("ImageExtend")
- self.C6_Image.color = Color(0,0,0,self.alpha_value)
- --右下
- self.C8 = UiFactory.createChild(self.transform,UIType.ImageExtend,"C8")
- self.C8.transform.pivot = Vector2(1,0)
- self.C8.transform:SetAsFirstSibling()
- self.C8_Image = self.C8:GetComponent("ImageExtend")
- self.C8_Image.color = Color(0,0,0,self.alpha_value)
-
-
- self.mask_btn = self:GetChild("MaskBtn").gameObject
- self.mask_image = self:GetChild("MaskBtn")
- self.mask_image.sizeDelta = Vector3(ScreenWidth,ScreenHeight,0)
-
- self.focus_point = self:GetChild("FocusPoint")
-
- self.skip_btn = self:GetChild("SkipBtn").gameObject
- self.skip_btn_txt = self:GetChild("SkipBtn/Text"):GetComponent("Text")
- self.skip_btn.transform.localPosition = Vector3(ScreenWidth/2 - 90 ,ScreenHeight/2 - 50,0)
-
- self.image_btn = self:GetChild("Image").gameObject
- self.image_btn_dot = self:GetChild("Image/Dot").gameObject
-
- end
-
-
- function GuideMasktView:InitEvent()
- local function onTriggerSkillForceHelp()
- if self.prompt_type == GuideMasktView.FORCE_MASK_HELP_STEP then
- ItemUseModel:getInstance():ShowItemUseView()
- GuideModel:getInstance():ShowUILayUI()
- self:Close()
- end
- end
- self.trigger_skill_id = GlobalEventSystem:Bind(EventName.FINISH_FORCE_MASK_HELPER,onTriggerSkillForceHelp)
- end
-
- -- 是否显示黑屏
- function GuideMasktView:ScreenVisible(b)
- self.C2:SetActive(b)
- self.C4:SetActive(b)
- self.C6:SetActive(b)
- self.C8:SetActive(b)
- end
- -- 黑屏透明度
- function GuideMasktView:ScreenAlpha(b)
- local alpha_value = b or self.alpha_value
- self.C2_Image.alpha = alpha_value
- self.C4_Image.alpha = alpha_value
- self.C6_Image.alpha = alpha_value
- self.C8_Image.alpha = alpha_value
- end
-
- --设置矩形遮罩的位置
- function GuideMasktView:UpdateRectMask(x,y,w,h)
- local width,height = nil
- self.C2.transform.localPosition = Vector3(-ScreenWidth/2,ScreenHeight/2,0)
- width = ScreenWidth/2 + x - w / 2
- height = ScreenHeight / 2 - y + h / 2
- self.C2.transform.sizeDelta = Vector2(width,height)
-
- self.C4.transform.localPosition = Vector3(-ScreenWidth/2,-ScreenHeight/2,0)
- width = ScreenWidth/2 + x + w / 2
- height = ScreenHeight / 2 + y - h/2
- self.C4.transform.sizeDelta = Vector2(width,height)
-
-
- self.C6.transform.localPosition = Vector3(ScreenWidth/2,ScreenHeight/2,0)
- width = ScreenWidth/2 - x + w / 2
- height = ScreenHeight / 2 - y - h/2
- self.C6.transform.sizeDelta = Vector2(width,height)
-
-
- self.C8.transform.localPosition = Vector3(ScreenWidth/2,-ScreenHeight/2,0)
- width = ScreenWidth/2 - x - w / 2
- height = ScreenHeight / 2 + y + h/2
- self.C8.transform.sizeDelta = Vector2(width,height)
- end
-
- --获取聚焦点的信息
- function GuideMasktView:SetFocusPointMsg(mount_point,w,h,x_offset,y_offset)
- self.focus_point:SetParent(mount_point)
- self.focus_point.localPosition = Vector3(0,0,0)
- self.focus_point:SetParent(self.transform)
- self.x = self.focus_point.localPosition.x + (x_offset or 0)
- self.y = self.focus_point.localPosition.y + (y_offset or 0)
-
- local sizeDelta = mount_point.sizeDelta
- self.w = w or sizeDelta.x
- self.h = h or sizeDelta.y
- end
-
- function GuideMasktView:SetDefaultFocusPoint()
- self.x = 0
- self.y = 0
- self.w = 0
- self.h = 0
- end
-
- function GuideMasktView:ForceMaskHelpPrompt_1()
-
- self:ScreenAlpha(0)
- self:ScreenVisible(true)
- self.skip_btn:SetActive(false)
- self.mask_btn:SetActive(true)
-
- local function callback( )
- self:ScreenAlpha()
- self.mask_btn:SetActive(false)
- self.skip_btn:SetActive(true)
-
- local helpVo = GuideModel:getInstance():GetCurHelpVo()
-
- if helpVo then
- local param = tonumber(helpVo.param)
- self.model.force_mask_index = param
- local btn
- if param == 1 then
- if self.ref_tar and self.ref_tar.icon_list and self.ref_tar.icon_list[157] then
- btn = self.ref_tar.icon_list[157]
- end
- elseif param == 2 then
- if self.ref_tar and self.ref_tar.icon_list and self.ref_tar.icon_list[416] then
- btn = self.ref_tar.icon_list[416]
- self:SetImagefor_416()
- end
- end
-
- if btn then
- if self.model:IsBottomForceMask() then
- self:SetFocusPointMsg(btn.transform)
- elseif self.model:IsTopForceMask() then
- self:SetFocusPointMsg(btn.transform,80,80,0,9)
- end
- --mask 是为了 changehide的时候不让玩家点击
- self.mask_btn:SetActive(false)
- else
- self:SetDefaultFocusPoint()
- self.mask_btn:SetActive(true)
- end
- end
-
- if not self.arrow_component then
- self.arrow_component = ArrowComponent.New(self.transform)
- end
- self.arrow_component:ShowArrow(1,co.TableXY(self.x - 90 ,self.y),310)
- self:UpdateRectMask(self.x,self.y,self.w,self.h)
-
- local function click_func()
- self:Close()
- end
-
- AddClickEvent(self.mask_btn,click_func)
-
- if helpVo then
- GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,helpVo)
- end
-
- self:CancelTimer()
- self:StartTimer()
- end
-
- --如果是隐藏则执行动画 在执行引导,如果不是则马上执行引导
- if self.model:IsBottomForceMask() then
- if self.ref_tar and self.ref_tar.ShowShortCutList then
- if self.ref_tar.show_skill_icon and not self.model:IsBagForceMask() then
- self.ref_tar:ShowShortCutList(false)
- else
- callback()
- return
- end
- end
- elseif self.model:IsTopForceMask() then
- if self.ref_tar and self.ref_tar.ChangeHide then
- if self.ref_tar.is_hide then
- self.ref_tar:ChangeHide(false)
- else
- callback()
- return
- end
- end
- end
-
- if self.delay_timer == nil then
- local function delay_callback( )
- callback()
- end
- self.delay_timer = GlobalTimerQuest:AddDelayQuest(delay_callback,0.6)
- end
- end
-
- function GuideMasktView:StartTimer()
- local function onTimer()
- if self.time_diff > 0 then
- self.skip_btn_txt.text = "跳过(<color=#73ac44>" ..self.time_diff .."秒</color>)"
- self.time_diff = self.time_diff - 1
- else
- self:CancelTimer()
- self:Close()
- end
- end
- self.timer_id = GlobalTimerQuest:AddPeriodQuest(onTimer, 1, -1)
- onTimer()
- end
-
- function GuideMasktView:CancelTimer()
- if self.timer_id then
- GlobalTimerQuest:CancelQuest(self.timer_id)
- self.timer_id = nil
- end
- end
-
- function GuideMasktView:SetImagefor_416()
- self.image_btn_dot:SetActive(true)
- lua_resM:setImageSprite(self,self.image_btn:GetComponent("Image"),"mainUI_asset",416,true)
- if self.ref_tar then
- local pos = self.ref_tar:GetFuncIconPos(416)
- self.image_btn.transform.localPosition = pos
- end
-
- local function onBtnClickHandler(target)
- if target == self.image_btn then
- GlobalEventSystem:Fire(EventName.FINISH_FORCE_MASK_HELPER)
- GlobalEventSystem:Fire(EventName.OPEN_SEVEN_DAYS_VIEW)
- end
- end
-
- AddClickEvent(self.image_btn, onBtnClickHandler,LuaSoundManager.SOUND_UI.SWITCH)
- end
-
-
|