5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
139 lines
4.3 KiB
Lua
139 lines
4.3 KiB
Lua
local VampireSurvivorRoomInfo = class("VampireSurvivorRoomInfo", BaseCtrl)
|
|
local nTotalLength = 815
|
|
local nY = 3.5
|
|
local nYMask = 27
|
|
local nLevelBarLength = 215
|
|
local nLevelBarHeight = 24
|
|
VampireSurvivorRoomInfo._mapNodeConfig = {
|
|
ItemTips = {
|
|
sCtrlName = "Game.UI.VampireSurvivor.VampireRoomInfo_ItemTipsCtrl"
|
|
},
|
|
rtScore = {
|
|
sCtrlName = "Game.UI.VampireSurvivor.VampireRoomInfo_ScoreCtrl"
|
|
},
|
|
TeamLevel = {},
|
|
rtFillMaskLevelBar = {
|
|
sComponentName = "RectTransform"
|
|
},
|
|
imgLevelBar = {sComponentName = "Image"},
|
|
imgLevelBarAdd = {sComponentName = "Image"},
|
|
txtLevelCn = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "StarTower_Reward_Level"
|
|
},
|
|
txtLevelHint = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "Vampire_RoomInfo_LevelHint"
|
|
},
|
|
txtTeamLevel = {sComponentName = "TMP_Text"},
|
|
canvasGroup = {
|
|
sNodeName = "----SafeAreaRoot----",
|
|
sComponentName = "CanvasGroup"
|
|
},
|
|
rtProgress = {},
|
|
imgElite = {},
|
|
imgBoss = {},
|
|
rtMask = {
|
|
sComponentName = "RectTransform"
|
|
},
|
|
rtMarkContent = {sComponentName = "Transform"}
|
|
}
|
|
VampireSurvivorRoomInfo._mapEventConfig = {
|
|
VampireSurvivor_Time = "OnEvent_SetTime",
|
|
Vampire_Level_Times = "OnEvent_SetLevelProgress",
|
|
Vampire_Boss_Spawn = "OnEvent_Boss_Spawn",
|
|
Vampire_Exp_Change = "OnEvent_ExpChange",
|
|
InputEnable = "OnEvent_InputEnable"
|
|
}
|
|
VampireSurvivorRoomInfo._mapRedDotConfig = {}
|
|
function VampireSurvivorRoomInfo:Awake()
|
|
end
|
|
function VampireSurvivorRoomInfo:FadeIn()
|
|
end
|
|
function VampireSurvivorRoomInfo:FadeOut()
|
|
end
|
|
function VampireSurvivorRoomInfo:OnEnable()
|
|
self.nCurTime = 0
|
|
self.nTotalTime = 0
|
|
self.tbTypeTime = {}
|
|
self.mapMark = {}
|
|
self.mapWarnTime = {}
|
|
self.bStop = false
|
|
self._mapNode.rtProgress:SetActive(false)
|
|
self._mapNode.rtFillMaskLevelBar.sizeDelta = Vector2(0, nLevelBarHeight)
|
|
NovaAPI.SetTMPText(self._mapNode.txtTeamLevel, 1)
|
|
end
|
|
function VampireSurvivorRoomInfo:OnDisable()
|
|
self.mapMark = {}
|
|
self.mapWarnTime = {}
|
|
delChildren(self._mapNode.rtMarkContent)
|
|
end
|
|
function VampireSurvivorRoomInfo:OnDestroy()
|
|
end
|
|
function VampireSurvivorRoomInfo:OnRelease()
|
|
end
|
|
function VampireSurvivorRoomInfo:OnEvent_SetTime(nTime)
|
|
if self.bStop then
|
|
return
|
|
end
|
|
local nPersent = nTime / self.nTotalTime
|
|
if 1 < nPersent then
|
|
nPersent = 1
|
|
end
|
|
local nLength = nPersent * nTotalLength
|
|
self._mapNode.rtMask.sizeDelta = Vector2(nLength, nYMask)
|
|
if self.mapWarnTime[nTime] ~= nil then
|
|
local ani = self.mapWarnTime[nTime]:GetComponent("Animator")
|
|
ani:Play("Vampire_imgElite_idle")
|
|
end
|
|
if self.mapMark[nTime] ~= nil then
|
|
local ani = self.mapMark[nTime]:GetComponent("Animator")
|
|
ani:Play("Vampire_imgElite_in")
|
|
end
|
|
end
|
|
function VampireSurvivorRoomInfo:OnEvent_SetLevelProgress(nTotalTime, tbTypeTime)
|
|
self.bStop = false
|
|
self._mapNode.rtProgress:SetActive(true)
|
|
local nCount = tbTypeTime.Count
|
|
self.nTotalTime = tbTypeTime[nCount - 1]
|
|
self._mapNode.rtMask.sizeDelta = Vector2(0, nYMask)
|
|
delChildren(self._mapNode.rtMarkContent)
|
|
self.mapMark = {}
|
|
self.mapWarnTime = {}
|
|
for i = 0, nCount - 1 do
|
|
local nPersent = tbTypeTime[i] / self.nTotalTime
|
|
local nLength = nPersent * nTotalLength + 3
|
|
local goMark
|
|
if i == nCount - 1 then
|
|
goMark = instantiate(self._mapNode.imgBoss, self._mapNode.rtMarkContent)
|
|
else
|
|
goMark = instantiate(self._mapNode.imgElite, self._mapNode.rtMarkContent)
|
|
end
|
|
goMark:SetActive(true)
|
|
goMark:GetComponent("Image").enabled = true
|
|
local ani = goMark:GetComponent("Animator")
|
|
ani.enabled = true
|
|
local rtGoMark = goMark:GetComponent("RectTransform")
|
|
rtGoMark.anchoredPosition = Vector2(nLength, nY)
|
|
self.mapMark[tbTypeTime[i]] = goMark
|
|
self.mapWarnTime[tbTypeTime[i] - 5] = goMark
|
|
end
|
|
end
|
|
function VampireSurvivorRoomInfo:OnEvent_Boss_Spawn()
|
|
self._mapNode.rtProgress:SetActive(false)
|
|
self.bStop = true
|
|
end
|
|
function VampireSurvivorRoomInfo:OnEvent_ExpChange(nExp, nAllExp, nLevel, bMaxLevel)
|
|
if bMaxLevel then
|
|
self._mapNode.rtFillMaskLevelBar.sizeDelta = Vector2(nLevelBarLength, nLevelBarHeight)
|
|
else
|
|
self._mapNode.rtFillMaskLevelBar.sizeDelta = Vector2(nLevelBarLength * (nExp / nAllExp), nLevelBarHeight)
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtTeamLevel, nLevel)
|
|
NovaAPI.SetImageColor(self._mapNode.imgLevelBarAdd, Color(1, 1, 1, 0))
|
|
end
|
|
function VampireSurvivorRoomInfo:OnEvent_InputEnable(bEnable)
|
|
NovaAPI.SetCanvasGroupAlpha(self._mapNode.canvasGroup, bEnable and 1 or 0)
|
|
end
|
|
return VampireSurvivorRoomInfo
|