46f967a584
EN: 1.6.0.84 CN: 1.6.0.87 JP: 1.6.0.88 KR: 1.6.0.91
155 lines
5.5 KiB
Lua
155 lines
5.5 KiB
Lua
local DepotDiscSkillCtrl = class("DepotDiscSkillCtrl", BaseCtrl)
|
|
DepotDiscSkillCtrl._mapNodeConfig = {
|
|
imgNote = {nCount = 9, sComponentName = "Image"},
|
|
txtNoteCount = {nCount = 9, sComponentName = "TMP_Text"},
|
|
goNoteListBtn = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_NoteDetail"
|
|
},
|
|
btnNoteDetail = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_NoteDetail"
|
|
},
|
|
btnDiscDetail = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_DiscDetail"
|
|
},
|
|
txtDiscDetail = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Depot_Btn_Info"
|
|
},
|
|
txtMainSkillTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Disc_MainSkill_Title"
|
|
},
|
|
txtMainSkillTitleTip = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Disc_MainSkill_TitleTip"
|
|
},
|
|
txtHarmonySkillTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Disc_SubSkill_Title"
|
|
},
|
|
txtHarmonySkillTitleTip = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Disc_SubSkill_TitleTip"
|
|
},
|
|
DiscSkillDepotItem = {nCount = 3},
|
|
goDiscSkillItem = {
|
|
sCtrlName = "Game.UI.TemplateEx.TemplateDiscSkillCardCtrl"
|
|
},
|
|
goHarmonyGrid = {
|
|
sComponentName = "RectTransform"
|
|
},
|
|
HarmonySkillDepotItem = {}
|
|
}
|
|
DepotDiscSkillCtrl._mapEventConfig = {
|
|
SelectDepotDiscSkill = "OnEvent_SelectDepotDiscSkill"
|
|
}
|
|
function DepotDiscSkillCtrl:RefreshDiscSkill(mapNote)
|
|
local tbDisc = {}
|
|
local tbSkillIds = {}
|
|
self.tbMapNote = mapNote
|
|
if nil == self._panel.tbDisc then
|
|
return
|
|
end
|
|
for i = 1, 9 do
|
|
self._mapNode.imgNote[i].gameObject:SetActive(false)
|
|
end
|
|
if next(mapNote) == nil then
|
|
self._mapNode.goNoteListBtn.gameObject:SetActive(false)
|
|
else
|
|
self._mapNode.goNoteListBtn.gameObject:SetActive(true)
|
|
local nNoteIdx = 1
|
|
for k, v in ipairsSorted(mapNote) do
|
|
self._mapNode.imgNote[nNoteIdx].gameObject:SetActive(true)
|
|
local nNoteId = tonumber(k)
|
|
local nNoteCount = tonumber(v)
|
|
local noteCfg = ConfigTable.GetData("SubNoteSkill", nNoteId)
|
|
if self._panel.mapNoteNeed[nNoteId] ~= nil and self._panel.mapNoteNeed[nNoteId] > 0 then
|
|
sIconPath = noteCfg.Icon .. AllEnum.DiscSkillIconSurfix.S_Light
|
|
else
|
|
sIconPath = noteCfg.Icon .. AllEnum.DiscSkillIconSurfix.Small
|
|
end
|
|
self:SetPngSprite(self._mapNode.imgNote[nNoteIdx], sIconPath)
|
|
NovaAPI.SetTMPText(self._mapNode.txtNoteCount[nNoteIdx], nNoteCount)
|
|
nNoteIdx = nNoteIdx + 1
|
|
end
|
|
end
|
|
local nSubSkillCount = 1
|
|
local nSortingOrder = self._panel._nIndex * 100 + 99
|
|
for i = 1, 3 do
|
|
local nDiscId = self._panel.tbDisc[i]
|
|
local discData = self._panel.mapDiscData[nDiscId]
|
|
table.insert(tbDisc, nDiscId)
|
|
if discData ~= nil then
|
|
table.insert(tbSkillIds, discData.nMainSkillId)
|
|
local objCtrl = self:BindCtrlByNode(self._mapNode.DiscSkillDepotItem[i].gameObject, "Game.UI.StarTower.Depot.DepotDiscMainSkillItemCtrl")
|
|
objCtrl:Refresh(discData.nMainSkillId, discData.nRarity, nDiscId, discData.nStar)
|
|
local tbSubSkill = discData:GetAllSubSkill(mapNote)
|
|
for _, nSkillId in pairs(tbSubSkill) do
|
|
local mapCfg = ConfigTable.GetData("SecondarySkill", nSkillId)
|
|
if mapCfg ~= nil and nil == self.tbHarmonySkillDepotItemCtrl[nSubSkillCount] then
|
|
local itemObj = instantiate(self._mapNode.HarmonySkillDepotItem, self._mapNode.goHarmonyGrid)
|
|
itemObj.gameObject:SetActive(true)
|
|
local itemCtrl = self:BindCtrlByNode(itemObj, "Game.UI.StarTower.Depot.DepotDiscSubSkillItemCtrl")
|
|
table.insert(self.tbHarmonySkillDepotItemCtrl, itemCtrl)
|
|
itemCtrl:SetItem(nSkillId, nDiscId, mapNote, nSortingOrder)
|
|
elseif nil ~= mapCfg then
|
|
self.tbHarmonySkillDepotItemCtrl[nSubSkillCount]:SetItem(nSkillId, nDiscId, mapNote, nSortingOrder)
|
|
end
|
|
nSubSkillCount = nSubSkillCount + 1
|
|
end
|
|
end
|
|
end
|
|
if #self.tbHarmonySkillDepotItemCtrl < 6 then
|
|
for i = #self.tbHarmonySkillDepotItemCtrl + 1, 6 do
|
|
if nil == self.tbHarmonySkillDepotItemCtrl[i] then
|
|
local itemObj = instantiate(self._mapNode.HarmonySkillDepotItem, self._mapNode.goHarmonyGrid)
|
|
itemObj.gameObject:SetActive(true)
|
|
local itemCtrl = self:BindCtrlByNode(itemObj, "Game.UI.StarTower.Depot.DepotDiscSubSkillItemCtrl")
|
|
table.insert(self.tbHarmonySkillDepotItemCtrl, itemCtrl)
|
|
end
|
|
self.tbHarmonySkillDepotItemCtrl[i]:SetItem(nil)
|
|
end
|
|
end
|
|
if PlayerData.Guide:GetGuideState() then
|
|
EventManager.Hit("Guide_StarTowerDepotDisc", 1 < nSubSkillCount)
|
|
end
|
|
if 0 < #tbDisc and 0 < #tbSkillIds then
|
|
EventManager.Hit("SelectDepotDiscSkill", tbDisc[1], tbSkillIds[1], nil, false)
|
|
end
|
|
end
|
|
function DepotDiscSkillCtrl:Awake()
|
|
self.tbHarmonySkillDepotItemCtrl = {}
|
|
self.tbEmpty = {}
|
|
end
|
|
function DepotDiscSkillCtrl:OnEnable()
|
|
end
|
|
function DepotDiscSkillCtrl:OnDisable()
|
|
for i, v in pairs(self.tbHarmonySkillDepotItemCtrl) do
|
|
self:UnbindCtrlByNode(v)
|
|
self.tbHarmonySkillDepotItemCtrl[i] = nil
|
|
end
|
|
self.tbHarmonySkillDepotItemCtrl = {}
|
|
self.tbEmpty = {}
|
|
end
|
|
function DepotDiscSkillCtrl:OnDestroy()
|
|
end
|
|
function DepotDiscSkillCtrl:OnRelease()
|
|
end
|
|
function DepotDiscSkillCtrl:Clear()
|
|
end
|
|
function DepotDiscSkillCtrl:OnBtnClick_NoteDetail()
|
|
EventManager.Hit(EventId.OpenPanel, PanelId.NoteSkillInfo, self.tbMapNote)
|
|
end
|
|
function DepotDiscSkillCtrl:OnEvent_SelectDepotDiscSkill(nDiscId, nMainSkillId, nSubSkillId)
|
|
local discData = self._panel.mapDiscData[nDiscId]
|
|
self._mapNode.goDiscSkillItem:Refresh(nDiscId, nMainSkillId, nSubSkillId, discData.nStar)
|
|
self._mapNode.goDiscSkillItem:ChangeWordRaycast(true)
|
|
end
|
|
function DepotDiscSkillCtrl:OnBtnClick_DiscDetail()
|
|
EventManager.Hit(EventId.OpenPanel, PanelId.DiscSkill, self._panel.tbDisc, self.tbMapNote, self._panel.mapDiscData)
|
|
end
|
|
return DepotDiscSkillCtrl
|