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 local ____modifier_general_fired = require("abilities.modifiers.modifier_general_fired") local modifier_general_fired = ____modifier_general_fired.modifier_general_fired ____exports.item_fire_cape = __TS__Class() local item_fire_cape = ____exports.item_fire_cape item_fire_cape.name = "item_fire_cape" item_fire_cape.____file_path = "scripts/vscripts/items/default_items/item_fire_cape.lua" __TS__ClassExtends(item_fire_cape, BaseItem) function item_fire_cape.prototype.GetIntrinsicModifierName(self) return "modifier_item_fire_cape" end function item_fire_cape.prototype.GetAOERadius(self) return self:GetSpecialValueFor("radius") end item_fire_cape = __TS__Decorate( item_fire_cape, item_fire_cape, {registerAbility(nil)}, {kind = "class", name = "item_fire_cape"} ) ____exports.item_fire_cape = item_fire_cape ____exports.modifier_item_fire_cape = __TS__Class() local modifier_item_fire_cape = ____exports.modifier_item_fire_cape modifier_item_fire_cape.name = "modifier_item_fire_cape" modifier_item_fire_cape.____file_path = "scripts/vscripts/items/default_items/item_fire_cape.lua" __TS__ClassExtends(modifier_item_fire_cape, BaseModifier) function modifier_item_fire_cape.prototype.RemoveOnDeath(self) return false end function modifier_item_fire_cape.prototype.IsHidden(self) return true end function modifier_item_fire_cape.prototype.IsPurgable(self) return false end function modifier_item_fire_cape.prototype.GetAuraRadius(self) return self:GetAbility():GetSpecialValueFor("radius") end function modifier_item_fire_cape.prototype.GetAuraSearchTeam(self) return DOTA_UNIT_TARGET_TEAM_ENEMY end function modifier_item_fire_cape.prototype.GetAuraSearchType(self) return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC end function modifier_item_fire_cape.prototype.GetModifierAura(self) return "modifier_item_fire_cape_aura" end function modifier_item_fire_cape.prototype.IsAura(self) return true end function modifier_item_fire_cape.prototype.OnCreated(self, params) self:StartIntervalThink(1) end function modifier_item_fire_cape.prototype.GetTexture(self) return "default_items/fire_cape" end function modifier_item_fire_cape.prototype.DeclareFunctions(self) return { MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT, MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS, MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS, MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE, MODIFIER_PROPERTY_MANA_REGEN_CONSTANT, MODIFIER_PROPERTY_HEALTH_REGEN_CONSTANT } end function modifier_item_fire_cape.prototype.GetModifierPreAttack_BonusDamage(self) return self:GetAbility():GetSpecialValueFor("bonus_damage") end function modifier_item_fire_cape.prototype.GetModifierConstantManaRegen(self) return self:GetAbility():GetSpecialValueFor("bonus_mana_regen") end function modifier_item_fire_cape.prototype.GetModifierMagicalResistanceBonus(self, event) return self:GetAbility():GetSpecialValueFor("bonus_magic_resistance") end function modifier_item_fire_cape.prototype.GetModifierConstantHealthRegen(self) return self:GetAbility():GetSpecialValueFor("bonus_health_regen") end function modifier_item_fire_cape.prototype.GetModifierPhysicalArmorBonus(self, event) return self:GetAbility():GetSpecialValueFor("bonus_physical_armor") end function modifier_item_fire_cape.prototype.GetModifierAttackSpeedBonus_Constant(self) return self:GetAbility():GetSpecialValueFor("bonus_attack_speed") end function modifier_item_fire_cape.prototype.OnIntervalThink(self) if not IsServer() then return end if not self:GetParent():IsAlive() then return end local ____opt_0 = self:GetCaster() if ____opt_0 and ____opt_0:IsIllusion() then return end local caster = self:GetCaster() local radius = self:GetAbility():GetSpecialValueFor("radius") local damage = self:GetAbility():GetSpecialValueFor("damage") local enemies = FindUnitsInRadius( caster:GetTeamNumber(), caster:GetAbsOrigin(), nil, radius, DOTA_UNIT_TARGET_TEAM_ENEMY, bit.bor(DOTA_UNIT_TARGET_HERO, DOTA_UNIT_TARGET_BASIC), DOTA_UNIT_TARGET_FLAG_NONE, FIND_ANY_ORDER, false ) for ____, enemy in ipairs(enemies) do local damage_table = { victim = enemy, attacker = caster, damage = damage + self:GetParent():GetMaxMana() * (self:GetAbility():GetSpecialValueFor("mana_damage_pct") / 100), damage_type = DAMAGE_TYPE_MAGICAL, ability = self:GetAbility(), damage_flags = DOTA_DAMAGE_FLAG_NONE } local modifier = enemy:AddNewModifier( self:GetCaster(), self:GetAbility(), modifier_general_fired.name, {} ) if modifier then local stacksPerLevel = self:GetAbility():GetSpecialValueFor("fire_stack") do local i = 0 while i < stacksPerLevel do modifier:IncrementStackCount() i = i + 1 end end end ApplyDamage(damage_table) end end modifier_item_fire_cape = __TS__Decorate( modifier_item_fire_cape, modifier_item_fire_cape, {registerModifier(nil)}, {kind = "class", name = "modifier_item_fire_cape"} ) ____exports.modifier_item_fire_cape = modifier_item_fire_cape ____exports.modifier_item_fire_cape_aura = __TS__Class() local modifier_item_fire_cape_aura = ____exports.modifier_item_fire_cape_aura modifier_item_fire_cape_aura.name = "modifier_item_fire_cape_aura" modifier_item_fire_cape_aura.____file_path = "scripts/vscripts/items/default_items/item_fire_cape.lua" __TS__ClassExtends(modifier_item_fire_cape_aura, BaseModifier) function modifier_item_fire_cape_aura.prototype.RemoveOnDeath(self) return true end function modifier_item_fire_cape_aura.prototype.IsHidden(self) return true end function modifier_item_fire_cape_aura.prototype.IsPurgable(self) return false end function modifier_item_fire_cape_aura.prototype.DeclareFunctions(self) return {MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS, MODIFIER_PROPERTY_SPELL_AMPLIFY_PERCENTAGE} end function modifier_item_fire_cape_aura.prototype.GetModifierMagicalResistanceBonus(self) return -self:GetAbility():GetSpecialValueFor("bonus_magic_resistance") end function modifier_item_fire_cape_aura.prototype.GetModifierSpellAmplify_Percentage(self) return -self:GetAbility():GetSpecialValueFor("bonus_spell_amp") end modifier_item_fire_cape_aura = __TS__Decorate( modifier_item_fire_cape_aura, modifier_item_fire_cape_aura, {registerModifier(nil)}, {kind = "class", name = "modifier_item_fire_cape_aura"} ) ____exports.modifier_item_fire_cape_aura = modifier_item_fire_cape_aura return ____exports