5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
138 lines
5.6 KiB
Lua
138 lines
5.6 KiB
Lua
local DepotDiscSkillItemCtrl = class("DepotDiscSkillItemCtrl", BaseCtrl)
|
|
DepotDiscSkillItemCtrl._mapNodeConfig = {
|
|
imgNone = {},
|
|
goInfo = {},
|
|
imgIcon = {sComponentName = "Image"},
|
|
imgIconBg = {sComponentName = "Image"},
|
|
txtName = {sComponentName = "TMP_Text"},
|
|
txtLevelMax = {sComponentName = "TMP_Text"},
|
|
txtLevel = {sComponentName = "TMP_Text"},
|
|
goNote = {
|
|
sCtrlName = "Game.UI.TemplateEx.TemplateDiscMultiNoteCtrl"
|
|
},
|
|
imgLock = {},
|
|
imgChoose = {}
|
|
}
|
|
DepotDiscSkillItemCtrl._mapEventConfig = {}
|
|
DepotDiscSkillItemCtrl._mapRedDotConfig = {}
|
|
function DepotDiscSkillItemCtrl:SetNone()
|
|
self._mapNode.imgNone:SetActive(true)
|
|
self._mapNode.goInfo:SetActive(false)
|
|
end
|
|
function DepotDiscSkillItemCtrl:SetSkillInfo(skillCfg)
|
|
NovaAPI.SetTMPText(self._mapNode.txtName, skillCfg.Name)
|
|
self:SetPngSprite(self._mapNode.imgIcon, skillCfg.Icon .. AllEnum.DiscSkillIconSurfix.Small)
|
|
self:SetPngSprite(self._mapNode.imgIconBg, skillCfg.IconBg .. AllEnum.DiscSkillIconSurfix.Small)
|
|
end
|
|
function DepotDiscSkillItemCtrl:InitDiscSkill(mapSkill)
|
|
self._mapNode.imgNone:SetActive(false)
|
|
self._mapNode.goInfo:SetActive(true)
|
|
if mapSkill.nType == AllEnum.DiscSkillType.Common then
|
|
self:InitDiscCommonSkill(mapSkill)
|
|
else
|
|
self:InitDiscPassiveSkill(mapSkill)
|
|
end
|
|
end
|
|
function DepotDiscSkillItemCtrl:InitDiscCommonSkill(mapSkill)
|
|
self._mapNode.imgChoose.gameObject:SetActive(false)
|
|
local skillCfg = ConfigTable.GetData("DiscCommonSkill", mapSkill.nId)
|
|
if skillCfg == nil then
|
|
return
|
|
end
|
|
self:SetSkillInfo(skillCfg)
|
|
local nLevel = mapSkill.nLevel
|
|
local nMaxLevel = mapSkill.nMaxLevel
|
|
local bMaxLv = nMaxLevel == nLevel
|
|
self._mapNode.txtLevelMax.gameObject:SetActive(bMaxLv)
|
|
self._mapNode.txtLevel.gameObject:SetActive(not bMaxLv)
|
|
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("StarTower_Depot_Note_Skill_Lv"), nLevel, nMaxLevel))
|
|
NovaAPI.SetTMPText(self._mapNode.txtLevelMax, orderedFormat(ConfigTable.GetUIText("StarTower_Depot_Note_Skill_MaxLv"), nLevel, nMaxLevel))
|
|
local bUnlock = mapSkill.nLevel > 0
|
|
self._mapNode.imgLock.gameObject:SetActive(not bUnlock)
|
|
local nLayer = nLevel == 0 and 1 or nLevel
|
|
self._mapNode.goNote:SetNoteItem(skillCfg.ActiveNoteType, skillCfg.ActiveNoteNum[nLayer])
|
|
end
|
|
function DepotDiscSkillItemCtrl:InitDiscPassiveSkill(mapSkill)
|
|
self._mapNode.imgChoose.gameObject:SetActive(false)
|
|
local skillCfg = ConfigTable.GetData("DiscPassiveSkill", mapSkill.nId)
|
|
if skillCfg == nil then
|
|
return
|
|
end
|
|
self:SetSkillInfo(skillCfg)
|
|
local nLevel = mapSkill.nLevel
|
|
local nMaxLevel = mapSkill.nMaxLevel
|
|
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("StarTower_Depot_Note_Skill_Lv"), nLevel, nMaxLevel))
|
|
NovaAPI.SetTMPText(self._mapNode.txtLevelMax, orderedFormat(ConfigTable.GetUIText("StarTower_Depot_Note_Skill_MaxLv"), nLevel, nMaxLevel))
|
|
local bUnlock = 0 < nLevel
|
|
local bMaxLv = nLevel == nMaxLevel
|
|
self._mapNode.imgLock.gameObject:SetActive(not bUnlock)
|
|
self._mapNode.txtLevelMax.gameObject:SetActive(bMaxLv)
|
|
self._mapNode.txtLevel.gameObject:SetActive(not bMaxLv)
|
|
local nLayer = nLevel == 0 and 1 or nLevel
|
|
local tbLayerNote = decodeJson(skillCfg["ActiveParam" .. nLayer])
|
|
local tbNoteId = {}
|
|
local nNoteCount = 0
|
|
for k, v in pairs(tbLayerNote) do
|
|
local nNoteId = tonumber(k)
|
|
local nCount = tonumber(v)
|
|
if nNoteId then
|
|
nNoteCount = nNoteCount + nCount
|
|
table.insert(tbNoteId, nNoteId)
|
|
end
|
|
end
|
|
self._mapNode.goNote:SetNoteItem(tbNoteId, nNoteCount)
|
|
end
|
|
function DepotDiscSkillItemCtrl:SetSelect(bSelect)
|
|
self._mapNode.imgChoose.gameObject:SetActive(bSelect)
|
|
end
|
|
function DepotDiscSkillItemCtrl:InitDiscSkillTips(tbSkill)
|
|
if tbSkill.nType == AllEnum.DiscSkillType.Common then
|
|
self:InitDiscCommonSkillTip(tbSkill)
|
|
else
|
|
self:InitDiscPassiveSkillTip(tbSkill)
|
|
end
|
|
end
|
|
function DepotDiscSkillItemCtrl:InitDiscCommonSkillTip(tbSkill)
|
|
local skillCfg = ConfigTable.GetData("DiscCommonSkill", tbSkill.nId)
|
|
if skillCfg == nil then
|
|
return
|
|
end
|
|
self:SetSkillInfo(skillCfg)
|
|
local nLevel = tbSkill.nLevel
|
|
local bMaxLv = tbSkill.nMaxLevel == nLevel
|
|
self._mapNode.txtLevelMax.gameObject:SetActive(bMaxLv)
|
|
self._mapNode.txtLevel.gameObject:SetActive(not bMaxLv)
|
|
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("StarTower_Depot_Note_Skill_Lv"), nLevel, tbSkill.nMaxLevel))
|
|
NovaAPI.SetTMPText(self._mapNode.txtLevelMax, orderedFormat(ConfigTable.GetUIText("StarTower_Depot_Note_Skill_MaxLv"), nLevel, tbSkill.nMaxLevel))
|
|
local nLayer = nLevel == 0 and 1 or nLevel
|
|
self._mapNode.goNote:SetNoteItem(skillCfg.ActiveNoteType, skillCfg.ActiveNoteNum[nLayer])
|
|
end
|
|
function DepotDiscSkillItemCtrl:InitDiscPassiveSkillTip(mapSkill)
|
|
local skillCfg = ConfigTable.GetData("DiscPassiveSkill", mapSkill.nId)
|
|
if skillCfg == nil then
|
|
return
|
|
end
|
|
self:SetSkillInfo(skillCfg)
|
|
local nLevel = mapSkill.nLevel
|
|
local nMaxLevel = mapSkill.nMaxLevel
|
|
NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("StarTower_Depot_Note_Skill_Lv"), nLevel, nMaxLevel))
|
|
NovaAPI.SetTMPText(self._mapNode.txtLevelMax, orderedFormat(ConfigTable.GetUIText("StarTower_Depot_Note_Skill_MaxLv"), nLevel, nMaxLevel))
|
|
local bMaxLv = nLevel == nMaxLevel
|
|
self._mapNode.txtLevelMax.gameObject:SetActive(bMaxLv)
|
|
self._mapNode.txtLevel.gameObject:SetActive(not bMaxLv)
|
|
local nLayer = nLevel == 0 and 1 or nLevel
|
|
local tbLayerNote = decodeJson(skillCfg["ActiveParam" .. nLayer])
|
|
local tbNoteId = {}
|
|
local nNoteCount = 0
|
|
for k, v in pairs(tbLayerNote) do
|
|
local nNoteId = tonumber(k)
|
|
local nCount = tonumber(v)
|
|
if nNoteId then
|
|
nNoteCount = nNoteCount + nCount
|
|
table.insert(tbNoteId, nNoteId)
|
|
end
|
|
end
|
|
self._mapNode.goNote:SetNoteItem(tbNoteId, nNoteCount)
|
|
end
|
|
return DepotDiscSkillItemCtrl
|