Paste this in free space (make sure it's word-aligned), then call it with ASMC. Takes the following parameters:
_SETVAL 0x1 (XX coordinate of upper left corner)
_SETVAL 0x2 (YY coordinate of upper left corner)
_SETVAL 0x3 (XX coordinate of bottom right corner)
_SETVAL 0x4 (YY coordinate of bottom right corner)
_SETVAL 0x5 (damage inflicted)
30 B5 00 24 13 4D 20 1C 13 49 00 F0 22 F8 00 28 1A D0 01 68 00 29 17 D0 10 21 41 56 2A 79 91 42 12 DB 2A 7B 91 42 0F DC 11 21 41 56 2A 7A 91 42 0A DB 2A 7C 91 42 07 DC 13 21 41 56 2A 7D 89 1A 00 29 00 DC 01 21 C1 74 01 34 FF 2C DB DD 30 BC 02 BC 08 47 B8 04 00 03 31 94 01 08
This is untested, because I have no idea how to do events. Just let me know if it doesn't work as expected.
There's no graphics (yet), because graphics are hard.
This damages all units, regardless of allegiance. A check would be easy to add if you want one.
Finally, this doesn't kill anyone, because you'll get glitchy 0-hp units. It'll leave them at 1 hp instead. If someone figures out graphics, then normal death can occur (unless, of course, you don't want that).
@Paste into free space, call with ASMC OFFSET+1
cmp r0,#0x0 @is there actually a pointer
cmp r1,#0x0 @is there actually a character at this location
mov r1, #0x10
ldsb r1,[r0,r1] @load x coordinate
ldrb r2,[r5,#0x4] @x min
cmp r1,r2 @x max
mov r1, #0x11
ldsb r1,[r0,r1] @load y coordinate
ldrb r2,[r5,#0x8] @y min
ldrb r2,[r5,#0x10] @y max
ldsb r1,[r0,r1] @load current hp
ldrb r2,[r5,#0x14] @load damage
mov r1,#0x1 @We don't want to kill them, do we now?