Files
StellaSora_DataLua/lua/game/ui/soldier/bosstemplate/soldierbosstemplateitemctrl.lua
T
SL1900 08b515afd9 Major Update - 2.0.0.143
EN: 2.0.0.143
CN: 2.0.0.142
JP: 2.0.0.145
KR: 2.0.0.150
2026-10-20 13:00:00 +09:00

116 lines
4.2 KiB
Lua

local SoldierBossTemplateItemCtrl = class("SoldierBossTemplateItemCtrl", BaseCtrl)
SoldierBossTemplateItemCtrl._mapNodeConfig = {
animRoot = {
sNodeName = "AnimRootMain",
sComponentName = "Animator"
},
imgCharHead = {sComponentName = "Image"},
txtCharName = {sComponentName = "TMP_Text"},
goPersonality = {nCount = 3},
txtPersonality1 = {
sComponentName = "TMP_Text",
sLanguageId = "Personality_Instinct"
},
txtPersonality2 = {
sComponentName = "TMP_Text",
sLanguageId = "Personality_Analyze"
},
txtPersonality3 = {
sComponentName = "TMP_Text",
sLanguageId = "Personality_Chaos"
},
imgPersonalityPercent = {nCount = 3, sComponentName = "Image"},
txtSkillTitle = {
sComponentName = "TMP_Text",
sLanguageId = "Soldier_Boss_Template_Skill_Title"
},
imgSkill = {sComponentName = "Image"},
imgSkillInitiative = {},
txtSkillInitiative = {
sComponentName = "TMP_Text",
sLanguageId = "Soldier_BossSkill_Active"
},
imgSkillPassive = {},
txtSkillPassive = {
sComponentName = "TMP_Text",
sLanguageId = "Soldier_BossSkill_Passive"
},
txt_bossSkillName = {sComponentName = "TMP_Text"},
txt_bossSkillType = {sComponentName = "TMP_Text"},
txt_Desc = {sComponentName = "TMP_Text"},
goLocked = {sNodeName = "rtLock"},
txt_Lock = {sComponentName = "TMP_Text"},
btnConfirm = {
sComponentName = "UIButton",
callback = "OnBtnClick_Confirm"
},
txtConfirm = {
sComponentName = "TMP_Text",
sLanguageId = "Soldier_BossTemplate_Confirm"
}
}
SoldierBossTemplateItemCtrl._mapEventConfig = {}
SoldierBossTemplateItemCtrl._mapRedDotConfig = {}
function SoldierBossTemplateItemCtrl:Awake()
end
function SoldierBossTemplateItemCtrl:SetItemData(mapData)
self.mapData = mapData
local nTemplateId = mapData.nId
local mapCfg = ConfigTable.GetData("SoldierBossTemplate", nTemplateId)
if mapCfg ~= nil then
NovaAPI.SetTMPText(self._mapNode.txtCharName, mapCfg.Name or "")
self:SetPngSprite(self._mapNode.imgCharHead, mapCfg.SoldierPlayerHead)
self:SetPngSprite(self._mapNode.imgSkill, mapCfg.SoldierRoleSkillIcon)
NovaAPI.SetTMPText(self._mapNode.txt_bossSkillName, mapCfg.Title or "")
NovaAPI.SetTMPText(self._mapNode.txt_Desc, mapCfg.Desc or "")
local nSkillType = mapCfg.SoldierRoleSkillType
self._mapNode.imgSkillPassive.gameObject:SetActive(nSkillType == GameEnum.SoldierRoleSkillType.SoldierRoleSkillType_1 or nSkillType == GameEnum.SoldierRoleSkillType.SoldierRoleSkillType_3)
self._mapNode.imgSkillInitiative.gameObject:SetActive(nSkillType == GameEnum.SoldierRoleSkillType.SoldierRoleSkillType_2 or nSkillType == GameEnum.SoldierRoleSkillType.SoldierRoleSkillType_4)
local showCfg = AllEnum.SoldierBossSkillType[nSkillType]
if showCfg ~= nil then
NovaAPI.SetTMPText(self._mapNode.txt_bossSkillType, ConfigTable.GetUIText(showCfg.sLanguageId))
end
for i = 1, 3 do
local nType = 0
if i == 1 then
nType = mapCfg.Personality_Intuition
elseif i == 2 then
nType = mapCfg.Personality_Analysis
elseif i == 3 then
nType = mapCfg.Personality_Chaos
end
local mapGradeCfg = ConfigTable.GetData("SoldierBossPersonalityGrade", nType)
if mapGradeCfg ~= nil then
self:SetPngSprite(self._mapNode.imgPersonalityPercent[i], mapGradeCfg.Icon)
end
end
if mapData.nUnlock == 0 then
local nNodeId = mapCfg.TechNodeId
local mapTechNodeCfg = ConfigTable.GetData("SoldierTechNode", nNodeId)
if mapTechNodeCfg ~= nil then
local sLock = orderedFormat(ConfigTable.GetUIText("Soldier_BossTemplate_Lock"), mapTechNodeCfg.Name)
NovaAPI.SetTMPText(self._mapNode.txt_Lock, sLock)
end
end
end
self._mapNode.goLocked:SetActive(mapData.nUnlock == 0)
self._mapNode.btnConfirm.gameObject:SetActive(false)
end
function SoldierBossTemplateItemCtrl:SetSelected(bSel)
if self.mapData == nil or self.mapData.nUnlock == 0 then
return
end
self._mapNode.btnConfirm.gameObject:SetActive(bSel)
if bSel then
self._mapNode.animRoot:Play("BossTemplateItem_up", 0, 0)
else
self._mapNode.animRoot:Play("BossTemplateItem_down", 0, 0)
end
end
function SoldierBossTemplateItemCtrl:OnBtnClick_Confirm()
PlayerData.SoldierData:GetCurLevelData():SendSelectBossAbility(self.mapData.nId, function()
EventManager.Hit(EventId.ClosePanel, PanelId.SoldierBossTemplateSelect)
end)
end
return SoldierBossTemplateItemCtrl