74 lines
1.8 KiB
Lua
Executable File
74 lines
1.8 KiB
Lua
Executable File
modifier_mugiyousei_01 = class({})
|
|
|
|
local public = modifier_mugiyousei_01
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:IsDebuff()
|
|
return false
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:IsHidden()
|
|
return true
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:IsPurgable()
|
|
return false
|
|
end
|
|
|
|
function public:GetTexture()
|
|
return "touhoutd/thtd_mugiyousei_01"
|
|
end
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
function public:DeclareFunctions()
|
|
local funcs = {
|
|
MODIFIER_EVENT_ON_ATTACK_LANDED,
|
|
}
|
|
return funcs
|
|
end
|
|
|
|
function public:OnAttackLanded( params )
|
|
if IsServer() then
|
|
if params.attacker ~= self:GetParent() or self:GetParent():IsIllusion() then return end
|
|
if self:GetParent():PassivesDisabled() then return end
|
|
|
|
local caster = params.attacker
|
|
local target = params.target
|
|
local ability = self:GetAbility()
|
|
|
|
local damage = caster:THTD_GetAbilityPowerDamage(ability)
|
|
|
|
local time = ability:GetSpecialValueFor("damage_duration")
|
|
target:AddPoison(1, caster)
|
|
target:SetContextThink(DoUniqueString("thtd_mugiyousei01_attack"),
|
|
function()
|
|
if GameRules:IsGamePaused() then return 0.03 end
|
|
if time <= 0 or THTD_IsValid(target) == false then
|
|
if target ~= nil and target:IsNull() == false then
|
|
target:AddPoison(-1)
|
|
end
|
|
return nil
|
|
end
|
|
|
|
local DamageTable = {
|
|
ability = ability,
|
|
victim = target,
|
|
attacker = caster,
|
|
damage = damage,
|
|
damage_type = ability:GetAbilityDamageType(),
|
|
damage_flags = DOTA_DAMAGE_FLAG_NONE
|
|
}
|
|
UnitDamageTarget(DamageTable)
|
|
|
|
time = time - 1.0
|
|
return 1.0
|
|
end,
|
|
0)
|
|
end
|
|
end |