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

329 lines
19 KiB
Lua
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

require("Base/BasePanel")
RoleUpStarSuccessPanel = Inherit(BasePanel)
local this=RoleUpStarSuccessPanel
this.skillConfig=ConfigManager.GetConfig(ConfigName.SkillConfig)
local passiveSkillConfig=ConfigManager.GetConfig(ConfigName.PassiveSkillConfig)
local orginLayer = 20
local callBack = nil
local heroRankupConfig = ConfigManager.GetConfig(ConfigName.HeroRankupConfig)
local heroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig)
--初始化组件(用于子类重写)
function RoleUpStarSuccessPanel:InitComponent()
this.spLoader = SpriteLoader.New()
orginLayer = 20
this.BtnBack = Util.GetGameObject(self.transform, "backBtn")
this.mask = Util.GetGameObject(self.transform, "mask")
this.live2dRoot=Util.GetGameObject(self.transform,"live2dRoot")
this.heroName = Util.GetGameObject(self.transform, "heroInfo/nameAndPossLayout/heroName"):GetComponent("Text")
this.profession = Util.GetGameObject(self.transform, "Pos/PosImage"):GetComponent("Image")
this.proImage = Util.GetGameObject(self.transform, "heroInfo/nameAndPossLayout/proImage/proImage"):GetComponent("Image")
--this.posText = Util.GetGameObject(self.transform, "heroInfo/nameAndPossLayout/posText/posText"):GetComponent("Text")
this.starGrid = Util.GetGameObject(self.transform, "heroInfo/sartAndLvLayout")
--this.qualityImage=Util.GetGameObject(self.transform,"quality"):GetComponent("Image")
--this.quality=Util.GetGameObject(self.transform,"quality/qualityText")
--this.doubleQuality=Util.GetGameObject(self.transform,"quality/qualityDoubleText")
this.posBgImage=Util.GetGameObject(self.transform,"Pos"):GetComponent("Image")
-- this.posImage=Util.GetGameObject(self.transform,"Pos/PosImage"):GetComponent("Image")
this.posText=Util.GetGameObject(self.transform,"Pos/PosText"):GetComponent("Text")
this.upLvMaskPanleProAtk=Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/curPros/mainPro/curProVale"):GetComponent("Text")
this.upLvMaskPanleProHp=Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/curPros/otherPro1/curProVale"):GetComponent("Text")
this.upLvMaskPanleProPhyDef=Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/curPros/otherPro2/curProVale"):GetComponent("Text")
this.upLvMaskPanleProMagDef=Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/curPros/otherPro3/curProVale"):GetComponent("Text")
this.upLvMaskPanleProSpeed=Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/curPros/otherPro4/curProVale"):GetComponent("Text")
this.upLvMaskPanleNextProAtk=Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/nextPros/mainPro/curProVale"):GetComponent("Text")
this.upLvMaskPanleNextProHp=Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/nextPros/otherPro1/curProVale"):GetComponent("Text")
this.upLvMaskPanleNextProPhyDef=Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/nextPros/otherPro2/curProVale"):GetComponent("Text")
this.upLvMaskPanleNextProMagDef=Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/nextPros/otherPro3/curProVale"):GetComponent("Text")
this.upLvMaskPanleNextProSpeed=Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/nextPros/otherPro4/curProVale"):GetComponent("Text")
this.upLvShowGoText=Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/Text"):GetComponent("Text")
this.talentInfoText=Util.GetGameObject(self.transform,"proInfo/GameObject/talentInfo/Text"):GetComponent("Text")
this.curTalentVale=Util.GetGameObject(self.transform,"proInfo/GameObject/talentInfo/curTalentVale"):GetComponent("Text")
this.talentInfoShowGo=Util.GetGameObject(self.transform,"proInfo/GameObject/talentInfo")
-- this.s1=Util.GetGameObject(self.transform,"proInfo/skillGrid/skillInfo1")
-- this.s1MiddleImage=Util.GetGameObject(self.transform,"proInfo/skillGrid/skillInfo1/Image (2)")
-- this.s1nextSkill=Util.GetGameObject(self.transform,"proInfo/skillGrid/skillInfo1/nextSkill")
-- this.s2=Util.GetGameObject(self.transform,"proInfo/skillGrid/skillInfo2")
-- this.s2MiddleImage=Util.GetGameObject(self.transform,"proInfo/skillGrid/skillInfo2/Image (2)")
-- this.s2nextSkill=Util.GetGameObject(self.transform,"proInfo/skillGrid/skillInfo2/nextSkill")
this.lvEndInfo=Util.GetGameObject(self.transform, "proInfo/lvEndText"):GetComponent("Text")
this.UI_Effect_choukaSSR = Util.GetGameObject(self.transform, "UI_Effect_chouka_SSR")
this.UI_Effect_choukaSR = Util.GetGameObject(self.transform, "UI_Effect_chouka_SR")
this.UI_Effect_choukaR = Util.GetGameObject(self.transform, "UI_Effect_chouka_R")
-- this.skillTiShi = Util.GetGameObject(self.transform,"proInfo/skillTiShi"):GetComponent("Text")
end
--绑定事件(用于子类重写)
function RoleUpStarSuccessPanel:BindEvent()
Util.AddClick(this.BtnBack, function()
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
self:ClosePanel()
end)
end
--添加事件监听(用于子类重写)
function RoleUpStarSuccessPanel:AddListener()
end
--移除事件监听(用于子类重写)
function RoleUpStarSuccessPanel:RemoveListener()
end
function RoleUpStarSuccessPanel:OnSortingOrderChange()
Util.AddParticleSortLayer(this.UI_Effect_choukaSSR, self.sortingOrder - orginLayer)
Util.AddParticleSortLayer(this.UI_Effect_choukaSR, self.sortingOrder - orginLayer)
Util.AddParticleSortLayer(this.UI_Effect_choukaR, self.sortingOrder - orginLayer)
this.mask:GetComponent("Canvas").overrideSorting = true
this.mask:GetComponent("Canvas").sortingOrder = self.sortingOrder - 30
Util.SetParticleSortLayer(this.starGrid,self.sortingOrder + 1)
orginLayer = self.sortingOrder
end
--界面打开时调用(用于子类重写)
function RoleUpStarSuccessPanel:OnOpen(...)
Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/curPros/mainPro/curProName"):GetComponent("Text").text = Language[11838]
Util.GetGameObject(self.transform,"proInfo/GameObject/proInfo/nextPros/mainPro/curProName"):GetComponent("Text").text = Language[11838]
this.upLvShowGoText.text = Language[11430]
local args = {...}
local curHeroData=args[1]
local nextHeroUpStarId=args[2]
local curHeroRankUpConfigOpenLevel=args[3]
callBack = args[4]
--this.OnShowPanelData()
this.UI_Effect_choukaSSR:SetActive(curHeroData.heroConfig.Quality == 5)
this.UI_Effect_choukaSR:SetActive(curHeroData.heroConfig.Quality == 4)
this.UI_Effect_choukaR:SetActive(curHeroData.heroConfig.Quality == 3)
this.LiveName = curHeroData.live
this.LiveGO = poolManager:LoadLive(this.LiveName, this.live2dRoot.transform,
Vector3.one * curHeroData.heroConfig.Scale, Vector3.New(curHeroData.heroConfig.Position[1],curHeroData.heroConfig.Position[2],0))
SetHeroStars(this.spLoader, this.starGrid, curHeroData.star+1,1,Vector2.New(60,60),-11,Vector2.New(0.5,0.5))
Util.SetParticleSortLayer(this.starGrid,self.sortingOrder + 1)
SetHEeroLiveToward(this.LiveGO,curHeroData.heroConfig.Toward)
this.profession.sprite = this.spLoader:LoadSprite(GetHeroPosStr(curHeroData.heroConfig.Profession))
this.proImage.sprite =this.spLoader:LoadSprite(GetProStrImageByProNum(curHeroData.changeProId))
-- LogPurple("curHeroData.heroConfig.profession"..curHeroData.heroConfig.Profession)
-- LogYellow(GetHeroPosStr(curHeroData.heroConfig.Profession))
-- this.proImage.sprite =this.spLoader:LoadSprite(GetHeroPosStr(curHeroData.heroConfig.Profession))
--this.posText.text = GetJobStrByJobNum(curHeroData.profession)
this.heroName.text =GetLanguageStrById(curHeroData.heroConfig.ReadingName)
--this.qualityImage.sprite=GetQuantityImage(this.spLoader, curHeroData.heroConfig.Natural)
--this.quality:SetActive(curHeroData.heroConfig.Natural < 10)
--this.doubleQuality:SetActive(curHeroData.heroConfig.Natural >= 10)
--this.quality:GetComponent("Text").text = curHeroData.heroConfig.Natural
--this.doubleQuality:GetComponent("Text").text = curHeroData.heroConfig.Natural
--定位描述相关
this.posBgImage.sprite=this.spLoader:LoadSprite(GetHeroPosBgStr(curHeroData.heroConfig.Profession))
-- this.posImage.sprite=this.spLoader:LoadSprite(GetHeroPosStr(curHeroData.heroConfig.Profession))
this.posText.text=GetLanguageStrById(curHeroData.heroConfig.HeroLocation)
SetTextVerTial(this.posText.gameObject,Vector3.New(64,0,0),"MiddleLeft")
this.lvEndInfo.text=string.format(Language[11791],curHeroRankUpConfigOpenLevel)
--计算面板属性old
local oldLvAllAddProVal= HeroPropManager.GetHeroProp(curHeroData.dynamicId)
this.upLvMaskPanleProAtk.text=oldLvAllAddProVal[HeroProType.Attack]
this.upLvMaskPanleProHp.text=oldLvAllAddProVal[HeroProType.Hp]
this.upLvMaskPanleProPhyDef.text=oldLvAllAddProVal[HeroProType.PhysicalDefence]
this.upLvMaskPanleProMagDef.text=oldLvAllAddProVal[HeroProType.MagicDefence]
this.upLvMaskPanleProSpeed.text= oldLvAllAddProVal[HeroProType.Speed]
--计算面板属性cur
-- local curLvAllAddProVal=HeroManager.CalculateHeroAllProValList(2,curHeroData.dynamicId,false,curHeroData.breakId,nextHeroUpStarId)
-- 生成一个临时英雄数据,使用完成后需主动清理
local tempDId, tempData = HeroTempPropManager.CreateTempHero(curHeroData.dynamicId)
tempData.upStarId = nextHeroUpStarId
tempData.breakId = curHeroData.breakId
local curLvAllAddProVal = HeroTempPropManager.GetTempHeroProp(tempDId)--HeroPowerManager.GetNextHeroPower(curHeroData.dynamicId, nil,curHeroData.breakId,nextHeroUpStarId)
HeroTempPropManager.ClearTempHero(tempDId)-- 清理
this.upLvMaskPanleNextProAtk.text=curLvAllAddProVal[HeroProType.Attack]
this.upLvMaskPanleNextProHp.text=curLvAllAddProVal[HeroProType.Hp]
this.upLvMaskPanleNextProPhyDef.text=curLvAllAddProVal[HeroProType.PhysicalDefence]
this.upLvMaskPanleNextProMagDef.text=curLvAllAddProVal[HeroProType.MagicDefence]
this.upLvMaskPanleNextProSpeed.text= curLvAllAddProVal[HeroProType.Speed]
--天赋2#7#127107
LogPink("curHeroData.upStarId "..nextHeroUpStarId)
local talentSKillsConFig = ConfigManager.GetConfigData(ConfigName.HeroConfig,curHeroData.id).OpenPassiveSkillRules
local upStarSkillDataList = {}
for i = 1, #talentSKillsConFig do
if talentSKillsConFig[i][1] == 2 then--升星
LogPink("talentSKillsConFig[i][2] "..talentSKillsConFig[i][2])
if nextHeroUpStarId == talentSKillsConFig[i][2] then
local _titleStr = NumToSimplenessFont[heroRankupConfig[nextHeroUpStarId].Phase[2]] .. Language[11792]
local _passiveSkillId = passiveSkillConfig[talentSKillsConFig[i][3]].Id
if upStarSkillDataList[nextHeroUpStarId] then
upStarSkillDataList[nextHeroUpStarId] = {titleStr = _titleStr,str = upStarSkillDataList[nextHeroUpStarId].str .. "  "..GetLanguageStrById(passiveSkillConfig[talentSKillsConFig[i][3]].Desc)}
else
upStarSkillDataList[nextHeroUpStarId] = {titleStr = _titleStr,str = GetLanguageStrById(passiveSkillConfig[talentSKillsConFig[i][3]].Desc)}
end
end
end
end
this.curTalentVale=Util.GetGameObject(self.transform,"proInfo/GameObject/talentInfo/curTalentVale"):GetComponent("Text")
this.talentInfoShowGo=Util.GetGameObject(self.transform,"proInfo/GameObject/talentInfo")
if upStarSkillDataList and LengthOfTable(upStarSkillDataList) > 0 then
this.talentInfoShowGo:SetActive(true)
this.talentInfoText.text = Language[11839]
this.curTalentVale.text = upStarSkillDataList[nextHeroUpStarId].str
else
this.talentInfoShowGo:SetActive(false)
end
--技能
-- this.skillTiShi.text = "等级技能提升"
-- local upskillIdList={}
-- local upIndex=1
-- local curIndex=1
-- local curskillIdList={}
-- if curHeroData.heroConfig.OpenSkillRules then
-- for i = 1, #curHeroData.heroConfig.OpenSkillRules do
-- if curHeroData.heroConfig.OpenSkillRules[i][1]==curHeroData.star then
-- local skilldata={}
-- Log("当前技能 "..curHeroData.heroConfig.OpenSkillRules[i][2])
-- skilldata.skillId=curHeroData.heroConfig.OpenSkillRules[i][2]
-- skilldata.skillConfig=this.skillConfig[curHeroData.heroConfig.OpenSkillRules[i][2]]
-- upskillIdList[upIndex]=skilldata
-- upIndex=upIndex+1
-- end
-- if curHeroData.heroConfig.OpenSkillRules[i][1]==curHeroData.star+1 then
-- local skilldata={}
-- Log("升星技能id "..curHeroData.heroConfig.OpenSkillRules[i][2])
-- skilldata.skillId=curHeroData.heroConfig.OpenSkillRules[i][2]
-- skilldata.skillConfig=this.skillConfig[curHeroData.heroConfig.OpenSkillRules[i][2]]
-- curskillIdList[curIndex]=skilldata
-- curIndex=curIndex+1
-- end
-- end
-- end
-- if curHeroData.heroConfig.OpenPassiveSkillRules then
-- for i = 1, #curHeroData.heroConfig.OpenPassiveSkillRules do
-- if curHeroData.heroConfig.OpenPassiveSkillRules[i][1]==curHeroData.star then
-- local skilldata={}
-- Log("当前被动技能 "..curHeroData.heroConfig.OpenPassiveSkillRules[i][2])
-- skilldata.skillId=curHeroData.heroConfig.OpenPassiveSkillRules[i][2]
-- skilldata.skillConfig=passiveSkillConfig[curHeroData.heroConfig.OpenPassiveSkillRules[i][2]]
-- upskillIdList[upIndex]=skilldata
-- upIndex=upIndex+1
-- end
-- if curHeroData.heroConfig.OpenPassiveSkillRules[i][1]==curHeroData.star+1 then
-- local skilldata={}
-- Log("升星被动技能id "..curHeroData.heroConfig.OpenPassiveSkillRules[i][2])
-- skilldata.skillId=curHeroData.heroConfig.OpenPassiveSkillRules[i][2]
-- skilldata.skillConfig=passiveSkillConfig[curHeroData.heroConfig.OpenPassiveSkillRules[i][2]]
-- curskillIdList[curIndex]=skilldata
-- curIndex=curIndex+1
-- end
-- end
-- end
-- if LengthOfTable(upskillIdList)>=1 then
-- if (upskillIdList[1].skillId % 10)<(curskillIdList[1].skillId % 10) then
-- if upskillIdList[1].skillConfig and upskillIdList[1].skillConfig.Name then
-- this.s1:SetActive(true)
-- this.s1MiddleImage:SetActive(true)
-- this.s1nextSkill:SetActive(true)
-- Util.GetGameObject(this.s1,"curSkill/icon"):GetComponent("Image").sprite=this.spLoader:LoadSprite(GetResourcePath(upskillIdList[1].skillConfig.Icon))
-- Util.GetGameObject(this.s1,"curSkill/skillLv"):GetComponent("Text").text="等级"..upskillIdList[1].skillId % 10
-- Util.GetGameObject(this.s1,"nextSkill/icon"):GetComponent("Image").sprite=this.spLoader:LoadSprite(GetResourcePath(curskillIdList[1].skillConfig.Icon))
-- Util.GetGameObject(this.s1,"nextSkill/skillLv"):GetComponent("Text").text="等级"..curskillIdList[1].skillId % 10
-- else
-- this.s1:SetActive(false)
-- end
-- else
-- this.s1:SetActive(false)
-- end
-- else
-- this.s1:SetActive(false)
-- end
-- if LengthOfTable(upskillIdList)>=2 then
-- if (upskillIdList[2].skillId % 10)<(curskillIdList[2].skillId % 10) then
-- if upskillIdList[2].skillConfig and upskillIdList[2].skillConfig.Name then
-- Util.GetGameObject(this.s2,"curSkill/icon"):GetComponent("Image").sprite=this.spLoader:LoadSprite(GetResourcePath(upskillIdList[2].skillConfig.Icon))
-- Util.GetGameObject(this.s2,"curSkill/skillLv"):GetComponent("Text").text="等级"..upskillIdList[2].skillId % 10
-- Util.GetGameObject(this.s2,"nextSkill/icon"):GetComponent("Image").sprite=this.spLoader:LoadSprite(GetResourcePath(curskillIdList[2].skillConfig.Icon))
-- Util.GetGameObject(this.s2,"nextSkill/skillLv"):GetComponent("Text").text="等级"..curskillIdList[2].skillId % 10
-- this.s2MiddleImage:SetActive(true)
-- this.s2nextSkill:SetActive(true)
-- this.s2:SetActive(true)
-- else
-- this.s2:SetActive(false)
-- end
-- else
-- this.s2:SetActive(false)
-- end
-- else
-- this.s2:SetActive(false)
-- end
--是否有新开的技能
-- local openNewSkillCound =LengthOfTable(curskillIdList) - LengthOfTable(upskillIdList)
-- if openNewSkillCound == 1 then
-- this.skillTiShi.text = "新增技能"
-- this.s1:SetActive(true)
-- this.s1MiddleImage:SetActive(false)
-- this.s1nextSkill:SetActive(false)
-- Util.GetGameObject(this.s1,"curSkill/icon"):GetComponent("Image").sprite=this.spLoader:LoadSprite(GetResourcePath(curskillIdList[LengthOfTable(curskillIdList)].skillConfig.Icon))
-- Util.GetGameObject(this.s1,"curSkill/skillLv"):GetComponent("Text").text="等级"..curskillIdList[LengthOfTable(curskillIdList)].skillId % 10
-- elseif openNewSkillCound == 2 then
-- this.skillTiShi.text = "新增技能"
-- this.s1:SetActive(true)
-- this.s1MiddleImage:SetActive(false)
-- this.s1nextSkill:SetActive(false)
-- Util.GetGameObject(this.s1,"curSkill/icon"):GetComponent("Image").sprite=this.spLoader:LoadSprite(GetResourcePath(curskillIdList[1].skillConfig.Icon))
-- Util.GetGameObject(this.s1,"curSkill/skillLv"):GetComponent("Text").text="等级"..curskillIdList[1].skillId % 10
-- this.s2:SetActive(true)
-- this.s2MiddleImage:SetActive(false)
-- this.s2nextSkill:SetActive(false)
-- Util.GetGameObject(this.s2,"curSkill/icon"):GetComponent("Image").sprite=this.spLoader:LoadSprite(GetResourcePath(curskillIdList[2].skillConfig.Icon))
-- Util.GetGameObject(this.s2,"curSkill/skillLv"):GetComponent("Text").text="等级"..curskillIdList[2].skillId % 10
-- end
-- Log("curHeroData.star+1 "..curHeroData.star+1)
if curHeroData.star+1 >= 5 and curHeroData.star+1 < 15 then
HeroPropManager.SetDirtyByType(curHeroData.dynamicId, Hero_Prop_Type.Talisman)
end
if curHeroData.heroConfig.Quality == 5 and curHeroData.heroConfig.Natural >= 13 then
if curHeroData.star+1 >= 5 and curHeroData.star+1 < 15 then
HeroManager.DetectionOpenFiveStarActivity(curHeroData.star+1)
end
end
end
function RoleUpStarSuccessPanel:GetEquipSkillData(skillId)
return this.skillConfig[skillId]
end
--界面关闭时调用(用于子类重写)
function RoleUpStarSuccessPanel:OnClose()
if this.LiveName then
poolManager:UnLoadLive(this.LiveName, this.LiveGO)
this.LiveName = nil
end
if callBack then
callBack()
callBack = nil
end
end
--界面销毁时调用(用于子类重写)
function RoleUpStarSuccessPanel:OnDestroy()
this.spLoader:Destroy()
end
return RoleUpStarSuccessPanel