169 lines
8.2 KiB
Lua
169 lines
8.2 KiB
Lua
require("Base/BasePanel")
|
|
DropGetSSRHeroShopPanel = Inherit(BasePanel)
|
|
local heroConfigData = ConfigManager.GetConfig(ConfigName.HeroConfig)
|
|
local passiveSkillConfig = ConfigManager.GetConfig(ConfigName.PassiveSkillConfig)
|
|
local passiveSkillLogicConfig = ConfigManager.GetConfig(ConfigName.PassiveSkillLogicConfig)
|
|
local heroRankupConfig = ConfigManager.GetConfig(ConfigName.HeroRankupConfig)
|
|
local heroBackData = {}
|
|
local callBack
|
|
local orginLayer
|
|
--初始化组件(用于子类重写)
|
|
function DropGetSSRHeroShopPanel:InitComponent()
|
|
self.spLoader = SpriteLoader.New()
|
|
orginLayer = 0
|
|
self.live2dRoot = Util.GetGameObject(self.gameObject, "live2dRoot")
|
|
self.bg = Util.GetGameObject(self.gameObject, "bg")
|
|
self.bg2 = Util.GetGameObject(self.gameObject, "bg2")
|
|
screenAdapte(self.bg2)
|
|
self.sureBtn = Util.GetGameObject(self.transform, "sureBtn")
|
|
self.UI_Effect_chouka = Util.GetGameObject(self.transform, "bg/UI_Effect_chouka")
|
|
|
|
|
|
self.sureBtn = Util.GetGameObject(self.transform, "sureBtn")
|
|
self.rolePanel = Util.GetGameObject(self.transform, "rolePanel")
|
|
self.heroName = Util.GetGameObject(self.transform, "rolePanel/Panel/name/heroName"):GetComponent("Text")
|
|
self.proImage = Util.GetGameObject(self.transform, "rolePanel/Panel/name/proImage/proImage/proImage"):GetComponent(
|
|
"Image")
|
|
self.starGrid = Util.GetGameObject(self.transform, "rolePanel/Panel/star")
|
|
self.posImage = Util.GetGameObject(self.transform, "rolePanel/Pos/PosImage"):GetComponent("Image")
|
|
self.posText = Util.GetGameObject(self.transform, "rolePanel/Pos/PosText"):GetComponent("Text")
|
|
self.info = Util.GetGameObject(self.gameObject, "rolePanel/Panel/Info")
|
|
self.infoTitleBg = Util.GetGameObject(self.info, "TitleBg")
|
|
self.infoTitle = Util.GetGameObject(self.infoTitleBg, "Title"):GetComponent("Text")
|
|
self.infoBody = Util.GetGameObject(self.info, "BodyBg/Viewport/Body"):GetComponent("Text")
|
|
self.infoBodyGo = Util.GetGameObject(self.info, "BodyBg")
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function DropGetSSRHeroShopPanel:BindEvent()
|
|
Util.AddClick(self.sureBtn, function()
|
|
self:ClosePanel()
|
|
end)
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function DropGetSSRHeroShopPanel:AddListener()
|
|
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function DropGetSSRHeroShopPanel:RemoveListener()
|
|
|
|
end
|
|
|
|
local heroStaticData
|
|
local testLiveGO
|
|
--界面打开时调用(用于子类重写)
|
|
function DropGetSSRHeroShopPanel:OnOpen(_heroBackData, func)
|
|
heroBackData = _heroBackData
|
|
callBack = func
|
|
end
|
|
|
|
function DropGetSSRHeroShopPanel:OnSortingOrderChange()
|
|
Util.AddParticleSortLayer(self.bg, self.sortingOrder - orginLayer)
|
|
self.live2dRoot:GetComponent("Canvas").sortingOrder = self.sortingOrder + 10
|
|
self.rolePanel:GetComponent("Canvas").sortingOrder = self.sortingOrder + 100
|
|
orginLayer = self.sortingOrder
|
|
end
|
|
|
|
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
|
|
function DropGetSSRHeroShopPanel:OnShow()
|
|
self.UI_Effect_chouka:SetActive(true)
|
|
SoundManager.PlaySound(SoundConfig.Sound_Recruit3)
|
|
heroStaticData = heroConfigData[heroBackData.heroId]
|
|
--TODO:动态加载立绘
|
|
testLiveGO = poolManager:LoadLive(GetResourcePath(heroStaticData.Live), self.live2dRoot.transform,
|
|
Vector3.one * heroStaticData.Scale, Vector3.New(heroStaticData.Position[1], heroStaticData.Position[2], 0))
|
|
local SkeletonGraphic = testLiveGO:GetComponent("SkeletonGraphic")
|
|
SetHEeroLiveToward(testLiveGO, heroStaticData.Toward, heroStaticData.Position)
|
|
local idle = function() SkeletonGraphic.AnimationState:SetAnimation(0, "idle", true) end
|
|
SkeletonGraphic.AnimationState.Complete = SkeletonGraphic.AnimationState.Complete + idle
|
|
poolManager:SetLiveClearCall(GetResourcePath(heroStaticData.Live), testLiveGO, function()
|
|
SkeletonGraphic.AnimationState.Complete = SkeletonGraphic.AnimationState.Complete - idle
|
|
end)
|
|
|
|
self.infoTitle.text = GetLanguageStrById(heroStaticData.HeroLocationDesc1)
|
|
SetHeroStars(self.spLoader, self.starGrid, heroStaticData.Star, 1, Vector2.New(52, 52), -2, Vector2.New(0.5, 0.5))
|
|
-- self.profession.sprite = self.spLoader:LoadSprite(GetJobSpriteStrByJobNum(heroStaticData.Profession))
|
|
self.proImage.sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(heroStaticData.PropertyName))
|
|
self.heroName.text = GetLanguageStrById(heroStaticData.ReadingName) --string.format("lv.%s", heroData.lv)
|
|
Util.GetGameObject(self.transform, "Pos"):GetComponent("Image").sprite = self.spLoader:LoadSprite(GetHeroPosBgStr(
|
|
heroStaticData.Profession))
|
|
self.posImage.sprite = self.spLoader:LoadSprite(GetHeroPosStr(heroStaticData.Profession))
|
|
self.posText.text = GetLanguageStrById(heroStaticData.HeroLocation)
|
|
SetTextVerTial(self.posText.gameObject, Vector3.New(63.76, 1.5, 0), "MiddleLeft")
|
|
--指定星级开启info
|
|
self.info:SetActive(heroStaticData.Star == 5 or heroStaticData.Star == 4)
|
|
self.infoBodyGo:SetActive(heroStaticData.Star == 5)
|
|
self.infoTitle.text = GetLanguageStrById(heroStaticData.HeroLocationDesc1)
|
|
if heroStaticData.Star == 5 then
|
|
local t = {}
|
|
local upStarSkillDataList = {} --数据容器
|
|
--获取几星激活数据
|
|
for i = 1, #heroStaticData.OpenPassiveSkillRules do
|
|
if heroStaticData.OpenPassiveSkillRules[i][1] == 2 then
|
|
local passiveSkillConfig = passiveSkillConfig[heroStaticData.OpenPassiveSkillRules[i][3]]
|
|
if passiveSkillConfig and passiveSkillLogicConfig[passiveSkillConfig.Id].Judge == 1 and string.len(passiveSkillConfig.Desc) > 1 then
|
|
local d = {}
|
|
d.passiveSkillConfig = passiveSkillConfig
|
|
d.OpenPassiveSkillRules = heroStaticData.OpenPassiveSkillRules[i]
|
|
d.titleStr = "<size=34><color=#5AC383>" ..
|
|
NumToSimplenessFont[heroRankupConfig[heroStaticData.OpenPassiveSkillRules[i][2]].Phase[2]] ..
|
|
Language[12107]
|
|
table.insert(upStarSkillDataList, d)
|
|
end
|
|
end
|
|
end
|
|
--数据插入t
|
|
for j = 1, #upStarSkillDataList do
|
|
if passiveSkillLogicConfig[upStarSkillDataList[j].passiveSkillConfig.Id].Judge == 1 then
|
|
table.insert(t,
|
|
upStarSkillDataList[j].titleStr ..
|
|
GetLanguageStrById(upStarSkillDataList[j].passiveSkillConfig.Desc) .. "\n")
|
|
end
|
|
end
|
|
|
|
--获取法宝数据
|
|
local dTalis = ConfigManager.GetConfigData(ConfigName.HeroConfig, heroStaticData.Id)
|
|
.EquipTalismana --当前法宝数据 data[1]星级 data[2]法宝ID
|
|
local dowerAllData = ConfigManager.GetAllConfigsDataByKey(ConfigName.EquipTalismana, "TalismanaId", dTalis[2]) --当前法宝全部天赋数据(天赋可能为空)
|
|
local dowerData = {} --当前法宝全部技能数据(天赋不为空)
|
|
for k = 1, #dowerAllData do
|
|
if dowerAllData[k].OpenSkillRules then
|
|
table.insert(dowerData, dowerAllData[k])
|
|
end
|
|
end
|
|
--数据插入t,保证在星数据后
|
|
for n = 1, #dowerData do
|
|
if dowerData[n].Level == 25 then
|
|
table.insert(t,
|
|
Language[12108] .. GetLanguageStrById(passiveSkillConfig[dowerData[n].OpenSkillRules[1]].Desc) ..
|
|
"\n")
|
|
end
|
|
end
|
|
local s = table.concat(t) --将表里字符串拼接
|
|
--看这下面 是全角空格哦~
|
|
self.infoBody.text = string.sub(s, 1, -2) --去除最后\n
|
|
end
|
|
|
|
PlayUIAnim(self.transform)
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function DropGetSSRHeroShopPanel:OnClose()
|
|
if testLiveGO then
|
|
poolManager:UnLoadLive(GetResourcePath(heroStaticData.Live), testLiveGO)
|
|
testLiveGO = nil
|
|
end
|
|
if callBack then
|
|
callBack()
|
|
end
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function DropGetSSRHeroShopPanel:OnDestroy()
|
|
self.spLoader:Destroy()
|
|
end
|
|
|
|
return DropGetSSRHeroShopPanel
|