235 lines
9.6 KiB
Lua
235 lines
9.6 KiB
Lua
|
require("Base/BasePanel")
|
|||
|
TailsmanSoulMainPanel = Inherit(BasePanel)
|
|||
|
local propertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig)
|
|||
|
local sortOrder = 0
|
|||
|
local curData = {}
|
|||
|
function TailsmanSoulMainPanel:InitComponent()
|
|||
|
self.spLoader = SpriteLoader.New()
|
|||
|
self.help = Util.GetGameObject(self.transform, "help")
|
|||
|
self.helpPos = self.help:GetComponent("RectTransform").localPosition
|
|||
|
self.btnBack = Util.GetGameObject(self.transform, "btnBack")
|
|||
|
|
|||
|
self.tailsmainSoul = Util.GetGameObject(self.gameObject, "tailsmainSoul")
|
|||
|
self.tailsmainSoulDi = Util.GetGameObject(self.tailsmainSoul, "di"):GetComponent("Image")
|
|||
|
self.icon = Util.GetGameObject(self.tailsmainSoul, "icon"):GetComponent("Image")
|
|||
|
|
|||
|
self.starGray = Util.GetGameObject(self.transform,"proMainLayout/starGrid/starGray")
|
|||
|
self.starLight = Util.GetGameObject(self.transform,"proMainLayout/starGrid/starLight")
|
|||
|
self.upLvBtn = Util.GetGameObject(self.transform, "proMainLayout/upLvBtn")
|
|||
|
self.upLvBtnText = Util.GetGameObject(self.upLvBtn, "Text"):GetComponent("Text")
|
|||
|
self.costIcon = Util.GetGameObject(self.transform, "proMainLayout/layout/icon"):GetComponent("Image")
|
|||
|
self.costNum = Util.GetGameObject(self.transform, "proMainLayout/layout/num"):GetComponent("Text")
|
|||
|
self.pro = Util.GetGameObject(self.transform, "proMainLayout/pro")
|
|||
|
self.proGrid = Util.GetGameObject(self.transform, "proMainLayout/proScrollRect/proScroll")
|
|||
|
self.proList = {}
|
|||
|
|
|||
|
self.select = Util.GetGameObject(self.transform, "select")
|
|||
|
self.tailsGrid = Util.GetGameObject(self.transform, "tailsScroll")
|
|||
|
self.tailsPre = Util.GetGameObject(self.transform, "tailsPre")
|
|||
|
self.tailsList = {}
|
|||
|
for i = 1, self.tailsGrid.transform.childCount do
|
|||
|
if not self.tailsList[i] then
|
|||
|
self.tailsList[i] = {}
|
|||
|
self.tailsList[i].go = self.tailsGrid.transform:GetChild(i-1)
|
|||
|
self.tailsList[i].card = Util.GetGameObject(self.tailsList[i].go,"card"):GetComponent("Image")
|
|||
|
self.tailsList[i].bg = Util.GetGameObject(self.tailsList[i].card.transform,"bg"):GetComponent("Image")
|
|||
|
self.tailsList[i].icon = Util.GetGameObject(self.tailsList[i].card.transform,"icon"):GetComponent("Image")
|
|||
|
self.tailsList[i].starGray = Util.GetGameObject(self.tailsList[i].card.transform,"starGrid/starGray")
|
|||
|
self.tailsList[i].starLight = Util.GetGameObject(self.tailsList[i].card.transform,"starGrid/starLight")
|
|||
|
self.tailsList[i].name = Util.GetGameObject(self.tailsList[i].card.transform,"nameDi/name"):GetComponent("Text")
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
self.skillPro = Util.GetGameObject(self.transform, "skillLayout/pro")
|
|||
|
self.skillGrid = Util.GetGameObject(self.transform, "skillLayout/proScrolllRect/proScroll")
|
|||
|
self.skillList = {}
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:BindEvent()
|
|||
|
Util.AddClick(self.btnBack, function()
|
|||
|
self:ClosePanel()
|
|||
|
end)
|
|||
|
Util.AddClick(self.help, function()
|
|||
|
UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.tailsmainSoul,self.helpPos.x, self.helpPos.y)
|
|||
|
end)
|
|||
|
|
|||
|
--逍遥游
|
|||
|
Util.AddClick(self.upLvBtn,function()
|
|||
|
|
|||
|
end)
|
|||
|
end
|
|||
|
|
|||
|
--添加事件监听(用于子类重写)
|
|||
|
function TailsmanSoulMainPanel:AddListener()
|
|||
|
|
|||
|
end
|
|||
|
|
|||
|
--移除事件监听(用于子类重写)
|
|||
|
function TailsmanSoulMainPanel:RemoveListener()
|
|||
|
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:OnSortingOrderChange()
|
|||
|
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:OnOpen(curCompId)
|
|||
|
self.curCompId = curCompId
|
|||
|
self.index = 1
|
|||
|
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:OnShow()
|
|||
|
self.trumpList,self.compMaxLv,self.complv,self.skillDataList = TailsManSoulManager.GetTailsmanSoulDataById(self.curCompId)
|
|||
|
self:SetTailsManList(self.trumpList,self.tailsGrid,self.tailsPre)
|
|||
|
self:ChangeTailsMan()
|
|||
|
local data1 = self:GetSkillDataList(self.skillDataList)
|
|||
|
self:SetProList(self.skillDataList,self.skillList,self.skillGrid,self.skillPro)
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:GetSkillDataList()
|
|||
|
for k,v in pairs(self.skillDataList) do
|
|||
|
if self.complv < k then
|
|||
|
v = string.format("<color=#FFCF9E>%s</color>",v)
|
|||
|
else
|
|||
|
v = string.format("<color=#00FF00>%s</color>",v)
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:ChangeTailsMan()
|
|||
|
self.data = self.trumpList[self.index]
|
|||
|
self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(self.data.config.Icon))
|
|||
|
self.tailsmainSoulDi.sprite = self.spLoader:LoadSprite(GetTailsmanDiImage[self.data.config.Quality])
|
|||
|
local data1 = self:GetProData()
|
|||
|
self:SetProList(data1,self.proList,self.proGrid,self.pro)
|
|||
|
self:SetSelect()
|
|||
|
self:SetCostItem()
|
|||
|
self:SetStar(self.starGray,self.data.config.Quality)
|
|||
|
self:SetStar(self.starLight,self.data.lv)
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:GetProData()
|
|||
|
local proData = {}
|
|||
|
local curData = ConfigManager.GetConfigDataByDoubleKey(ConfigName.TrumpLevelupPool,"PoolId",self.data.config.LvupPool,"Level",self.data.lv).LvupProps
|
|||
|
local nextProData = {}
|
|||
|
local tempdata = ConfigManager.GetConfigDataByDoubleKey(ConfigName.TrumpLevelupPool,"PoolId",self.data.config.LvupPool,"Level",self.data.lv + 1)
|
|||
|
local isMax = 0
|
|||
|
if not tempdata then
|
|||
|
isMax = 1
|
|||
|
else
|
|||
|
nextProData = self:SetProData(tempdata.LvupProps)
|
|||
|
end
|
|||
|
local str = ""
|
|||
|
for i = 1,#curData do
|
|||
|
str = string.format("<color=#FFCF9E>%s:%s</color>",propertyConfig[curData[i][1]].Info,curData[i][2])
|
|||
|
if nextProData[curData[i][1]] then
|
|||
|
str = str..string.format("<color=#00FF00>(+%s)</color>",nextProData[curData[i][1]])
|
|||
|
end
|
|||
|
table.insert(proData,str)
|
|||
|
end
|
|||
|
return proData
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:SetProData(proData)
|
|||
|
local proList = {}
|
|||
|
for i = 1,#proData do
|
|||
|
if not proList[proData[i][1]] then
|
|||
|
proList[proData[i][1]] = 0
|
|||
|
end
|
|||
|
proList[proData[i][1]] = proList[proData[i][1]] + proData[i][2]
|
|||
|
end
|
|||
|
return proList
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:SetProList(data,preList,grid,pre)
|
|||
|
for i = 1,math.max(#data,#preList) do
|
|||
|
if not data[i] then
|
|||
|
preList[i].go.gameObject:SetActive(false)
|
|||
|
else
|
|||
|
if not preList[i] then
|
|||
|
preList[i] = {}
|
|||
|
preList[i].go = newObjToParent(pre,grid)
|
|||
|
preList[i].goText = preList[i].go:GetComponent("Text")
|
|||
|
end
|
|||
|
preList[i].go.gameObject:SetActive(true)
|
|||
|
preList[i].goText.text = data[i]
|
|||
|
end
|
|||
|
end
|
|||
|
ForceRebuildLayout(grid.transform)
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:SetCostItem()
|
|||
|
local costId,num = TailsManSoulManager.GetTailsmanCost(self.data.id,self.data.lv)
|
|||
|
local curNum = BagManager.GetItemCountById(costId)
|
|||
|
local colo = curNum >= num and "#FF0000" or "#FFCF9E"
|
|||
|
if num and num > 0 then
|
|||
|
self.costIcon.gameObject:SetActive(true)
|
|||
|
self.costNum.text = string.format("<color=#%s>%s/%s</color>",colo,curNum,num)
|
|||
|
else
|
|||
|
self.costIcon.gameObject:SetActive(false)
|
|||
|
self.costNum.text = "已达最高等级"
|
|||
|
end
|
|||
|
if self.data.lv < 1 then
|
|||
|
self.upLvBtnText.text = "激活"
|
|||
|
else
|
|||
|
self.upLvBtnText.text = "强化"
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:SetSelect()
|
|||
|
self.select.transform:SetParent(self.tailsList[self.index].go)
|
|||
|
self.select.transform.localPosition = Vector3.zero
|
|||
|
self.select.transform.localScale = Vector3.one
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:SetTailsManList(data,grid,pre)
|
|||
|
for i = 1,math.max(#data,#self.tailsList) do
|
|||
|
if not data[i] then
|
|||
|
self.tailsList[i].go.gameObject:SetActive(false)
|
|||
|
else
|
|||
|
if not self.tailsList[i] then
|
|||
|
self.tailsList[i] = {}
|
|||
|
self.tailsList[i].go = newObjToParent(pre.transform,grid.transform)
|
|||
|
self.tailsList[i].card = Util.GetGameObject(self.tailsList[i].go,"card"):GetComponent("Image")
|
|||
|
self.tailsList[i].bg = Util.GetGameObject(self.tailsList[i].card.transform,"bg"):GetComponent("Image")
|
|||
|
self.tailsList[i].icon = Util.GetGameObject(self.tailsList[i].card.transform,"icon"):GetComponent("Image")
|
|||
|
self.tailsList[i].starGray = Util.GetGameObject(self.tailsList[i].card.transform,"starGrid/starGray")
|
|||
|
self.tailsList[i].starLight = Util.GetGameObject(self.tailsList[i].card.transform,"starGrid/starLight")
|
|||
|
self.tailsList[i].name = Util.GetGameObject(self.tailsList[i].card.transform,"nameDi/name"):GetComponent("Text")
|
|||
|
end
|
|||
|
self.tailsList[i].go.gameObject:SetActive(true)
|
|||
|
self.tailsList[i].card.sprite = self.spLoader:LoadSprite(GetTailsmanCardStarImage[data[i].config.Quality])
|
|||
|
self.tailsList[i].bg.sprite = self.spLoader:LoadSprite(GetTailsmanStarImage[data[i].config.Quality])
|
|||
|
self.tailsList[i].icon.sprite = self.spLoader:LoadSprite(GetResourcePath(data[i].config.Icon))
|
|||
|
self.tailsList[i].name.text = data[i].config.Name
|
|||
|
self:SetStar(self.tailsList[i].starGray,data[i].config.Quality)
|
|||
|
self:SetStar(self.tailsList[i].starLight,data[i].lv)
|
|||
|
Util.AddOnceClick(self.tailsList[i].card.gameObject,function()
|
|||
|
self.index = i
|
|||
|
self:ChangeTailsMan()
|
|||
|
end)
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:SetStar(grid,star)
|
|||
|
for i = 1, grid.transform.childCount do
|
|||
|
if star >= i then
|
|||
|
grid.transform:GetChild(i-1).gameObject:SetActive(true)
|
|||
|
else
|
|||
|
grid.transform:GetChild(i-1).gameObject:SetActive(false)
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function TailsmanSoulMainPanel:OnClose()
|
|||
|
|
|||
|
end
|
|||
|
|
|||
|
--界面销毁时调用(用于子类重写)
|
|||
|
function TailsmanSoulMainPanel:OnDestroy()
|
|||
|
self.proList = {}
|
|||
|
self.skillList = {}
|
|||
|
end
|
|||
|
return TailsmanSoulMainPanel
|