349 lines
15 KiB
Lua
349 lines
15 KiB
Lua
require("Modules.Battle.Config.PokemonEffectConfig")
|
|
require("Base/BasePanel")
|
|
SecretBoxPanel = Inherit(BasePanel)
|
|
local this = SecretBoxPanel
|
|
local AllActSetConfig = ConfigManager.GetConfig(ConfigName.GlobalSystemConfig)
|
|
-- Tab管理器
|
|
--local TabBox = require("Modules/Common/TabBox")
|
|
--local _TabData = {
|
|
-- [1]= {
|
|
-- default = "r_playerrumble_shanganniudi_02", select = "r_playerrumble_shanganniudi_01",
|
|
-- img_default = "r_mihe_xiangqing_01",img_select = "r_mihe_xiangqing_02",
|
|
-- },
|
|
-- [2]= {
|
|
-- default = "r_playerrumble_shanganniudi_02", select = "r_playerrumble_shanganniudi_01",
|
|
-- img_default = "r_playerrumble_shangdainzi_02",img_select = "r_playerrumble_shangdainzi_01",
|
|
-- }
|
|
--}
|
|
local orginLayer = 0
|
|
|
|
local ItemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
--示意图轮回放
|
|
local imageList = {}
|
|
local viewList = {}
|
|
local year
|
|
local month
|
|
local day
|
|
local year1
|
|
local month1
|
|
local day1
|
|
local STARTTIME = 1
|
|
local ENDTIME = 2
|
|
local canDrag = true
|
|
local i = 1
|
|
local shop_btnBack
|
|
|
|
|
|
--初始化组件(用于子类重写)
|
|
function SecretBoxPanel:InitComponent()
|
|
this.spLoader = SpriteLoader.New()
|
|
|
|
screenAdapte(Util.GetGameObject(self.gameObject, "bgImage"))
|
|
poolManager:LoadLive("live2d_mihe", Util.GetTransform(self.gameObject, "bgImage"), Vector3.one, Vector3.New(0, 69, 0)) --127
|
|
|
|
this.btnBack = Util.GetGameObject(self.gameObject, "btnBack")
|
|
this.btnShop = Util.GetGameObject(self.gameObject, "btnShop")
|
|
this.contentRoot = Util.GetGameObject(self.gameObject, "content")
|
|
this.detailPanel = Util.GetGameObject(self.gameObject, "content/detail")
|
|
this.helpBtn = Util.GetGameObject(self.gameObject, "content/detail/helpBtn")
|
|
this.helpPosition = this.helpBtn:GetComponent("RectTransform").localPosition
|
|
this.itemContent1 = Util.GetGameObject(this.detailPanel, "left/mainItem/content/content1")
|
|
this.itemContent2 = Util.GetGameObject(this.detailPanel, "left/mainItem/content/content2")
|
|
this.content = Util.GetGameObject(this.detailPanel, "left/mainItem/content")
|
|
this.itemName1 = Util.GetGameObject(this.detailPanel, "left/mainItem/content/content1/itemName1"):GetComponent(
|
|
"Text")
|
|
this.itemName2 = Util.GetGameObject(this.detailPanel, "left/mainItem/content/content2/itemName2"):GetComponent(
|
|
"Text")
|
|
this.headBtn = Util.GetGameObject(this.detailPanel, "left/mainItem/headBG")
|
|
this.headImage = Util.GetGameObject(this.detailPanel, "left/mainItem/headBG/headImage"):GetComponent("Image")
|
|
this.activityTimeText = Util.GetGameObject(this.detailPanel, "left/activityTimeText"):GetComponent("Text")
|
|
this.openNumberAgainText = Util.GetGameObject(this.detailPanel, "right/needOpenNumberDetailText1 (1)"):GetComponent(
|
|
"Text")
|
|
this.buyOneBtn = Util.GetGameObject(this.detailPanel, "bottom/openOneButton")
|
|
this.buyTenBtn = Util.GetGameObject(this.detailPanel, "bottom/openOneButton (1)")
|
|
this.content1 = Util.GetGameObject(this.detailPanel, "bottom/openOneButton/content1")
|
|
this.content2 = Util.GetGameObject(this.detailPanel, "bottom/openOneButton/content2")
|
|
this.costImage1 = Util.GetGameObject(this.detailPanel, "bottom/openOneButton/content1/Image")
|
|
this.costImage2 = Util.GetGameObject(this.detailPanel, "bottom/openOneButton (1)/Image")
|
|
self.imageList = { "y_yuansu_yuansu", "y_yuansu_qunying", "y_yuansu_mihe", "y_yuansu_yuansu", "y_yuansu_qunying",
|
|
"y_yuansu_mihe" }
|
|
this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, { showType = UpViewOpenType.ShowLeft })
|
|
local itemdata = {}
|
|
table.insert(itemdata, SecretBoxManager.StarDifferDemonsId[1])
|
|
table.insert(itemdata, 0)
|
|
local view = SubUIManager.Open(SubUIConfig.ItemView, this.itemContent1.transform)
|
|
viewList[1] = view
|
|
view:OnOpen(false, itemdata, 1.4, false, false, false, self.sortingOrder)
|
|
local itemdata = {}
|
|
table.insert(itemdata, SecretBoxManager.StarDifferDemonsId[2])
|
|
table.insert(itemdata, 0)
|
|
local view2 = SubUIManager.Open(SubUIConfig.ItemView, this.itemContent2.transform)
|
|
viewList[2] = view2
|
|
view2:OnOpen(false, itemdata, 1.4, false, false, false, self.sortingOrder)
|
|
this:ShowImage(1)
|
|
this.activityTimeText.text = SecretBoxManager.SeasonOpen .. "-" .. SecretBoxManager.SeasonEnd
|
|
this.canGetRewardNumber = SecretBoxManager.ShowTime - SecretBoxManager.count % SecretBoxManager.ShowTime
|
|
this.costImage1:GetComponent("Image").sprite = this.spLoader:LoadSprite(GetResourcePath(ItemConfig
|
|
[SecretBoxManager.MainCost[1][1][1]].ResourceID))
|
|
this.costImage2:GetComponent("Image").sprite = this.spLoader:LoadSprite(GetResourcePath(ItemConfig
|
|
[SecretBoxManager.MainCost[2][1][1]].ResourceID))
|
|
this.openNumberAgainText.text = this.canGetRewardNumber
|
|
--this.secretBoxRed1Point=Util.GetGameObject(self.transform, "scrollRect/secretBoxRed1Point")
|
|
this.secretBoxRed2Point = Util.GetGameObject(self.transform,
|
|
"content/detail/bottom/openOneButton/content2/secretBoxRed2Point")
|
|
--this.recruitRedPoint=Util.GetGameObject(self.transform, "scrollRect/secretBoxRed1Point (1)")
|
|
SecretBoxManager.count = SecretBoxManager.ShowTime - this.canGetRewardNumber
|
|
end
|
|
|
|
function SecretBoxPanel:OnRefresh()
|
|
this.openNumberAgainText.text = SecretBoxManager.ShowTime - SecretBoxManager.count
|
|
end
|
|
|
|
function SecretBoxPanel:ShowImage(index)
|
|
if (index + 1 > 3) then
|
|
index = 0
|
|
end
|
|
this.itemName1.text = GetLanguageStrById(ItemConfig[SecretBoxManager.StarDifferDemonsId[index + 1]].Name)
|
|
viewList[1].frame:GetComponent("Image").sprite = this.spLoader:LoadSprite(GetQuantityImageByquality(ItemConfig
|
|
[SecretBoxManager.StarDifferDemonsId[index + 1]].Quantity))
|
|
local itemdata = {}
|
|
table.insert(itemdata, SecretBoxManager.StarDifferDemonsId[index + 1])
|
|
table.insert(itemdata, 0)
|
|
viewList[1]:NoGetRewardShow(itemdata, 0)
|
|
viewList[1].gameObject:GetComponent("RectTransform").localScale = Vector2.New(1.4, 1.4)
|
|
this.itemContent1.transform:DOAnchorPosX(this.itemContent1.transform.anchoredPosition.x, 2, false)
|
|
:SetEase(Ease.Linear):SetDelay(3):OnComplete(function()
|
|
viewList[1].icon:GetComponent("Image"):DOFade(0, 0.2):OnComplete(function()
|
|
viewList[1].icon:GetComponent("Image"):DOFade(1, 0.2)
|
|
this:ShowImage(index + 1)
|
|
end)
|
|
end)
|
|
|
|
local diffId = DiffMonsterManager.GetDiffMonsterByComponentId(itemdata[1])
|
|
this.headImage.sprite = this.spLoader:LoadSprite(PokemonEffectConfig[diffId].icon)
|
|
end
|
|
|
|
function SecretBoxPanel:OnSortingOrderChange()
|
|
Util.AddParticleSortLayer(Util.GetGameObject(self.gameObject, "bgImage"), self.sortingOrder - orginLayer)
|
|
Util.AddParticleSortLayer(this.contentRoot, self.sortingOrder - orginLayer)
|
|
orginLayer = self.sortingOrder
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function SecretBoxPanel:BindEvent()
|
|
--初始化Tab管理器
|
|
--this.TabCtrl = TabBox.New()
|
|
--this.TabCtrl:SetTabAdapter(this.TabAdapter)
|
|
--this.TabCtrl:SetChangeTabCallBack(this.OnTabChange)
|
|
--this.TabCtrl:Init(this.tabbox, _TabData)
|
|
|
|
Util.AddClick(this.btnBack, function()
|
|
self:ClosePanel()
|
|
--UIManager.OpenPanel(UIName.MainPanel)
|
|
end)
|
|
--商店按钮
|
|
Util.AddClick(this.btnShop, function()
|
|
UIManager.OpenPanel(UIName.MainShopPanel, SHOP_TYPE.SECRET_BOX_SHOP)
|
|
end)
|
|
--
|
|
--Util.AddClick(shop_btnBack,function()
|
|
-- this.scrollRect:SetActive(true)
|
|
-- this.detailPanel:SetActive(true)
|
|
-- this.btnBack:SetActive(true)
|
|
-- this.btnShop:SetActive(true)
|
|
-- shop_btnBack:SetActive(false)
|
|
-- -- 关闭商店界面
|
|
-- if this.shopView then
|
|
-- this.shopView = SubUIManager.Close(this.shopView)
|
|
-- this.shopView = nil
|
|
-- this:RefreshRedPointShow()
|
|
-- end
|
|
-- -- 货币界面
|
|
-- this.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.SecretBox })
|
|
--end)
|
|
-- 帮助按钮
|
|
Util.AddClick(this.helpBtn, function()
|
|
UIManager.OpenPanel(UIName.HelpPopup, HELP_TYPE.SecretBoxRecruit, this.helpPosition.x, this.helpPosition.y)
|
|
end)
|
|
|
|
Util.AddClick(this.buyOneBtn, function()
|
|
if (SecretBoxManager.secretBoxFreeUseTime < 1) then
|
|
if PopQuickPurchasePanel(UpViewRechargeType.GhostRing, 1) then
|
|
return
|
|
end
|
|
end
|
|
if ((BagManager.GetItemCountById(SecretBoxManager.MainCost[2][1][1]) + SecretBoxManager.secretBoxFreeUseTime) >= 1) then
|
|
if (SecretBoxManager.SeasonTime > 1) then
|
|
SecretBoxManager.GetSecretBoxRewardRequest(SecretBoxManager.typeId[2 * SecretBoxManager.SeasonTime - 1],
|
|
1)
|
|
end
|
|
end
|
|
end)
|
|
Util.AddClick(this.buyTenBtn, function()
|
|
if PopQuickPurchasePanel(UpViewRechargeType.GhostRing, 10) then
|
|
return
|
|
end
|
|
if ((BagManager.GetItemCountById(SecretBoxManager.MainCost[2][1][1])) >= 10) then
|
|
if (SecretBoxManager.SeasonTime > 1) then
|
|
SecretBoxManager.GetSecretBoxRewardRequest(SecretBoxManager.typeId[2 * SecretBoxManager.SeasonTime], 10)
|
|
end
|
|
end
|
|
end)
|
|
--主打异妖头像按钮
|
|
Util.AddClick(this.headBtn, function()
|
|
UIManager.OpenPanel(UIName.DiffMonsterPreviewSecretBoxPanel)
|
|
end)
|
|
--BindRedPointObject(RedPointType.SecretBox_Red1,this.secretBoxRed1Point)
|
|
end
|
|
|
|
-- tab按钮自定义显示设置
|
|
function this.TabAdapter(tab, index, status)
|
|
local img = Util.GetGameObject(tab, "Image")
|
|
img:GetComponent("Image").sprite = this.spLoader:LoadSprite(_TabData[index]["img_" .. status])
|
|
end
|
|
|
|
-- tab改变回调事件
|
|
--function this.OnTabChange(index, lastIndex)
|
|
-- -- 商店界面特殊处理
|
|
-- if index == 1 then
|
|
-- this.scrollRect:SetActive(true)
|
|
-- this.detailPanel:SetActive(true)
|
|
-- -- 关闭商店界面
|
|
-- if this.shopView then
|
|
-- this.shopView.gameObject:SetActive(false)
|
|
-- this:RefreshRedPointShow()
|
|
-- end
|
|
-- -- 货币界面
|
|
-- this.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.SecretBox })
|
|
--
|
|
-- elseif index == 2 then
|
|
-- this.scrollRect:SetActive(false)
|
|
-- this.detailPanel:SetActive(false)
|
|
-- if not this.shopView then
|
|
-- this.shopView = SubUIManager.Open(SubUIConfig.ShopView, this.contentRoot.transform)
|
|
-- end
|
|
-- this.shopView.gameObject:SetActive(true)
|
|
-- this.secretBoxRed2Point:SetActive(false)
|
|
-- this.shopView:ShowShop(SHOP_TYPE.SECRET_BOX_SHOP)
|
|
-- -- 货币界面
|
|
--
|
|
-- this.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.SecretBoxShop })
|
|
--
|
|
-- end
|
|
--end
|
|
|
|
|
|
function SecretBoxPanel.OpenOneRewardPanel(drop)
|
|
this:OnRefresh()
|
|
UIManager.OpenPanel(UIName.SecretBoxBuyOnePanel, drop)
|
|
end
|
|
|
|
function SecretBoxPanel.OpenTenRewardPanel(drop)
|
|
this:OnRefresh()
|
|
UIManager.OpenPanel(UIName.SecretBoxBuyTenPanel, drop)
|
|
end
|
|
|
|
function SecretBoxPanel:TimeFormation(time, index)
|
|
if (STARTTIME == index) then
|
|
year = string.sub(time, 1, 4)
|
|
month = string.sub(time, 5, 6)
|
|
day = string.sub(time, 7, 8)
|
|
end
|
|
if (ENDTIME == index) then
|
|
year1 = string.sub(time, 1, 4)
|
|
month1 = string.sub(time, 5, 6)
|
|
day1 = string.sub(time, 7, 8)
|
|
end
|
|
end
|
|
|
|
-- 刷新红点显示
|
|
function SecretBoxPanel:RefreshRedPointShow()
|
|
if (SecretBoxManager.secretBoxFreeUseTime < 1 or not ActTimeCtrlManager.SingleFuncState(21)) then
|
|
this.content1:SetActive(true)
|
|
this.content2:SetActive(false)
|
|
else
|
|
this.content1:SetActive(false)
|
|
this.content2:SetActive(true)
|
|
end
|
|
if (viewList[1]) then
|
|
local itemdata = {}
|
|
table.insert(itemdata, SecretBoxManager.StarDifferDemonsId[1])
|
|
table.insert(itemdata, 0)
|
|
viewList[1]:OnOpen(false, itemdata, 1.4, false, false, false, self.sortingOrder)
|
|
local itemdata = {}
|
|
table.insert(itemdata, SecretBoxManager.StarDifferDemonsId[2])
|
|
table.insert(itemdata, 0)
|
|
viewList[2]:OnOpen(false, itemdata, 1.4, false, false, false, self.sortingOrder)
|
|
this:ShowImage(1)
|
|
this:TimeFormation(SecretBoxManager.SeasonOpen, STARTTIME)
|
|
this:TimeFormation(SecretBoxManager.SeasonEnd, ENDTIME)
|
|
this.activityTimeText.text = year .. "." .. month .. "." .. day .. "-" .. year1 .. "." .. month1 .. "." .. day1
|
|
this.canGetRewardNumber = SecretBoxManager.ShowTime - SecretBoxManager.count % SecretBoxManager.ShowTime
|
|
this.openNumberAgainText.text = this.canGetRewardNumber
|
|
SecretBoxManager.count = SecretBoxManager.ShowTime - this.canGetRewardNumber
|
|
end
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function SecretBoxPanel:AddListener()
|
|
Game.GlobalEvent:AddEvent(GameEvent.SecretBox.OnOpenOneReward, this.OpenOneRewardPanel)
|
|
Game.GlobalEvent:AddEvent(GameEvent.SecretBox.OnOpenTenReward, this.OpenTenRewardPanel)
|
|
Game.GlobalEvent:AddEvent(GameEvent.SecretBox.OnRefreshSecretBoxData, this.RefreshRedPointShow, self)
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function SecretBoxPanel:RemoveListener()
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.SecretBox.OnOpenOneReward, this.OpenOneRewardPanel)
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.SecretBox.OnOpenTenReward, this.OpenTenRewardPanel)
|
|
Game.GlobalEvent:RemoveEvent(GameEvent.SecretBox.OnRefreshSecretBoxData, this.RefreshRedPointShow, self)
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function SecretBoxPanel:OnOpen(...)
|
|
|
|
end
|
|
|
|
function SecretBoxPanel:OnShow()
|
|
--this.BtView:OnOpen(self, { sortOrder = self.sortingOrder, panelType = PanelTypeView.RecruitPanel })
|
|
this.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.SecretBox })
|
|
-- 打开详情界面
|
|
--if this.TabCtrl then
|
|
-- this.TabCtrl:ChangeTab(1)
|
|
--end
|
|
if (SecretBoxManager.secretBoxFreeUseTime < 1 or not ActTimeCtrlManager.SingleFuncState(21)) then
|
|
this.content1:SetActive(true)
|
|
this.content2:SetActive(false)
|
|
else
|
|
this.content1:SetActive(false)
|
|
this.content2:SetActive(true)
|
|
end
|
|
this:TimeFormation(SecretBoxManager.SeasonOpen, STARTTIME)
|
|
this:TimeFormation(SecretBoxManager.SeasonEnd, ENDTIME)
|
|
this.activityTimeText.text = year .. "." .. month .. "." .. day .. "-" .. year1 .. "." .. month1 .. "." .. day1
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function SecretBoxPanel:OnClose()
|
|
if this.shopView then
|
|
this.shopView = SubUIManager.Close(this.shopView)
|
|
this.shopView = nil
|
|
end
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function SecretBoxPanel:OnDestroy()
|
|
this.spLoader:Destroy()
|
|
|
|
SubUIManager.Close(this.UpView)
|
|
--SubUIManager.Close(this.BtView)
|
|
|
|
--ClearRedPointObject(RedPointType.SecretBox_Red1)
|
|
end
|
|
|
|
--跳转显示新手提示圈
|
|
function this.ShowGuideGo()
|
|
JumpManager.ShowGuide(UIName.SecretBoxPanel, this.buyOneBtn)
|
|
end
|
|
|
|
return SecretBoxPanel
|