107 lines
4.3 KiB
Lua
107 lines
4.3 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 registerAbility = ____dota_ts_adapter.registerAbility
|
|
local registerModifier = ____dota_ts_adapter.registerModifier
|
|
local ____ability_bloodrage = require("abilities.heroes.bloodhunter.ability_bloodrage")
|
|
local modifier_bloodrage_buff = ____ability_bloodrage.modifier_bloodrage_buff
|
|
____exports.ability_bloodstained_memory = __TS__Class()
|
|
local ability_bloodstained_memory = ____exports.ability_bloodstained_memory
|
|
ability_bloodstained_memory.name = "ability_bloodstained_memory"
|
|
ability_bloodstained_memory.____file_path = "scripts/vscripts/abilities/heroes/bloodhunter/ability_bloodstained_memory.lua"
|
|
__TS__ClassExtends(ability_bloodstained_memory, BaseAbility)
|
|
function ability_bloodstained_memory.prototype.GetIntrinsicModifierName(self)
|
|
return ____exports.modifier_bloodstained_memory.name
|
|
end
|
|
ability_bloodstained_memory = __TS__Decorate(
|
|
ability_bloodstained_memory,
|
|
ability_bloodstained_memory,
|
|
{registerAbility(nil)},
|
|
{kind = "class", name = "ability_bloodstained_memory"}
|
|
)
|
|
____exports.ability_bloodstained_memory = ability_bloodstained_memory
|
|
____exports.modifier_bloodstained_memory = __TS__Class()
|
|
local modifier_bloodstained_memory = ____exports.modifier_bloodstained_memory
|
|
modifier_bloodstained_memory.name = "modifier_bloodstained_memory"
|
|
modifier_bloodstained_memory.____file_path = "scripts/vscripts/abilities/heroes/bloodhunter/ability_bloodstained_memory.lua"
|
|
__TS__ClassExtends(modifier_bloodstained_memory, BaseModifier)
|
|
function modifier_bloodstained_memory.prototype.____constructor(self, ...)
|
|
BaseModifier.prototype.____constructor(self, ...)
|
|
self.healthbonus = 0
|
|
self.movespeed = 0
|
|
end
|
|
function modifier_bloodstained_memory.prototype.IsHidden(self)
|
|
return false
|
|
end
|
|
function modifier_bloodstained_memory.prototype.IsPurgable(self)
|
|
return false
|
|
end
|
|
function modifier_bloodstained_memory.prototype.IsDebuff(self)
|
|
return false
|
|
end
|
|
function modifier_bloodstained_memory.prototype.RemoveOnDeath(self)
|
|
return true
|
|
end
|
|
function modifier_bloodstained_memory.prototype.DeclareFunctions(self)
|
|
return {MODIFIER_PROPERTY_HEALTH_BONUS, MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT, MODIFIER_PROPERTY_IGNORE_MOVESPEED_LIMIT}
|
|
end
|
|
function modifier_bloodstained_memory.prototype.OnCreated(self)
|
|
if not IsServer() then
|
|
return
|
|
end
|
|
local ability = self:GetAbility()
|
|
if not ability then
|
|
return
|
|
end
|
|
self.healthbonus = ability:GetSpecialValueFor("healthbonus")
|
|
self.movespeed = ability:GetSpecialValueFor("movespeed")
|
|
self:StartIntervalThink(0.1)
|
|
end
|
|
function modifier_bloodstained_memory.prototype.OnIntervalThink(self)
|
|
self:OnCreated()
|
|
end
|
|
function modifier_bloodstained_memory.prototype.OnRefresh(self)
|
|
self:OnCreated()
|
|
end
|
|
function modifier_bloodstained_memory.prototype.GetModifierIgnoreMovespeedLimit(self)
|
|
if self:GetParent():PassivesDisabled() then
|
|
return 0
|
|
end
|
|
return 1
|
|
end
|
|
function modifier_bloodstained_memory.prototype.GetModifierHealthBonus(self)
|
|
local parent = self:GetParent()
|
|
if parent:PassivesDisabled() then
|
|
return 0
|
|
end
|
|
local bloodrageMod = parent:FindModifierByName(modifier_bloodrage_buff.name)
|
|
if not bloodrageMod then
|
|
return 0
|
|
end
|
|
return self.healthbonus * bloodrageMod:GetStackCount()
|
|
end
|
|
function modifier_bloodstained_memory.prototype.GetModifierMoveSpeedBonus_Constant(self)
|
|
local parent = self:GetParent()
|
|
if parent:PassivesDisabled() then
|
|
return 0
|
|
end
|
|
local bloodrageMod = parent:FindModifierByName(modifier_bloodrage_buff.name)
|
|
if not bloodrageMod then
|
|
return 0
|
|
end
|
|
return self.movespeed * bloodrageMod:GetStackCount()
|
|
end
|
|
modifier_bloodstained_memory = __TS__Decorate(
|
|
modifier_bloodstained_memory,
|
|
modifier_bloodstained_memory,
|
|
{registerModifier(nil)},
|
|
{kind = "class", name = "modifier_bloodstained_memory"}
|
|
)
|
|
____exports.modifier_bloodstained_memory = modifier_bloodstained_memory
|
|
return ____exports
|