Files
StellaSora_DataLua/lua/game/ui/travelerduelroominfo/tdroominfoctrl.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

71 lines
2.4 KiB
Lua

local TDRoomInfoCtrl = class("TDRoomInfoCtrl", BaseCtrl)
local colorWhite = Color(1, 1, 1, 1)
local colorRed = Color(0.8470588235294118, 0.3137254901960784, 0.32941176470588235)
TDRoomInfoCtrl._mapNodeConfig = {
TMPChallengeTime = {sComponentName = "TMP_Text"},
rtChallengeTime = {},
animatorTime = {
sNodeName = "rtChallengeTime",
sComponentName = "Animator"
},
canvasGroup = {
sNodeName = "----SafeAreaRoot----",
sComponentName = "CanvasGroup"
}
}
TDRoomInfoCtrl._mapEventConfig = {
TravelerDuel_StartTime = "StartEvent",
TravelerDuel_Result = "EndEvent",
InputEnable = "OnEvent_InputEnable"
}
function TDRoomInfoCtrl:Awake()
self.AnimatorRoot = self.gameObject:GetComponent("Animator")
end
function TDRoomInfoCtrl:FadeIn()
end
function TDRoomInfoCtrl:FadeOut()
end
function TDRoomInfoCtrl:OnEnable()
self._mapNode.rtChallengeTime:SetActive(false)
end
function TDRoomInfoCtrl:OnDisable()
end
function TDRoomInfoCtrl:OnDestroy()
EventManager.Remove("TravelerDuel_Time_CountUp", self, self.OnEvent_SpecialMode_Count)
EventManager.Remove("OnEvent_ShowRtChallengeTime", self, self.ShowRtChallengeTime)
end
function TDRoomInfoCtrl:OnRelease()
end
function TDRoomInfoCtrl:SetTime(nTime)
local nMin = math.floor(nTime / 60)
local nSec = math.fmod(nTime, 60)
NovaAPI.SetTMPText(self._mapNode.TMPChallengeTime, string.format("%02d:%02d", nMin, nSec))
end
function TDRoomInfoCtrl:StartEvent(nTime)
NovaAPI.SetTMPColor(self._mapNode.TMPChallengeTime, colorWhite)
self:SetTime(nTime)
EventManager.Add("TravelerDuel_Time_CountUp", self, self.OnEvent_SpecialMode_Count)
EventManager.Add("OnEvent_ShowRtChallengeTime", self, self.ShowRtChallengeTime)
end
function TDRoomInfoCtrl:EndEvent()
EventManager.Remove("TravelerDuel_Time_CountUp", self, self.OnEvent_SpecialMode_Count)
EventManager.Remove("OnEvent_ShowRtChallengeTime", self, self.ShowRtChallengeTime)
self._mapNode.rtChallengeTime:SetActive(false)
end
function TDRoomInfoCtrl:OnEvent_SpecialMode_Count(nTime)
if nTime <= 5 then
NovaAPI.SetTMPColor(self._mapNode.TMPChallengeTime, colorRed)
self._mapNode.animatorTime:Play("BossChallengeTime_show")
else
NovaAPI.SetTMPColor(self._mapNode.TMPChallengeTime, colorWhite)
end
self:SetTime(nTime)
end
function TDRoomInfoCtrl:ShowRtChallengeTime()
self._mapNode.rtChallengeTime:SetActive(true)
end
function TDRoomInfoCtrl:OnEvent_InputEnable(bEnable)
NovaAPI.SetCanvasGroupAlpha(self._mapNode.canvasGroup, bEnable == true and 1 or 0)
end
return TDRoomInfoCtrl