74 lines
2.2 KiB
Lua
Executable File
74 lines
2.2 KiB
Lua
Executable File
modifier_item_stony_coat = class({})
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
function modifier_item_stony_coat:IsHidden()
|
|
return true
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function modifier_item_stony_coat:IsPurgable()
|
|
return false
|
|
end
|
|
|
|
----------------------------------------
|
|
|
|
function modifier_item_stony_coat:OnCreated( kv )
|
|
self.bonus_strength = self:GetAbility():GetSpecialValueFor( "bonus_strength" )
|
|
self.bonus_armor = self:GetAbility():GetSpecialValueFor( "bonus_armor" )
|
|
self.boulder_chance = self:GetAbility():GetSpecialValueFor( "boulder_chance" )
|
|
self.boulder_speed = self:GetAbility():GetSpecialValueFor( "boulder_speed" )
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function modifier_item_stony_coat:DeclareFunctions()
|
|
local funcs =
|
|
{
|
|
MODIFIER_PROPERTY_STATS_STRENGTH_BONUS,
|
|
MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS,
|
|
MODIFIER_EVENT_ON_TAKEDAMAGE
|
|
}
|
|
return funcs
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function modifier_item_stony_coat:GetModifierBonusStats_Strength( params )
|
|
return self.bonus_strength
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function modifier_item_stony_coat:GetModifierPhysicalArmorBonus( params )
|
|
return self.bonus_armor
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function modifier_item_stony_coat:OnTakeDamage( params )
|
|
if IsServer() then
|
|
if params.unit == self:GetParent() then
|
|
local hAttacker = params.attacker
|
|
if hAttacker ~= nil and RollPercentage( self.boulder_chance ) then
|
|
local info =
|
|
{
|
|
Target = hAttacker,
|
|
Source = self:GetParent(),
|
|
Ability = self:GetAbility(),
|
|
iMoveSpeed = self.boulder_speed,
|
|
vSourceLoc = self:GetParent():GetOrigin(),
|
|
EffectName = "particles/neutral_fx/mud_golem_hurl_boulder.vpcf",
|
|
}
|
|
ProjectileManager:CreateTrackingProjectile( info )
|
|
|
|
EmitSoundOn( "n_mud_golem.Boulder.Cast", self:GetParent() )
|
|
end
|
|
end
|
|
end
|
|
return 0
|
|
end
|
|
|
|
|
|
-------------------------------------------------------------------------------- |