ID:143978
 
Code:
mob/Vaizard/verb/Cero()
set category = "Combat"
usr.stamina -= 5
if(usr.stamina <= 5)
usr<<"<font color=red><B><small><B>Combat Info:</font><font color=white><B><small> You need to rest!"
else
third()
mob
proc
third()
var/obj/H = new/obj/Bakudo/Cero
view()<<sound('cero.wav')
H.dir = src.dir
H.loc = src.loc
while(H)
step(H,H.dir)
var/turf/T = H.loc
if(T.density == 1)
del(H)
break
for(var/mob/M as mob in T)
if(M == src)
continue
if(src.reiatsu < M.reiatsu)
src<<"<font color=#0099ff><B><small><B>Combat Info:</font><font color=white><B><small> You don't phase [M]"
if(src.reiatsu > M.reiatsu)
var/damage = src.reiatsu - M.reiatsu + 2000
M:HP -= damage
src<<"<font color=#0099ff><B><small><B>Combat Info:</font><font color=white><B><small> You hit [M] for [damage] damage!</font>"
M:DeathCheck()
usr.Levelup()
usr.exp+=rand(50,300)
usr.gold+=rand(10,20)
del(H)
sleep(1)


Problem description:
How would I make it so the attack has to cool off and delay before the next shot?

You can do that by making a var, example
if(usr.cero_delay) 
usr<<"What ever you want it to say"
return

and you do something like this in the third proc
usr.cero_delay = 1
sleep(30)usr.cero_delay =0
In response to Slayer 200
This would be a more 'clean' method:
mob/var/tmp/attack_time = 0
mob/var/attack_delay = 5 //the delay of the attack


mob/Vaizard/verb/Cero()
set category = "Combat"
if(world.time<src.attack_time) return

src.attack_time = src.attack_delay + world.time
usr.stamina -= 5
if(usr.stamina <= 5)
usr<<"<font color=red><B><small><B>Combat Info:</font><font color=white><B><small> You need to rest!"
else
third()