195 lines
8.1 KiB
Lua
195 lines
8.1 KiB
Lua
require("Base/BasePanel")
|
|
HandBookTalismanInfoPanel = Inherit(BasePanel)
|
|
local mainProGrid = {}
|
|
local otherProGrid = {}
|
|
local curTalismanId
|
|
local GetAllTalismanIds = {}
|
|
local index
|
|
local starType = 1--1 初始星级 2 满星
|
|
local WarPower = 0
|
|
local curStar = 0
|
|
local itemConfig = {}
|
|
local talismanConFig = {}
|
|
--初始化组件(用于子类重写)
|
|
function HandBookTalismanInfoPanel:InitComponent()
|
|
self.spLoader = SpriteLoader.New()
|
|
|
|
self.BtnBack = Util.GetGameObject(self.transform, "btnBack")
|
|
self.btnStart = Util.GetGameObject(self.transform, "btnList/btnStart")
|
|
self.btnMaxStar = Util.GetGameObject(self.transform, "btnList/btnMaxStar")
|
|
self.leftBtn = Util.GetGameObject(self.transform, "leftBtn/GameObject")
|
|
self.rightBtn = Util.GetGameObject(self.transform, "rightBtn/GameObject")
|
|
self.selectBtn = Util.GetGameObject(self.transform, "btnList/selectBtn")
|
|
|
|
self.haveAddImage = Util.GetGameObject(self.transform, "TalismanParent/haveAddImage"):GetComponent("Image")
|
|
self.talismanIcon = Util.GetGameObject(self.transform, "TalismanParent/haveAddImage/icon"):GetComponent("Image")
|
|
self.talismanName = Util.GetGameObject(self.transform, "TalismanParent/haveAddImage/name/name"):GetComponent("Text")
|
|
self.talismanStarGrid = Util.GetGameObject(self.transform, "TalismanParent/haveAddImage/star")
|
|
self.force = Util.GetGameObject(self.transform, "powerBtn/value"):GetComponent("Text")
|
|
for i = 1, 2 do
|
|
mainProGrid[i] = Util.GetGameObject(self.transform, "downGo/proGrid/mainPro/pro ("..i..")")
|
|
end
|
|
for i = 1, 2 do
|
|
otherProGrid[i] = Util.GetGameObject(self.transform, "downGo/proGrid/otherPro/pro ("..i..")")
|
|
end
|
|
self.otherProGrid = Util.GetGameObject(self.transform, "downGo/proGrid/otherPro")
|
|
self.skillInfoText = Util.GetGameObject(self.transform, "downGo/skillInfo/Text"):GetComponent("Text")
|
|
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function HandBookTalismanInfoPanel:BindEvent()
|
|
|
|
Util.AddClick(self.BtnBack, function()
|
|
self:ClosePanel()
|
|
end)
|
|
Util.AddClick(self.leftBtn, function()
|
|
self:LeftBtnOnClick()
|
|
end)
|
|
|
|
Util.AddClick(self.rightBtn, function()
|
|
self:RightBtnOnClick()
|
|
end)
|
|
Util.AddClick(self.btnStart, function()
|
|
starType = 1
|
|
self:SetSelectBtn(self.btnStart, Language[11093])
|
|
self:OnShowPanelData()
|
|
end)
|
|
Util.AddClick(self.btnMaxStar, function()
|
|
starType = 2
|
|
self:SetSelectBtn(self.btnMaxStar, Language[11094])
|
|
self:OnShowPanelData()
|
|
end)
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function HandBookTalismanInfoPanel:AddListener()
|
|
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function HandBookTalismanInfoPanel:RemoveListener()
|
|
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function HandBookTalismanInfoPanel:OnOpen(_curTalismanId)
|
|
|
|
curTalismanId = _curTalismanId
|
|
local GetAllTalismanDatas = {}
|
|
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.ItemConfig)) do
|
|
if v.ItemType==14 then
|
|
table.insert(GetAllTalismanDatas,v)
|
|
end
|
|
end
|
|
GetAllTalismanIds = {}
|
|
table.sort(GetAllTalismanDatas, function(a,b)
|
|
if a.Quantity == b.Quantity then
|
|
return a.Id < b.Id
|
|
else
|
|
return a.Quantity > b.Quantity
|
|
end
|
|
end)
|
|
for i = 1, #GetAllTalismanDatas do
|
|
table.insert(GetAllTalismanIds,GetAllTalismanDatas[i].Id)
|
|
end
|
|
end
|
|
|
|
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
|
|
function HandBookTalismanInfoPanel:OnShow()
|
|
|
|
for i = 1, #GetAllTalismanIds do
|
|
if curTalismanId == GetAllTalismanIds[i] then
|
|
index = i
|
|
end
|
|
end
|
|
starType = 1
|
|
self:SetSelectBtn(self.btnStart, Language[11093])
|
|
self:OnShowPanelData()
|
|
end
|
|
function HandBookTalismanInfoPanel:OnShowPanelData()
|
|
if starType == 1 then -- 初始星级
|
|
curStar = TalismanManager.AllTalismanStartStar[curTalismanId]
|
|
WarPower = TalismanManager.CalculateWarForceBySid(curTalismanId,curStar,0)
|
|
itemConfig = ConfigManager.GetConfigData(ConfigName.ItemConfig,curTalismanId)
|
|
talismanConFig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana, "TalismanaId", curTalismanId, "Level", curStar)
|
|
elseif starType == 2 then -- 满星级
|
|
curStar = TalismanManager.AllTalismanEndStar[curTalismanId]
|
|
WarPower = TalismanManager.CalculateWarForceBySid(curTalismanId,curStar,0)
|
|
itemConfig = ConfigManager.GetConfigData(ConfigName.ItemConfig,curTalismanId)
|
|
talismanConFig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.EquipTalismana, "TalismanaId", curTalismanId, "Level", curStar)
|
|
end
|
|
self:OnShowTalismanlData()
|
|
end
|
|
function HandBookTalismanInfoPanel:OnShowTalismanlData()
|
|
self.force.text = WarPower
|
|
self.talismanIcon.sprite = self.spLoader:LoadSprite(GetResourcePath(itemConfig.ResourceID))
|
|
self.haveAddImage.sprite = self.spLoader:LoadSprite(TalismanBubble[itemConfig.Quantity])
|
|
self.talismanName.text = GetLanguageStrById(itemConfig.Name)
|
|
SetHeroStars(self.spLoader, self.talismanStarGrid, curStar)
|
|
|
|
for i = 1, #mainProGrid do
|
|
if #talismanConFig.Property >= i then
|
|
mainProGrid[i]:SetActive(true)
|
|
self:ShowSingleSkillData(1, mainProGrid[i],talismanConFig.Property[i])
|
|
else
|
|
mainProGrid[i]:SetActive(false)
|
|
end
|
|
end
|
|
self.otherProGrid:SetActive(talismanConFig.SpecialProperty and #talismanConFig.SpecialProperty > 0)
|
|
for i = 1, #otherProGrid do
|
|
if talismanConFig.SpecialProperty and #talismanConFig.SpecialProperty >= i then
|
|
otherProGrid[i]:SetActive(true)
|
|
self:ShowSingleSkillData(2, otherProGrid[i],talismanConFig.SpecialProperty[i])
|
|
else
|
|
otherProGrid[i]:SetActive(false)
|
|
end
|
|
end
|
|
local cfg = ConfigManager.GetConfigData(ConfigName.PassiveSkillConfig, talismanConFig.OpenSkillRules[1])
|
|
self.skillInfoText.text = GetSkillConfigDesc(cfg)
|
|
end
|
|
function HandBookTalismanInfoPanel:ShowSingleSkillData(_type,_go,_curData,_nextData)
|
|
if _type ==1 then--1 主属性
|
|
local proConFig = ConfigManager.GetConfigData(ConfigName.PropertyConfig,_curData[1])
|
|
Util.GetGameObject(_go.transform, "proName"):GetComponent("Text").text = GetLanguageStrById(proConFig.Info)
|
|
Util.GetGameObject(_go.transform, "proValue"):GetComponent("Text").text = GetEquipPropertyFormatStr(proConFig.Style,_curData[2])
|
|
--Util.GetGameObject(_go.transform, "nextProValue"):GetComponent("Text").text = GetEquipPropertyFormatStr(proConFig.Style,_nextData[2])
|
|
elseif _type ==2 then--1 副属性
|
|
local proConFig = ConfigManager.GetConfigData(ConfigName.PropertyConfig,_curData[2])
|
|
Util.GetGameObject(_go.transform, "proName"):GetComponent("Text").text = GetLanguageStrById(proConFig.Info).."("..HeroOccupationDef[_curData[1]].."):"
|
|
Util.GetGameObject(_go.transform, "proValue"):GetComponent("Text").text = GetEquipPropertyFormatStr(proConFig.Style,_curData[3])
|
|
--Util.GetGameObject(_go.transform, "nextProValue"):GetComponent("Text").text = GetEquipPropertyFormatStr(proConFig.Style,_nextData[3])
|
|
end
|
|
end
|
|
--右切换按钮点击
|
|
function HandBookTalismanInfoPanel:RightBtnOnClick()
|
|
index = (index + 1 <= #GetAllTalismanIds and index + 1 or 1)
|
|
curTalismanId = GetAllTalismanIds[index]
|
|
self:OnShowPanelData()
|
|
end
|
|
--左切换按钮点击
|
|
function HandBookTalismanInfoPanel:LeftBtnOnClick()
|
|
index = (index - 1 > 0 and index - 1 or #GetAllTalismanIds)
|
|
curTalismanId = GetAllTalismanIds[index]
|
|
self:OnShowPanelData()
|
|
end
|
|
--页签选中效果设置
|
|
function HandBookTalismanInfoPanel:SetSelectBtn(_btn, btnText)
|
|
self.selectBtn.transform:SetParent(_btn.transform)
|
|
self.selectBtn.transform.localScale = Vector3.one
|
|
self.selectBtn.transform.localPosition=Vector3.zero
|
|
Util.GetGameObject(self.selectBtn.transform, "Text"):GetComponent("Text").text = btnText
|
|
end
|
|
function HandBookTalismanInfoPanel:OnClose()
|
|
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function HandBookTalismanInfoPanel:OnDestroy()
|
|
self.spLoader:Destroy()
|
|
|
|
end
|
|
|
|
return HandBookTalismanInfoPanel
|
|
|