function OnYoshika01AttackLanded(keys) local caster = EntIndexToHScript(keys.caster_entindex) local target = keys.target local effectIndex = ParticleManager:CreateParticle("particles/heroes/thtd_yoshika/ability_yoshika_01.vpcf",PATTACH_CUSTOMORIGIN,caster) ParticleManager:SetParticleControl(effectIndex, 0, target:GetOrigin()) ParticleManager:DestroyParticleSystem(effectIndex,false) local debuff_count = 1 if caster:HasModifier("modifier_miko_02_buff") and caster.thtd_miko_buff_yoshika ~= nil then debuff_count = 1 + caster.thtd_miko_buff_yoshika end local targets = THTD_FindUnitsInRadius(caster,target:GetOrigin(),keys.range) for k,v in pairs(targets) do local time = keys.duration_time v:AddPoison(debuff_count, caster) v:SetContextThink(DoUniqueString("thtd_yoshika01_debuff"), function() if GameRules:IsGamePaused() then return 0.03 end if THTD_IsValid(v) == false then return nil end if time <= 0 then v:AddPoison(-debuff_count) return nil end local DamageTable = { ability = keys.ability, victim = v, attacker = caster, damage = caster:THTD_GetAbilityPowerDamage(keys.ability) * 0.5, damage_type = keys.ability:GetAbilityDamageType(), damage_flags = DOTA_DAMAGE_FLAG_NONE } UnitDamageTarget(DamageTable) time = time - 0.5 return 0.5 end, 0) local modifier = v:FindModifierByName("modifier_yoshika_01_slow") if modifier == nil then keys.ability:ApplyDataDrivenModifier(caster, v, "modifier_yoshika_01_slow", nil) else modifier:SetDuration(keys.duration_time,false) end end end function OnYoshika02SpellStart(keys) local caster = EntIndexToHScript(keys.caster_entindex) local inners = THTD_FindUnitsInner(caster) local damage = caster:THTD_GetAbilityPowerDamage(keys.ability) for k,v in pairs(inners) do if THTD_IsValid(v) then local count = v:GetPoisonCount() if count > 0 then local effectIndex = ParticleManager:CreateParticle("particles/heroes/thtd_yoshika/ability_yoshika_02.vpcf",PATTACH_CUSTOMORIGIN,caster) ParticleManager:SetParticleControl(effectIndex, 0, v:GetOrigin()) ParticleManager:DestroyParticleSystem(effectIndex,false) local DamageTable = { ability = keys.ability, victim = v, attacker = caster, damage = damage * count, damage_type = keys.ability:GetAbilityDamageType(), damage_flags = DOTA_DAMAGE_FLAG_NONE } UnitDamageTarget(DamageTable) end end end end