Files
2026-05-29 15:11:31 +07:00

185 lines
7.2 KiB
Lua

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