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

70 lines
2.7 KiB
Lua
Executable File

require( "modifiers/modifier_blessing_base" )
modifier_blessing_potion_arcanist = class( modifier_blessing_base )
--------------------------------------------------------------------------------
function modifier_blessing_potion_arcanist:OnBlessingCreated( kv )
self.cooldown_reduction_percent = kv.cooldown_reduction_percent
self.manacost_reduction_percent = kv.manacost_reduction_percent
end
--------------------------------------------------------------------------------
function modifier_blessing_potion_arcanist:DeclareFunctions()
local funcs =
{
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE
}
return funcs
end
-----------------------------------------------------------------------
function modifier_blessing_potion_arcanist:GetModifierOverrideAbilitySpecial( params )
if self:GetParent() == nil or params.ability == nil then
return 0
end
local szAbilityName = params.ability:GetAbilityName()
local szSpecialValueName = params.ability_special_value
if szAbilityName ~= "item_arcanist_potion" then
return 0
end
if szSpecialValueName == "cooldown_reduction_pct" or szSpecialValueName == "manacost_reduction_pct" then
print( 'modifier_blessing_potion_arcanist:GetModifierOverrideAbilitySpecial - looking for cooldown_reduction_pct or manacost_reduction_pct!' )
return 1
end
return 0
end
-----------------------------------------------------------------------
function modifier_blessing_potion_arcanist:GetModifierOverrideAbilitySpecialValue( params )
local szAbilityName = params.ability:GetAbilityName()
if szAbilityName ~= "item_arcanist_potion" then
return 0
end
local szSpecialValueName = params.ability_special_value
if szSpecialValueName == "cooldown_reduction_pct" then
local nSpecialLevel = params.ability_special_level
local flBaseValue = params.ability:GetLevelSpecialValueNoOverride( szSpecialValueName, nSpecialLevel )
print( 'modifier_blessing_potion_arcanist:GetModifierOverrideAbilitySpecialValue - cooldown_reduction_pct is ' .. flBaseValue .. '. Adding on an additional ' .. self.cooldown_reduction_percent )
return flBaseValue * ( ( 100 + self.cooldown_reduction_percent ) / 100 )
elseif szSpecialValueName == "manacost_reduction_pct" then
local nSpecialLevel = params.ability_special_level
local flBaseValue = params.ability:GetLevelSpecialValueNoOverride( szSpecialValueName, nSpecialLevel )
print( 'modifier_blessing_potion_arcanist:GetModifierOverrideAbilitySpecialValue - manacost_reduction_pct is ' .. flBaseValue .. '. Adding on an additional ' .. self.manacost_reduction_percent )
return flBaseValue * ( ( 100 + self.manacost_reduction_percent ) / 100 )
end
return 0
end