miduo_client/Assets/ManagedResources/~Lua/Modules/SecretBox/SecretBoxPanel.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