200 lines
7.1 KiB
Lua
200 lines
7.1 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
|
|
____exports.ability_dragon_fear_aura = __TS__Class()
|
|
local ability_dragon_fear_aura = ____exports.ability_dragon_fear_aura
|
|
ability_dragon_fear_aura.name = "ability_dragon_fear_aura"
|
|
ability_dragon_fear_aura.____file_path = "scripts/vscripts/abilities/heroes/smaug/ability_dragon_fear_aura.lua"
|
|
__TS__ClassExtends(ability_dragon_fear_aura, BaseAbility)
|
|
function ability_dragon_fear_aura.prototype.GetIntrinsicModifierName(self)
|
|
return ____exports.modifier_dragon_fear_aura.name
|
|
end
|
|
ability_dragon_fear_aura = __TS__Decorate(
|
|
ability_dragon_fear_aura,
|
|
ability_dragon_fear_aura,
|
|
{registerAbility(nil)},
|
|
{kind = "class", name = "ability_dragon_fear_aura"}
|
|
)
|
|
____exports.ability_dragon_fear_aura = ability_dragon_fear_aura
|
|
____exports.modifier_dragon_fear_aura = __TS__Class()
|
|
local modifier_dragon_fear_aura = ____exports.modifier_dragon_fear_aura
|
|
modifier_dragon_fear_aura.name = "modifier_dragon_fear_aura"
|
|
modifier_dragon_fear_aura.____file_path = "scripts/vscripts/abilities/heroes/smaug/ability_dragon_fear_aura.lua"
|
|
__TS__ClassExtends(modifier_dragon_fear_aura, BaseModifier)
|
|
function modifier_dragon_fear_aura.prototype.____constructor(self, ...)
|
|
BaseModifier.prototype.____constructor(self, ...)
|
|
self.spellAmp = 0
|
|
end
|
|
function modifier_dragon_fear_aura.prototype.IsHidden(self)
|
|
return true
|
|
end
|
|
function modifier_dragon_fear_aura.prototype.IsPurgable(self)
|
|
return false
|
|
end
|
|
function modifier_dragon_fear_aura.prototype.OnCreated(self)
|
|
local ability = self:GetAbility()
|
|
if not ability then
|
|
return
|
|
end
|
|
self.spellAmp = ability:GetSpecialValueFor("spell_amp")
|
|
end
|
|
function modifier_dragon_fear_aura.prototype.OnRefresh(self)
|
|
local ability = self:GetAbility()
|
|
if not ability then
|
|
return
|
|
end
|
|
self.spellAmp = ability:GetSpecialValueFor("spell_amp")
|
|
end
|
|
function modifier_dragon_fear_aura.prototype.DeclareFunctions(self)
|
|
return {MODIFIER_EVENT_ON_ATTACK_START, MODIFIER_PROPERTY_SPELL_AMPLIFY_PERCENTAGE}
|
|
end
|
|
function modifier_dragon_fear_aura.prototype.OnAttackStart(self, event)
|
|
if not IsServer() then
|
|
return
|
|
end
|
|
if event.target ~= self:GetParent() then
|
|
return
|
|
end
|
|
if event.attacker:IsMagicImmune() then
|
|
return
|
|
end
|
|
event.attacker:AddNewModifier(
|
|
self:GetParent(),
|
|
self:GetAbility(),
|
|
____exports.modifier_dragon_fear_aura_debuff.name,
|
|
{}
|
|
)
|
|
end
|
|
function modifier_dragon_fear_aura.prototype.GetModifierSpellAmplify_Percentage(self)
|
|
return self.spellAmp
|
|
end
|
|
modifier_dragon_fear_aura = __TS__Decorate(
|
|
modifier_dragon_fear_aura,
|
|
modifier_dragon_fear_aura,
|
|
{registerModifier(nil)},
|
|
{kind = "class", name = "modifier_dragon_fear_aura"}
|
|
)
|
|
____exports.modifier_dragon_fear_aura = modifier_dragon_fear_aura
|
|
____exports.modifier_dragon_fear_aura_debuff = __TS__Class()
|
|
local modifier_dragon_fear_aura_debuff = ____exports.modifier_dragon_fear_aura_debuff
|
|
modifier_dragon_fear_aura_debuff.name = "modifier_dragon_fear_aura_debuff"
|
|
modifier_dragon_fear_aura_debuff.____file_path = "scripts/vscripts/abilities/heroes/smaug/ability_dragon_fear_aura.lua"
|
|
__TS__ClassExtends(modifier_dragon_fear_aura_debuff, BaseModifier)
|
|
function modifier_dragon_fear_aura_debuff.prototype.____constructor(self, ...)
|
|
BaseModifier.prototype.____constructor(self, ...)
|
|
self.outgoing = 0
|
|
self.duration = 0
|
|
self.incoming = 0
|
|
self.attackOther = false
|
|
self.hasAttacked = false
|
|
end
|
|
function modifier_dragon_fear_aura_debuff.prototype.IsHidden(self)
|
|
return false
|
|
end
|
|
function modifier_dragon_fear_aura_debuff.prototype.IsDebuff(self)
|
|
return true
|
|
end
|
|
function modifier_dragon_fear_aura_debuff.prototype.IsStunDebuff(self)
|
|
return false
|
|
end
|
|
function modifier_dragon_fear_aura_debuff.prototype.IsPurgable(self)
|
|
return true
|
|
end
|
|
function modifier_dragon_fear_aura_debuff.prototype.OnCreated(self)
|
|
local ability = self:GetAbility()
|
|
if not ability then
|
|
return
|
|
end
|
|
self.outgoing = ability:GetSpecialValueFor("outgoing")
|
|
self.duration = ability:GetSpecialValueFor("duration")
|
|
self.incoming = ability:GetSpecialValueFor("incoming")
|
|
end
|
|
function modifier_dragon_fear_aura_debuff.prototype.OnRefresh(self)
|
|
local ability = self:GetAbility()
|
|
if not ability then
|
|
return
|
|
end
|
|
self.outgoing = ability:GetSpecialValueFor("outgoing")
|
|
self.duration = ability:GetSpecialValueFor("duration")
|
|
self.incoming = ability:GetSpecialValueFor("incoming")
|
|
end
|
|
function modifier_dragon_fear_aura_debuff.prototype.DeclareFunctions(self)
|
|
return {MODIFIER_PROPERTY_PRE_ATTACK, MODIFIER_EVENT_ON_ATTACK, MODIFIER_PROPERTY_DAMAGEOUTGOING_PERCENTAGE, MODIFIER_PROPERTY_INCOMING_DAMAGE_PERCENTAGE}
|
|
end
|
|
function modifier_dragon_fear_aura_debuff.prototype.GetModifierPreAttack(self, event)
|
|
if not IsServer() then
|
|
return 0
|
|
end
|
|
self.record = event.record
|
|
self.attackOther = true
|
|
local effectCast1 = ParticleManager:CreateParticle(
|
|
"particles/econ/items/grimstroke/gs_fall20_immortal/gs_fall20_immortal_soul_debuff.vpcf",
|
|
PATTACH_ABSORIGIN_FOLLOW,
|
|
self:GetParent()
|
|
)
|
|
ParticleManager:SetParticleControlEnt(
|
|
effectCast1,
|
|
2,
|
|
self:GetParent(),
|
|
PATTACH_ABSORIGIN_FOLLOW,
|
|
"",
|
|
self:GetParent():GetAbsOrigin(),
|
|
true
|
|
)
|
|
self:AddParticle(
|
|
effectCast1,
|
|
false,
|
|
false,
|
|
-1,
|
|
false,
|
|
false
|
|
)
|
|
if self.primary then
|
|
local effectCast2 = ParticleManager:CreateParticle(
|
|
"particles/econ/items/grimstroke/gs_fall20_immortal/gs_fall20_immortal_soul_dragon_model.vpcf",
|
|
PATTACH_OVERHEAD_FOLLOW,
|
|
self:GetParent()
|
|
)
|
|
self:AddParticle(
|
|
effectCast2,
|
|
false,
|
|
false,
|
|
-1,
|
|
false,
|
|
true
|
|
)
|
|
end
|
|
return 0
|
|
end
|
|
function modifier_dragon_fear_aura_debuff.prototype.OnAttack(self, event)
|
|
if not IsServer() then
|
|
return
|
|
end
|
|
if event.record ~= self.record then
|
|
return
|
|
end
|
|
self:SetDuration(self.duration, true)
|
|
self.hasAttacked = true
|
|
end
|
|
function modifier_dragon_fear_aura_debuff.prototype.GetModifierDamageOutgoing_Percentage(self)
|
|
return self.outgoing
|
|
end
|
|
function modifier_dragon_fear_aura_debuff.prototype.GetModifierIncomingDamage_Percentage(self)
|
|
return self.incoming
|
|
end
|
|
modifier_dragon_fear_aura_debuff = __TS__Decorate(
|
|
modifier_dragon_fear_aura_debuff,
|
|
modifier_dragon_fear_aura_debuff,
|
|
{registerModifier(nil)},
|
|
{kind = "class", name = "modifier_dragon_fear_aura_debuff"}
|
|
)
|
|
____exports.modifier_dragon_fear_aura_debuff = modifier_dragon_fear_aura_debuff
|
|
return ____exports
|