Applying damage to multiple objects OnTriggerStay ?

So here’s my problem. I want to make an area that damages multiple units over time, only when more than one unit enters the trigger it still only damages one unit. Here’s my code

function OnTriggerStay (col : Collider) {

if (Time.time > lastDamage + damgeDelay) {
col.gameObject.BroadcastMessage(“ApplyDamage”, damage, SendMessageOptions.DontRequireReceiver);
lastDamage = Time.time;
}
}

If I remove the time check it damages all of the units, but on every physics frame, which I don’t really want.
Any ideas on how to fix this? Could I use an array and add/subtract items as they enter and leave from the trigger and just broadcast a message to all the items in the array?

Can you arrange it so that the target objects apply the damage to themselves? Maybe you could have a function to start the damage that gets called by SendMessage during OnTriggerEnter and another to cancel the damage in OnTriggerExit.

Yeah that could work. I could do a function that takes any damage over time and applies it to themselves over a set interval.

I think it’d be cleaner if the trigger would actually do it, but this way will actually work.

Thanks!