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 ____difficulty_manager = require("difficulty_manager") local Difficulty = ____difficulty_manager.Difficulty local ____dota_ts_adapter = require("lib.dota_ts_adapter") local BaseAbility = ____dota_ts_adapter.BaseAbility local BaseModifier = ____dota_ts_adapter.BaseModifier local registerAbility = ____dota_ts_adapter.registerAbility local registerModifier = ____dota_ts_adapter.registerModifier --- Пассивка для волновых крипов: при здоровье ниже порога атаки лечат на долю нанесённого урона. ____exports.wave_desperate_vampirism = __TS__Class() local wave_desperate_vampirism = ____exports.wave_desperate_vampirism wave_desperate_vampirism.name = "wave_desperate_vampirism" wave_desperate_vampirism.____file_path = "scripts/vscripts/abilities/creep/wave_desperate_vampirism.lua" __TS__ClassExtends(wave_desperate_vampirism, BaseAbility) function wave_desperate_vampirism.prototype.GetIntrinsicModifierName(self) return "modifier_wave_desperate_vampirism" end function wave_desperate_vampirism.prototype.Precache(self, context) PrecacheResource("particle", "particles/units/heroes/hero_bloodseeker/bloodseeker_bloodbath.vpcf", context) end wave_desperate_vampirism = __TS__Decorate( wave_desperate_vampirism, wave_desperate_vampirism, {registerAbility(nil)}, {kind = "class", name = "wave_desperate_vampirism"} ) ____exports.wave_desperate_vampirism = wave_desperate_vampirism ____exports.modifier_wave_desperate_vampirism = __TS__Class() local modifier_wave_desperate_vampirism = ____exports.modifier_wave_desperate_vampirism modifier_wave_desperate_vampirism.name = "modifier_wave_desperate_vampirism" modifier_wave_desperate_vampirism.____file_path = "scripts/vscripts/abilities/creep/wave_desperate_vampirism.lua" __TS__ClassExtends(modifier_wave_desperate_vampirism, BaseModifier) function modifier_wave_desperate_vampirism.prototype.IsHidden(self) return true end function modifier_wave_desperate_vampirism.prototype.IsDebuff(self) return false end function modifier_wave_desperate_vampirism.prototype.IsPurgable(self) return false end function modifier_wave_desperate_vampirism.prototype.DeclareFunctions(self) return {MODIFIER_EVENT_ON_ATTACK_LANDED} end function modifier_wave_desperate_vampirism.prototype.OnAttackLanded(self, event) if not IsServer() then return end local parent = self:GetParent() local ability = self:GetAbility() if not ability or not parent or event.attacker ~= parent then return end local target = event.target if not target or not target:IsAlive() or target:IsBuilding() or target:IsOther() then return end local thresholdPct = ability:GetSpecialValueFor("hp_threshold_pct") if parent:GetHealthPercent() >= thresholdPct then return end local vampPct = ability:GetSpecialValueFor("vamp_pct") local damage = event.damage or 0 if damage <= 0 then damage = parent:GetAverageTrueAttackDamage(target) end if damage <= 0 then return end local heal = damage * vampPct / 100 * Difficulty:getNpcStatScale() if heal <= 0 then return end parent:Heal(heal, ability) local p = ParticleManager:CreateParticle("particles/units/heroes/hero_bloodseeker/bloodseeker_bloodbath.vpcf", PATTACH_ABSORIGIN_FOLLOW, parent) ParticleManager:SetParticleControl( p, 0, parent:GetAbsOrigin() ) ParticleManager:ReleaseParticleIndex(p) end modifier_wave_desperate_vampirism = __TS__Decorate( modifier_wave_desperate_vampirism, modifier_wave_desperate_vampirism, {registerModifier(nil)}, {kind = "class", name = "modifier_wave_desperate_vampirism"} ) ____exports.modifier_wave_desperate_vampirism = modifier_wave_desperate_vampirism return ____exports