initial commit
This commit is contained in:
67
aghanim_singleplayer/scripts/vscripts/items/item_stony_coat.lua
Executable file
67
aghanim_singleplayer/scripts/vscripts/items/item_stony_coat.lua
Executable file
@@ -0,0 +1,67 @@
|
||||
item_stony_coat = class({})
|
||||
LinkLuaModifier( "modifier_item_stony_coat", "modifiers/modifier_item_stony_coat", LUA_MODIFIER_MOTION_NONE )
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function item_stony_coat:Precache( context )
|
||||
PrecacheResource( "particle", "particles/neutral_fx/mud_golem_hurl_boulder.vpcf", context )
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function item_stony_coat:GetIntrinsicModifierName()
|
||||
return "modifier_item_stony_coat"
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function item_stony_coat:Spawn()
|
||||
self.required_level = self:GetSpecialValueFor( "required_level" )
|
||||
self.boulder_damage = self:GetSpecialValueFor( "boulder_damage" )
|
||||
self.boulder_stun_duration = self:GetSpecialValueFor( "boulder_stun_duration" )
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function item_stony_coat:OnHeroLevelUp()
|
||||
if IsServer() then
|
||||
if self:GetCaster():GetLevel() == self.required_level and self:IsInBackpack() == false then
|
||||
self:OnUnequip()
|
||||
self:OnEquip()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function item_stony_coat:OnProjectileHit( hTarget, vLocation )
|
||||
if IsServer() then
|
||||
if hTarget ~= nil and hTarget:IsMagicImmune() == false and hTarget:IsInvulnerable() == false then
|
||||
local damageinfo =
|
||||
{
|
||||
victim = hTarget,
|
||||
attacker = self:GetCaster(),
|
||||
damage = self.boulder_damage,
|
||||
damage_type = DAMAGE_TYPE_MAGICAL,
|
||||
ability = self,
|
||||
}
|
||||
ApplyDamage( damageinfo )
|
||||
EmitSoundOn( "n_mud_golem.Boulder.Target", hTarget )
|
||||
hTarget:AddNewModifier( self:GetCaster(), self, "modifier_stunned", { duration = self.boulder_stun_duration } )
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function item_stony_coat:IsMuted()
|
||||
if self.required_level > self:GetCaster():GetLevel() then
|
||||
return true
|
||||
end
|
||||
if not self:GetCaster():IsHero() then
|
||||
return true
|
||||
end
|
||||
return self.BaseClass.IsMuted( self )
|
||||
end
|
||||
Reference in New Issue
Block a user