163 lines
5.5 KiB
Lua
163 lines
5.5 KiB
Lua
local XunBaoMiZong = {}
|
|
local CompleteMap = false
|
|
|
|
function XunBaoMiZong:New(gameObject)
|
|
local b = {}
|
|
b.gameObject = gameObject
|
|
b.transform = gameObject.transform
|
|
setmetatable(b, { __index = XunBaoMiZong })
|
|
return b
|
|
end
|
|
|
|
--初始化组件(用于子类重写)
|
|
function XunBaoMiZong:InitComponent()
|
|
self.content = Util.GetGameObject(self.gameObject,"Frame/Content")
|
|
self.timeText = Util.GetGameObject(self.content,"Time"):GetComponent("Text")
|
|
self.ImagePic = Util.GetGameObject(self.content,"ImagePic")
|
|
self.ImagePic3 = Util.GetGameObject(self.content,"ImagePic3")
|
|
self.mapList= {}
|
|
for i = 1, self.ImagePic.transform.childCount do
|
|
self.mapList[i] = self.ImagePic.transform:GetChild(i - 1).gameObject
|
|
end
|
|
self.tips = Util.GetGameObject(self.content,"Tips"):GetComponent("Text")
|
|
|
|
self.btnHelp = Util.GetGameObject(self.gameObject,"btnHelp")
|
|
self.helpPosition = self.btnHelp:GetComponent("RectTransform").localPosition
|
|
self.btnReward = Util.GetGameObject(self.gameObject,"Btns/btnReward")
|
|
self.btnShop = Util.GetGameObject(self.gameObject,"Btns/btnShop")
|
|
self.btnGO = Util.GetGameObject(self.gameObject,"btnGO")
|
|
self.effect = Util.GetGameObject(self.gameObject,"fx_xunbaomizong_ditujiesuo")
|
|
self.effect:SetActive(false)
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function XunBaoMiZong:BindEvent()
|
|
Util.AddOnceClick(self.btnHelp,function ()
|
|
UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.XunBaoMiZong,self.helpPosition.x,self.helpPosition.y)
|
|
end)
|
|
|
|
Util.AddOnceClick(self.btnReward,function ()
|
|
UIManager.OpenPanel(UIName.GeneralBigPopup,GENERAL_POPUP_TYPE.XunBaoMiZong,self.actData)
|
|
end)
|
|
|
|
Util.AddOnceClick(self.btnShop,function ()
|
|
JumpManager.GoJump(40025)
|
|
end)
|
|
|
|
Util.AddOnceClick(self.btnGO,function ()
|
|
NetManager.XunBaoMiZongEnterMap(function (msg)
|
|
if msg.isEnter then
|
|
--判断进入地图时是否是完整地图,不是需要播放特效
|
|
self.btnGO:GetComponent("Button").interactable = false
|
|
if CompleteMap then
|
|
SoundManager.PlaySound("UI_Breach_01")
|
|
SwitchPanel.OpenPanel(UIName.XunBaoMiZongMapPanel,nil,self.actData)
|
|
else
|
|
SoundManager.PlaySound("UI_Breach_01")
|
|
self.effect:SetActive(true)
|
|
self.ImagePic3:SetActive(true)
|
|
Timer.New(function ()
|
|
SwitchPanel.OpenPanel(UIName.XunBaoMiZongMapPanel,nil,self.actData)
|
|
end,0.3):Start()
|
|
end
|
|
else
|
|
PopupTipPanel.ShowTip("宝图碎片不足,无法开启寻宝!")
|
|
end
|
|
end)
|
|
end)
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function XunBaoMiZong:AddListener()
|
|
Game.GlobalEvent:AddEvent(GameEvent.Bag.BagGold, self.UpdateGoldVal, self)
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function XunBaoMiZong:RemoveListener()
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.Bag.BagGold, self.UpdateGoldVal, self)
|
|
end
|
|
|
|
function XunBaoMiZong:UpdateGoldVal()
|
|
self:Refresh()
|
|
end
|
|
|
|
function XunBaoMiZong:OnSortingOrderChange(_sortingOrder)
|
|
self.sortingOrder = _sortingOrder
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function XunBaoMiZong:OnOpen(_activityConfig,_index,parent)
|
|
self.actConfig = _activityConfig
|
|
self.pageIndex = _index
|
|
self.parent = parent
|
|
end
|
|
|
|
-- 打开,重新打开时回调
|
|
function XunBaoMiZong:OnShow(_sortingOrder)
|
|
self.gameObject:SetActive(true)
|
|
self.sortingOrder = _sortingOrder
|
|
Util.SetParticleSortLayer(self.effect, self.sortingOrder + 1)
|
|
self:Refresh()
|
|
self.btnGO:GetComponent("Button").interactable = true
|
|
end
|
|
|
|
--刷新
|
|
function XunBaoMiZong:Refresh()
|
|
self.actData = CommonActPageManager.GetData(ActivityTypeDef.XunBaoMiZong)
|
|
if self.actData.endTime - GetTimeStamp() <= 0 then self.parent:ClosePanel() end
|
|
CompleteMap = self.actData.value == 1
|
|
CheckRedPointStatus(RedPointType.XunBaoMiZong)
|
|
local configData = ConfigManager.GetConfigDataByKey(ConfigName.LotterySetting,"ActivityId",self.actData.activityId)
|
|
local itemNum = configData.CostItem[1]
|
|
self.clipNum = BagManager.GetTotalItemNum(itemNum[1])
|
|
self.tips.text = string.format("拥有宝图碎片:%s/%s",self.clipNum,itemNum[2])
|
|
self.ImagePic3:SetActive(self.actData.value == 1)
|
|
self.btnGO:SetActive(self.clipNum >= itemNum[2])
|
|
self:SetMap()
|
|
self:SetTime()
|
|
end
|
|
|
|
--设置拼图
|
|
function XunBaoMiZong:SetMap()
|
|
for i = 1, #self.mapList do
|
|
Util.SetGray(self.mapList[i],self.clipNum < i)
|
|
end
|
|
end
|
|
|
|
--设置时间
|
|
function XunBaoMiZong:SetTime()
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
local time = self.actData.endTime - GetTimeStamp()
|
|
self.timeText.text = string.format("剩余时间:%s",TimeToFelaxible(time))
|
|
self.timer = Timer.New(function ()
|
|
if time <= 0 then
|
|
self:Refresh()
|
|
end
|
|
time = time - 1
|
|
self.timeText.text = string.format("剩余时间:%s",TimeToFelaxible(time))
|
|
end,1,-1)
|
|
self.timer:Start()
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function XunBaoMiZong:OnClose()
|
|
self.gameObject:SetActive(false)
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function XunBaoMiZong:OnDestroy()
|
|
if self.timer then
|
|
self.timer:Stop()
|
|
self.timer = nil
|
|
end
|
|
self.mapList= {}
|
|
end
|
|
|
|
return XunBaoMiZong |