5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
87 lines
3.0 KiB
Lua
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
|