function UdU takes real amount, unit source,unit target, string fx, sound sx returns nothing
call PlaySoundOnUnitBJ(sx,150,target)
call DestroyEffect(AddSpecialEffectTarget(fx,target,"chest"))
call UnitDamageTarget(source,target,amount,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
endfunction
function AOEdu takes real amount, unit source, string fx, sound sx, group g returns nothing
local unit u = FirstOfGroup(g)
local group y = CreateGroup()
call GroupAddGroup(g,y)
loop
exitwhen(u==null)
call UdU(amount,source,u,fx,sx)
call GroupRemoveUnit(y,u)
set u = FirstOfGroup(y)
endloop
call DestroyGroup(y)
set u = null
set y = null
endfunction
function FilterIsEnemy takes nothing returns boolean
return IsPlayerEnemy(GetOwningPlayer(GetSpellAbilityUnit()),GetOwningPlayer(GetFilterUnit())) and GetUnitState(GetFilterUnit(),UNIT_STATE_LIFE)>0 and GetUnitAbilityLevel(GetFilterUnit(),'Avul') == 0
endfunction