742 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			Lua
		
	
			
		
		
	
	
			742 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			Lua
		
	
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)  
 | 
						|
    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")
 | 
						|
    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/Btn" .. 0):SetActive(false)
 | 
						|
    for i = 1, 6 do
 | 
						|
        tabs[i] = Util.GetGameObject(self.transform, "Tabs/grid/Btn" .. i)
 | 
						|
    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 elevenHeroList = {}
 | 
						|
    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 then
 | 
						|
            --5星最高星级是10的要在十星里面显示出来
 | 
						|
            if v.Star == 5 and v.MaxRank >= 10 and (proId == 0 or v.PropertyName == proId) then
 | 
						|
                table.insert(tenHeroList,v)
 | 
						|
                if v.MaxRank >= 11 and ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.RoleAwake) then
 | 
						|
                    table.insert(elevenHeroList,v)
 | 
						|
                end
 | 
						|
            end
 | 
						|
            --所有的5星都要在六星里面显示出来
 | 
						|
            if v.Star == 5 and (proId == 0 or v.PropertyName == proId) then
 | 
						|
                table.insert(fiveHeroList,v)
 | 
						|
                table.insert(sexHeroList,v)
 | 
						|
            elseif v.Star >= 4 and (proId == 0 or v.PropertyName == proId)  then
 | 
						|
                table.insert(fourHeroList,v)
 | 
						|
            elseif v.Star >= 3 and (proId == 0 or v.PropertyName == proId)  then
 | 
						|
                table.insert(threeHeroList,v)
 | 
						|
            elseif v.Star >= 2 and (proId == 0 or v.PropertyName == proId)  then
 | 
						|
                table.insert(twoHeroList,v)
 | 
						|
            elseif v.Star >= 1 and (proId == 0 or v.PropertyName == proId)  then
 | 
						|
                table.insert(oneHeroList,v)
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
    self:SortHeroNatural(elevenHeroList)
 | 
						|
    self:SortHeroNatural(tenHeroList)
 | 
						|
    self:SortHeroNatural(sexHeroList)
 | 
						|
    self:SortHeroNatural(fiveHeroList)
 | 
						|
    self:SortHeroNatural(fourHeroList)
 | 
						|
    self:SortHeroNatural(threeHeroList)
 | 
						|
    self:SortHeroNatural(twoHeroList)
 | 
						|
    self:SortHeroNatural(oneHeroList)
 | 
						|
    --设置图鉴的循环列表
 | 
						|
    local herodatas={}
 | 
						|
    herodatas[11]=elevenHeroList
 | 
						|
    herodatas[10]=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,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
 | 
						|
                    if i%5 ==0 then
 | 
						|
                        table.insert(heroScrolldatas,{type = 1,star = k,index = math.floor(i/5), content = tempData})
 | 
						|
                    else
 | 
						|
                        table.insert(heroScrolldatas,{type = 1,star = k,index = math.floor(i/5) + 1, content = tempData})
 | 
						|
                    end
 | 
						|
                    temp = i 
 | 
						|
                end
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
    table.sort(heroScrolldatas,function(a,b) 
 | 
						|
        if a.star == b.star then
 | 
						|
            if a.type == b.type then
 | 
						|
                return a.index < b.index
 | 
						|
            else
 | 
						|
                return a.type > b.type
 | 
						|
            end
 | 
						|
        else
 | 
						|
            return a.star > b.star
 | 
						|
        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)
 | 
						|
    if data.type == 2 then
 | 
						|
        star.gameObject:SetActive(true)
 | 
						|
        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.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.Star
 | 
						|
    local lv = 1
 | 
						|
    if(param[3]) then
 | 
						|
        star=param[3]
 | 
						|
    end
 | 
						|
    if star == 6  then
 | 
						|
        lv = 145
 | 
						|
    elseif star == 10 then
 | 
						|
        lv = 255
 | 
						|
    elseif star == 11 then
 | 
						|
        lv = 330
 | 
						|
    else
 | 
						|
        lv = 1
 | 
						|
    end
 | 
						|
    Util.GetGameObject(_go.transform, "card/choosed").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)
 | 
						|
    
 | 
						|
    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.Painting))
 | 
						|
    Util.GetGameObject(_go.transform, "card/pro/Image"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(heroData.PropertyName))
 | 
						|
    Util.GetGameObject(_go.transform, "card/heroStage"):SetActive(false)
 | 
						|
    local starGrid = Util.GetGameObject(_go.transform, "star")
 | 
						|
    SetHeroStars(self.spLoader, starGrid, star,1,nil,-15,nil,Vector3.New(0,0,-15))
 | 
						|
    Util.AddOnceClick(Util.GetGameObject(_go.transform, "card"), function()
 | 
						|
        UIManager.OpenPanel(UIName.HandBookHeroInfoPanel,heroData,proId,star)
 | 
						|
    end)
 | 
						|
 | 
						|
    if PlayerManager.GetHeroDataByStar(star,heroData.Id) then
 | 
						|
        Util.SetGray(Util.GetGameObject(_go.transform, "card/icon"), false)
 | 
						|
        Util.SetGray(Util.GetGameObject(_go.transform, "card/pro/Image"), 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.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)
 | 
						|
    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
 | 
						|
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
 | 
						|
 |