miduo_client/Assets/ManagedResources/~Lua/Modules/RoleInfo/TalismanUpStarSuccessPanel.lua

155 lines
5.9 KiB
Lua

----- 进阶成功面板 -----
require("Base/BasePanel")
TalismanUpStarSuccessPanel = Inherit(BasePanel)
local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
local propertyConfig=ConfigManager.GetConfig(ConfigName.PropertyConfig)
local passiveSkillConfig=ConfigManager.GetConfig(ConfigName.PassiveSkillConfig)
local curHeroData={} --当前英雄数据
local curTalismanData = {}--当前法宝数据
local maxLv=0 --法宝最大进阶等级
local curLv=0 --当前法宝等级
local isMaxStar = false --默认不是最大进阶等级
local callBack1
local callBack2
--属性容器
local proList = {}
local orginLayer = 20
function TalismanUpStarSuccessPanel:InitComponent()
self.spLoader = SpriteLoader.New()
orginLayer = 20
self.BtnBack = Util.GetGameObject(self.transform, "backBtn")
self.mask = Util.GetGameObject(self.transform, "mask")
self.icon = Util.GetGameObject(self.transform, "icon"):GetComponent("Image")
self.heroName = Util.GetGameObject(self.transform, "heroInfo/nameAndPossLayout/heroName"):GetComponent("Text")
self.UI_Effect_chouka=Util.GetGameObject(self.transform, "UI_Effect_chouka")
--基础属性
self.basics=Util.GetGameObject(self.gameObject,"Info/Panel/Basics")
self.proRoot=Util.GetGameObject(self.basics,"Root")
self.proPre=Util.GetGameObject(self.basics,"Root/Pre")
--特性提升
self.speciality=Util.GetGameObject(self.gameObject,"Info/Panel/Speciality")
self.specialityText=Util.GetGameObject(self.speciality,"Scroll/Text"):GetComponent("Text")
end
function TalismanUpStarSuccessPanel:BindEvent()
Util.AddClick(self.BtnBack, function()
--未达顶级 返回进阶
if callBack1 and not isMaxStar then
callBack1()
end
--已达顶级 返回法宝详情
if callBack2 and isMaxStar then
callBack2()
end
self:ClosePanel()
end)
end
function TalismanUpStarSuccessPanel:AddListener()
end
function TalismanUpStarSuccessPanel:RemoveListener()
end
function TalismanUpStarSuccessPanel:OnOpen(...)
local args={...}
curHeroData=args[1]
callBack1=args[2]
callBack2=args[3]
end
function TalismanUpStarSuccessPanel:OnShow()
self:ShowProAndSkillData()
end
function TalismanUpStarSuccessPanel:OnSortingOrderChange()
Util.AddParticleSortLayer(self.UI_Effect_chouka, self.sortingOrder - orginLayer)
self.mask:GetComponent("Canvas").overrideSorting = true
self.mask:GetComponent("Canvas").sortingOrder = self.sortingOrder - 30
orginLayer = self.sortingOrder
end
function TalismanUpStarSuccessPanel:ShowProAndSkillData()
self.speciality:SetActive(false)
local data={} --英雄表下法宝属性
data=ConfigManager.GetConfigData(ConfigName.HeroConfig,curHeroData.id).EquipTalismana--当前法宝数据 data[1]星级 data[2]法宝ID
--获取法宝最大等级
TalismanManager.GetStartAndEndStar()
maxLv=TalismanManager.AllTalismanEndStar[data[2]]
--获取当前法宝等级(-1的作用是当打开进阶成功时 英雄已经升级了 应该-1与进阶前保持一致)
curLv=HeroManager.GetTalismanLv(curHeroData.dynamicId)-1
if curLv<1 then curLv=1 end
--获取当前等级与下一等级表数据
local nextLv=0
if curLv<= maxLv then nextLv=curLv+1 end
isMaxStar = (curLv+1) >= maxLv
curTalismanData= ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana,"TalismanaId",data[2],"Level",curLv)
local nextTalismanConFig={}
if not isMaxStar then
nextTalismanConFig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana, "TalismanaId", data[2], "Level", nextLv)
end
--法宝图面 名称 等级
self.icon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig[data[2]].ResourceID))
self.heroName.text = string.format( "%s +%s",GetLanguageStrById(itemConfig[data[2]].Name),curHeroData.talismanList)
--显示基础属性
for i=1,#curTalismanData.Property do
local item= proList[i]
if not item then
item= newObjToParent(self.proPre,self.proRoot)
item.name="ProPre"..i
proList[i]=item
end
local curName=Util.GetGameObject(proList[i],"CurName"):GetComponent("Text")
local curValue=Util.GetGameObject(proList[i],"CurValue"):GetComponent("Text")
local nextName=Util.GetGameObject(proList[i],"NextName"):GetComponent("Text")
local nextValue=Util.GetGameObject(proList[i],"NextValue"):GetComponent("Text")
curName.text=GetLanguageStrById(propertyConfig[curTalismanData.Property[i][1]].Info)
curValue.text=curTalismanData.Property[i][2]
if not isMaxStar then
nextName.text=""--GetLanguageStrById(propertyConfig[nextTalismanConFig.Property[i][1]].Info)
nextValue.text=nextTalismanConFig.Property[i][2]
end
end
--显示法宝天赋
--筛选出符合要求的数据
local dowerAllData={}--当前法宝全部天赋数据(天赋可能为空)
dowerAllData= ConfigManager.GetAllConfigsDataByKey(ConfigName.EquipTalismana,"TalismanaId",data[2])
local dowerData={}--当前法宝全部技能数据(天赋不为空)
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.OpenSkillRules[1]<b.OpenSkillRules[1] end)
--赋值到表现
local strTable={}
for n=1,#dowerData do
if (curLv+1)==dowerData[n].Level then
self.speciality:SetActive(true)
self.specialityText.text=GetLanguageStrById(passiveSkillConfig[dowerData[n].OpenSkillRules[1]].Desc)
self.specialityText.transform.localPosition = Vector3.New(0, -100, 0)
return
end
end
end
function TalismanUpStarSuccessPanel:OnClose()
callBack = nil
self.speciality:SetActive(false)
end
function TalismanUpStarSuccessPanel:OnDestroy()
self.spLoader:Destroy()
proList={}
end
return TalismanUpStarSuccessPanel