57 lines
1.7 KiB
Lua
Executable File
57 lines
1.7 KiB
Lua
Executable File
|
|
item_lifestone = class({})
|
|
LinkLuaModifier( "modifier_item_lifestone", "modifiers/modifier_item_lifestone", LUA_MODIFIER_MOTION_NONE )
|
|
LinkLuaModifier( "modifier_item_lifestone_pact", "modifiers/modifier_item_lifestone_pact", LUA_MODIFIER_MOTION_NONE )
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function item_lifestone:GetIntrinsicModifierName()
|
|
return "modifier_item_lifestone"
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function item_lifestone:OnSpellStart()
|
|
if IsServer() then
|
|
local hCaster = self:GetCaster()
|
|
if hCaster:HasModifier( "modifier_item_lifestone_pact" ) then
|
|
hCaster:RemoveModifierByName( "modifier_item_lifestone_pact" )
|
|
else
|
|
hCaster:AddNewModifier( hCaster, self, "modifier_item_lifestone_pact", { duration = -1 } )
|
|
end
|
|
end
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function item_lifestone:Spawn()
|
|
self.required_level = self:GetSpecialValueFor( "required_level" )
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function item_lifestone: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_lifestone: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
|
|
|
|
--------------------------------------------------------------------------------
|
|
|