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
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
local HuoChuiHudCtrl = class("HuoChuiHudCtrl", BaseCtrl)
|
||||
local nRotateMax = 0
|
||||
local nRotateMin = 45
|
||||
local nAnimTime = 0.2
|
||||
HuoChuiHudCtrl._mapNodeConfig = {
|
||||
imgFill1 = {},
|
||||
imgFill2 = {},
|
||||
imgBarLight = {},
|
||||
TMPValue = {sComponentName = "TMP_Text"},
|
||||
goRotationRoot = {
|
||||
sComponentName = "HpBarRotation"
|
||||
},
|
||||
goState33 = {},
|
||||
goState66 = {},
|
||||
goHotState = {},
|
||||
rtRoot = {sComponentName = "Animator"},
|
||||
AniTMPValue = {sNodeName = "TMPValue", sComponentName = "Animator"},
|
||||
imgFill3 = {
|
||||
sComponentName = "HpBarCanvasGroup"
|
||||
},
|
||||
imgFill3CG = {
|
||||
sNodeName = "imgFill3",
|
||||
sComponentName = "CanvasGroup"
|
||||
},
|
||||
imgBarLight1 = {
|
||||
sComponentName = "HpBarCanvasGroup"
|
||||
},
|
||||
imgBarLight1CG = {
|
||||
sNodeName = "imgBarLight1",
|
||||
sComponentName = "CanvasGroup"
|
||||
},
|
||||
imgHighlight = {}
|
||||
}
|
||||
HuoChuiHudCtrl._mapEventConfig = {}
|
||||
HuoChuiHudCtrl._mapRedDotConfig = {}
|
||||
function HuoChuiHudCtrl:Awake()
|
||||
self.nHotValue = 0
|
||||
self.nState = 1
|
||||
self.showState = 1
|
||||
end
|
||||
function HuoChuiHudCtrl:SetMonsterId(nId, nInitValue, nInitState)
|
||||
if self.nMonsterId ~= nil then
|
||||
printError("重复绑定:" .. nId)
|
||||
return
|
||||
end
|
||||
self.monsterId = nId
|
||||
self.nHotValue = nInitValue
|
||||
self.nState = nInitState
|
||||
self.gameObject:SetActive(true)
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPValue, self.nHotValue)
|
||||
self._mapNode.goRotationRoot.transform.localEulerAngles = Vector3.zero
|
||||
local target = -45 * self.nHotValue / 100 + 45
|
||||
if target < 0 then
|
||||
target = 0
|
||||
end
|
||||
if 45 < target then
|
||||
target = 45
|
||||
end
|
||||
self._mapNode.goRotationRoot:SetTarget(target, 0, 0)
|
||||
self._mapNode.imgHighlight:SetActive(self.nHotValue ~= 0 and self.nHotValue ~= 100)
|
||||
self:OnEvent_StageChange(nInitValue)
|
||||
EventManager.AddEntityEvent("Dead", self.monsterId, self, self.OnEvent_Deaded)
|
||||
EventManager.AddEntityEvent("ClearSlef", self.monsterId, self, self.OnEvent_Deaded)
|
||||
EventManager.AddEntityEvent("HotValueChange", self.monsterId, self, self.OnEvent_ValueChange)
|
||||
EventManager.AddEntityEvent("HotStateChange", self.monsterId, self, self.OnEvent_StageChange)
|
||||
end
|
||||
function HuoChuiHudCtrl:Hide()
|
||||
self.monsterId = nil
|
||||
self.gameObject:SetActive(false)
|
||||
EventManager.RemoveEntityEvent("Dead", self.monsterId, self, self.OnEvent_Deaded)
|
||||
EventManager.RemoveEntityEvent("ClearSlef", self.monsterId, self, self.OnEvent_Deaded)
|
||||
EventManager.RemoveEntityEvent("ValueChange", self.monsterId, self, self.OnEvent_ValueChange)
|
||||
EventManager.RemoveEntityEvent("StateChange", self.monsterId, self, self.OnEvent_StageChange)
|
||||
end
|
||||
function HuoChuiHudCtrl:FadeIn()
|
||||
end
|
||||
function HuoChuiHudCtrl:FadeOut()
|
||||
end
|
||||
function HuoChuiHudCtrl:OnEnable()
|
||||
end
|
||||
function HuoChuiHudCtrl:OnDisable()
|
||||
EventManager.RemoveEntityEvent("Dead", self.monsterId, self, self.OnEvent_Deaded)
|
||||
EventManager.RemoveEntityEvent("ClearSlef", self.monsterId, self, self.OnEvent_Deaded)
|
||||
EventManager.RemoveEntityEvent("ValueChange", self.monsterId, self, self.OnEvent_ValueChange)
|
||||
EventManager.RemoveEntityEvent("StateChange", self.monsterId, self, self.OnEvent_StageChange)
|
||||
end
|
||||
function HuoChuiHudCtrl:ChangeState1()
|
||||
self._mapNode.goState33:SetActive(false)
|
||||
self._mapNode.goState66:SetActive(false)
|
||||
self._mapNode.goHotState:SetActive(false)
|
||||
end
|
||||
function HuoChuiHudCtrl:ChangeState2()
|
||||
self._mapNode.goState33:SetActive(true)
|
||||
self._mapNode.goState66:SetActive(false)
|
||||
self._mapNode.goHotState:SetActive(false)
|
||||
end
|
||||
function HuoChuiHudCtrl:ChangeState3()
|
||||
self._mapNode.goState33:SetActive(false)
|
||||
self._mapNode.goState66:SetActive(true)
|
||||
self._mapNode.goHotState:SetActive(false)
|
||||
end
|
||||
function HuoChuiHudCtrl:ChangeStateHot()
|
||||
self._mapNode.goState33:SetActive(false)
|
||||
self._mapNode.goState66:SetActive(false)
|
||||
self._mapNode.goHotState:SetActive(true)
|
||||
end
|
||||
function HuoChuiHudCtrl:OnDestroy()
|
||||
end
|
||||
function HuoChuiHudCtrl:OnRelease()
|
||||
end
|
||||
function HuoChuiHudCtrl:SetState(nBeforeValue, nCurValue)
|
||||
if nBeforeValue < 33 and 33 <= nCurValue or nBeforeValue < 66 and 66 <= nCurValue then
|
||||
NovaAPI.SetCanvasGroupAlpha(self._mapNode.imgFill3CG, 1)
|
||||
self._mapNode.imgFill3:SetTarget(0, 0.8, 0)
|
||||
NovaAPI.SetCanvasGroupAlpha(self._mapNode.imgBarLight1CG, 1)
|
||||
self._mapNode.imgBarLight1:SetTarget(0, 0.8, 0)
|
||||
end
|
||||
if self.nState ~= 3 then
|
||||
if nCurValue < 33 and self.showState ~= 1 then
|
||||
self.showState = 1
|
||||
self:ChangeState1()
|
||||
elseif nCurValue < 66 and self.showState ~= 2 then
|
||||
self.showState = 2
|
||||
self:ChangeState2()
|
||||
elseif 66 <= nCurValue and self.showState ~= 3 then
|
||||
self.showState = 3
|
||||
self:ChangeState3()
|
||||
end
|
||||
end
|
||||
end
|
||||
function HuoChuiHudCtrl:OnEvent_Deaded()
|
||||
self.monsterId = nil
|
||||
self.gameObject:SetActive(false)
|
||||
EventManager.RemoveEntityEvent("Dead", self.monsterId, self, self.OnEvent_Deaded)
|
||||
EventManager.RemoveEntityEvent("ClearSlef", self.monsterId, self, self.OnEvent_Deaded)
|
||||
EventManager.RemoveEntityEvent("ValueChange", self.monsterId, self, self.OnEvent_ValueChange)
|
||||
EventManager.RemoveEntityEvent("StateChange", self.monsterId, self, self.OnEvent_StageChange)
|
||||
end
|
||||
function HuoChuiHudCtrl:OnEvent_ValueChange(nValue)
|
||||
local nBeforValue = self.nHotValue
|
||||
local nCurAngle = -45 * self.nHotValue / 100 + 45
|
||||
local nCurValue = nValue
|
||||
self._mapNode.goRotationRoot.transform.localEulerAngles = Vector3(0, 0, nCurAngle)
|
||||
self.nHotValue = nValue
|
||||
local nTarget = -45 * self.nHotValue / 100 + 45
|
||||
if nTarget < 0 then
|
||||
nTarget = 0
|
||||
end
|
||||
if 45 < nTarget then
|
||||
nTarget = 45
|
||||
end
|
||||
self._mapNode.goRotationRoot:SetTarget(nTarget, nCurAngle, nAnimTime, 0)
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPValue, self.nHotValue)
|
||||
if nBeforValue ~= 100 and self.nHotValue == 100 then
|
||||
self._mapNode.AniTMPValue:Play("HudHuoChuiBoss_TMPValue")
|
||||
end
|
||||
self:SetState(nBeforValue, nCurValue)
|
||||
self._mapNode.imgHighlight:SetActive(self.nHotValue ~= 0 and self.nHotValue ~= 100)
|
||||
end
|
||||
function HuoChuiHudCtrl:OnEvent_StageChange(nState)
|
||||
self.nState = nState
|
||||
if self.nState == 3 then
|
||||
self._mapNode.imgFill1:SetActive(false)
|
||||
self._mapNode.imgFill2:SetActive(true)
|
||||
self._mapNode.imgBarLight:SetActive(true)
|
||||
self:ChangeStateHot()
|
||||
else
|
||||
if self.nState == 2 then
|
||||
self._mapNode.rtRoot:Play("HudHuoChuiBoss_die")
|
||||
end
|
||||
self._mapNode.imgFill1:SetActive(true)
|
||||
self._mapNode.imgFill2:SetActive(false)
|
||||
self._mapNode.imgBarLight:SetActive(false)
|
||||
self.showState = 0
|
||||
self:SetState(0, self.nHotValue)
|
||||
end
|
||||
end
|
||||
return HuoChuiHudCtrl
|
||||
Reference in New Issue
Block a user