initial commit
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
require( "modifiers/modifier_blessing_base" )
|
||||
|
||||
modifier_blessing_death_detonation = class( modifier_blessing_base )
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
function modifier_blessing_death_detonation:OnBlessingCreated( kv )
|
||||
self.detonation_damage_per_level = kv.detonation_damage_per_level
|
||||
self.detonation_radius = kv.detonation_radius
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function modifier_blessing_death_detonation:DeclareFunctions()
|
||||
local funcs =
|
||||
{
|
||||
MODIFIER_EVENT_ON_DEATH
|
||||
}
|
||||
return funcs
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function modifier_blessing_death_detonation:OnDeath( params )
|
||||
if IsServer() then
|
||||
if self:GetParent():PassivesDisabled() then
|
||||
return 1
|
||||
end
|
||||
|
||||
if params.unit ~= nil and params.unit == self:GetParent() then
|
||||
|
||||
local damage = self.detonation_damage_per_level * self:GetParent():GetLevel()
|
||||
--print( 'modifier_blessing_death_detonation damage = ' .. damage )
|
||||
|
||||
local nTeam = DOTA_UNIT_TARGET_TEAM_ENEMY
|
||||
local entities = FindUnitsInRadius( self:GetParent():GetTeamNumber(), self:GetParent():GetOrigin(), nil, self.detonation_radius, nTeam,
|
||||
DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC, DOTA_UNIT_TARGET_FLAG_MAGIC_IMMUNE_ENEMIES + DOTA_UNIT_TARGET_FLAG_FOW_VISIBLE, FIND_CLOSEST, false )
|
||||
|
||||
if #entities > 0 then
|
||||
for _,entity in pairs(entities) do
|
||||
if entity ~= nil and entity:IsNull() == false and entity ~= self:GetParent() and ( not entity:IsMagicImmune() ) and ( not entity:IsInvulnerable() ) then
|
||||
local DamageInfo =
|
||||
{
|
||||
victim = entity,
|
||||
attacker = self:GetCaster(),
|
||||
ability = self,
|
||||
damage = damage,
|
||||
damage_type = DAMAGE_TYPE_MAGICAL,
|
||||
}
|
||||
ApplyDamage( DamageInfo )
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--EmitSoundOn( "Ability.Bomber.Detonate", self:GetParent() )
|
||||
|
||||
local nFXIndex = ParticleManager:CreateParticle( "particles/blessings/death_detonation/death_detonation_remote_mines_detonate.vpcf", PATTACH_CUSTOMORIGIN, nil )
|
||||
ParticleManager:SetParticleControl( nFXIndex, 0, self:GetParent():GetOrigin() )
|
||||
ParticleManager:SetParticleControl( nFXIndex, 1, Vector( self.detonation_radius, self.detonation_radius, self.detonation_radius ) )
|
||||
ParticleManager:ReleaseParticleIndex( nFXIndex )
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user