325 lines
17 KiB
Lua
325 lines
17 KiB
Lua
require("Base/BasePanel")
|
|
RoleTalismanChangePopup = Inherit(BasePanel)
|
|
local this = RoleTalismanChangePopup
|
|
local type --1 穿装备 2 卸装备 3 替换装备
|
|
local curHeroData
|
|
local curEquipData
|
|
local nextEquipData
|
|
local openThisPanel
|
|
--初始化组件(用于子类重写)
|
|
function RoleTalismanChangePopup:InitComponent()
|
|
this.spLoader = SpriteLoader.New()
|
|
|
|
this.btnBack = Util.GetGameObject(self.transform, "btnBack")
|
|
|
|
this.bg1 = Util.GetGameObject(self.transform, "GameObject/bg1")
|
|
this.desc1 = Util.GetGameObject(self.transform, "GameObject/bg1/equipInfo/Text"):GetComponent("Text")
|
|
this.curEquipName = Util.GetGameObject(self.transform, "GameObject/bg1/equipInfo/name/text"):GetComponent("Text")
|
|
this.curEquipFrame = Util.GetGameObject(self.transform, "GameObject/bg1/equipInfo/frame"):GetComponent("Image")
|
|
this.curEquipIcon = Util.GetGameObject(self.transform, "GameObject/bg1/equipInfo/icon"):GetComponent("Image")
|
|
this.curEquipStar = Util.GetGameObject(self.transform, "GameObject/bg1/equipInfo/star/starGrid")
|
|
this.curMainProscroll = Util.GetGameObject(self.transform, "GameObject/bg1/mainProScroll")
|
|
this.curMainProGrid = Util.GetGameObject(self.transform, "GameObject/bg1/mainProScroll/grid")
|
|
this.curotherProscroll = Util.GetGameObject(self.transform, "GameObject/bg1/otherProScroll")
|
|
this.otherProPre = Util.GetGameObject(self.transform, "GameObject/bg1/otherPro")
|
|
this.otherProGrid = Util.GetGameObject(self.transform, "GameObject/bg1/otherProScroll/grid")
|
|
this.curCastInfo = Util.GetGameObject(self.transform, "GameObject/bg1/castInfoObject/castInfo"):GetComponent("Text")
|
|
this.castInfoObject = Util.GetGameObject(self.transform, "GameObject/bg1/castInfoObject")
|
|
this.castInfoObject:SetActive(false)
|
|
this.curEquipBtnDown = Util.GetGameObject(self.transform, "GameObject/bg1/btns/btnGrid/btnDown")
|
|
this.curEquipBtnUp = Util.GetGameObject(self.transform, "GameObject/bg1/btns/btnGrid/btnUp")
|
|
this.curEquipBtnUpStar = Util.GetGameObject(self.transform, "GameObject/bg1/btns/btnGrid/btnUpStar")
|
|
this.curEquipText = Util.GetGameObject(self.transform, "GameObject/bg1/btns/curEquipText")
|
|
this.qualityText = Util.GetGameObject(self.transform, "GameObject/bg1/equipInfo/qualityText"):GetComponent("Text")
|
|
this.powerNum1 = Util.GetGameObject(self.transform, "GameObject/bg1/equipInfo/powerNum"):GetComponent("Text")
|
|
this.powerUPorDown1 = Util.GetGameObject(self.transform, "GameObject/bg1/equipInfo/powerUPorDown")
|
|
|
|
this.bg2 = Util.GetGameObject(self.transform, "GameObject/bg2")
|
|
this.desc2 = Util.GetGameObject(self.transform, "GameObject/bg2/equipInfo/Text"):GetComponent("Text")
|
|
this.nextEquipName = Util.GetGameObject(self.transform, "GameObject/bg2/equipInfo/name/text"):GetComponent("Text")
|
|
this.nextEquipFrame = Util.GetGameObject(self.transform, "GameObject/bg2/equipInfo/frame"):GetComponent("Image")
|
|
this.nextEquipIcon = Util.GetGameObject(self.transform, "GameObject/bg2/equipInfo/icon"):GetComponent("Image")
|
|
this.nextEquipStar = Util.GetGameObject(self.transform, "GameObject/bg2/equipInfo/star/starGrid")
|
|
this.nextMainProscroll = Util.GetGameObject(self.transform, "GameObject/bg2/mainProScroll")
|
|
this.nextMainProGrid = Util.GetGameObject(self.transform, "GameObject/bg2/mainProScroll/grid")
|
|
this.nexttherProscroll = Util.GetGameObject(self.transform, "GameObject/bg2/otherProScroll")
|
|
this.nextotherProPre = Util.GetGameObject(self.transform, "GameObject/bg2/otherPro")
|
|
this.nextotherProGrid = Util.GetGameObject(self.transform, "GameObject/bg2/otherProScroll/grid")
|
|
this.nextCastInfo = Util.GetGameObject(self.transform, "GameObject/bg2/castInfoObject/castInfo"):GetComponent("Text")
|
|
this.nextInfoObject = Util.GetGameObject(self.transform, "GameObject/bg2/castInfoObject")
|
|
this.nextInfoObject:SetActive(false)
|
|
this.nextEtnChange = Util.GetGameObject(self.transform, "GameObject/bg2/btns/btnGrid/btnChange")
|
|
this.nextEquipUpStar = Util.GetGameObject(self.transform, "GameObject/bg2/btns/btnGrid/btnUpStar")
|
|
this.qualityText2 = Util.GetGameObject(self.transform, "GameObject/bg2/equipInfo/qualityText"):GetComponent("Text")
|
|
this.GameObject = Util.GetGameObject(self.transform, "GameObject")
|
|
this.powerNum2 = Util.GetGameObject(self.transform, "GameObject/bg2/equipInfo/powerNum"):GetComponent("Text")
|
|
this.powerUPorDown2 = Util.GetGameObject(self.transform, "GameObject/bg2/equipInfo/powerUPorDown")
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function RoleTalismanChangePopup:BindEvent()
|
|
Util.AddClick(this.btnBack, function()
|
|
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
|
|
self:ClosePanel()
|
|
end)
|
|
Util.AddClick(this.curEquipBtnDown, function()
|
|
NetManager.TalismanUnLoadOptRequest(curHeroData.dynamicId, { curEquipData.did }, function()
|
|
TalismanManager.SetTalismanUpHeroDid(curEquipData.did, "0")
|
|
HeroManager.UpdateHeroSingleTalismanData(curHeroData.dynamicId, { curEquipData.did }, 2)
|
|
openThisPanel:OnShowHeroAndTalisman()
|
|
self:ClosePanel()
|
|
end)
|
|
end)
|
|
Util.AddClick(this.curEquipBtnUp, function()
|
|
NetManager.TalismanWearRequest(curHeroData.dynamicId, { curEquipData.did }, function()
|
|
TalismanManager.SetTalismanUpHeroDid(curEquipData.did, curHeroData.dynamicId)
|
|
HeroManager.UpdateHeroSingleTalismanData(curHeroData.dynamicId, { curEquipData.did }, 1)
|
|
openThisPanel:OnShowHeroAndTalisman()
|
|
self:ClosePanel()
|
|
end)
|
|
end)
|
|
Util.AddClick(this.nextEtnChange, function()
|
|
NetManager.TalismanWearRequest(curHeroData.dynamicId, { nextEquipData.did }, function()
|
|
TalismanManager.SetTalismanUpHeroDid(curEquipData.did, "0")
|
|
TalismanManager.SetTalismanUpHeroDid(nextEquipData.did, curHeroData.dynamicId)
|
|
HeroManager.UpdateHeroSingleTalismanData(curHeroData.dynamicId, { nextEquipData.did }, 1)
|
|
openThisPanel:OnShowHeroAndTalisman()
|
|
self:ClosePanel()
|
|
end)
|
|
end)
|
|
Util.AddClick(this.curEquipBtnUpStar, function()
|
|
UIManager.OpenPanel(UIName.TalismanInfoPanel, curHeroData, curEquipData)
|
|
self:ClosePanel()
|
|
end)
|
|
Util.AddClick(this.nextEquipUpStar, function()
|
|
UIManager.OpenPanel(UIName.TalismanInfoPanel, curHeroData, nextEquipData)
|
|
self:ClosePanel()
|
|
end)
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function RoleTalismanChangePopup:AddListener()
|
|
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function RoleTalismanChangePopup:RemoveListener()
|
|
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function RoleTalismanChangePopup:OnOpen(...)
|
|
local data = { ... }
|
|
openThisPanel = data[1]
|
|
type = data[2]
|
|
if type == 1 or type == 2 then
|
|
curHeroData = data[3]
|
|
curEquipData = data[4]
|
|
elseif type == 3 then
|
|
curHeroData = data[3]
|
|
curEquipData = data[4]
|
|
nextEquipData = data[5]
|
|
end
|
|
end
|
|
|
|
function RoleTalismanChangePopup:OnShow()
|
|
if type == 1 then
|
|
this.curEquipBtnUpStar:SetActive(curEquipData.star < TalismanManager.AllTalismanEndStar[curEquipData.id])
|
|
this.curEquipText:SetActive(false)
|
|
this.curEquipBtnDown:SetActive(false)
|
|
this.curEquipBtnUp:SetActive(true)
|
|
this.ShowCurEquipData(1)
|
|
this.bg1:SetActive(true)
|
|
this.bg2:SetActive(false)
|
|
elseif type == 2 then
|
|
this.curEquipBtnUpStar:SetActive(curEquipData.star < TalismanManager.AllTalismanEndStar[curEquipData.id])
|
|
this.curEquipText:SetActive(false)
|
|
this.curEquipBtnDown:SetActive(true)
|
|
this.curEquipBtnUp:SetActive(false)
|
|
this.ShowCurEquipData(1)
|
|
this.bg1:SetActive(true)
|
|
this.bg2:SetActive(false)
|
|
elseif type == 3 then
|
|
this.curEquipBtnUpStar:SetActive(false)
|
|
this.nextEquipUpStar:SetActive(nextEquipData.star < TalismanManager.AllTalismanEndStar[nextEquipData.id])
|
|
this.curEquipText:SetActive(true)
|
|
this.curEquipBtnDown:SetActive(false)
|
|
this.curEquipBtnUp:SetActive(false)
|
|
this.ShowCurEquipData(2)
|
|
this.NextCurEquipData()
|
|
this.bg1:SetActive(true)
|
|
this.bg2:SetActive(true)
|
|
end
|
|
end
|
|
|
|
function this.ShowCurEquipData(index)
|
|
local curWarForce = TalismanManager.CalculateWarForce(curEquipData.did, 0)
|
|
this.powerNum1.text = curWarForce
|
|
this.desc1.text = GetLanguageStrById(curEquipData.itemConfig.ItemDescribe)
|
|
this.powerUPorDown1:SetActive(false)
|
|
if (nextEquipData ~= nil and index == 2) then
|
|
local nextWarForce = TalismanManager.CalculateWarForce(nextEquipData.did, 0)
|
|
if nextWarForce < curWarForce then
|
|
this.powerUPorDown1:SetActive(true)
|
|
this.powerUPorDown1:GetComponent("Image").sprite = this.spLoader:LoadSprite(PowerChangeIconDef[1])
|
|
end
|
|
if nextWarForce > curWarForce then
|
|
this.powerUPorDown1:SetActive(true)
|
|
this.powerUPorDown1:GetComponent("Image").sprite = this.spLoader:LoadSprite(PowerChangeIconDef[2])
|
|
end
|
|
end
|
|
this.qualityText.text = GetStringByEquipQua(curEquipData.itemConfig.Quantity,
|
|
GetQuaStringByEquipQua(curEquipData.itemConfig.Quantity))
|
|
this.curEquipName.text = GetStringByEquipQua(curEquipData.itemConfig.Quantity,
|
|
GetLanguageStrById(curEquipData.itemConfig.Name))
|
|
this.curEquipFrame.sprite = this.spLoader:LoadSprite(curEquipData.frame)
|
|
this.curEquipIcon.sprite = this.spLoader:LoadSprite(curEquipData.icon)
|
|
SetHeroStars(this.spLoader, this.curEquipStar, curEquipData.star, 1, Vector2.New(45, 45), -3)
|
|
|
|
local curTalismanConFigData = ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana, "TalismanaId",
|
|
curEquipData.id, "Level", curEquipData.star)
|
|
if curTalismanConFigData.OpenSkillRules[1] > 0 then
|
|
this.castInfoObject.gameObject:SetActive(true)
|
|
local cfg = ConfigManager.GetConfigData(ConfigName.PassiveSkillConfig, curTalismanConFigData.OpenSkillRules[1])
|
|
this.curCastInfo.text = GetSkillConfigDesc(cfg)
|
|
else
|
|
this.curCastInfo.text = ""
|
|
this.castInfoObject.gameObject:SetActive(false)
|
|
end
|
|
--主属性
|
|
Util.ClearChild(this.curMainProGrid.transform)
|
|
if #curTalismanConFigData.Property > 0 then --
|
|
this.curMainProscroll:SetActive(true)
|
|
for i = 1, #curTalismanConFigData.Property do
|
|
local go = newObject(this.otherProPre)
|
|
go.transform:SetParent(this.curMainProGrid.transform)
|
|
go.transform.localScale = Vector3.one
|
|
go.transform.localPosition = Vector3.zero
|
|
go:SetActive(true)
|
|
local proConFig = ConfigManager.GetConfigData(ConfigName.PropertyConfig, curTalismanConFigData.Property[i]
|
|
[1])
|
|
if proConFig then
|
|
Util.GetGameObject(go.transform, "curProName"):GetComponent("Text").text = GetLanguageStrById(proConFig
|
|
.Info)
|
|
Util.GetGameObject(go.transform, "curProVale"):GetComponent("Text").text = "+" ..
|
|
GetEquipPropertyFormatStr(proConFig.Style, curTalismanConFigData.Property[i][2])
|
|
end
|
|
end
|
|
else
|
|
this.curMainProscroll:SetActive(false)
|
|
end
|
|
--副属性
|
|
Util.ClearChild(this.otherProGrid.transform)
|
|
if curTalismanConFigData.SpecialProperty and #curTalismanConFigData.SpecialProperty > 0 then --
|
|
this.curotherProscroll:SetActive(true)
|
|
for i = 1, #curTalismanConFigData.SpecialProperty do
|
|
local go = newObject(this.otherProPre)
|
|
go.transform:SetParent(this.otherProGrid.transform)
|
|
go.transform.localScale = Vector3.one
|
|
go.transform.localPosition = Vector3.zero
|
|
go:SetActive(true)
|
|
local proConFig = ConfigManager.GetConfigData(ConfigName.PropertyConfig,
|
|
curTalismanConFigData.SpecialProperty[i][2])
|
|
if proConFig then
|
|
Util.GetGameObject(go.transform, "curProName"):GetComponent("Text").text = GetLanguageStrById(proConFig
|
|
.Info) .. "(" .. HeroOccupationDef[curTalismanConFigData.SpecialProperty[i][1]] .. ")"
|
|
Util.GetGameObject(go.transform, "curProVale"):GetComponent("Text").text = "+" ..
|
|
GetEquipPropertyFormatStr(proConFig.Style, curTalismanConFigData.SpecialProperty[i][3])
|
|
end
|
|
end
|
|
else
|
|
this.curotherProscroll:SetActive(false)
|
|
end
|
|
end
|
|
|
|
function this.NextCurEquipData()
|
|
this.powerNum2.text = TalismanManager.CalculateWarForce(nextEquipData.did, 0)
|
|
this.powerUPorDown2:SetActive(false)
|
|
if (TalismanManager.CalculateWarForce(nextEquipData.did, 0) > TalismanManager.CalculateWarForce(curEquipData.did, 0)) then
|
|
this.powerUPorDown2:SetActive(true)
|
|
this.powerUPorDown2:GetComponent("Image").sprite = this.spLoader:LoadSprite(PowerChangeIconDef[1])
|
|
end
|
|
if (TalismanManager.CalculateWarForce(nextEquipData.did, 0) < TalismanManager.CalculateWarForce(curEquipData.did, 0)) then
|
|
this.powerUPorDown2:SetActive(true)
|
|
this.powerUPorDown2:GetComponent("Image").sprite = this.spLoader:LoadSprite(PowerChangeIconDef[2])
|
|
end
|
|
this.qualityText2.text = GetStringByEquipQua(nextEquipData.itemConfig.Quantity,
|
|
GetQuaStringByEquipQua(nextEquipData.itemConfig.Quantity))
|
|
this.nextEquipName.text = GetStringByEquipQua(nextEquipData.itemConfig.Quantity,
|
|
GetLanguageStrById(nextEquipData.itemConfig.Name))
|
|
this.desc2.text = GetLanguageStrById(nextEquipData.itemConfig.ItemDescribe)
|
|
this.nextEquipFrame.sprite = this.spLoader:LoadSprite(nextEquipData.frame)
|
|
this.nextEquipIcon.sprite = this.spLoader:LoadSprite(nextEquipData.icon)
|
|
SetHeroStars(this.spLoader, this.nextEquipStar, nextEquipData.star, 1, Vector2.New(45, 45), -3)
|
|
|
|
|
|
|
|
|
|
local nextTalismanConFigData = ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana, "TalismanaId",
|
|
nextEquipData.id, "Level", nextEquipData.star) --
|
|
if nextTalismanConFigData.OpenSkillRules[1] > 0 then
|
|
this.nextInfoObject.gameObject:SetActive(true)
|
|
local cfg = ConfigManager.GetConfigData(ConfigName.PassiveSkillConfig, nextTalismanConFigData.OpenSkillRules[1])
|
|
this.nextCastInfo.text = GetSkillConfigDesc(cfg)
|
|
else
|
|
this.nextCastInfo.text = ""
|
|
this.nextInfoObject.gameObject:SetActive(false)
|
|
end
|
|
--主属性
|
|
Util.ClearChild(this.nextMainProGrid.transform)
|
|
if #nextTalismanConFigData.Property > 0 then --
|
|
this.nextMainProscroll:SetActive(true)
|
|
for i = 1, #nextTalismanConFigData.Property do
|
|
local go = newObject(this.otherProPre)
|
|
go.transform:SetParent(this.nextMainProGrid.transform)
|
|
go.transform.localScale = Vector3.one
|
|
go.transform.localPosition = Vector3.zero
|
|
go:SetActive(true)
|
|
local proConFig = ConfigManager.GetConfigData(ConfigName.PropertyConfig,
|
|
nextTalismanConFigData.Property[i][1])
|
|
if proConFig then
|
|
Util.GetGameObject(go.transform, "curProName"):GetComponent("Text").text = GetLanguageStrById(proConFig
|
|
.Info)
|
|
Util.GetGameObject(go.transform, "curProVale"):GetComponent("Text").text = "+" ..
|
|
GetEquipPropertyFormatStr(proConFig.Style, nextTalismanConFigData.Property[i][2])
|
|
end
|
|
end
|
|
else
|
|
this.nextMainProscroll:SetActive(false)
|
|
end
|
|
--副属性
|
|
Util.ClearChild(this.nextotherProGrid.transform)
|
|
if nextTalismanConFigData.SpecialProperty and #nextTalismanConFigData.SpecialProperty > 0 then --
|
|
this.nexttherProscroll:SetActive(true)
|
|
for i = 1, #nextTalismanConFigData.SpecialProperty do
|
|
local go = newObject(this.otherProPre)
|
|
go.transform:SetParent(this.nextotherProGrid.transform)
|
|
go.transform.localScale = Vector3.one
|
|
go.transform.localPosition = Vector3.zero
|
|
go:SetActive(true)
|
|
local proConFig = ConfigManager.GetConfigData(ConfigName.PropertyConfig,
|
|
nextTalismanConFigData.SpecialProperty[i][2])
|
|
if proConFig then
|
|
Util.GetGameObject(go.transform, "curProName"):GetComponent("Text").text = GetLanguageStrById(proConFig
|
|
.Info) .. "(" .. HeroOccupationDef[nextTalismanConFigData.SpecialProperty[i][1]] .. ")"
|
|
Util.GetGameObject(go.transform, "curProVale"):GetComponent("Text").text = "+" ..
|
|
GetEquipPropertyFormatStr(proConFig.Style, nextTalismanConFigData.SpecialProperty[i][3])
|
|
end
|
|
end
|
|
else
|
|
this.nexttherProscroll:SetActive(false)
|
|
end
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function RoleTalismanChangePopup:OnClose()
|
|
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function RoleTalismanChangePopup:OnDestroy()
|
|
this.spLoader:Destroy()
|
|
end
|
|
|
|
return RoleTalismanChangePopup
|