Files
StellaSora_DataLua/lua/game/ui/templateex/templateartwordsctrl.lua
T
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

87 lines
2.5 KiB
Lua

local TemplateArtWordsCtrl = class("TemplateArtWordsCtrl", BaseCtrl)
local NumberEnum = {
[0] = {
level = "zs_vestige_level_0"
},
[1] = {
level = "zs_vestige_level_1"
},
[2] = {
level = "zs_vestige_level_2"
},
[3] = {
level = "zs_vestige_level_3"
},
[4] = {
level = "zs_vestige_level_4"
},
[5] = {
level = "zs_vestige_level_5"
},
[6] = {
level = "zs_vestige_level_6"
},
[7] = {
level = "zs_vestige_level_7"
},
[8] = {
level = "zs_vestige_level_8"
},
[9] = {
level = "zs_vestige_level_9"
}
}
local FontType = {Bold = 1, Level = 2}
TemplateArtWordsCtrl._mapNodeConfig = {
imgNum = {sComponentName = "Image", nCount = 3}
}
TemplateArtWordsCtrl._mapEventConfig = {}
function TemplateArtWordsCtrl:SetText(nCount, nType)
if nCount == nil then
printError("设置失败, 内容为nil")
return
end
if type(nCount) == "number" then
self:SetNum(nCount, nType)
else
self:SetPunctuation(nCount, nType)
end
end
function TemplateArtWordsCtrl:SetNum(nCount, nType)
if nCount < 0 or 999 < nCount then
printError("设置数字失败, 数字区间0~999, 当前数字: " .. nCount)
return
end
local nHundreds, _ = math.modf(nCount / 100 % 10)
local nTens, _ = math.modf(nCount / 10 % 10)
local nOnes, _ = math.modf(nCount % 10)
if 0 < nHundreds then
NovaAPI.SetImageSpriteAsset(self._mapNode.imgNum[1], self:GetSpriteByFontStyle(nType, nHundreds))
NovaAPI.SetImageNativeSize(self._mapNode.imgNum[1])
self._mapNode.imgNum[1].gameObject:SetActive(true)
else
self._mapNode.imgNum[1].gameObject:SetActive(false)
end
if 0 < nHundreds or 0 < nTens then
NovaAPI.SetImageSpriteAsset(self._mapNode.imgNum[2], self:GetSpriteByFontStyle(nType, nTens))
NovaAPI.SetImageNativeSize(self._mapNode.imgNum[2])
self._mapNode.imgNum[2].gameObject:SetActive(true)
else
self._mapNode.imgNum[2].gameObject:SetActive(false)
end
NovaAPI.SetImageSpriteAsset(self._mapNode.imgNum[3], self:GetSpriteByFontStyle(nType, nOnes))
NovaAPI.SetImageNativeSize(self._mapNode.imgNum[3])
self._mapNode.imgNum[3].gameObject:SetActive(true)
end
function TemplateArtWordsCtrl:SetPunctuation(sText, nType)
self._mapNode.imgNum[1].gameObject:SetActive(false)
self._mapNode.imgNum[2].gameObject:SetActive(false)
NovaAPI.SetImageSpriteAsset(self._mapNode.imgNum[3], self:GetSpriteByFontStyle(nType, sText))
NovaAPI.SetImageNativeSize(self._mapNode.imgNum[3])
self._mapNode.imgNum[3].gameObject:SetActive(true)
end
function TemplateArtWordsCtrl:GetSpriteByFontStyle(nType, nNumber)
return self:GetAtlasSprite("05_number", NumberEnum[nNumber].Level)
end
return TemplateArtWordsCtrl