62 lines
1.8 KiB
Lua
Executable File
62 lines
1.8 KiB
Lua
Executable File
item_oblivions_locket = class({})
|
|
LinkLuaModifier( "modifier_item_oblivions_locket", "modifiers/modifier_item_oblivions_locket", LUA_MODIFIER_MOTION_NONE )
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function item_oblivions_locket:OnSpellStart()
|
|
if IsServer() then
|
|
EmitSoundOn( "DOTA_Item.GhostScepter.Activate", self:GetCaster() )
|
|
|
|
local kv =
|
|
{
|
|
duration = -1,
|
|
extra_spell_damage_percent = self:GetSpecialValueFor( "extra_spell_damage_percent" ),
|
|
}
|
|
self:GetCaster():AddNewModifier( self:GetCaster(), self, "modifier_ghost_state", kv )
|
|
end
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function item_oblivions_locket:OnChannelFinish( bInterrupted )
|
|
if IsServer() then
|
|
self:GetCaster():RemoveModifierByName( "modifier_ghost_state" )
|
|
end
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function item_oblivions_locket:GetIntrinsicModifierName()
|
|
return "modifier_item_oblivions_locket"
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function item_oblivions_locket:Spawn()
|
|
self.required_level = self:GetSpecialValueFor( "required_level" )
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function item_oblivions_locket: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_oblivions_locket: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
|