local ____lualib = require("lualib_bundle") local __TS__Class = ____lualib.__TS__Class local __TS__ClassExtends = ____lualib.__TS__ClassExtends local __TS__Decorate = ____lualib.__TS__Decorate local ____exports = {} local ____dota_ts_adapter = require("lib.dota_ts_adapter") local BaseItem = ____dota_ts_adapter.BaseItem local registerAbility = ____dota_ts_adapter.registerAbility local registerModifier = ____dota_ts_adapter.registerModifier local BaseModifier = ____dota_ts_adapter.BaseModifier ____exports.item_bloodstone_magical = __TS__Class() local item_bloodstone_magical = ____exports.item_bloodstone_magical item_bloodstone_magical.name = "item_bloodstone_magical" item_bloodstone_magical.____file_path = "scripts/vscripts/items/default_items/item_bloodstone_magical.lua" __TS__ClassExtends(item_bloodstone_magical, BaseItem) function item_bloodstone_magical.prototype.GetIntrinsicModifierName(self) return "modifier_item_bloodstone_magical" end function item_bloodstone_magical.prototype.OnSpellStart(self) if not IsServer() then return end self:GetCaster():AddNewModifier( self:GetCaster(), self, "modifier_item_bloodstone_magical_vampirism", {duration = self:GetSpecialValueFor("duration")} ) end item_bloodstone_magical = __TS__Decorate( item_bloodstone_magical, item_bloodstone_magical, {registerAbility(nil)}, {kind = "class", name = "item_bloodstone_magical"} ) ____exports.item_bloodstone_magical = item_bloodstone_magical ____exports.modifier_item_bloodstone_magical = __TS__Class() local modifier_item_bloodstone_magical = ____exports.modifier_item_bloodstone_magical modifier_item_bloodstone_magical.name = "modifier_item_bloodstone_magical" modifier_item_bloodstone_magical.____file_path = "scripts/vscripts/items/default_items/item_bloodstone_magical.lua" __TS__ClassExtends(modifier_item_bloodstone_magical, BaseModifier) function modifier_item_bloodstone_magical.prototype.IsHidden(self) return true end function modifier_item_bloodstone_magical.prototype.IsDebuff(self) return false end function modifier_item_bloodstone_magical.prototype.IsPurgable(self) return false end function modifier_item_bloodstone_magical.prototype.DeclareFunctions(self) return { MODIFIER_PROPERTY_HEALTH_BONUS, MODIFIER_PROPERTY_MANA_BONUS, MODIFIER_PROPERTY_HEALTH_REGEN_CONSTANT, MODIFIER_PROPERTY_MANA_REGEN_CONSTANT, MODIFIER_PROPERTY_SPELL_AMPLIFY_PERCENTAGE, MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE } end function modifier_item_bloodstone_magical.prototype.OnCreated(self, params) local caster = self:GetCaster() if not caster then return end addMagicalVampirism( nil, caster, self:GetAbility():GetSpecialValueFor("spell_lifesteal") ) end function modifier_item_bloodstone_magical.prototype.OnDestroy(self) local caster = self:GetCaster() if not caster then return end reduceMagicalVampirism( nil, caster, self:GetAbility():GetSpecialValueFor("spell_lifesteal") ) end function modifier_item_bloodstone_magical.prototype.GetModifierHealthBonus(self) local item = self:GetAbility() if not item then return 0 end local ____opt_0 = self:GetCaster() if not (____opt_0 and ____opt_0:HasItemInInventory("item_bloodstone_magical")) then return 0 end return item:GetSpecialValueFor("bonus_health") end function modifier_item_bloodstone_magical.prototype.GetModifierManaBonus(self) local item = self:GetAbility() if not item then return 0 end local ____opt_2 = self:GetCaster() if not (____opt_2 and ____opt_2:HasItemInInventory("item_bloodstone_magical")) then return 0 end return item:GetSpecialValueFor("bonus_mana") end function modifier_item_bloodstone_magical.prototype.GetModifierConstantHealthRegen(self) local item = self:GetAbility() if not item then return 0 end local ____opt_4 = self:GetCaster() if not (____opt_4 and ____opt_4:HasItemInInventory("item_bloodstone_magical")) then return 0 end return item:GetSpecialValueFor("bonus_health_regen") end function modifier_item_bloodstone_magical.prototype.GetModifierConstantManaRegen(self) local item = self:GetAbility() if not item then return 0 end local ____opt_6 = self:GetCaster() if not (____opt_6 and ____opt_6:HasItemInInventory("item_bloodstone_magical")) then return 0 end return item:GetSpecialValueFor("bonus_mana_regen") end modifier_item_bloodstone_magical = __TS__Decorate( modifier_item_bloodstone_magical, modifier_item_bloodstone_magical, {registerModifier(nil)}, {kind = "class", name = "modifier_item_bloodstone_magical"} ) ____exports.modifier_item_bloodstone_magical = modifier_item_bloodstone_magical ____exports.modifier_item_bloodstone_magical_vampirism = __TS__Class() local modifier_item_bloodstone_magical_vampirism = ____exports.modifier_item_bloodstone_magical_vampirism modifier_item_bloodstone_magical_vampirism.name = "modifier_item_bloodstone_magical_vampirism" modifier_item_bloodstone_magical_vampirism.____file_path = "scripts/vscripts/items/default_items/item_bloodstone_magical.lua" __TS__ClassExtends(modifier_item_bloodstone_magical_vampirism, BaseModifier) function modifier_item_bloodstone_magical_vampirism.prototype.IsHidden(self) return false end function modifier_item_bloodstone_magical_vampirism.prototype.IsDebuff(self) return false end function modifier_item_bloodstone_magical_vampirism.prototype.IsPurgable(self) return false end function modifier_item_bloodstone_magical_vampirism.prototype.GetTexture(self) return "default_items/bloodstone2" end function modifier_item_bloodstone_magical_vampirism.prototype.OnCreated(self, params) local caster = self:GetCaster() if not caster then return end if IsClient() then return end local player = caster:GetPlayerOwner() if not player then return end addMagicalVampirism( nil, caster, self:GetAbility():GetSpecialValueFor("spell_lifesteal_active") ) self.particle = ParticleManager:CreateParticleForPlayer("particles/bloodstone_full_screen_effect.vpcf", PATTACH_ABSORIGIN_FOLLOW, caster, player) EmitSoundOn("bloodstone_magical_sound", caster) end function modifier_item_bloodstone_magical_vampirism.prototype.OnRefresh(self, params) if self.particle then ParticleManager:DestroyParticle(self.particle, false) end self:OnCreated(params) end function modifier_item_bloodstone_magical_vampirism.prototype.OnDestroy(self) if IsClient() then return end local caster = self:GetCaster() if self.particle then ParticleManager:DestroyParticle(self.particle, false) end reduceMagicalVampirism( nil, caster, self:GetAbility():GetSpecialValueFor("spell_lifesteal_active") ) end function modifier_item_bloodstone_magical_vampirism.prototype.DeclareFunctions(self) return {MODIFIER_PROPERTY_CASTTIME_PERCENTAGE, MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE} end function modifier_item_bloodstone_magical_vampirism.prototype.GetModifierPercentageCasttime(self) return self:GetAbility():GetSpecialValueFor("casttime_reduction") end function modifier_item_bloodstone_magical_vampirism.prototype.GetModifierPercentageCooldown(self) return self:GetAbility():GetSpecialValueFor("cooldown_reduction_active") end modifier_item_bloodstone_magical_vampirism = __TS__Decorate( modifier_item_bloodstone_magical_vampirism, modifier_item_bloodstone_magical_vampirism, {registerModifier(nil)}, {kind = "class", name = "modifier_item_bloodstone_magical_vampirism"} ) ____exports.modifier_item_bloodstone_magical_vampirism = modifier_item_bloodstone_magical_vampirism return ____exports