Files
Dota-Zombie-Invasion/scripts/vscripts/items/default_items/item_zombie_slayer.lua
T
2026-05-29 15:11:31 +07:00

193 lines
8.8 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 __TS__StringStartsWith = ____lualib.__TS__StringStartsWith
local __TS__StringIncludes = ____lualib.__TS__StringIncludes
local ____exports = {}
local ____dota_ts_adapter = require("lib.dota_ts_adapter")
local BaseItem = ____dota_ts_adapter.BaseItem
local BaseModifier = ____dota_ts_adapter.BaseModifier
local registerAbility = ____dota_ts_adapter.registerAbility
local registerModifier = ____dota_ts_adapter.registerModifier
____exports.item_zombie_slayer = __TS__Class()
local item_zombie_slayer = ____exports.item_zombie_slayer
item_zombie_slayer.name = "item_zombie_slayer"
item_zombie_slayer.____file_path = "scripts/vscripts/items/default_items/item_zombie_slayer.lua"
__TS__ClassExtends(item_zombie_slayer, BaseItem)
function item_zombie_slayer.prototype.Precache(self, context)
PrecacheResource("particle", "particles/units/heroes/hero_skeletonking/wraith_king_curse_debuff_slash.vpcf", context)
PrecacheResource("particle", "particles/items2_fx/mage_slayer_debuff.vpcf", context)
PrecacheResource("particle", "particles/units/heroes/hero_dark_willow/dark_willow_wisp_spell_debuff.vpcf", context)
end
function item_zombie_slayer.prototype.GetIntrinsicModifierName(self)
return "modifier_item_zombie_slayer"
end
item_zombie_slayer = __TS__Decorate(
item_zombie_slayer,
item_zombie_slayer,
{registerAbility(nil)},
{kind = "class", name = "item_zombie_slayer"}
)
____exports.item_zombie_slayer = item_zombie_slayer
____exports.modifier_item_zombie_slayer = __TS__Class()
local modifier_item_zombie_slayer = ____exports.modifier_item_zombie_slayer
modifier_item_zombie_slayer.name = "modifier_item_zombie_slayer"
modifier_item_zombie_slayer.____file_path = "scripts/vscripts/items/default_items/item_zombie_slayer.lua"
__TS__ClassExtends(modifier_item_zombie_slayer, BaseModifier)
function modifier_item_zombie_slayer.prototype.IsHidden(self)
return true
end
function modifier_item_zombie_slayer.prototype.IsPurgable(self)
return false
end
function modifier_item_zombie_slayer.prototype.DeclareFunctions(self)
return {
MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE,
MODIFIER_PROPERTY_STATS_AGILITY_BONUS,
MODIFIER_PROPERTY_MANA_REGEN_CONSTANT,
MODIFIER_PROPERTY_HEALTH_BONUS,
MODIFIER_EVENT_ON_ATTACK_LANDED
}
end
function modifier_item_zombie_slayer.prototype.GetModifierHealthBonus(self)
return self:GetAbility():GetSpecialValueFor("bonus_health")
end
function modifier_item_zombie_slayer.prototype.GetModifierConstantManaRegen(self)
return self:GetAbility():GetSpecialValueFor("bonus_mana_regen")
end
function modifier_item_zombie_slayer.prototype.GetModifierPreAttack_BonusDamage(self)
return self:GetAbility():GetSpecialValueFor("bonus_damage")
end
function modifier_item_zombie_slayer.prototype.GetModifierBonusStats_Agility(self)
return self:GetAbility():GetSpecialValueFor("bonus_agility")
end
function modifier_item_zombie_slayer.prototype.OnAttackLanded(self, event)
if not IsServer() then
return
end
if event.attacker ~= self:GetParent() then
return
end
if not event.target or event.target:IsBuilding() or event.target:IsOther() then
return
end
if event.target ~= nil then
local ____self_4 = event.target
local ____self_4_AddNewModifier_5 = ____self_4.AddNewModifier
local ____temp_2 = self:GetParent()
local ____temp_3 = self:GetAbility()
local ____opt_0 = self:GetAbility()
____self_4_AddNewModifier_5(
____self_4,
____temp_2,
____temp_3,
"modifier_item_zombie_slayer_debuff_2",
{duration = ____opt_0 and ____opt_0:GetSpecialValueFor("debuff_duration")}
)
local ____this_7
____this_7 = event.target
local ____opt_6 = ____this_7.GetUnitName
local targetName = ____opt_6 and ____opt_6(____this_7) or ""
if __TS__StringStartsWith(targetName, "npc_wave") and not __TS__StringIncludes(
string.lower(targetName),
"boss"
) then
ParticleManager:CreateParticle("particles/units/heroes/hero_skeletonking/wraith_king_curse_debuff_slash.vpcf", PATTACH_ABSORIGIN_FOLLOW, event.target)
local ____self_12 = event.target
local ____self_12_AddNewModifier_13 = ____self_12.AddNewModifier
local ____temp_10 = self:GetParent()
local ____temp_11 = self:GetAbility()
local ____opt_8 = self:GetAbility()
____self_12_AddNewModifier_13(
____self_12,
____temp_10,
____temp_11,
"modifier_item_zombie_slayer_debuff",
{duration = ____opt_8 and ____opt_8:GetSpecialValueFor("debuff_duration")}
)
return
end
end
end
modifier_item_zombie_slayer = __TS__Decorate(
modifier_item_zombie_slayer,
modifier_item_zombie_slayer,
{registerModifier(nil)},
{kind = "class", name = "modifier_item_zombie_slayer"}
)
____exports.modifier_item_zombie_slayer = modifier_item_zombie_slayer
____exports.modifier_item_zombie_slayer_debuff = __TS__Class()
local modifier_item_zombie_slayer_debuff = ____exports.modifier_item_zombie_slayer_debuff
modifier_item_zombie_slayer_debuff.name = "modifier_item_zombie_slayer_debuff"
modifier_item_zombie_slayer_debuff.____file_path = "scripts/vscripts/items/default_items/item_zombie_slayer.lua"
__TS__ClassExtends(modifier_item_zombie_slayer_debuff, BaseModifier)
function modifier_item_zombie_slayer_debuff.prototype.IsDebuff(self)
return true
end
function modifier_item_zombie_slayer_debuff.prototype.IsPurgable(self)
return true
end
function modifier_item_zombie_slayer_debuff.prototype.IsHidden(self)
return true
end
function modifier_item_zombie_slayer_debuff.prototype.GetEffectName(self)
return "particles/items2_fx/mage_slayer_debuff.vpcf"
end
function modifier_item_zombie_slayer_debuff.prototype.GetEffectAttachType(self)
return PATTACH_ABSORIGIN_FOLLOW
end
function modifier_item_zombie_slayer_debuff.prototype.DeclareFunctions(self)
return {MODIFIER_PROPERTY_INCOMING_DAMAGE_PERCENTAGE}
end
function modifier_item_zombie_slayer_debuff.prototype.GetModifierIncomingDamage_Percentage(self, event)
return self:GetAbility():GetSpecialValueFor("incress_damage")
end
modifier_item_zombie_slayer_debuff = __TS__Decorate(
modifier_item_zombie_slayer_debuff,
modifier_item_zombie_slayer_debuff,
{registerModifier(nil)},
{kind = "class", name = "modifier_item_zombie_slayer_debuff"}
)
____exports.modifier_item_zombie_slayer_debuff = modifier_item_zombie_slayer_debuff
____exports.modifier_item_zombie_slayer_debuff_2 = __TS__Class()
local modifier_item_zombie_slayer_debuff_2 = ____exports.modifier_item_zombie_slayer_debuff_2
modifier_item_zombie_slayer_debuff_2.name = "modifier_item_zombie_slayer_debuff_2"
modifier_item_zombie_slayer_debuff_2.____file_path = "scripts/vscripts/items/default_items/item_zombie_slayer.lua"
__TS__ClassExtends(modifier_item_zombie_slayer_debuff_2, BaseModifier)
function modifier_item_zombie_slayer_debuff_2.prototype.IsDebuff(self)
return true
end
function modifier_item_zombie_slayer_debuff_2.prototype.IsPurgable(self)
return true
end
function modifier_item_zombie_slayer_debuff_2.prototype.IsHidden(self)
return true
end
function modifier_item_zombie_slayer_debuff_2.prototype.GetEffectName(self)
return "particles/units/heroes/hero_dark_willow/dark_willow_wisp_spell_debuff.vpcf"
end
function modifier_item_zombie_slayer_debuff_2.prototype.GetEffectAttachType(self)
return PATTACH_OVERHEAD_FOLLOW
end
function modifier_item_zombie_slayer_debuff_2.prototype.DeclareFunctions(self)
return {MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS, MODIFIER_PROPERTY_HEALTH_REGEN_PERCENTAGE, MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE}
end
function modifier_item_zombie_slayer_debuff_2.prototype.GetModifierMoveSpeedBonus_Percentage(self)
return self:GetAbility():GetSpecialValueFor("movespeed_reduction")
end
function modifier_item_zombie_slayer_debuff_2.prototype.GetModifierHealthRegenPercentage(self)
return 1 + (self:GetAbility():GetSpecialValueFor("health_reduction") - 100) * 0.01
end
function modifier_item_zombie_slayer_debuff_2.prototype.GetModifierPhysicalArmorBonus(self, event)
return self:GetAbility():GetSpecialValueFor("armor_reduction")
end
modifier_item_zombie_slayer_debuff_2 = __TS__Decorate(
modifier_item_zombie_slayer_debuff_2,
modifier_item_zombie_slayer_debuff_2,
{registerModifier(nil)},
{kind = "class", name = "modifier_item_zombie_slayer_debuff_2"}
)
____exports.modifier_item_zombie_slayer_debuff_2 = modifier_item_zombie_slayer_debuff_2
return ____exports