193 lines
8.8 KiB
Lua
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
|