globals
trigger udg_DDS_Trigger = null
endglobals
//Modify this function.
function Taking_Damage takes nothing returns boolean
call BJDebugMsg("Unit takes damage")
return false
endfunction
function Add_Picked_Unit takes nothing returns nothing
call TriggerRegisterUnitEvent(udg_DDS_Trigger, GetEnumUnit(), EVENT_UNIT_DAMAGED)
endfunction
function Add_Entering_Unit takes nothing returns boolean
call TriggerRegisterUnitEvent(udg_DDS_Trigger, GetEnteringUnit(), EVENT_UNIT_DAMAGED)
return false
endfunction
function Init_Damage_System takes nothing returns nothing
local group g = CreateGroup()
call DestroyTrigger(udg_DDS_Trigger)
set udg_DDS_Trigger = CreateTrigger()
call TriggerAddCondition(udg_DDS_Trigger, Filter(function Taking_Damage))
call GroupEnumUnitsInRect(g, GetWorldBounds(), null)
call ForGroup(g, function Add_Picked_Unit)
call DestroyGroup(g)
endfunction
function InitTrig_Init_Damage_System takes nothing returns nothing
local trigger t = CreateTrigger()
local region r = CreateRegion()
call RegionAddRect(r, GetWorldBounds())
call TriggerRegisterEnterRegion(t, r, null)
call TriggerAddCondition(t, Filter(function Add_Entering_Unit))
call TimerStart(CreateTimer(), 300, true, function Init_Damage_System)
call Init_Damage_System()
endfunction