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