204 lines
8.2 KiB
Lua
204 lines
8.2 KiB
Lua
require("Base/BasePanel")
|
|
AdventureExploreRewardPanel = Inherit(BasePanel)
|
|
local this=AdventureExploreRewardPanel
|
|
local baseDrop={}
|
|
local randomDrop={}
|
|
local randomList = {}
|
|
local itemListPrefab={}
|
|
local isOpenGeiSSRAvtivity = 0--五星成长礼拍脸
|
|
local gameSetting = ConfigManager.GetConfig(ConfigName.GameSetting)
|
|
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
this.selfsortingOrder = 0
|
|
--初始化组件(用于子类重写)
|
|
function AdventureExploreRewardPanel:InitComponent()
|
|
this.spLoader = SpriteLoader.New()
|
|
this.btnBack = Util.GetGameObject(self.gameObject, "maskImage")
|
|
this.rewardGrid = Util.GetGameObject(self.gameObject, "top/grid")
|
|
this.randomDropGrid = Util.GetGameObject(self.gameObject, "Bg/scroll/grid")
|
|
this.vipAddShow1 = Util.GetGameObject(self.gameObject, "Bg/top/vipAddShow1")
|
|
this.vipAddShow2 = Util.GetGameObject(self.gameObject, "Bg/top/vipAddShow2")
|
|
this.vipAddShowText1=Util.GetGameObject(self.gameObject, "Bg/top/vipAddShow1/vipAddShow1Text"):GetComponent("Text")
|
|
this.vipAddShowText2=Util.GetGameObject(self.gameObject, "Bg/top/vipAddShow2/vipAddShow2Text"):GetComponent("Text")
|
|
this.hangOnTime = Util.GetGameObject(self.gameObject, "Bg/hangOnTime"):GetComponent("Text")
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function AdventureExploreRewardPanel:BindEvent()
|
|
Util.AddClick(this.btnBack, function()
|
|
self:ClosePanel()
|
|
--Game.GlobalEvent:DispatchEvent(GameEvent.PatFace.PatFaceSend, FacePanelType.UpgradePac)
|
|
-- if PlayerManager.IsGetFiveStarHero then--and OperatingManager.IsShowFiveStarPatch then
|
|
|
|
-- PlayerManager.IsGetFiveStarHero = false
|
|
-- end Game.GlobalEvent:AddEvent(GameEvent.PatFace.PatFaceSend
|
|
end)
|
|
end
|
|
--添加事件监听(用于子类重写)
|
|
function AdventureExploreRewardPanel:AddListener()
|
|
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function AdventureExploreRewardPanel:RemoveListener()
|
|
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function AdventureExploreRewardPanel:OnOpen(...)
|
|
Log("挂机时长是 --- " .. TimeToHMS(AdventureManager.stateTime))
|
|
SoundManager.PlaySound(SoundConfig.UI_Guajijiangli)
|
|
this.selfsortingOrder = self.sortingOrder
|
|
local args = {...}
|
|
baseDrop=args[1]
|
|
randomDrop = args[2]
|
|
local itemDataList={}
|
|
local baseContentList1={}
|
|
local callList1 = Stack.New()
|
|
itemDataList=BagManager.GetTableByBackDropData(baseDrop)
|
|
BagManager.GoIntoBackData(baseDrop)
|
|
--固定掉落
|
|
-- for i = 1, #itemDataList do
|
|
-- local view
|
|
-- if not baseContentList[i] then
|
|
-- view = SubUIManager.Open(SubUIConfig.ItemView,this.rewardGrid.transform)
|
|
-- baseContentList[i] = view
|
|
-- end
|
|
-- baseContentList[i]:OnOpen(true,itemDataList[i],1,true,false,false,this.selfsortingOrder)
|
|
-- end
|
|
ClearChild(this.rewardGrid.transform)
|
|
self:SetItemShow(baseDrop,itemDataList,this.rewardGrid.transform,callList1,baseContentList1)
|
|
|
|
--随机掉落
|
|
if(randomDrop~=nil) then
|
|
local callList2 = Stack.New()
|
|
local itemRandomDataList={}
|
|
local baseContentList2={}
|
|
itemRandomDataList=BagManager.GetTableByBackDropData(randomDrop)
|
|
|
|
-- 按品质排序
|
|
if #itemRandomDataList > 1 then
|
|
table.sort(itemRandomDataList, function(a, b)
|
|
return a.configData.Quantity > b.configData.Quantity
|
|
end)
|
|
end
|
|
|
|
BagManager.GoIntoBackData(randomDrop)
|
|
-- for i = 1, #itemRandomDataList do
|
|
-- if not randomList[i] then
|
|
-- local view = SubUIManager.Open(SubUIConfig.ItemView,this.randomDropGrid.transform)
|
|
-- randomList[i] = view
|
|
-- end
|
|
-- randomList[i]:OnOpen(true,itemDataList[i], 1.1, true)
|
|
-- end
|
|
ClearChild(this.randomDropGrid.transform)
|
|
self:SetItemShow(randomDrop,itemRandomDataList,this.randomDropGrid.transform,callList2,baseContentList2)
|
|
end
|
|
local hours = AdventureManager.adventureOffline --gameSetting[1].AdventureOffline
|
|
local time = AdventureManager.stateTime >= hours * 60 * 60 and hours * 60 * 60 or AdventureManager.stateTime
|
|
this.hangOnTime.text = Language[10038] .. TimeToHMS(time)
|
|
end
|
|
|
|
|
|
-- 根据物品列表数据显示物品
|
|
function AdventureExploreRewardPanel:SetItemShow(drop,dataList,transform,callList,baseContentList)
|
|
BagManager.OnShowTipDropNumZero(drop)
|
|
if drop==nil then return end
|
|
for i = 1, #dataList do
|
|
dataList[i].itemConfig = itemConfig[dataList[i].sId]
|
|
end
|
|
self:ItemDataListSort(dataList)
|
|
for i = 1, math.max(#dataList, #baseContentList) do
|
|
local go = baseContentList[i]
|
|
if not go then
|
|
go = SubUIManager.Open(SubUIConfig.ItemView, transform)
|
|
go.gameObject.name = "frame"..i
|
|
baseContentList[i] = go
|
|
end
|
|
go.gameObject:SetActive(false)
|
|
end
|
|
|
|
callList:Clear()
|
|
callList:Push(function ()
|
|
if isOpenGeiSSRAvtivityTime then
|
|
isOpenGeiSSRAvtivityTime:Stop()
|
|
isOpenGeiSSRAvtivityTime = nil
|
|
end
|
|
isOpenGeiSSRAvtivityTime = Timer.New(function ()
|
|
isPlayerAniEnd = true
|
|
if isOpenGeiSSRAvtivity > 0 then
|
|
HeroManager.DetectionOpenFiveStarActivity(isOpenGeiSSRAvtivity)
|
|
end
|
|
end, 0.5):Start()
|
|
--在关卡界面获得装备 刷新下btview成员红点
|
|
-- Game.GlobalEvent:DispatchEvent(GameEvent.Equip.EquipChange)
|
|
end)
|
|
for i = #dataList, 1, -1 do
|
|
isPlayerAniEnd = false
|
|
local view = baseContentList[i]
|
|
local curItemData=dataList[i]
|
|
view:OnOpen(true,curItemData,1,true,true,false,self.sortingOrder)
|
|
--view.gameObject:SetActive(false)
|
|
callList:Push(function ()
|
|
local func = function()
|
|
view.gameObject:SetActive(true)
|
|
local btn = Util.GetGameObject(view.gameObject, "item/frame"):GetComponent("Button")
|
|
btn.enabled = false
|
|
PlayUIAnim(view.gameObject, function()
|
|
btn.enabled = true
|
|
end)
|
|
--改为后端更新
|
|
--this.SetItemData2(itemDataList[i])
|
|
Timer.New(function ()
|
|
isPopGetSSR = false
|
|
callList:Pop()()
|
|
end, 0.05):Start()
|
|
end
|
|
if curItemData.configData and curItemData.itemType==3 and curItemData.configData.Quality == 5 then
|
|
isPopGetSSR = true
|
|
isOpenGeiSSRAvtivity = curItemData.configData.Star
|
|
UIManager.OpenPanel(UIName.DropGetSSRHeroShopPanel,curItemData.backData, func)
|
|
elseif curItemData.configData and curItemData.itemType==1 and
|
|
(curItemData.configData.ItemType == ItemType.Title or curItemData.configData.ItemType == ItemType.Ride or
|
|
curItemData.configData.ItemType == ItemType.Skin) then--皮肤 坐骑
|
|
-- isPopGetSSR = true
|
|
-- UIManager.OpenPanel(UIName.DropGetPlayerDecorateShopPanel,curItemData.backData, func)
|
|
func()
|
|
else
|
|
func()
|
|
end
|
|
end)
|
|
end
|
|
callList:Pop()()
|
|
end
|
|
|
|
--掉落物品排序
|
|
function AdventureExploreRewardPanel:ItemDataListSort(itemDataList)
|
|
table.sort(itemDataList, function(a, b)
|
|
if a.itemConfig.Quantity == b.itemConfig.Quantity then
|
|
if a.itemConfig.ItemType == b.itemConfig.ItemType then
|
|
return a.itemConfig.Id < b.itemConfig.Id
|
|
else
|
|
return a.itemConfig.ItemType < b.itemConfig.ItemType
|
|
end
|
|
else
|
|
return a.itemConfig.Quantity > b.itemConfig.Quantity
|
|
end
|
|
end)
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function AdventureExploreRewardPanel:OnClose()
|
|
FightPointPassManager.isBeginFight = false
|
|
if FightPointPassManager.oldLevel<PlayerManager.level then
|
|
UIManager.OpenPanel(UIName.FightEndLvUpPanel,FightPointPassManager.oldLevel,PlayerManager.level)
|
|
end
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function AdventureExploreRewardPanel:OnDestroy()
|
|
this.spLoader:Destroy()
|
|
|
|
randomList = {}
|
|
end
|
|
|
|
return AdventureExploreRewardPanel |