Well, since it involves waiting for the right moment, you could have a timer loop that accepts input, and you'd code the damage output depending on the time passed. It'd look something like this...
'THE VARIABLE 'T' REPRESENTS TIME PASSED IN FRAMES
FOR T=0 TO 120 'WAIT 2 SECONDS AT MOST
IF BUTTON() AND #A THEN BREAK 'EXIT WAIT LOOP WHEN USER PRESSES A
WAIT 1 'WAIT UNTIL NEXT FRAME
NEXT
You're right! I made my code on a bit of a hurry, sorry!
If you want to use VSYNC, simply replace WAIT 1 in the above code with a VSYNC 1.
If you want to use MILLISEC, you could replace the whole loop with something a bit simpler, like this...
T0=MILLISEC
REPEAT
T1=MILLISEC
UNTIL BUTTON() AND #A
T=T1-T0
Where T would be the time passed in milliseconds. T0 and T1 are used as auxiliaries.