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

64 lines
2.1 KiB
Lua
Executable File

modifier_item_bogduggs_baldric = class({})
--------------------------------------------------------------------------------
function modifier_item_bogduggs_baldric:IsHidden()
return true
end
--------------------------------------------------------------------------------
function modifier_item_bogduggs_baldric:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function modifier_item_bogduggs_baldric:OnCreated( kv )
self.bonus_armor = self:GetAbility():GetSpecialValueFor( "bonus_armor" )
self.disable_resist_pct = self:GetAbility():GetSpecialValueFor( "disable_resist_pct" )
self.move_speed_penalty = self:GetAbility():GetSpecialValueFor( "move_speed_penalty" )
end
--------------------------------------------------------------------------------
function modifier_item_bogduggs_baldric:DeclareFunctions()
local funcs =
{
MODIFIER_EVENT_ON_STATE_CHANGED,
MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS,
MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT,
}
return funcs
end
--------------------------------------------------------------------------------
function modifier_item_bogduggs_baldric:GetModifierPhysicalArmorBonus( params )
return self.bonus_armor
end
--------------------------------------------------------------------------------
function modifier_item_bogduggs_baldric:GetModifierMoveSpeedBonus_Constant( params )
return -self.move_speed_penalty
end
--------------------------------------------------------------------------------
function modifier_item_bogduggs_baldric:OnStateChanged( params )
if IsServer() then
if params.unit == self:GetParent() then
local buffs = self:GetParent():FindAllModifiers()
for _,buff in pairs( buffs ) do
if buff ~= nil and buff:IsStunDebuff() and buff.bBaldricApplied == nil and buff:GetCaster() ~= self:GetParent() then
--print( "Applying Baldric" )
buff.bBaldricApplied = true
--print( "Old Duration: " .. buff:GetDuration() )
buff:SetDuration( buff:GetDuration() * self.disable_resist_pct / 100, true )
--print( "New Duration: " .. buff:GetDuration() )
end
end
end
end
end