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