function GetUnits takes nothing returns nothing
local timer t = GetExpiredTimer()
local location l = LoadLocationHandle(Hash, GetHandleId(t), 0)
local unit u = LoadUnitHandle(Hash, GetHandleId(t), 1)
local effect e
local group g = CreateGroup()
local unit d
local integer i = 0
local integer n = 0
local integer damage = 0
call GroupEnumUnitsInRangeOfLoc(g, l, 600, null)
set n = CountUnitsInGroup(g)
set damage = 100 * n
loop
set d = FirstOfGroup(g)
exitwhen d == null
call PolledWait(0.2)
if (IsUnitEnemy(d, GetOwningPlayer(u)) == true) and IsUnitType(d, UNIT_TYPE_STRUCTURE) != true then
call UnitDamageTarget(u, d, damage, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
set e = AddSpecialEffectTarget("Objects\\Spawnmodels\\Undead\\UCancelDeath\\UCancelDeath.mdl", d, "origin")
endif
call GroupRemoveUnit(g, d)
endloop
call FlushChildHashtable(Hash, GetHandleId(t))
call DestroyTimer(t)
call DestroyGroup(g)
call RemoveLocation(l)
set t = null
set l = null
set u = null
set d = null
set g = null
set e = null
endfunction
function Trig_Kill_Stricke_Actions takes nothing returns nothing
local location s = GetSpellTargetLoc()
local unit c
local timer t = CreateTimer()
local unit u = GetTriggerUnit()
set c = CreateUnitAtLoc(GetOwningPlayer(u), 'u009', s, GetUnitFacing(u))
call SaveUnitHandle(Hash, GetHandleId(t), 1, u)
call SaveLocationHandle(Hash, GetHandleId(t), 0, s)
call TimerStart(t, 2, false, function GetUnits)
set t = null
set s = null
set c = null
set u = null
endfunction