Files
2HUCardTDGame/aghanim_singleplayer/scripts/vscripts/modifiers/modifier_item_stony_coat.lua
2021-10-24 15:36:18 -04:00

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
--------------------------------------------------------------------------------