murlock_heart = class({})
LinkLuaModifier( "modifier_murlock_heart_check", "heroes/hero_murlock/murlock_heart.lua", LUA_MODIFIER_MOTION_NONE )
LinkLuaModifier( "modifier_murlock_heart", "heroes/hero_murlock/murlock_heart.lua", LUA_MODIFIER_MOTION_NONE )
function murlock_heart:GetIntrinsicModifierName()
return "modifier_murlock_heart_check"
end
function murlock_heart:GetBehavior()
local behav = DOTA_ABILITY_BEHAVIOR_PASSIVE
return behav
end
modifier_murlock_heart_check = class({})
function modifier_murlock_heart_check:IsHidden()
return true
end
function modifier_murlock_heart_check:OnCreated()
if IsServer() then
self:StartIntervalThink(0.1)
end
end
function modifier_murlock_heart_check:OnIntervalThink()
if IsServer() then
local caster = self:GetParent()
local heroes = FindUnitsInRadius(caster:GetTeamNumber(), caster:GetAbsOrigin(), nil, 265, DOTA_UNIT_TARGET_TEAM_ENEMY, DOTA_UNIT_TARGET_HERO, DOTA_UNIT_TARGET_FLAG_NONE, FIND_ANY_ORDER, false)
if #heroes == 0 then
if not caster:HasModifier("modifier_murlock_heart") then
caster:AddNewModifier(caster, self:GetAbility(), "modifier_murlock_heart", nil)
end
else
if caster:HasModifier("modifier_murlock_heart") then
caster:RemoveModifierByName("modifier_murlock_heart")
end
end
end
end
modifier_murlock_heart = class({})
function modifier_murlock_heart:OnCreated( kv )
self.regen = self:GetAbility():GetSpecialValueFor( "health_regen" )/100
self.movespeed = self:GetAbility():GetSpecialValueFor( "bonus_movement_speed" )
if IsServer() then
local nFXIndex = ParticleManager:CreateParticle( "particles/units/heroes/hero_sven/sven_warcry_buff.vpcf", PATTACH_ABSORIGIN_FOLLOW, self:GetParent() )
ParticleManager:SetParticleControlEnt( nFXIndex, 2, self:GetCaster(), PATTACH_POINT_FOLLOW, "attach_head", self:GetCaster():GetOrigin(), true )
self:AddParticle( nFXIndex, false, false, -1, false, true )
end
end
--------------------------------------------------------------------------------
function modifier_murlock_heart:OnRefresh( kv )
self.regen = self:GetAbility():GetSpecialValueFor( "health_regen" )/100
self.movespeed = self:GetAbility():GetSpecialValueFor( "bonus_movement_speed" )
end
--------------------------------------------------------------------------------
function modifier_murlock_heart:DeclareFunctions()
local funcs = {
MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE,
MODIFIER_PROPERTY_HEALTH_REGEN_CONSTANT
}
return funcs
end
function modifier_murlock_heart:GetModifierMoveSpeedBonus_Percentage( params )
return self.movespeed
end
--------------------------------------------------------------------------------
function modifier_murlock_heart:GetModifierConstantHealthRegen( params )
local regen = self:GetCaster():GetMaxHealth()*self.regen
return regen
end