357 lines
15 KiB
Lua
357 lines
15 KiB
Lua
require("Base/BasePanel")
|
|
HeroPreviewNewPanel = Inherit(BasePanel)
|
|
local this = HeroPreviewNewPanel
|
|
local roleData = {}
|
|
local viewList = {}
|
|
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
local heroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig)
|
|
--Tab
|
|
local TabBox = require("Modules/Common/TabBox")
|
|
local _TabData = {
|
|
[1] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = Language[10649] },
|
|
[2] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = Language[12118] },
|
|
--[3] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = "普通" }
|
|
}
|
|
local _TabFontColor = {
|
|
default = Color.New(130 / 255, 128 / 255, 120 / 255, 1),
|
|
select = Color.New(154 / 255, 78 / 255, 36 / 255, 1)
|
|
}
|
|
--上一模块索引
|
|
local curIndex = 0
|
|
|
|
local dataType = {
|
|
[1] = PRE_REWARD_POOL_TYPE.RECRUIT,
|
|
[2] = PRE_REWARD_POOL_TYPE.FRIEND,
|
|
[3] = PRE_REWARD_POOL_TYPE.NORMAL,
|
|
[4] = PRE_REWARD_POOL_TYPE.TIME_LIMITED_NEW_UP,
|
|
}
|
|
local itemList = {}
|
|
function HeroPreviewNewPanel:InitComponent()
|
|
this.spLoader = SpriteLoader.New()
|
|
this.cardPre = Util.GetGameObject(self.gameObject, "item")
|
|
this.ScrollBar = Util.GetGameObject(self.gameObject, "bg/Scrollbar"):GetComponent("Scrollbar")
|
|
this.BtnBack = Util.GetGameObject(self.transform, "bg/btnBack")
|
|
this.titleItem = Util.GetGameObject(self.transform, "titleItem")
|
|
this.heroScroll = Util.GetGameObject(self.transform, "bg/heroScroll")
|
|
this.heroScrollGrid = Util.GetGameObject(self.transform, "bg/heroScroll/grid")
|
|
this.elementScroll = Util.GetGameObject(self.transform, "bg/elementScroll")
|
|
|
|
this.sevenGrid = Util.GetGameObject(self.transform, "bg/heroScroll/grid/sevenGrid")
|
|
this.sixGrid = Util.GetGameObject(self.transform, "bg/heroScroll/grid/sixGrid")
|
|
this.fiveGrid = Util.GetGameObject(self.transform, "bg/heroScroll/grid/fiveGrid")
|
|
this.fourGrid = Util.GetGameObject(self.transform, "bg/heroScroll/grid/fourGrid")
|
|
this.threeGrid = Util.GetGameObject(self.transform, "bg/heroScroll/grid/threeGrid")
|
|
this.twoGrid = Util.GetGameObject(self.transform, "bg/heroScroll/grid/twoGrid")
|
|
this.twoStarNum = Util.GetGameObject(self.transform, "bg/heroScroll/grid/twoStarNum")
|
|
this.oneGrid = Util.GetGameObject(self.transform, "bg/heroScroll/grid/oneGrid")
|
|
this.oneStarNum = Util.GetGameObject(self.transform, "bg/heroScroll/grid/oneStarNum")
|
|
|
|
this.darkGrid = Util.GetGameObject(self.transform, "bg/elementScroll/grid/DarkGrid")
|
|
this.fireGrid = Util.GetGameObject(self.transform, "bg/elementScroll/grid/FireGrid")
|
|
this.waterGrid = Util.GetGameObject(self.transform, "bg/elementScroll/grid/WaterGrid")
|
|
this.windyGrid = Util.GetGameObject(self.transform, "bg/elementScroll/grid/WindyGrid")
|
|
this.groundGrid = Util.GetGameObject(self.transform, "bg/elementScroll/grid/GroundGrid")
|
|
this.grid = Util.GetGameObject(self.transform, "bg/scroll/ScrollCycleView/grid")
|
|
|
|
this.heroGrid = Util.GetGameObject(self.transform, "bg/heroScroll/grid")
|
|
this.elementGrid = Util.GetGameObject(self.transform, "bg/elementScroll/grid")
|
|
this.viewCache = {}
|
|
|
|
--其他
|
|
this.other = Util.GetGameObject(self.gameObject, "bg/otherRoot")
|
|
this.other:SetActive(false)
|
|
|
|
--tabbox
|
|
this.tabBox = Util.GetGameObject(self.gameObject, "bg/TabBox")
|
|
this.List1 = {}
|
|
this.List2 = {}
|
|
this.List3 = {}
|
|
this.List4 = {}
|
|
this.List5 = {}
|
|
this.List6 = {}
|
|
this.List7 = {}
|
|
end
|
|
|
|
function HeroPreviewNewPanel:BindEvent()
|
|
Util.AddClick(this.BtnBack, function()
|
|
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
|
|
self:ClosePanel()
|
|
end)
|
|
end
|
|
|
|
function HeroPreviewNewPanel:AddListener()
|
|
end
|
|
|
|
function HeroPreviewNewPanel:RemoveListener()
|
|
end
|
|
|
|
function HeroPreviewNewPanel:OnSortingOrderChange()
|
|
this.sortingOrder = self.sortingOrder
|
|
end
|
|
|
|
--第一个参数是否是英雄或元素
|
|
--第二个参数是否显示tab 如果没有,则显示,如果有,则根据第二个参数
|
|
function HeroPreviewNewPanel:OnOpen(...)
|
|
this.heroGrid.transform.anchoredPosition = Vector2.New(0, 0)
|
|
this.elementGrid.transform.anchoredPosition = Vector2.New(0, 0)
|
|
local temp = { ... }
|
|
if temp and temp[1] ~= nil then
|
|
this.heroScroll:SetActive(temp[1])
|
|
this.elementScroll:SetActive(not temp[1])
|
|
this.tabBox:SetActive(temp[1])
|
|
end
|
|
|
|
if temp[1] then --英雄招募
|
|
if #temp == 1 or temp[2] then
|
|
this.TabCtrl = TabBox.New()
|
|
this.TabCtrl:SetTabAdapter(this.TabAdapter)
|
|
this.TabCtrl:SetChangeTabCallBack(this.SwitchView)
|
|
this.TabCtrl:Init(this.tabBox, _TabData, temp[3] or 1)
|
|
else
|
|
this.tabBox:SetActive(temp[2])
|
|
this.SwitchView(4)
|
|
end
|
|
else
|
|
if RecruitManager.isFirstEnterElementScroll then --元素
|
|
RecruitManager.isFirstEnterElementScroll = false
|
|
for i, v in pairs(RecruitManager.previewElementData) do
|
|
Log(v.Pool)
|
|
if (v.Pool == 11) then
|
|
local view = SubUIManager.Open(SubUIConfig.ItemView, this.waterGrid.transform)
|
|
view:OnOpen(false, { v.Reward[1], v.Reward[2] }, 1.1, true)
|
|
view.name:GetComponent("Text").text = "<color=#EDB64C>" ..
|
|
string.format("%.2f", (v.WeightShow / 100000) * 100) .. "%</color>"
|
|
elseif (v.Pool == 12) then
|
|
local view = SubUIManager.Open(SubUIConfig.ItemView, this.fireGrid.transform)
|
|
view:OnOpen(false, { v.Reward[1], v.Reward[2] }, 1.1, true)
|
|
view.name:GetComponent("Text").text = "<color=#EDB64C>" ..
|
|
string.format("%.2f", (v.WeightShow / 100000) * 100) .. "%</color>"
|
|
elseif (v.Pool == 13) then
|
|
local view = SubUIManager.Open(SubUIConfig.ItemView, this.windyGrid.transform)
|
|
view:OnOpen(false, { v.Reward[1], v.Reward[2] }, 1.1, true)
|
|
view.name:GetComponent("Text").text = "<color=#EDB64C>" ..
|
|
string.format("%.2f", (v.WeightShow / 100000) * 100) .. "%</color>"
|
|
elseif (v.Pool == 14) then
|
|
local view = SubUIManager.Open(SubUIConfig.ItemView, this.groundGrid.transform)
|
|
view:OnOpen(false, { v.Reward[1], v.Reward[2] }, 1.1, true)
|
|
view.name:GetComponent("Text").text = "<color=#EDB64C>" ..
|
|
string.format("%.2f", (v.WeightShow / 100000) * 100) .. "%</color>"
|
|
end
|
|
end
|
|
this.elementScroll:SetActive(true)
|
|
this.tabBox:SetActive(false)
|
|
end
|
|
end
|
|
end
|
|
|
|
function HeroPreviewNewPanel:OnShow()
|
|
|
|
end
|
|
|
|
function HeroPreviewNewPanel:OnClose()
|
|
|
|
end
|
|
|
|
function HeroPreviewNewPanel:OnDestroy()
|
|
this.spLoader:Destroy()
|
|
this.List1 = {}
|
|
this.List2 = {}
|
|
this.List3 = {}
|
|
this.List4 = {}
|
|
this.List5 = {}
|
|
this.List6 = {}
|
|
this.List7 = {}
|
|
itemList = {}
|
|
RecruitManager.isFirstEnterElementScroll = true
|
|
RecruitManager.isFirstEnterHeroScroll = true
|
|
end
|
|
|
|
-- tab节点显示自定义
|
|
function this.TabAdapter(tab, index, status)
|
|
local tabLab = Util.GetGameObject(tab, "Text")
|
|
Util.GetGameObject(tab, "Image"):GetComponent("Image").sprite = this.spLoader:LoadSprite(_TabData[index][status])
|
|
tabLab:GetComponent("Text").text = _TabData[index].name
|
|
tabLab:GetComponent("Text").color = _TabFontColor[status]
|
|
end
|
|
|
|
--切换视图
|
|
function this.SwitchView(index)
|
|
local oldSelect
|
|
oldSelect, curIndex = curIndex, index
|
|
this.heroScrollGrid.transform:DOAnchorPosY(0, 0)
|
|
local oneData = {}
|
|
local twoData = {}
|
|
local threeData = {}
|
|
local fourData = {}
|
|
local fiveData = {}
|
|
local sixData = {}
|
|
local sevenData = {}
|
|
for index, v in ipairs(RecruitManager.GetRewardPreviewData(dataType[curIndex])) do
|
|
-- if curIndex==2 then
|
|
-- LogError("v.v.Reward[1].quan=="..v.Quality)
|
|
-- if v.Quality==1 then
|
|
-- table.insert(oneData,v)
|
|
-- elseif v.Quality==2 then
|
|
-- table.insert(twoData,v)
|
|
-- elseif v.Quality==3 then
|
|
-- table.insert(threeData,v)
|
|
-- elseif v.Quality==4 then
|
|
-- table.insert(fourData,v)
|
|
-- elseif v.Quality==5 then
|
|
-- table.insert(fiveData,v)
|
|
-- elseif v.Quality==6 then
|
|
-- table.insert(sixData,v)
|
|
-- elseif v.Quality==7 then
|
|
-- table.insert(sevenData,v)
|
|
-- end
|
|
-- else
|
|
if itemConfig[v.Reward[1]].HeroQuantity == 1 then
|
|
table.insert(oneData, v)
|
|
elseif itemConfig[v.Reward[1]].HeroQuantity == 2 then
|
|
table.insert(twoData, v)
|
|
elseif itemConfig[v.Reward[1]].HeroQuantity == 3 then
|
|
table.insert(threeData, v)
|
|
elseif itemConfig[v.Reward[1]].HeroQuantity == 4 then
|
|
table.insert(fourData, v)
|
|
elseif itemConfig[v.Reward[1]].HeroQuantity == 5 then
|
|
table.insert(fiveData, v)
|
|
elseif itemConfig[v.Reward[1]].HeroQuantity == 6 then
|
|
table.insert(sixData, v)
|
|
elseif itemConfig[v.Reward[1]].HeroQuantity == 7 then
|
|
table.insert(sevenData, v)
|
|
end
|
|
--end
|
|
end
|
|
if index == 3 then
|
|
for i = 1, #oneData do
|
|
if not this.List1[i] then
|
|
this.List1[i] = SubUIManager.Open(SubUIConfig.ItemView, this.oneGrid.transform)
|
|
end
|
|
this.List1[i]:OnOpen(false, { oneData[i].Reward[1], oneData[i].Reward[2] }, 1.1, true)
|
|
this.List1[i].name:GetComponent("Text").text = "<color=#EDB64C>" ..
|
|
string.format("%.2f", (oneData[i].WeightShow / 100000) * 100) .. "%</color>"
|
|
this.List1[i].gameObject:SetActive(true)
|
|
end
|
|
end
|
|
|
|
if index == 2 or index == 3 then
|
|
for i = 1, #twoData do
|
|
if not this.List2[i] then
|
|
this.List2[i] = SubUIManager.Open(SubUIConfig.ItemView, this.twoGrid.transform)
|
|
end
|
|
this.List2[i]:OnOpen(false, { twoData[i].Reward[1], twoData[i].Reward[2] }, 1.1, true)
|
|
this.List2[i].name:GetComponent("Text").text = "<color=#EDB64C>" ..
|
|
string.format("%.2f", (twoData[i].WeightShow / 100000) * 100) .. "%</color>"
|
|
this.List2[i].gameObject:SetActive(true)
|
|
end
|
|
end
|
|
for i = 1, #this.List3 do
|
|
if this.List3[i] then
|
|
this.List3[i].gameObject:SetActive(false)
|
|
end
|
|
end
|
|
for i = 1, #threeData do
|
|
if not this.List3[i] then
|
|
this.List3[i] = SubUIManager.Open(SubUIConfig.ItemView, this.threeGrid.transform)
|
|
this.List3[i].gameObject:SetActive(true)
|
|
end
|
|
this.List3[i]:OnOpen(false, { threeData[i].Reward[1], threeData[i].Reward[2] }, 1.1, true)
|
|
this.List3[i].name:GetComponent("Text").text = "<color=#EDB64C>" ..
|
|
string.format("%.2f", (threeData[i].WeightShow / 100000) * 100) .. "%</color>"
|
|
this.List3[i].gameObject:SetActive(true)
|
|
end
|
|
for i = 1, #this.List4 do
|
|
if this.List4[i] then
|
|
this.List4[i].gameObject:SetActive(false)
|
|
end
|
|
end
|
|
for i = 1, #fourData do
|
|
if not this.List4[i] then
|
|
this.List4[i] = SubUIManager.Open(SubUIConfig.ItemView, this.fourGrid.transform)
|
|
this.List4[i].gameObject:SetActive(true)
|
|
end
|
|
this.List4[i]:OnOpen(false, { fourData[i].Reward[1], fourData[i].Reward[2] }, 1.1, true)
|
|
this.List4[i].name:GetComponent("Text").text = "<color=#EDB64C>" ..
|
|
string.format("%.2f", (fourData[i].WeightShow / 100000) * 100) .. "%</color>"
|
|
this.List4[i].gameObject:SetActive(true)
|
|
end
|
|
for i = 1, #this.List5 do
|
|
if this.List5[i] then
|
|
this.List5[i].gameObject:SetActive(false)
|
|
end
|
|
end
|
|
for i = 1, #fiveData do
|
|
if not this.List5[i] then
|
|
this.List5[i] = SubUIManager.Open(SubUIConfig.ItemView, this.fiveGrid.transform)
|
|
this.List5[i].gameObject:SetActive(true)
|
|
end
|
|
this.List5[i]:OnOpen(false, { fiveData[i].Reward[1], fiveData[i].Reward[2] }, 1.1, true)
|
|
this.List5[i].name:GetComponent("Text").text = "<color=#EDB64C>" ..
|
|
string.format("%.2f", (fiveData[i].WeightShow / 100000) * 100) .. "%</color>"
|
|
this.List5[i].gameObject:SetActive(true)
|
|
end
|
|
|
|
for i = 1, #this.List6 do
|
|
if this.List6[i] then
|
|
this.List6[i].gameObject:SetActive(false)
|
|
end
|
|
end
|
|
for i = 1, #sixData do
|
|
if not this.List6[i] then
|
|
this.List6[i] = SubUIManager.Open(SubUIConfig.ItemView, this.sixGrid.transform)
|
|
this.List6[i].gameObject:SetActive(true)
|
|
end
|
|
this.List6[i]:OnOpen(false, { sixData[i].Reward[1], sixData[i].Reward[2] }, 1.1, true)
|
|
this.List6[i].name:GetComponent("Text").text = "<color=#EDB64C>" ..
|
|
string.format("%.2f", (sixData[i].WeightShow / 100000) * 100) .. "%</color>"
|
|
this.List6[i].gameObject:SetActive(true)
|
|
end
|
|
|
|
-- for i = 1, #sixData do
|
|
-- if not this.List6[i] then
|
|
-- this.List6[i] = SubUIManager.Open(SubUIConfig.ItemView,this.sixGrid.transform)
|
|
-- this.List6[i].gameObject:SetActive(true)
|
|
-- end
|
|
-- this.List6[i]:OnOpen(false, {sixData[i].Reward[1], sixData[i].Reward[2]}, 1.1, true)
|
|
-- this.List6[i].name:GetComponent("Text").text="<color=#EDB64C>"..string.format("%.2f", (sixData[i].WeightShow/100000)*100) .."%</color>"
|
|
-- this.List6[i].gameObject:SetActive(true)
|
|
-- end
|
|
for i = 1, #this.List7 do
|
|
if this.List7[i] then
|
|
this.List7[i].gameObject:SetActive(false)
|
|
end
|
|
end
|
|
for i = 1, #sevenData do
|
|
if not this.List7[i] then
|
|
this.List7[i] = SubUIManager.Open(SubUIConfig.ItemView, this.sevenGrid.transform)
|
|
this.List7[i].gameObject:SetActive(true)
|
|
end
|
|
this.List7[i]:OnOpen(false, { sevenData[i].Reward[1], sevenData[i].Reward[2] }, 1.1, true)
|
|
this.List7[i].name:GetComponent("Text").text = "<color=#EDB64C>" ..
|
|
string.format("%.2f", (sevenData[i].WeightShow / 100000) * 100) .. "%</color>"
|
|
this.List7[i].gameObject:SetActive(true)
|
|
end
|
|
this.starGridSwitch(index)
|
|
end
|
|
|
|
function this.starGridSwitch(index)
|
|
if index == 1 or index == 4 then
|
|
this.oneStarNum:SetActive(false)
|
|
this.oneGrid:SetActive(false)
|
|
this.twoStarNum:SetActive(false)
|
|
this.twoGrid:SetActive(false)
|
|
elseif index == 2 then
|
|
this.oneStarNum:SetActive(false)
|
|
this.oneGrid:SetActive(false)
|
|
this.twoStarNum:SetActive(true)
|
|
this.twoGrid:SetActive(true)
|
|
else
|
|
this.oneStarNum:SetActive(true)
|
|
this.oneGrid:SetActive(true)
|
|
this.twoStarNum:SetActive(true)
|
|
this.twoGrid:SetActive(true)
|
|
end
|
|
end
|
|
|
|
return HeroPreviewNewPanel
|