Files
Dota-Zombie-Invasion/scripts/vscripts/abilities/creep/skeleton_archer.lua
T
2026-05-29 15:11:31 +07:00

92 lines
3.5 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 BaseAbility = ____dota_ts_adapter.BaseAbility
local BaseModifier = ____dota_ts_adapter.BaseModifier
local registerModifier = ____dota_ts_adapter.registerModifier
local ____dota_ts_adapter = require("lib.dota_ts_adapter")
local registerAbility = ____dota_ts_adapter.registerAbility
____exports.skeleton_archer_fire_arrow = __TS__Class()
local skeleton_archer_fire_arrow = ____exports.skeleton_archer_fire_arrow
skeleton_archer_fire_arrow.name = "skeleton_archer_fire_arrow"
skeleton_archer_fire_arrow.____file_path = "scripts/vscripts/abilities/creep/skeleton_archer.lua"
__TS__ClassExtends(skeleton_archer_fire_arrow, BaseAbility)
function skeleton_archer_fire_arrow.prototype.GetIntrinsicModifierName(self)
return "modifier_skeleton_archer_fire_arrow"
end
skeleton_archer_fire_arrow = __TS__Decorate(
skeleton_archer_fire_arrow,
skeleton_archer_fire_arrow,
{registerAbility(nil)},
{kind = "class", name = "skeleton_archer_fire_arrow"}
)
____exports.skeleton_archer_fire_arrow = skeleton_archer_fire_arrow
____exports.modifier_skeleton_archer_fire_arrow = __TS__Class()
local modifier_skeleton_archer_fire_arrow = ____exports.modifier_skeleton_archer_fire_arrow
modifier_skeleton_archer_fire_arrow.name = "modifier_skeleton_archer_fire_arrow"
modifier_skeleton_archer_fire_arrow.____file_path = "scripts/vscripts/abilities/creep/skeleton_archer.lua"
__TS__ClassExtends(modifier_skeleton_archer_fire_arrow, BaseModifier)
function modifier_skeleton_archer_fire_arrow.prototype.____constructor(self, ...)
BaseModifier.prototype.____constructor(self, ...)
self.bonusDamage = 0
end
function modifier_skeleton_archer_fire_arrow.prototype.IsHidden(self)
return true
end
function modifier_skeleton_archer_fire_arrow.prototype.IsPurgable(self)
return false
end
function modifier_skeleton_archer_fire_arrow.prototype.OnCreated(self, params)
if not IsServer() then
return
end
if not self:GetAbility() then
return
end
self.bonusDamage = self:GetAbility():GetSpecialValueFor("bonus_damage")
end
function modifier_skeleton_archer_fire_arrow.prototype.OnRefresh(self, params)
if not IsServer() then
return
end
if not self:GetAbility() then
return
end
self.bonusDamage = self:GetAbility():GetSpecialValueFor("bonus_damage")
end
function modifier_skeleton_archer_fire_arrow.prototype.DeclareFunctions(self)
return {MODIFIER_EVENT_ON_ATTACK_LANDED}
end
function modifier_skeleton_archer_fire_arrow.prototype.OnAttackLanded(self, event)
if not IsServer() then
return
end
if event.attacker ~= self:GetParent() then
return
end
if not event.target then
return
end
if not event.target:IsAlive() then
return
end
ApplyDamage({
victim = event.target,
attacker = event.attacker,
damage = self.bonusDamage,
damage_type = DAMAGE_TYPE_MAGICAL,
ability = self:GetAbility()
})
end
modifier_skeleton_archer_fire_arrow = __TS__Decorate(
modifier_skeleton_archer_fire_arrow,
modifier_skeleton_archer_fire_arrow,
{registerModifier(nil)},
{kind = "class", name = "modifier_skeleton_archer_fire_arrow"}
)
____exports.modifier_skeleton_archer_fire_arrow = modifier_skeleton_archer_fire_arrow
return ____exports