You'll want to use a periodic timer and some variables.
AwakeningCaster = Triggering Unit (Unit)
AwakeningPoint = Position of Triggering Unit (Point)
AwakeningCounter = 0 (Integer)
Turn on your periodic timer -> Have it run your "Pick every unit -> Deal damage" actions referencing these variables whenever it expires. Then increase AwakeningCounter by 1 each time. And finally check if AwakeningCounter is equal to 31 and turn off the timer.
If you want it to be MUI (work for multiple units) then you apply this same logic but incorporate Arrays. You can use any of the methods below to do so, although it depends on what you want to do:
Visualize: Dynamic Indexing
GUI Unit Indexer 1.4.0.0
A Complete Beginners Guide to Hashtables
I attached three example maps. One uses Dynamic Indexing, another uses a Unit Indexer, and the last one uses none of these systems (Simple).
Simple only works for a single unit but only if the abilities cooldown is longer than it's duration.
Unit Indexer works for multiple units but only if the abilities cooldown is longer than it's duration.
Dynamic Indexing works for multiple units and will work regardless of the cooldown/duration.