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 BaseAbility = ____dota_ts_adapter.BaseAbility local BaseModifier = ____dota_ts_adapter.BaseModifier local registerAbility = ____dota_ts_adapter.registerAbility local registerModifier = ____dota_ts_adapter.registerModifier local ____creep_render_color = require("utils.creep_render_color") local trySetIntrinsicCreepRenderColor = ____creep_render_color.trySetIntrinsicCreepRenderColor --- Пассив: усиливает юнита на bonus_pct процентов (по умолчанию 100 = удвоение по смыслу «+100%»). -- HP/мана — плоский бонус от базового макс.; урон/IAS/мувспид/спелламп/реген HP% — через модификаторы. ____exports.wave_full_brutality = __TS__Class() local wave_full_brutality = ____exports.wave_full_brutality wave_full_brutality.name = "wave_full_brutality" wave_full_brutality.____file_path = "scripts/vscripts/abilities/creep/wave_full_brutality.lua" __TS__ClassExtends(wave_full_brutality, BaseAbility) function wave_full_brutality.prototype.GetIntrinsicModifierName(self) return "modifier_wave_full_brutality_passive" end wave_full_brutality = __TS__Decorate( wave_full_brutality, wave_full_brutality, {registerAbility(nil)}, {kind = "class", name = "wave_full_brutality"} ) ____exports.wave_full_brutality = wave_full_brutality ____exports.modifier_wave_full_brutality_passive = __TS__Class() local modifier_wave_full_brutality_passive = ____exports.modifier_wave_full_brutality_passive modifier_wave_full_brutality_passive.name = "modifier_wave_full_brutality_passive" modifier_wave_full_brutality_passive.____file_path = "scripts/vscripts/abilities/creep/wave_full_brutality.lua" __TS__ClassExtends(modifier_wave_full_brutality_passive, BaseModifier) function modifier_wave_full_brutality_passive.prototype.____constructor(self, ...) BaseModifier.prototype.____constructor(self, ...) self.bonusPct = 100 self.effectiveBonusPct = 100 self.healthBonusFlat = 0 self.manaBonusFlat = 0 end function modifier_wave_full_brutality_passive.prototype.IsHidden(self) return false end function modifier_wave_full_brutality_passive.prototype.IsDebuff(self) return false end function modifier_wave_full_brutality_passive.prototype.IsPurgable(self) return false end function modifier_wave_full_brutality_passive.prototype.OnCreated(self) local ability = self:GetAbility() local parent = self:GetParent() if not parent then return end if IsServer() then trySetIntrinsicCreepRenderColor( nil, self:GetParent(), 52, 0, 0 ) end self.bonusPct = ability and ability:GetSpecialValueFor("bonus_pct") or 100 if self.bonusPct < 0 then self.bonusPct = 0 end self.effectiveBonusPct = self.bonusPct local baseHp = math.max( 1, parent:GetMaxHealth() ) local baseMana = math.max( 0, parent:GetMaxMana() ) self.healthBonusFlat = math.floor(baseHp * (self.effectiveBonusPct / 100)) self.manaBonusFlat = math.floor(baseMana * (self.effectiveBonusPct / 100)) if IsServer() then Timers:CreateTimer( 0, function() local p = self:GetParent() if not p or not IsValidEntity(p) or not p:IsAlive() then return nil end p:SetHealth(p:GetMaxHealth() * 2) if p:GetMaxMana() > 0 then p:SetMana(p:GetMaxMana() * 2) end return nil end ) end end function modifier_wave_full_brutality_passive.prototype.DeclareFunctions(self) return { MODIFIER_PROPERTY_HEALTH_BONUS, MODIFIER_PROPERTY_MANA_BONUS, MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE, MODIFIER_PROPERTY_ATTACKSPEED_PERCENTAGE, MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE, MODIFIER_PROPERTY_SPELL_AMPLIFY_PERCENTAGE } end function modifier_wave_full_brutality_passive.prototype.GetModifierHealthBonus(self) return self.healthBonusFlat end function modifier_wave_full_brutality_passive.prototype.GetModifierManaBonus(self) return self.manaBonusFlat end function modifier_wave_full_brutality_passive.prototype.GetModifierDamageOutgoing_Percentage(self, _event) return self.effectiveBonusPct end function modifier_wave_full_brutality_passive.prototype.GetModifierAttackSpeedPercentage(self) return self.effectiveBonusPct end function modifier_wave_full_brutality_passive.prototype.GetModifierMoveSpeedBonus_Percentage(self) return self.effectiveBonusPct end function modifier_wave_full_brutality_passive.prototype.GetModifierSpellAmplify_Percentage(self, _event) return self.effectiveBonusPct end function modifier_wave_full_brutality_passive.prototype.GetEffectName(self) return "particles/items2_fx/mask_of_madness.vpcf" end function modifier_wave_full_brutality_passive.prototype.GetEffectAttachType(self) return PATTACH_ABSORIGIN_FOLLOW end modifier_wave_full_brutality_passive = __TS__Decorate( modifier_wave_full_brutality_passive, modifier_wave_full_brutality_passive, {registerModifier(nil)}, {kind = "class", name = "modifier_wave_full_brutality_passive"} ) ____exports.modifier_wave_full_brutality_passive = modifier_wave_full_brutality_passive return ____exports