225 lines
7.1 KiB
Plaintext
225 lines
7.1 KiB
Plaintext
local baseView = autoImport("BaseView")
|
|
GuideMaskView = class("GuideMaskView",BaseView)
|
|
GuideMaskView.ViewType = UIViewType.GuideLayer
|
|
|
|
function GuideMaskView.getInstance( )
|
|
-- body
|
|
if(GuideMaskView.Instance == nil)then
|
|
GameFacade.Instance:sendNotification(UIEvent.JumpPanel,{view = PanelConfig.GuideMaskView})
|
|
end
|
|
return GuideMaskView.Instance
|
|
end
|
|
|
|
function GuideMaskView:Init()
|
|
if(GuideMaskView.Instance == nil)then
|
|
GuideMaskView.Instance = self
|
|
end
|
|
self:initView()
|
|
self:initData()
|
|
self:registListener()
|
|
end
|
|
|
|
function GuideMaskView:initData( )
|
|
-- body
|
|
self.currentTriggerId = nil
|
|
self.forbid = false
|
|
self.objPos = nil
|
|
end
|
|
|
|
function GuideMaskView:resetData( )
|
|
-- body
|
|
self.currentTriggerId = nil
|
|
self.lastOption = nil
|
|
end
|
|
|
|
function GuideMaskView:initView()
|
|
-- body
|
|
self.mask = self:FindGO("mask")
|
|
self.maskCollider = self.mask:GetComponent(BoxCollider)
|
|
self.resPath = ResourcePathHelper.EffectUI(EffectMap.UI.HlightBox);
|
|
self.hlightGo = Game.AssetManager_UI:CreateAsset(self.resPath,self.gameObject);
|
|
self.hlightGo.transform.localScale = Vector3.one
|
|
self.hlightTexture = self:FindGO("pic_skill_uv_add",self.hlightGo)
|
|
self.hlightTexture = self.hlightTexture:GetComponent(UIWidget)
|
|
self.hlightTexture.depth = 3000
|
|
|
|
self.hintCt = self:FindGO("hintTextCt")
|
|
self.hintText = self:FindGO("hintText"):GetComponent(UILabel)
|
|
|
|
self.hintTextPos = self.hintText.gameObject.transform.localPosition
|
|
self.hintTextBg = self:FindGO("hintTextBg"):GetComponent(UIWidget)
|
|
|
|
self.currentGuideId = nil
|
|
self:Hide(self.hlightGo)
|
|
self:Hide(self.mask)
|
|
end
|
|
|
|
function GuideMaskView:restoreParent( closeSelf )
|
|
-- body
|
|
if(self.obj and self.tagParent and not GameObjectUtil.Instance:ObjectIsNULL(self.obj))then
|
|
-- local pos = self.obj.transform.localPosition
|
|
-- helplog("pre pos:"..pos.x..";"..pos.y)
|
|
|
|
-- local pos = self.obj.transform.position
|
|
-- helplog("world pos:"..pos.x..";"..pos.y)
|
|
-- pos = self.tagParent.transform.localPosition
|
|
-- helplog("tag pos:"..pos.x..";"..pos.y)
|
|
self.obj.transform:SetParent(self.tagParent,true)
|
|
if(self.objPos)then
|
|
self.obj.transform.position = self.objPos
|
|
self.obj.transform.localScale = self.objScale
|
|
end
|
|
-- local pos = self.obj.transform.localPosition
|
|
-- helplog("aft pos:"..pos.x..";"..pos.y)
|
|
self:Hide(self.obj)
|
|
self:Show(self.obj)
|
|
self.obj = nil
|
|
self.objPos = nil
|
|
-- self.objScale = nil
|
|
self.tagParent = nil
|
|
self.hintCt.transform:SetParent(self.gameObject.transform)
|
|
self:Hide(self.hintCt)
|
|
self:Hide(self.hlightGo)
|
|
end
|
|
self:Hide(self.mask)
|
|
if(closeSelf)then
|
|
self:CloseSelf()
|
|
end
|
|
end
|
|
|
|
function GuideMaskView:playHightAnim( pos )
|
|
-- body
|
|
TweenScale.Begin(self.hlightGo,0.2,Vector3.one)
|
|
TweenPosition.Begin(self.hlightGo,0.2,pos)
|
|
end
|
|
|
|
function GuideMaskView:setGuideUIActive( active )
|
|
-- body
|
|
if(self.hlightGo and not GameObjectUtil.Instance:ObjectIsNULL(self.hlightGo))then
|
|
self.hlightGo:SetActive(active)
|
|
end
|
|
|
|
if(self.hintCt and not GameObjectUtil.Instance:ObjectIsNULL(self.hintCt))then
|
|
local text = self.guideData.text
|
|
if(text and text ~= "" and active)then
|
|
self.hintCt:SetActive(active)
|
|
else
|
|
self.hintCt:SetActive(false)
|
|
end
|
|
end
|
|
end
|
|
|
|
function GuideMaskView:OnExit()
|
|
-- body
|
|
-- self:Log("GuideMaskView:OnExit")
|
|
self:restoreParent()
|
|
GuideMaskView.super.OnExit(self)
|
|
Game.GOLuaPoolManager:AddToUIPool(self.resPath , self.hlightGo)
|
|
self.resPath = nil
|
|
GuideMaskView.Instance = nil
|
|
self.questData = nil
|
|
self.obj = nil
|
|
self.tagParent = nil
|
|
self.currentTriggerId = nil
|
|
end
|
|
|
|
function GuideMaskView:setTalkText( )
|
|
-- body
|
|
local text = self.guideData.text
|
|
if(text and text ~= "")then
|
|
self:Show(self.hintCt)
|
|
self.hintText.text = text
|
|
local rotation = self.guideData.rotation
|
|
if(rotation and rotation.x)then
|
|
self.hintTextBg.gameObject.transform.localRotation = Quaternion.Euler(rotation.x,rotation.y,rotation.z)
|
|
end
|
|
-- TableUtil.Print(guideData)
|
|
local pos = self.guideData.position
|
|
-- if(self.questData.params.type == QuestDataGuideType.QuestDataGuideType_force)then
|
|
if(pos and pos.x)then
|
|
self.hintCt.transform.localPosition = Vector3(pos.x,pos.y,1)
|
|
end
|
|
-- self.hintText.gameObject.transform,true);
|
|
self.hintTextBg.width = self.hintText.width + 50
|
|
if(rotation.x == 180 and rotation.z ~= 180) or (rotation.z == 180 and rotation.x ~= 180) then
|
|
self.hintText.gameObject.transform.localPosition = Vector3(self.hintTextPos.x,-3,0)
|
|
else
|
|
self.hintText.gameObject.transform.localPosition = self.hintTextPos
|
|
end
|
|
if(self.questData.params.type == QuestDataGuideType.QuestDataGuideType_unforce)then
|
|
self.hintCt.transform:SetParent(self.hlightGo.transform.parent)
|
|
end
|
|
else
|
|
self:Hide(self.hintCt)
|
|
end
|
|
end
|
|
|
|
function GuideMaskView:showGuideByQuestData( questData )
|
|
-- body
|
|
self.questData = questData
|
|
self.currentGuideId = questData.params.guideID
|
|
self.guideData = Table_GuideID[self.currentGuideId]
|
|
local tag = self.guideData.ButtonID
|
|
self.obj = GuideTagCollection.getGuideItemById(tag)
|
|
local bound = NGUIMath.CalculateRelativeWidgetBounds(self.obj.transform,true);
|
|
local guideType = questData.params.type
|
|
if(guideType == QuestDataGuideType.QuestDataGuideType_unforce)then
|
|
self.tagParent = self.gameObject.transform
|
|
self.hlightGo.transform:SetParent(self.obj.transform)
|
|
self.hlightGo.transform.localScale = Vector3.one
|
|
self.hlightGo.transform.localPosition = bound.center
|
|
lPos = self.obj.transform.localPosition
|
|
self.obj = self.hlightGo.gameObject
|
|
elseif(guideType == QuestDataGuideType.QuestDataGuideType_force)then
|
|
self.tagParent = self.obj.transform.parent
|
|
self.objPos = self.obj.transform.position
|
|
self.objScale = self.obj.transform.localScale
|
|
self.obj.transform:SetParent(self.gameObject.transform)
|
|
lPos = self.obj.transform.localPosition
|
|
local pos = Vector3(lPos.x+bound.center.x,lPos.y+bound.center.y,lPos.z)
|
|
self.hlightGo.transform.localPosition = pos
|
|
self.hlightGo.transform.localScale = Vector3(5,5,1)
|
|
self.hlightGo.transform.localPosition = Vector3.zero
|
|
self:playHightAnim(pos)
|
|
end
|
|
self.hlightTexture.width = bound.size.x+20
|
|
self.hlightTexture.height = bound.size.y+20
|
|
self:Hide(self.obj.gameObject)
|
|
self:Show(self.obj.gameObject)
|
|
self:setTalkText()
|
|
self:Show(self.hlightGo)
|
|
if(guideType == QuestDataGuideType.QuestDataGuideType_unforce)then
|
|
self:Hide(self.mask)
|
|
elseif(guideType == QuestDataGuideType.QuestDataGuideType_force)then
|
|
self:Show(self.mask)
|
|
elseif(guideType == QuestDataGuideType.QuestDataGuideType_showDialog)then
|
|
|
|
end
|
|
-- if(guideType == QuestDataGuideType.QuestDataGuideType_force)then
|
|
|
|
-- end
|
|
end
|
|
|
|
function GuideMaskView:waitServerEvent( serverEvent,questData )
|
|
-- body
|
|
self.waitEvent = serverEvent
|
|
self.delayQuestData = questData
|
|
end
|
|
function GuideMaskView:registListener( )
|
|
-- body
|
|
-- helplog("GuideMaskView:registListener( )")
|
|
local list = GuideProxy.Instance:getGuideListeners( )
|
|
for i=1,#list do
|
|
-- helplog("AddListenEvt:"..list[i])
|
|
self:AddListenEvt(list[i],self.excuteGuide)
|
|
end
|
|
end
|
|
|
|
function GuideMaskView:excuteGuide( )
|
|
-- body
|
|
-- self:Log("function GuideMaskView:excuteGuide( )")
|
|
if(self.delayQuestData)then
|
|
FunctionGuide.Me():showGuideByQuestData(self.delayQuestData)
|
|
self.delayQuestData = nil
|
|
end
|
|
end |