2023-10-16 15:12:47 +08:00
|
|
|
|
require("Base/BasePanel")
|
|
|
|
|
HeroPotencyPanel = Inherit(BasePanel)
|
|
|
|
|
local potentialConfig=ConfigManager.GetConfig(ConfigName.PotentialNewConfig)
|
|
|
|
|
local this = HeroPotencyPanel
|
|
|
|
|
local TabBox = require("Modules/Common/TabBox")
|
|
|
|
|
local _TabData={ [1] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = GuildSkillType[2] },
|
|
|
|
|
[2] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = GuildSkillType[1] },
|
|
|
|
|
[3] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = GuildSkillType[3] },
|
|
|
|
|
[4] = { default = "r_hero_xuanze_002", select = "r_hero_xuanze_001", name = GuildSkillType[4]},
|
|
|
|
|
}
|
|
|
|
|
local _TabFontColor = { default = Color.New(130 / 255, 128 / 255, 120 / 255, 1),
|
|
|
|
|
select = Color.New(243 / 255, 235 / 255, 202 / 255, 1)}
|
|
|
|
|
local skills = {}
|
|
|
|
|
local pros = {}
|
|
|
|
|
local materals = {}
|
|
|
|
|
local curIndex = 1
|
|
|
|
|
|
|
|
|
|
local curSeletSkill = {}
|
|
|
|
|
local allSkillData = {}
|
|
|
|
|
local materialNoId = 0
|
|
|
|
|
local endLv = 0
|
|
|
|
|
local isMaxLv = true
|
|
|
|
|
|
|
|
|
|
local tabRedPotList = {}
|
|
|
|
|
local oldWarPowerValue = 0
|
|
|
|
|
local newWarPowerValue = 0
|
|
|
|
|
local oldLv
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--长按升级状态
|
|
|
|
|
local _isClicked = false
|
|
|
|
|
local _isReqLvUp = false
|
|
|
|
|
local curHeroData=nil
|
|
|
|
|
local heroListData=nil
|
|
|
|
|
local index=0
|
|
|
|
|
--初始化组件(用于子类重写)
|
|
|
|
|
function HeroPotencyPanel:InitComponent()
|
|
|
|
|
this.spLoader = SpriteLoader.New()
|
|
|
|
|
this.tabBox = Util.GetGameObject(self.gameObject, "bg/TabBox")
|
|
|
|
|
this.backBtn = Util.GetGameObject(self.gameObject, "bg/btnBack")
|
|
|
|
|
this.btnUpLv = Util.GetGameObject(self.gameObject, "bg/btnUpLv")
|
|
|
|
|
this.btnRest = Util.GetGameObject(self.gameObject, "bg/btnRest")
|
|
|
|
|
this.helpBtn = Util.GetGameObject(self.gameObject,"bg/HelpBtn")
|
|
|
|
|
this.heroBg=Util.GetGameObject(self.gameObject,"bg/Hero/Frame"):GetComponent("Image")
|
|
|
|
|
this.heroImg=Util.GetGameObject(self.gameObject,"bg/Hero/Icon"):GetComponent("Image")
|
|
|
|
|
this.helpPos = this.helpBtn:GetComponent("RectTransform").localPosition
|
|
|
|
|
this.titleText = Util.GetGameObject(self.gameObject,"bg/titleText"):GetComponent("Text")
|
|
|
|
|
this.titleText.text="潜能"
|
|
|
|
|
this.selectImage = Util.GetGameObject(self.gameObject,"bg/skills/selectImage")
|
|
|
|
|
this.upLvTrigger = Util.GetEventTriggerListener(this.btnUpLv)
|
|
|
|
|
this.btn_left = Util.GetGameObject(self.gameObject,"bg/btn_left")
|
|
|
|
|
this.btn_right = Util.GetGameObject(self.gameObject,"bg/btn_right")
|
|
|
|
|
this.allEquipList={}
|
2023-10-16 17:11:07 +08:00
|
|
|
|
this.redList={}
|
2023-10-16 15:12:47 +08:00
|
|
|
|
for i=1,8 do
|
|
|
|
|
local obj=Util.GetGameObject(self.gameObject,"bg/skills/frame ("..i..")")
|
|
|
|
|
local skillItem={}
|
|
|
|
|
skillItem.obj=obj
|
|
|
|
|
skillItem.icon=Util.GetGameObject(obj,"icon"):GetComponent("Image")
|
|
|
|
|
skillItem.btn=Util.GetGameObject(obj,"icon")
|
|
|
|
|
skillItem.selectPar=Util.GetGameObject(obj,"selectImageParent")
|
|
|
|
|
skillItem.lv=Util.GetGameObject(obj,"lvImage/Text"):GetComponent("Text")
|
|
|
|
|
skillItem.lock=Util.GetGameObject(obj,"lock")
|
2023-10-16 17:11:07 +08:00
|
|
|
|
skillItem.red=Util.GetGameObject(obj,"redpoint")
|
|
|
|
|
table.insert(this.redList,skillItem.red)
|
2023-10-16 15:12:47 +08:00
|
|
|
|
table.insert(this.allEquipList,skillItem)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--绑定事件(用于子类重写)
|
|
|
|
|
function HeroPotencyPanel:BindEvent()
|
|
|
|
|
Util.AddClick(this.helpBtn,function()
|
2023-10-16 17:11:07 +08:00
|
|
|
|
UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.Potency,this.helpPos.x,this.helpPos.y)
|
2023-10-16 15:12:47 +08:00
|
|
|
|
end)
|
|
|
|
|
Util.AddClick(this.backBtn,function()
|
|
|
|
|
self:ClosePanel()
|
|
|
|
|
end)
|
|
|
|
|
Util.AddClick(this.btnUpLv,function()
|
|
|
|
|
if Time.realtimeSinceStartup - this.timePressStarted <= 0.4 then
|
|
|
|
|
this.LvUpClick(true)
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
Util.AddClick(this.btnRest,function()
|
|
|
|
|
NetManager.PotentialBackLvRequest(curHeroData.dynamicId,function()
|
|
|
|
|
HeroManager.ResetHeroPotentialData(curHeroData.dynamicId)
|
|
|
|
|
this.RefreshWindowData()
|
|
|
|
|
end)
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
Util.AddClick(this.btn_left,function()
|
|
|
|
|
index = (index - 1 > 0 and index - 1 or #heroListData)
|
|
|
|
|
curHeroData = heroListData[index]
|
|
|
|
|
this.RefreshWindowData()
|
|
|
|
|
end)
|
|
|
|
|
Util.AddClick(this.btn_right,function()
|
|
|
|
|
index = (index + 1 <= #heroListData and index + 1 or 1)
|
|
|
|
|
curHeroData = heroListData[index]
|
|
|
|
|
this.RefreshWindowData()
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
--添加事件监听(用于子类重写)
|
|
|
|
|
function HeroPotencyPanel:AddListener()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--移除事件监听(用于子类重写)
|
|
|
|
|
function HeroPotencyPanel:RemoveListener()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
|
|
|
function HeroPotencyPanel:OnOpen(_curHeroData,list)
|
|
|
|
|
curHeroData=_curHeroData
|
|
|
|
|
heroListData=list
|
|
|
|
|
for i = 1, #heroListData do
|
|
|
|
|
if curHeroData == heroListData[i] then
|
|
|
|
|
index = i
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
|
|
|
|
|
function HeroPotencyPanel:OnShow()
|
|
|
|
|
oldWarPowerValue = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL)
|
|
|
|
|
local list={}
|
|
|
|
|
for k,v in ConfigPairs(potentialConfig) do
|
|
|
|
|
table.insert(list,v)
|
|
|
|
|
end
|
|
|
|
|
table.sort(potentialConfig,function(a,b)
|
|
|
|
|
return a.Position < b.Position
|
|
|
|
|
end)
|
|
|
|
|
this.RefreshWindowData()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function this.RefreshWindowData()
|
|
|
|
|
this.heroBg.sprite=this.spLoader:LoadSprite(GetHeroQuantityImageByquality(curHeroData.heroConfig.Quality,curHeroData.star))
|
|
|
|
|
this.heroImg.sprite=this.spLoader:LoadSprite(curHeroData.icon)
|
|
|
|
|
local data=HeroManager.GetPotentialData(curHeroData.dynamicId)
|
|
|
|
|
local giftLv=GiftManager.GetHeroPotencyLvById(curHeroData.dynamicId)
|
|
|
|
|
for i=1, 8 do
|
|
|
|
|
local item= this.allEquipList[i]
|
|
|
|
|
if item==nil then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
local config=ConfigManager.GetConfigDataByKey(ConfigName.PotentialNewConfig,"Position",i)
|
|
|
|
|
item.icon.sprite=this.spLoader:LoadSprite(config.Icon)
|
|
|
|
|
local type=config.Type
|
|
|
|
|
if data[type] then
|
|
|
|
|
local lv=data[type].lv
|
2023-10-16 17:11:07 +08:00
|
|
|
|
--LogError("lv======================="..lv.." giftlv==="..data[type].giftLv)
|
2023-10-16 18:31:34 +08:00
|
|
|
|
item.lv.text=lv+giftLv
|
2023-10-16 15:12:47 +08:00
|
|
|
|
--判断下一级是否可以升级
|
|
|
|
|
local lvConfig=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.PotentialNew,"Type",type,"Level",lv+1)
|
|
|
|
|
if lvConfig then
|
|
|
|
|
if lvConfig.Open and #lvConfig.Open>0 and lvConfig.Open[1]~=nil and lvConfig.Open[2]~=nil then
|
2023-10-16 17:11:07 +08:00
|
|
|
|
--LogError("lvconfig===============id============"..lvConfig.Id.." open[1]=="..lvConfig.Open[1].." open[2]=="..lvConfig.Open[2])
|
2023-10-16 15:12:47 +08:00
|
|
|
|
if data[lvConfig.Open[1]] and data[lvConfig.Open[1]].lv>=lvConfig.Open[2] then
|
|
|
|
|
item.lock:SetActive(false)
|
|
|
|
|
else
|
|
|
|
|
item.lock:SetActive(true)
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
item.lock:SetActive(false)
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
item.lock:SetActive(false)
|
|
|
|
|
end
|
2023-10-16 17:11:07 +08:00
|
|
|
|
|
2023-10-16 15:12:47 +08:00
|
|
|
|
else
|
|
|
|
|
item.lv.text=0
|
|
|
|
|
item.lock:SetActive(true)
|
|
|
|
|
end
|
2023-10-16 17:11:07 +08:00
|
|
|
|
item.red:SetActive(HeroManager.CheckPotencyRedPointByType(curHeroData.dynamicId,type))
|
2023-10-16 15:12:47 +08:00
|
|
|
|
Util.AddClick(item.btn,function()
|
|
|
|
|
UIManager.OpenPanel(UIName.HeroPotencyLvUpPanel,type,curHeroData.dynamicId,config,this)
|
|
|
|
|
--UIManager.OpenPanel(UIName.HeroPotencyInfoPopup)
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function this.RefreshTabRedPoint(index)
|
|
|
|
|
if index then
|
|
|
|
|
tabRedPotList[index]:SetActive(false)
|
|
|
|
|
else
|
|
|
|
|
for i = 1, #tabRedPotList do
|
|
|
|
|
tabRedPotList[curIndexChangeFun[i]]:SetActive(GuildSkillManager.GuildSkillRedPoint(curIndexChangeFun[i]))
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
|
|
|
function HeroPotencyPanel:OnClose()
|
|
|
|
|
tabRedPotList = {}
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
|
|
|
function HeroPotencyPanel:OnDestroy()
|
|
|
|
|
this.spLoader:Destroy()
|
|
|
|
|
this.allEquipList={}
|
2023-10-16 17:11:07 +08:00
|
|
|
|
this.redList={}
|
2023-10-16 15:12:47 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return HeroPotencyPanel
|