Files
StellaSora_DataLua/lua/game/ui/templateex/templateskillselectctrl.lua
SL1900 5e0d58cfad Initial version - 1.2.0.60
EN: 1.2.0.60
CN: 1.2.0.61
JP: 1.2.0.63
KR: 1.2.0.67
2025-12-03 01:00:00 +09:00

71 lines
3.2 KiB
Lua

local TemplateSkillSelectCtrl = class("TemplateSkillSelectCtrl", BaseCtrl)
TemplateSkillSelectCtrl._mapNodeConfig = {
imgBg = {nCount = 2, sComponentName = "Image"},
imgIcon = {sComponentName = "Image"},
imgType = {sComponentName = "Image"},
txtSkillLevelTxt = {
sComponentName = "TMP_Text",
sLanguageId = "CharacterSkill_Level"
},
txtSkillLevel = {nCount = 2, sComponentName = "TMP_Text"},
txtAddLv = {sComponentName = "TMP_Text"},
imgLv = {},
Select = {},
imgSelect = {},
animRoot = {sNodeName = "AnimRoot", sComponentName = "Animator"},
txtSkillName = {sComponentName = "TMP_Text"},
imgSkillTypeBg = {sComponentName = "Image"},
txtSkillType = {sComponentName = "TMP_Text"},
imgSkillType = {sComponentName = "Image"}
}
TemplateSkillSelectCtrl._mapEventConfig = {}
function TemplateSkillSelectCtrl:SetSkill(nSkillId, nSkillIndex, nSkillLevel, nElementType, nAddLv)
self._mapNode.Select:SetActive(false)
self._mapNode.imgLv.gameObject:SetActive(true)
self._mapNode.imgType.gameObject:SetActive(true)
local skillCfg = ConfigTable.GetData_Skill(nSkillId)
if nil == skillCfg then
printError("找不到技能配置!!技能id = " .. nSkillId)
return
end
local sName = AllEnum.ElementIconType.SkillEx .. nElementType
self:SetAtlasSprite(self._mapNode.imgBg[1], "12_rare", sName)
local skillShowCfg = AllEnum.SkillTypeShow[nSkillIndex]
local bgIconIndex = skillShowCfg.bgIconIndex
self:SetAtlasSprite(self._mapNode.imgBg[2], "10_ico", "zs_character_skill_" .. bgIconIndex)
local _, color = ColorUtility.TryParseHtmlString(AllEnum.SkillElementBgColor[nElementType])
NovaAPI.SetImageColor(self._mapNode.imgBg[2], Color(color.r, color.g, color.b, 0.19607843137254902))
local skillTypeIconIdx = skillShowCfg.iconIndex
self:SetAtlasSprite(self._mapNode.imgType, "05_language", "zs_character_skill_text_" .. skillTypeIconIdx)
NovaAPI.SetImageNativeSize(self._mapNode.imgType)
self:SetPngSprite(self._mapNode.imgIcon, skillCfg.Icon)
local _, _color = ColorUtility.TryParseHtmlString(skillShowCfg.bgColor)
NovaAPI.SetImageColor(self._mapNode.imgSkillTypeBg, _color)
NovaAPI.SetTMPText(self._mapNode.txtSkillLevel[1], nSkillLevel)
NovaAPI.SetTMPText(self._mapNode.txtSkillLevel[2], nSkillLevel + nAddLv)
self._mapNode.txtAddLv.gameObject:SetActive(0 < nAddLv)
if 0 < nAddLv then
NovaAPI.SetTMPText(self._mapNode.txtAddLv, "(+" .. nAddLv .. ")")
end
NovaAPI.SetTMPText(self._mapNode.txtSkillName, skillCfg.Title)
self:SetAtlasSprite(self._mapNode.imgSkillType, "05_language", "zs_character_skill_text_" .. skillTypeIconIdx)
NovaAPI.SetImageNativeSize(self._mapNode.imgSkillType)
NovaAPI.SetTMPText(self._mapNode.txtSkillType, ConfigTable.GetUIText(skillShowCfg.sLanguageId))
end
function TemplateSkillSelectCtrl:SetSelect(bSelect)
self._mapNode.imgSelect.gameObject:SetActive(bSelect)
self._mapNode.imgLv:SetActive(not bSelect)
self._mapNode.imgType.gameObject:SetActive(not bSelect)
if bSelect then
self._mapNode.Select:SetActive(true)
self._mapNode.animRoot:Play("tc_skill_char_select")
else
self._mapNode.animRoot:Play("tc_skill_char_close")
end
end
function TemplateSkillSelectCtrl:Awake()
end
function TemplateSkillSelectCtrl:OnDestroy()
end
return TemplateSkillSelectCtrl