128 lines
3.1 KiB
Lua
Executable File
128 lines
3.1 KiB
Lua
Executable File
|
|
modifier_ability_cast_warning = class({})
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function modifier_ability_cast_warning:IsHidden()
|
|
return true
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function modifier_ability_cast_warning:DeclareFunctions()
|
|
local funcs = {
|
|
MODIFIER_EVENT_ON_ABILITY_START,
|
|
MODIFIER_EVENT_ON_ABILITY_EXECUTED,
|
|
MODIFIER_EVENT_ON_STATE_CHANGED,
|
|
MODIFIER_EVENT_ON_ORDER,
|
|
|
|
}
|
|
return funcs
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function modifier_ability_cast_warning:OnAbilityStart( params )
|
|
if IsServer() then
|
|
if params.unit ~= self:GetParent() then
|
|
return
|
|
end
|
|
|
|
-- Don't show exclamation mark on bosses
|
|
if self:GetParent().bIsBoss then
|
|
self:Destroy()
|
|
end
|
|
|
|
--printf("function modifier_ability_cast_warning:OnAbilityStart( params )")
|
|
self.m_nWarningFX = ParticleManager:CreateParticle( "particles/generic_gameplay/generic_has_quest.vpcf", PATTACH_OVERHEAD_FOLLOW, self:GetParent() )
|
|
self:AddParticle( self.m_nWarningFX, false, false, -1, false, true )
|
|
|
|
self:StartIntervalThink( 0.75 )
|
|
end
|
|
return
|
|
|
|
end
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
function modifier_ability_cast_warning:OnIntervalThink()
|
|
if IsServer() then
|
|
if self.m_nWarningFX ~= nil then
|
|
ParticleManager:DestroyParticle( self.m_nWarningFX, true )
|
|
end
|
|
return -1
|
|
end
|
|
return
|
|
end
|
|
--------------------------------------------------------------------------------
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
function modifier_ability_cast_warning:OnAbilityExecuted( params )
|
|
if IsServer() then
|
|
if params.unit ~= self:GetParent() then
|
|
return
|
|
end
|
|
if self.m_nWarningFX == nil then
|
|
return
|
|
end
|
|
ParticleManager:DestroyParticle( self.m_nWarningFX, true )
|
|
|
|
end
|
|
return
|
|
end
|
|
--------------------------------------------------------------------------------
|
|
|
|
function modifier_ability_cast_warning:OnStateChanged( params )
|
|
if IsServer() then
|
|
local hParent = self:GetParent()
|
|
if params.unit ~= hParent then
|
|
return
|
|
end
|
|
|
|
if self.m_nWarningFX == nil then
|
|
return
|
|
end
|
|
|
|
if hParent ~= nil and hParent:IsAlive() then
|
|
if hParent:IsSilenced() or hParent:IsStunned() or hParent:IsHexed() or hParent:IsFrozen() then
|
|
ParticleManager:DestroyParticle( self.m_nWarningFX, true )
|
|
end
|
|
return
|
|
else
|
|
ParticleManager:DestroyParticle( self.m_nWarningFX, true )
|
|
end
|
|
end
|
|
return
|
|
end
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
function modifier_ability_cast_warning:OnDeath( params )
|
|
if IsServer() then
|
|
if params.unit ~= self:GetParent() then
|
|
return
|
|
end
|
|
if self.m_nWarningFX ~= nil then
|
|
ParticleManager:DestroyParticle( self.m_nWarningFX, true )
|
|
return
|
|
end
|
|
end
|
|
return
|
|
end
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
function modifier_ability_cast_warning:OnOrder( params )
|
|
if IsServer() then
|
|
if params.unit ~= self:GetParent() then
|
|
return
|
|
end
|
|
if self.m_nWarningFX ~= nil then
|
|
ParticleManager:DestroyParticle( self.m_nWarningFX, true )
|
|
return
|
|
end
|
|
end
|
|
return
|
|
end |