196 lines
7.7 KiB
Lua
196 lines
7.7 KiB
Lua
----- 通用弹窗 -----
|
||
require("Base/BasePanel")
|
||
TalismanInfoPopup = Inherit(BasePanel)
|
||
local this = TalismanInfoPopup
|
||
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
||
local passiveSkillConfig = ConfigManager.GetConfig(ConfigName.PassiveSkillConfig)
|
||
local propertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig)
|
||
local artResourcesConfig = ConfigManager.GetConfig(ConfigName.ArtResourcesConfig)
|
||
|
||
local curHeroData --当前英雄数据
|
||
local curHeroConfig
|
||
local proList = {} --属性容器
|
||
local Type = 0
|
||
local TypeLv = 0
|
||
|
||
|
||
function TalismanInfoPopup:InitComponent()
|
||
this.spLoader = SpriteLoader.New()
|
||
this.backBtn = Util.GetGameObject(this.gameObject, "Panel/BackBtn")
|
||
this.backBtn2 = Util.GetGameObject(this.gameObject, "Mask")
|
||
this.title = Util.GetGameObject(this.gameObject, "Panel/Title"):GetComponent("Text")
|
||
|
||
--滚动条
|
||
this.content = Util.GetGameObject(this.gameObject, "Panel/ScrollView/Viewport/Content"):GetComponent("RectTransform")
|
||
|
||
this.core = Util.GetGameObject(this.gameObject, "Panel/ScrollView/Viewport/Content/Core")
|
||
this.coreText = Util.GetGameObject(this.core, "Info"):GetComponent("Text")
|
||
this.talismanIcon = Util.GetGameObject(this.core, "TalismanRoot/Icon"):GetComponent("Image")
|
||
this.power = Util.GetGameObject(this.core, "TalismanRoot/Power/Value"):GetComponent("Text")
|
||
|
||
this.basics = Util.GetGameObject(this.gameObject, "Panel/ScrollView/Viewport/Content/Basics")
|
||
--属性预设
|
||
this.proPre = Util.GetGameObject(this.basics, "Root/ProPre")
|
||
--属性列表父物体
|
||
this.proRoot = Util.GetGameObject(this.basics, "Root")
|
||
|
||
this.dower = Util.GetGameObject(this.gameObject, "Panel/ScrollView/Viewport/Content/Dower")
|
||
this.dowerText = Util.GetGameObject(this.dower, "Mask/Text"):GetComponent("Text")
|
||
end
|
||
|
||
function TalismanInfoPopup:BindEvent()
|
||
--返回按钮
|
||
Util.AddClick(this.backBtn, function()
|
||
self:ClosePanel()
|
||
end)
|
||
|
||
Util.AddClick(this.backBtn2, function()
|
||
self:ClosePanel()
|
||
end)
|
||
end
|
||
|
||
function TalismanInfoPopup:AddListener()
|
||
|
||
end
|
||
|
||
function TalismanInfoPopup:RemoveListener()
|
||
|
||
end
|
||
|
||
function TalismanInfoPopup:OnSortingOrderChange()
|
||
this.sortingOrder = self.sortingOrder
|
||
end
|
||
|
||
function TalismanInfoPopup:OnOpen(...)
|
||
local args = { ... }
|
||
curHeroData = args[1]
|
||
if args[2] then
|
||
Type = 1
|
||
curHeroConfig = args[1]
|
||
TypeLv = args[3]
|
||
end
|
||
end
|
||
|
||
function TalismanInfoPopup:OnShow()
|
||
this.Show()
|
||
end
|
||
|
||
function TalismanInfoPopup:OnClose()
|
||
end
|
||
|
||
function TalismanInfoPopup:OnDestroy()
|
||
this.spLoader:Destroy()
|
||
proList = {}
|
||
end
|
||
|
||
--显示
|
||
function this.Show()
|
||
this.content:DOAnchorPosY(0, 0)
|
||
local data = {}
|
||
local curLv --获取当前法宝等级
|
||
if Type == 1 then
|
||
data = ConfigManager.GetConfigData(ConfigName.HeroConfig, curHeroConfig.Id)
|
||
.EquipTalismana --当前法宝数据 data[1]星级 data[2]法宝ID
|
||
curLv = TypeLv
|
||
else
|
||
data = ConfigManager.GetConfigData(ConfigName.HeroConfig, curHeroData.id)
|
||
.EquipTalismana --当前法宝数据 data[1]星级 data[2]法宝ID
|
||
curLv = HeroManager.GetTalismanLv(curHeroData.dynamicId)
|
||
end
|
||
|
||
--当前法宝数据
|
||
local curTalismanConFig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana, "TalismanaId", data[2],
|
||
"Level", curLv)
|
||
|
||
--标题
|
||
this.title.text = string.format("", GetLanguageStrById(itemConfig[data[2]].Name), curLv)
|
||
this.talismanIcon.sprite = this.spLoader:LoadSprite(GetResourcePath(itemConfig[data[2]].ResourceID))
|
||
this.power.text = TalismanManager.CalculateWarForceBase(curTalismanConFig, 0) --法宝战力
|
||
|
||
--显示核心特性(30级解锁)
|
||
local skillLv = ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana, "TalismanaId", data[2], "Level", 30)
|
||
.OpenSkillRules[1]
|
||
if skillLv then
|
||
if curLv < 30 then
|
||
this.coreText.text = string.format(Language[12259], GetLanguageStrById(passiveSkillConfig[skillLv].Desc), 30)
|
||
else
|
||
this.coreText.text = string.format("%s【%s】", GetLanguageStrById(passiveSkillConfig[skillLv].Desc),
|
||
Language[10723])
|
||
end
|
||
end
|
||
--显示核心特性(50级解锁)
|
||
local skillLv_50 = ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana, "TalismanaId", data[2], "Level",
|
||
50).OpenSkillRules[1]
|
||
if skillLv_50 then
|
||
if curLv < 50 then
|
||
this.coreText.text = this.coreText.text ..
|
||
"\n" .. string.format(Language[12259], GetLanguageStrById(passiveSkillConfig[skillLv_50].Desc), 50)
|
||
else
|
||
this.coreText.text = this.coreText.text ..
|
||
"\n" .. string.format("%s【%s】", GetLanguageStrById(passiveSkillConfig[skillLv_50].Desc), Language[10723])
|
||
end
|
||
end
|
||
|
||
|
||
--显示基础属性
|
||
for i = 1, #curTalismanConFig.Property do
|
||
if not proList[i] then
|
||
proList[i] = newObjToParent(this.proPre, this.proRoot)
|
||
proList[i].name = "ProPre" .. i
|
||
end
|
||
local proName = proList[i]:GetComponent("Text")
|
||
local proImage = Util.GetGameObject(proList[i], "Image"):GetComponent("Image")
|
||
proImage.gameObject:SetActive(false)
|
||
local skillId = curTalismanConFig.Property[i][1]
|
||
local curValue = curTalismanConFig.Property[i][2]
|
||
--LogError("skillid===================="..skillId)
|
||
proName.text = " <size=32>" .. GetLanguageStrById(propertyConfig[skillId].Info) .. "+" .. curValue ..
|
||
"</size>"
|
||
--proImage.sprite=this.spLoader:LoadSprite(artResourcesConfig[propertyConfig[skillId].PropertyIcon].Name)
|
||
--Util.GetGameObject(proImage.gameObject,"Image"):GetComponent("Image"):SetNativeSize()
|
||
end
|
||
|
||
--显示法宝天赋
|
||
--筛选出符合要求的数据
|
||
local dowerAllData = {} --当前法宝全部天赋数据(天赋可能为空)
|
||
dowerAllData = ConfigManager.GetAllConfigsDataByKey(ConfigName.EquipTalismana, "TalismanaId", data[2])
|
||
local dowerData = {} --当前法宝全部技能数据(天赋不为空)
|
||
--LogError("#dowerAllData==================================="..#dowerAllData)
|
||
for i = 1, #dowerAllData do
|
||
if dowerAllData[i].OpenSkillRules then
|
||
table.insert(dowerData, dowerAllData[i])
|
||
end
|
||
end
|
||
table.sort(dowerData, function(a, b) return a.Level < b.Level end)
|
||
--赋值到表现
|
||
local strTable = {}
|
||
local str = ""
|
||
for n = 1, #dowerData do
|
||
if dowerData[n].Level <= 50 then
|
||
--LogError("dowerData[n].OpenSkillRules[1]======"..dowerData[n].OpenSkillRules[1])
|
||
if curLv >= dowerData[n].Level then
|
||
--LogError("dowerData[n].OpenSkillRules[1]]=="..dowerData[n].OpenSkillRules[1])
|
||
if passiveSkillConfig[dowerData[n].OpenSkillRules[1]] then
|
||
strTable[n] = string.format(Language[12260], dowerData[n].Level,
|
||
GetLanguageStrById(passiveSkillConfig[dowerData[n].OpenSkillRules[1]].Desc), "\n")
|
||
end
|
||
else
|
||
if passiveSkillConfig[dowerData[n].OpenSkillRules[1]] then
|
||
strTable[n] = string.format(Language[12261], dowerData[n].Level,
|
||
GetLanguageStrById(passiveSkillConfig[dowerData[n].OpenSkillRules[1]].Desc), "\n")
|
||
end
|
||
end
|
||
if dowerData[n].Level == 30 or dowerData[n].Level == 50 then
|
||
strTable[n] = string.gsub(strTable[n], "·", "")
|
||
strTable[n] = Language[12262] .. strTable[n]
|
||
str = str .. strTable[n]
|
||
end
|
||
end
|
||
end
|
||
--str=table.concat(strTable)--将表里字符串拼接
|
||
--看这下面 是全角空格哦~
|
||
this.dowerText.text = string.sub(string.gsub(str, " ", " "), 1, -2) --去除最后\n
|
||
end
|
||
|
||
return TalismanInfoPopup
|