Files
StellaSora_DataLua/lua/game/ui/startower/note/notecountitemctrl.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
3.0 KiB
Lua

local NoteCountItemCtrl = class("NoteCountItemCtrl", BaseCtrl)
NoteCountItemCtrl._mapNodeConfig = {
imgNoteBg = {sComponentName = "Image"},
imgNote = {sComponentName = "Image"},
txtNoteCount = {sComponentName = "TMP_Text"},
red = {},
green = {},
blue = {},
yellow = {},
purple = {},
goNoteFx = {
sComponentName = "RectTransform"
},
imgNote_red = {},
imgNote_yellow = {},
imgNote_green = {},
imgNote_blue = {},
imgNote_purple = {}
}
NoteCountItemCtrl._mapEventConfig = {}
NoteCountItemCtrl._mapRedDotConfig = {}
function NoteCountItemCtrl:InitNote(nId)
self.nId = nId
local noteCfg = ConfigTable.GetData("Note", nId)
if not noteCfg then
return
end
self.nNoteType = noteCfg.Note
self:SetPngSprite(self._mapNode.imgNoteBg, noteCfg.Style2)
self:SetPngSprite(self._mapNode.imgNote, noteCfg.Style1)
end
function NoteCountItemCtrl:Init(nCount, nAllCount)
self:RefreshCount(nCount, nAllCount)
end
function NoteCountItemCtrl:ResetNoteFx()
self._mapNode.red.gameObject:SetActive(false)
self._mapNode.green.gameObject:SetActive(false)
self._mapNode.blue.gameObject:SetActive(false)
self._mapNode.yellow.gameObject:SetActive(false)
self._mapNode.purple.gameObject:SetActive(false)
self._mapNode.imgNote_red.gameObject:SetActive(false)
self._mapNode.imgNote_yellow.gameObject:SetActive(false)
self._mapNode.imgNote_green.gameObject:SetActive(false)
self._mapNode.imgNote_blue.gameObject:SetActive(false)
self._mapNode.imgNote_purple.gameObject:SetActive(false)
end
function NoteCountItemCtrl:RefreshCount(nCount, nAllCount)
local nFillAmount = 1
NovaAPI.SetImageFillAmount(self._mapNode.imgNote, nFillAmount)
NovaAPI.SetTMPText(self._mapNode.txtNoteCount, nCount)
local typeCfg = AllEnum.NoteTypeCfg[self.nNoteType]
local sFxName = typeCfg.sFxName
nFillAmount = math.min(nFillAmount, 1)
nFillAmount = math.max(nFillAmount, 0)
for i = 0, self._mapNode.goNoteFx.childCount - 1 do
local trChild = self._mapNode.goNoteFx:GetChild(i)
trChild.gameObject:SetActive(false)
end
self._mapNode["imgNote_" .. sFxName].gameObject:SetActive(true)
local nMax = -0.5
local nMin = 0.5
local nFillMax = 1
local nFillMin = 0
local nValue = (nFillAmount - nFillMin) / (nFillMax - nFillMin) * (nMax - nMin) + nMin
GameUIUtils.SetUIMaterialAnimationTexValue2(self._mapNode["imgNote_" .. sFxName].gameObject, 1, 1, 0, nValue)
end
function NoteCountItemCtrl:Awake()
self.animRoot = self.gameObject:GetComponent("Animator")
self._mapNode.red.gameObject:SetActive(false)
self._mapNode.green.gameObject:SetActive(false)
self._mapNode.blue.gameObject:SetActive(false)
self._mapNode.yellow.gameObject:SetActive(false)
self._mapNode.purple.gameObject:SetActive(false)
for i = 0, self._mapNode.goNoteFx.childCount - 1 do
local trChild = self._mapNode.goNoteFx:GetChild(i)
trChild.gameObject:SetActive(false)
end
end
function NoteCountItemCtrl:PlayChangeAnim()
self:ResetNoteFx()
local typeCfg = AllEnum.NoteTypeCfg[self.nNoteType]
local sFxName = typeCfg.sFxName
self._mapNode[sFxName].gameObject:SetActive(true)
self.animRoot:Play("NoteItem_up", 0, 0)
end
return NoteCountItemCtrl