initial commit
This commit is contained in:
74
scripts/vscripts/abilities/ability_lua/modifier_mugiyousei_01.lua
Executable file
74
scripts/vscripts/abilities/ability_lua/modifier_mugiyousei_01.lua
Executable file
@@ -0,0 +1,74 @@
|
||||
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
|
||||
Reference in New Issue
Block a user