miduo_client/Assets/ManagedResources/~Lua/Modules/HandBook/HandBookHeroAndEquipListPan...

817 lines
35 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

require("Base/BasePanel")
HandBookHeroAndEquipListPanel = Inherit(BasePanel)
local OpenType = 0 --1 英雄 2装备 3 法宝
-- --英雄列表
-- local tenGridList = {}
-- local sexGridList = {}
-- local fiveGridList = {}
-- local fourGridList = {}
-- local threeGridList = {}
-- local twoGridList = {}
-- local oneGridList = {}
--装备列表
local chuanShuoGridList = {}
local shiShiGridList = {}
local youXiuGridList = {}
local jingLiangGridList = {}
--法宝列表
local orangeGridList={}
local violetGridList={}
local blueGridList={}
local proId=0--0 全部 1 火 2风 3 水 4 地 5 光 6 暗
local tabs = {}
local orginLayer = 0
local orginLayer2 = 0
local gridListData = {}
local heroNumList = {}
--初始化组件(用于子类重写)
function HandBookHeroAndEquipListPanel:InitComponent()
self.spLoader = SpriteLoader.New()
self.btnBack = Util.GetGameObject(self.transform, "btnBack")
--英雄
self.heroScroll = Util.GetGameObject(self.transform, "heroScroll")
self.heroScrollbar = Util.GetGameObject(self.transform, "heroScrollbar")
self.heroScrollbar.gameObject:SetActive(false)
self.card = poolManager:LoadAsset("card", PoolManager.AssetType.GameObject)
self.card.transform:SetParent(self.transform)
--local particles1=starPre:GetComponentsInChildren(typeof(UnityEngine.ParticleSystem))
-- for key, value in pairs(particles1:ToTable()) do
-- local mat=value:GetComponent(typeof(UnityEngine.Renderer))
-- if mat.material.shader.name=="CGwell FX/Additive Lv1" then
-- mat.material.shader=poolManager:LoadAsset("Add Lv1_1",poolManager.AssetType.Other)
-- elseif mat.material.shader.name=="UI Particles/Additive" then
-- mat.material.shader=poolManager:LoadAsset("UI-Particle-Add_1",poolManager.AssetType.Other)
-- end
-- end
self.card:GetComponent("RectTransform").localScale = Vector3.New(1,1,1)
Util.GetGameObject(self.card, "choosed").gameObject:SetActive(false)
Util.GetGameObject(self.card, "redAndLock").gameObject:SetActive(false)
self.starNum = Util.GetGameObject(self.transform, "starNum")
self.heroprefab = Util.GetGameObject(self.transform, "heroprefab")
local particles=self.heroprefab:GetComponentsInChildren(typeof(UnityEngine.ParticleSystem))
for key, value in pairs(particles:ToTable()) do
local mat=value:GetComponent(typeof(UnityEngine.Renderer))
if mat.material.shader.name=="CGwell FX/Additive Lv1" then
mat.material.shader=poolManager:LoadAsset("Add Lv1_1",poolManager.AssetType.Other)
elseif mat.material.shader.name=="UI Particles/Additive" then
mat.material.shader=poolManager:LoadAsset("UI-Particle-Add_1",poolManager.AssetType.Other)
elseif mat.material.shader.name=="YXZ/Effect/Mix Masking(Without Moving)_alphablend" then
mat.material.shader=poolManager:LoadAsset("YXZ_MixMaskingWithoutMoving_alphablend_1",poolManager.AssetType.Other)
end
end
local meshs=self.heroprefab:GetComponentsInChildren(typeof(UnityEngine.MeshRenderer))
for key, value in pairs(meshs:ToTable()) do
if value.material.shader.name=="Custom/S_03_UV_alpha_add" then
value.material.shader=poolManager:LoadAsset("S_03_uv_alpha_add_1",poolManager.AssetType.Other)
end
end
local meshs2=self.heroprefab:GetComponentsInChildren(typeof(UnityEngine.SkinnedMeshRenderer))
for key, value in pairs(meshs2:ToTable()) do
if value.material.shader.name=="YXZ/Effect/TransparentRim" then
value.material.shader=poolManager:LoadAsset("YXZ_Effect_TransparentRim_1",poolManager.AssetType.Other)
end
end
self.scrollRoot = Util.GetGameObject(self.transform, "heroScroll")
local rootHight = self.scrollRoot.transform.rect.height
local sv = SubUIManager.Open(SubUIConfig.ScrollFitterView, self.scrollRoot.transform,
self.heroprefab, Vector2.New(1080, rootHight - 10), 1, 0)
sv.gameObject:GetComponent("RectTransform").anchoredPosition = Vector2.New(0, -5)
-- 保存
sv.moveTween.MomentumAmount = 1
sv.moveTween.Strength = 2
self.SystemScrollView = sv
--装备
self.equipScroll = Util.GetGameObject(self.transform, "equipScroll")
self.equipScrollbar = Util.GetGameObject(self.transform, "equipScrollbar")
self.equip = Util.GetGameObject(self.transform, "equip")
self.chuanShuoGrid = Util.GetGameObject(self.equipScroll.transform, "grid/chuanShuoGrid")
self.shiShiGrid = Util.GetGameObject(self.equipScroll.transform, "grid/shiShiGrid")
self.youXiuGrid = Util.GetGameObject(self.equipScroll.transform, "grid/youXiuGrid")
self.jingLiangGrid = Util.GetGameObject(self.equipScroll.transform, "grid/jingLiangGrid")
self.chuanShuoNum = Util.GetGameObject(self.equipScroll.transform, "grid/chuanShuoNum/numInfo/numText/Text (1)"):GetComponent("Text")
self.shiShiNum = Util.GetGameObject(self.equipScroll.transform, "grid/shiShiNum/numInfo/numText/Text (1)"):GetComponent("Text")
self.youXiuNum = Util.GetGameObject(self.equipScroll.transform, "grid/youXiuNum/numInfo/numText/Text (1)"):GetComponent("Text")
self.jingLiangNum = Util.GetGameObject(self.equipScroll.transform, "grid/jingLiangNum/numInfo/numText/Text (1)"):GetComponent("Text")
--法宝
self.talismanScroll=Util.GetGameObject(self.transform,"TalismanScroll")
self.talismanScrollbar = Util.GetGameObject(self.transform, "TalismanScrollbar")
self.talismanPre= Util.GetGameObject(self.transform, "TalismanPre")
self.orangeGrid=Util.GetGameObject(self.talismanScroll.transform,"Grid/OrangeGrid")
self.violetGrid=Util.GetGameObject(self.talismanScroll.transform,"Grid/VioletGrid")
self.blueGrid=Util.GetGameObject(self.talismanScroll.transform,"Grid/BlueGrid")
self.orangeNum=Util.GetGameObject(self.talismanScroll.transform, "Grid/OrangeNum/NumInfo/NumText/Text"):GetComponent("Text")
self.violetNum=Util.GetGameObject(self.talismanScroll.transform,"Grid/VioletNum/NumInfo/NumText/Text"):GetComponent("Text")
self.blueNum=Util.GetGameObject(self.talismanScroll.transform,"Grid/BlueNum/NumInfo/NumText/Text"):GetComponent("Text")
chuanShuoGridList = {}
shiShiGridList = {}
youXiuGridList = {}
jingLiangGridList = {}
orangeGridList={}
violetGridList={}
blueGridList={}
for i = 1, 1 do
chuanShuoGridList[i] = Util.GetGameObject(self.equipScroll.transform, "grid/chuanShuoGrid/equip ("..i..")")
shiShiGridList[i] = Util.GetGameObject(self.equipScroll.transform, "grid/shiShiGrid/equip ("..i..")")
youXiuGridList[i] = Util.GetGameObject(self.equipScroll.transform, "grid/youXiuGrid/equip ("..i..")")
jingLiangGridList[i] = Util.GetGameObject(self.equipScroll.transform, "grid/jingLiangGrid/equip ("..i..")")
orangeGridList[i]=Util.GetGameObject(self.orangeGrid.transform,"equip ("..i..")")
violetGridList[i]=Util.GetGameObject(self.violetGrid.transform,"equip ("..i..")")
blueGridList[i]=Util.GetGameObject(self.blueGrid.transform,"equip ("..i..")")
end
self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform)
self.selectBtn = Util.GetGameObject(self.gameObject, "Tabs/selectBtn")
Util.GetGameObject(self.transform, "Tabs/grid/box/Btn" .. 0):SetActive(false)
for i = 1, 6 do
tabs[i] = Util.GetGameObject(self.transform, "Tabs/grid/box/Btn" .. i)
Util.GetGameObject(tabs[i], "Text"):GetComponent("Text").text=PropertyType[i]
end
for i = 1, 5 do
tabs[i]:SetActive(true)
end
self.Tabs = Util.GetGameObject(self.gameObject, "Tabs")
end
--绑定事件(用于子类重写)·
function HandBookHeroAndEquipListPanel:BindEvent()
Util.AddClick(self.btnBack, function()
self:ClosePanel()
end)
for i = 1, 6 do
Util.AddClick(tabs[i], function()
if i ~= proId then
proId=i
end
self:OnShowHeroFun()
end)
end
end
--添加事件监听(用于子类重写)
function HandBookHeroAndEquipListPanel:AddListener()
end
--移除事件监听(用于子类重写)
function HandBookHeroAndEquipListPanel:RemoveListener()
end
--界面打开时调用(用于子类重写)
function HandBookHeroAndEquipListPanel:OnOpen(_type)
-- proId=ProIdConst.All
OpenType = _type
--self.BtView:OnOpen(self, { sortOrder = self.sortingOrder, panelType = PanelTypeView.RolePanel })
--self.BtView2:OnOpen({ sortOrder = self.sortingOrder, panelType = PanelTypeView2.HandBookPanel })
self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main })
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function HandBookHeroAndEquipListPanel:OnShow()
proId = PlayerManager.headBookListTag
if OpenType == 1 then
self.heroScroll:SetActive(true)
self.heroScrollbar:SetActive(false)
self.equipScroll:SetActive(false)
self.equipScrollbar:SetActive(false)
self.talismanScroll:SetActive(false)
self.talismanScrollbar:SetActive(false)
self.Tabs:SetActive(true)
-- proId=ProIdConst.All
self:OnShowHeroFun()
elseif OpenType == 2 then
self.heroScroll:SetActive(false)
self.heroScrollbar:SetActive(false)
self.equipScroll:SetActive(true)
self.equipScrollbar:SetActive(true)
self.talismanScroll:SetActive(false)
self.talismanScrollbar:SetActive(false)
self.Tabs:SetActive(false)
self:OnShowEquipFun()
elseif OpenType==3 then
self.heroScroll:SetActive(false)
self.heroScrollbar:SetActive(false)
self.equipScroll:SetActive(false)
self.equipScrollbar:SetActive(false)
self.talismanScroll:SetActive(true)
self.talismanScrollbar:SetActive(true)
self.Tabs:SetActive(false)
self:OnShowTalismanFun()
end
end
--界面关闭时调用(用于子类重写)
function HandBookHeroAndEquipListPanel:OnClose()
end
--界面销毁时调用(用于子类重写)
function HandBookHeroAndEquipListPanel:OnDestroy()
self.spLoader:Destroy()
SubUIManager.Close(self.UpView)
--SubUIManager.Close(self.BtView)
--SubUIManager.Close(self.BtView2)
end
function HandBookHeroAndEquipListPanel:OnSortingOrderChange()
orginLayer = self.sortingOrder
end
function HandBookHeroAndEquipListPanel:Clone(_t)
local res = {}
res = _t
return res
end
function HandBookHeroAndEquipListPanel:GetHeroData()
--得到所有的对应星级的英雄
local tenHeroList = {}
local sexHeroList = {}
local fiveHeroList = {}
local fourHeroList = {}
local threeHeroList = {}
local twoHeroList = {}
local oneHeroList = {}
for id, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.HeroConfig)) do
if (not v.Hide or v.Hide == 0) and HeroManager.InVersion(id) then
if v.Natural == 7 and (proId == 0 or v.PropertyName == proId) then
table.insert(tenHeroList,v)
elseif v.Natural == 6 and (proId == 0 or v.PropertyName == proId) then
table.insert(sexHeroList,v)
-- if v.MaxRank==14 then
-- table.insert(tenHeroList,v)
-- end
elseif v.Natural == 5 and (proId == 0 or v.PropertyName == proId) then
table.insert(fiveHeroList,v)
elseif v.Natural == 4 and (proId == 0 or v.PropertyName == proId) then
table.insert(fourHeroList,v)
elseif v.Natural == 3 and (proId == 0 or v.PropertyName == proId) then
table.insert(threeHeroList,v)
elseif v.Natural == 2 and (proId == 0 or v.PropertyName == proId) then
table.insert(twoHeroList,v)
elseif v.Natural == 1 and (proId == 0 or v.PropertyName == proId) then
table.insert(oneHeroList,v)
end
end
end
self:SortHeroNatural(tenHeroList)
self:SortHeroNatural(sexHeroList)
self:SortHeroNatural(fiveHeroList)
self:SortHeroNatural(fourHeroList)
self:SortHeroNatural(threeHeroList)
self:SortHeroNatural(twoHeroList)
self:SortHeroNatural(oneHeroList)
--设置图鉴的循环列表
local herodatas={}
herodatas[7]=tenHeroList
herodatas[6]=sexHeroList
herodatas[5]=fiveHeroList
herodatas[4]=fourHeroList
herodatas[3]=threeHeroList
herodatas[2]=twoHeroList
herodatas[1]=oneHeroList
PlayerManager.heroHandBookListData = herodatas
local heroScrolldatas = {}
self:HeroHaveNum()
local temp = 0
for k,v in pairs(herodatas) do
temp = 0
if v and #v > 0 then
--LogGreen("star:"..k.." heroCount:"..#v.." HeroHaveNum:"..heroNumList[k])
local str = ""--Language[11092]..heroNumList[k].."/"..#v
table.insert(heroScrolldatas,{type = 2,natural=k, star = k,index = 0,content = str })
for i = 1,#v do
if i%5 == 0 or i == #v then
local tempData = {}
for n = temp + 1, i do
table.insert(tempData,v[n])
--LogBlue("v[n].id:"..v[n].Id)
end
local showStar=v[i].MaxRank
-- 海洋说不需要了,改掉。 ---xiejun 2024 1/8 1330
-- if k==6 then
-- showStar=11
-- end
if i%5 ==0 then
table.insert(heroScrolldatas,{type = 1,natural=k, star = showStar,index = math.floor(i/5), content = tempData})
else
table.insert(heroScrolldatas,{type = 1,natural=k, star = showStar,index = math.floor(i/5) + 1, content = tempData})
end
temp = i
end
end
end
end
table.sort(heroScrolldatas,function(a,b)
if a.natural == b.natural then
if a.type == b.type then
return a.index < b.index
else
return a.type > b.type
end
else
return a.natural > b.natural
end
end)
-- for k,v in ipairs(heroScrolldatas) do
-- if v.content and v.type ==1 then
-- LogPink("star:"..v.star.." heroCount:"..#v.content.." index:"..v.index)
-- for n,m in ipairs(v.content) do
-- LogYellow("m.Id:"..m.Id.."m.Star:"..m.Star)
-- end
-- end
-- end
return heroScrolldatas
end
function HandBookHeroAndEquipListPanel:HeroHaveNum()
local curelevenStarActiveNum = 0
local curtenStarActiveNum = 0
local cursexStarActiveNum = 0
local curfiveStarActiveNum = 0
local curfourStarActiveNum = 0
local curthreeStarActiveNum = 0
local curtwoStarActiveNum = 0
local curoneStarActiveNum = 0
--计算玩家拥有的英雄中对应星级的英雄的数量
for i, v in pairs(PlayerManager.heroHandBook) do
local conFig = ConfigManager.GetConfigData(ConfigName.HeroConfig,i)
if conFig then
if PlayerManager.GetHeroDataByStar(11,conFig.Id) and (proId == 0 or conFig.PropertyName == proId) then
curelevenStarActiveNum = curelevenStarActiveNum + 1
end
if PlayerManager.GetHeroDataByStar(10,conFig.Id) and (proId == 0 or conFig.PropertyName == proId) then
curtenStarActiveNum = curtenStarActiveNum + 1
end
if PlayerManager.GetHeroDataByStar(6,conFig.Id) and (proId == 0 or conFig.PropertyName == proId) then
cursexStarActiveNum = cursexStarActiveNum + 1
end
if conFig.Star == 5 and (proId == 0 or conFig.PropertyName == proId) then
curfiveStarActiveNum = curfiveStarActiveNum + 1
elseif conFig.Star == 4 and (proId == 0 or conFig.PropertyName == proId) then
curfourStarActiveNum = curfourStarActiveNum + 1
elseif conFig.Star == 3 and (proId == 0 or conFig.PropertyName == proId) then
curthreeStarActiveNum = curthreeStarActiveNum + 1
elseif conFig.Star == 2 and (proId == 0 or conFig.PropertyName == proId) then
curtwoStarActiveNum = curtwoStarActiveNum + 1
elseif conFig.Star == 1 and (proId == 0 or conFig.PropertyName == proId) then
curoneStarActiveNum = curoneStarActiveNum + 1
end
end
end
heroNumList[1] = curoneStarActiveNum
heroNumList[2] = curtwoStarActiveNum
heroNumList[3] = curthreeStarActiveNum
heroNumList[4] = curfourStarActiveNum
heroNumList[5] = curfiveStarActiveNum
heroNumList[6] = cursexStarActiveNum
heroNumList[10] = curtenStarActiveNum
heroNumList[11] = curelevenStarActiveNum
end
--英雄展示
function HandBookHeroAndEquipListPanel:OnShowHeroFun()
self:SetSelectBtn()
local data = self:GetHeroData()
self.SystemScrollView:SetData(data, function(dataIndex, go)
--LogYellow("dataIndex:"..dataIndex)
self:showData(go,data[dataIndex])
end,1)
orginLayer2 = self.sortingOrder
orginLayer = self.sortingOrder
end
--装备展示
function HandBookHeroAndEquipListPanel:OnShowEquipFun()
local chuanShuoEquipList = {}
local shiShiEquipList = {}
local youXiuEquipList = {}
local jingLiangEquipList = {}
for id, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.EquipConfig)) do
if v.IfShow == 1 then
if v.Quality == 5 then
table.insert(chuanShuoEquipList,v)
elseif v.Quality == 4 then
table.insert(shiShiEquipList,v)
elseif v.Quality == 3 then
table.insert(youXiuEquipList,v)
elseif v.Quality == 2 then
table.insert(jingLiangEquipList,v)
end
end
end
local curchaunShuoActiveNum = 0
local curshiShiActiveNum = 0
local curyouXiuActiveNum = 0
local curjingLiangActiveNum = 0
for i, v in pairs(PlayerManager.equipHandBook) do
local conFig = ConfigManager.GetConfigData(ConfigName.EquipConfig,v)
if conFig and conFig.IfShow == 1 then
if conFig.Quality == 5 then
curchaunShuoActiveNum = curchaunShuoActiveNum + 1
elseif conFig.Quality == 4 then
curshiShiActiveNum = curshiShiActiveNum + 1
elseif conFig.Quality == 3 then
curyouXiuActiveNum = curyouXiuActiveNum + 1
elseif conFig.Quality == 2 then
curjingLiangActiveNum = curjingLiangActiveNum + 1
end
end
end
--传说装备
if chuanShuoEquipList and #chuanShuoEquipList > 0 then
self.chuanShuoNum.text = Language[11092]..curchaunShuoActiveNum.."/"..#chuanShuoEquipList
for i = 1, math.max(#chuanShuoEquipList, #chuanShuoGridList) do
local go = chuanShuoGridList[i]
if not go or (go and not go.gameObject) then
go = self:GeneralNewGoPre(2,i,self.chuanShuoGrid)
chuanShuoGridList[i] = go
end
go.gameObject:SetActive(false)
end
for i = 1, #chuanShuoEquipList do
chuanShuoGridList[i]:SetActive(true)
self:OnShowSingleEquipData(chuanShuoGridList[i],chuanShuoEquipList[i])
end
Util.GetGameObject(self.equipScroll.transform, "chuanShuoNum"):SetActive(true)
self.chuanShuoGrid:SetActive(true)
else
Util.GetGameObject(self.equipScroll.transform, "chuanShuoNum"):SetActive(false)
self.chuanShuoGrid:SetActive(false)
end
--史诗装备
if shiShiEquipList and #shiShiEquipList > 0 then
self.shiShiNum.text = Language[11092]..curshiShiActiveNum.."/"..#shiShiEquipList
for i = 1, math.max(#shiShiEquipList, #shiShiGridList) do
local go = shiShiGridList[i]
if not go or (go and not go.gameObject) then
go = self:GeneralNewGoPre(2,i,self.shiShiGrid)
shiShiGridList[i] = go
end
go.gameObject:SetActive(false)
end
for i = 1, #shiShiEquipList do
shiShiGridList[i]:SetActive(true)
self:OnShowSingleEquipData(shiShiGridList[i],shiShiEquipList[i])
end
Util.GetGameObject(self.equipScroll.transform, "shiShiNum"):SetActive(true)
self.shiShiGrid:SetActive(true)
else
Util.GetGameObject(self.equipScroll.transform, "shiShiNum"):SetActive(false)
self.shiShiGrid:SetActive(false)
end
--优秀装备
if youXiuEquipList and #youXiuEquipList > 0 then
self.youXiuNum.text = Language[11092]..curyouXiuActiveNum.."/"..#youXiuEquipList
for i = 1, math.max(#youXiuEquipList, #youXiuGridList) do
local go = youXiuGridList[i]
if not go or (go and not go.gameObject) then
go = self:GeneralNewGoPre(2,i,self.youXiuGrid)
youXiuGridList[i] = go
end
go.gameObject:SetActive(false)
end
for i = 1, #youXiuEquipList do
youXiuGridList[i]:SetActive(true)
self:OnShowSingleEquipData(youXiuGridList[i],youXiuEquipList[i])
end
Util.GetGameObject(self.equipScroll.transform, "youXiuNum"):SetActive(true)
self.youXiuGrid:SetActive(true)
else
Util.GetGameObject(self.equipScroll.transform, "youXiuNum"):SetActive(false)
self.youXiuGrid:SetActive(false)
end
--精良装备
if jingLiangEquipList and #jingLiangEquipList > 0 then
self.jingLiangNum.text = Language[11092]..curjingLiangActiveNum.."/"..#jingLiangEquipList
for i = 1, math.max(#jingLiangEquipList, #jingLiangGridList) do
local go = jingLiangGridList[i]
if not go or (go and not go.gameObject) then
go = self:GeneralNewGoPre(2,i,self.jingLiangGrid)
jingLiangGridList[i] = go
end
go.gameObject:SetActive(false)
end
for i = 1, #jingLiangEquipList do
jingLiangGridList[i]:SetActive(true)
self:OnShowSingleEquipData(jingLiangGridList[i],jingLiangEquipList[i])
end
Util.GetGameObject(self.equipScroll.transform, "jingLiangNum"):SetActive(true)
self.jingLiangGrid:SetActive(true)
else
Util.GetGameObject(self.equipScroll.transform, "jingLiangNum"):SetActive(false)
self.jingLiangGrid:SetActive(false)
end
end
--法宝展示(脚本名该换了)
function HandBookHeroAndEquipListPanel:OnShowTalismanFun()
self:SetSelectBtn()
local orangeTalismanList={}
local violetTalismanList={}
local blueTalismanList={}
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.ItemConfig)) do
if v.ItemType==14 then
if v.Quantity==5 then
table.insert(orangeTalismanList,v)
elseif v.Quantity==4 then
table.insert(violetTalismanList,v)
elseif v.Quantity==3 then
table.insert(blueTalismanList,v)
end
end
end
--搜集进度
local curOrangeActiveNum=0
local curVioletActiveNum=0
local curBlueActiveNum=0
for i, v in pairs(PlayerManager.talismanHandBook) do
local conFig={}
conFig = ConfigManager.GetConfigData(ConfigName.ItemConfig,v)
if conFig then
if conFig.Quantity == 5 then
curOrangeActiveNum = curOrangeActiveNum + 1
elseif conFig.Quantity == 4 then
curVioletActiveNum = curVioletActiveNum + 1
elseif conFig.Quantity == 3 then
curBlueActiveNum = curBlueActiveNum + 1
end
end
end
--橙色法宝
if orangeTalismanList and #orangeTalismanList>0 then
self.orangeNum.text=Language[11092]..curOrangeActiveNum.."/"..#orangeTalismanList
for i = 1, math.max(#orangeTalismanList,#orangeGridList) do
local go=orangeGridList[i]
if not go or (go and not go.gameObject) then
go=self:GeneralNewGoPre(3,i,self.orangeGrid)
orangeGridList[i]=go
end
go.gameObject:SetActive(false)
end
for i = 1, #orangeTalismanList do
orangeGridList[i]:SetActive(true)
self:OnShowSingleTalismanData(orangeGridList[i],orangeTalismanList[i])
end
Util.GetGameObject(self.talismanScroll.transform,"Grid/OrangeNum"):SetActive(true)
self.orangeGrid:SetActive(true)
else
Util.GetGameObject(self.talismanScroll.transform,"Grid/OrangeNum"):SetActive(false)
self.orangeGrid:SetActive(false)
end
--紫色法宝
if violetTalismanList and #violetTalismanList>0 then
self.violetNum.text=Language[11092]..curVioletActiveNum.."/"..#violetTalismanList
for i = 1, math.max(#violetTalismanList,#violetGridList) do
local go=violetGridList[i]
if not go or (go and not go.gameObject) then
go=self:GeneralNewGoPre(3,i,self.violetGrid)
violetGridList[i]=go
end
go.gameObject:SetActive(false)
end
for i = 1, #violetTalismanList do
violetGridList[i]:SetActive(true)
self:OnShowSingleTalismanData(violetGridList[i],violetTalismanList[i])
end
Util.GetGameObject(self.talismanScroll.transform,"Grid/VioletNum"):SetActive(true)
self.violetGrid:SetActive(true)
else
Util.GetGameObject(self.talismanScroll.transform,"Grid/VioletNum"):SetActive(false)
self.violetGrid:SetActive(false)
end
--蓝色法宝
if blueTalismanList and #blueTalismanList>0 then
self.blueNum.text=Language[11092]..curBlueActiveNum.."/"..#blueTalismanList
for i = 1, math.max(#blueTalismanList,#blueGridList) do
local go=blueGridList[i]
if not go or (go and not go.gameObject) then
go=self:GeneralNewGoPre(3,i,self.blueGrid)
blueGridList[i]=go
end
go.gameObject:SetActive(false)
end
for i = 1, #blueTalismanList do
blueGridList[i]:SetActive(true)
self:OnShowSingleTalismanData(blueGridList[i],blueTalismanList[i])
end
Util.GetGameObject(self.talismanScroll.transform,"Grid/BlueNum"):SetActive(true)
self.blueGrid:SetActive(true)
else
Util.GetGameObject(self.talismanScroll.transform,"Grid/BlueNum"):SetActive(false)
self.blueGrid:SetActive(false)
end
end
--生成不同类型图鉴预制的通用方法
function HandBookHeroAndEquipListPanel:GeneralNewGoPre(_type,_index,_grid)
local go
if _type == 1 then
go=newObject(self.card)
go.transform:SetParent(_grid.transform)
go.transform.localScale = Vector3.one
go.transform.localPosition=Vector3.zero;
go.gameObject.name = "card (".._index..")"
elseif _type == 2 then
go=newObject(self.equip)
go.transform:SetParent(_grid.transform)
go.transform.localScale = Vector3.one
go.transform.localPosition=Vector3.zero;
go.gameObject.name = "equip (".._index..")"
elseif _type==3 then
go=newObject(self.talismanPre)
go.transform:SetParent(_grid.transform)
go.transform.localScale=Vector3.one
go.transform.localPosition=Vector3.zero
go.gameObject.name="Talisman (".._index..")"
end
return go
end
function HandBookHeroAndEquipListPanel:showData(go,data)
local star = Util.GetGameObject(go.transform, "star")
star.gameObject:SetActive(false)
local item = Util.GetGameObject(go.transform, "singleItem")
item.gameObject:SetActive(false)
local image=Util.GetGameObject(go.transform, "Image"):GetComponent("Image")
image.gameObject:SetActive(false)
if data.type == 2 then
star.gameObject:SetActive(false)
image.gameObject:SetActive(true)
image.sprite=self.spLoader:LoadSprite(GetHeroHandBookNaturalImg(data.natural))
image:SetNativeSize()
SetHeroStars(self.spLoader, star,data.star,1,Vector2.New(71,71),-14,Vector2(0.5,0.5))
Util.GetGameObject(go.transform, "star/Text"):GetComponent("Text").text = data.content
else
item.gameObject:SetActive(true)
for i = 1,5 do
local _go = Util.GetGameObject(item, "card"..i)
if i <= #data.content then
self:OnShowSingleHeroData(_go,data.content[i],data.natural,data.star)
_go.gameObject:SetActive(true)
else
_go.gameObject:SetActive(false)
end
end
end
end
--设置猎妖师数据
function HandBookHeroAndEquipListPanel:OnShowSingleHeroData(...)
local param = {...}
local heroData = param[2]
local _go=param[1]
local star=heroData.MaxRank
local lv = 1
local natural=0
if(param[3]) then
natural=param[3]
end
if (param[4]) then
star=param[4]
end
local rankUpConfig=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.HeroRankupConfig,"Type",2,"OpenStar",star)
if rankUpConfig then
lv=rankUpConfig.OpenLevel
else
-- rankUpConfig=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.HeroRankupConfig,"Type",1,"OpenStar",star)
-- if rankUpConfig then
-- lv=rankUpConfig.OpenLevel
-- else
-- lv=1
-- end
if star==1 then
lv=40
elseif star==2 then
lv=50
elseif star==3 then
lv=60
elseif star==4 then
lv=80
else
lv=1
end
end
heroData.curLv=lv
Util.GetGameObject(_go.transform, "card/choosed").gameObject:SetActive(false)
Util.GetGameObject(_go.transform, "card/flyImg").gameObject:SetActive(false)
Util.GetGameObject(_go.transform, "card/redAndLock").gameObject:SetActive(false)
SetHeroBg(self.spLoader, Util.GetGameObject(_go.transform, "card"), Util.GetGameObject(_go.transform, "card/bg"),star,heroData.Quality,orginLayer+1)
Util.GetGameObject(_go.transform, "card/lv/Text"):GetComponent("Text").text = lv
Util.GetGameObject(_go.transform, "card/name"):GetComponent("Text").text = GetLanguageStrById(heroData.ReadingName)
Util.GetGameObject(_go.transform, "card/icon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetResourcePath(heroData.ShowLive))
--SetHEeroLiveToward(Util.GetGameObject(_go.transform, "card/icon"),heroData.Toward)
Util.GetGameObject(_go.transform, "card/pro/Image"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(heroData.PropertyName))
Util.GetGameObject(_go.transform, "card/heroStage"):SetActive(false)
Util.GetGameObject(_go.transform, "card/core"):SetActive(heroData.Main==1)
local starGrid = Util.GetGameObject(_go.transform, "star")
local aaa=star
if aaa==11 then
aaa=16
end
--SetHeroStars(self.spLoader, starGrid, aaa,1,nil,-15,nil,Vector3.New(0,0,-15))
Util.SetParticleSortLayer(starGrid,orginLayer+1)
Util.AddOnceClick(Util.GetGameObject(_go.transform, "card"), function()
UIManager.OpenPanel(UIName.HandBookHeroInfoPanel,heroData,proId,natural,lv,star)
end)
if PlayerManager.GetHeroDataByStar(0,heroData.Id) then
Util.SetGray(Util.GetGameObject(_go.transform, "card/icon"), false)
Util.SetGray(Util.GetGameObject(_go.transform, "card/pro/Image"), false)
Util.SetGray(Util.GetGameObject(_go.transform, "card/core"), false)
Util.GetGameObject(_go.transform, "card"):GetComponent("Image").material = nil
else
Util.SetGray(Util.GetGameObject(_go.transform, "card/icon"), true)
Util.SetGray(Util.GetGameObject(_go.transform, "card/pro/Image"), true)
Util.SetGray(Util.GetGameObject(_go.transform, "card/core"), true)
-- Util.GetGameObject(_go.transform, "card/core"):SetActive(heroData.heroConfig.Main==1)
Util.GetGameObject(_go.transform, "card"):GetComponent("Image").material = Util.GetGameObject(_go.transform, "card/icon"):GetComponent("Image").material
end
end
--设置装备数据
function HandBookHeroAndEquipListPanel:OnShowSingleEquipData(_go,_equipData)
local equipData = _equipData
local itemConFigData = ConfigManager.GetConfigData(ConfigName.ItemConfig,equipData.Id)
Util.GetGameObject(_go.transform, "GameObject/item/resetLv"):SetActive(false)
Util.GetGameObject(_go.transform, "GameObject/item/frame"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(equipData.Quality))
if itemConFigData then
Util.GetGameObject(_go.transform, "GameObject/item/icon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetResourcePath(itemConFigData.ResourceID))
end
Util.GetGameObject(_go.transform, "GameObject/name"):GetComponent("Text").text = equipData.Name
Util.AddOnceClick(Util.GetGameObject(_go.transform, "GameObject/item/frame"), function()
-- UIManager.OpenPanel(UIName.HandBookEquipInfoPanel,equipData.Id)
local _itemData = {}
_itemData.id = equipData.Id
-- UIManager.OpenPanel(UIName.RoleEquipChangePopup, nil, 4, nil, _itemData, nil, nil)
UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup2,self, _itemData,0)
end)
if PlayerManager.equipHandBook[equipData.Id] == nil then
Util.SetGray(_go, true)
else
Util.SetGray(_go, false)
end
end
--设置法宝数据
function HandBookHeroAndEquipListPanel:OnShowSingleTalismanData(_go,_talismanData)
local talismanData = _talismanData
local itemConFigData= ConfigManager.GetConfigData(ConfigName.ItemConfig,talismanData.Id)
--设置星级
local starGrid=Util.GetGameObject(_go.transform,"GameObject/item/star")
SetHeroStars(self.spLoader, starGrid,talismanData.Quantity)
Util.GetGameObject(_go.transform,"GameObject/item/resetLv"):SetActive(false)
Util.GetGameObject(_go.transform, "GameObject/item/frame"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetQuantityImageByquality(talismanData.Quantity))
if itemConFigData then
Util.GetGameObject(_go.transform, "GameObject/item/icon"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetResourcePath(itemConFigData.ResourceID))
end
Util.GetGameObject(_go.transform, "GameObject/name"):GetComponent("Text").text = talismanData.Name
Util.AddOnceClick(Util.GetGameObject(_go.transform, "GameObject/item/frame"), function()
UIManager.OpenPanel(UIName.HandBookTalismanInfoPanel,talismanData.Id)
--Log("打开详细信息")
end)
if PlayerManager.talismanHandBook[talismanData.Id] == nil then
Util.SetGray(_go, true)
else
Util.SetGray(_go, false)
end
end
--设置选中按钮
function HandBookHeroAndEquipListPanel:SetSelectBtn()
PlayerManager.headBookListTag = proId
-- self.selectBtn:SetActive(proId ~= ProIdConst.All)
self.selectBtn.transform:SetParent(tabs[proId].transform)
self.selectBtn.transform.localPosition = Vector3.zero
Util.GetGameObject( self.selectBtn.transform, "Text"):GetComponent("Text").text=Util.GetGameObject( tabs[proId].transform, "Text"):GetComponent("Text").text
end
function HandBookHeroAndEquipListPanel:SortHeroNatural(heroList)
table.sort(heroList, function(a, b)
if a.Natural == b.Natural then
return a.Sort < b.Sort
else
return a.Natural > b.Natural
end
end)
end
return HandBookHeroAndEquipListPanel