Code:
/mob/living/carbon/alien/humanoid/hunter/verb/pounce()
set name = "Pounce (50)"
set desc = "Pounce onto your prey."
set category = "Alien"
if(usedpounce >= 1)
src << "\red We must wait before pouncing again.."
return
if(powerc(50))
var/targets[] = list()
for(var/mob/living/carbon/human/M in oview())
if(M.stat) continue//Doesn't target corpses or paralyzed persons.
targets.Add(M)
if(targets.len)
var/mob/living/carbon/human/target=pick(targets)
var/atom/targloc = get_turf(target)
if (!targloc || !istype(targloc, /turf) || get_dist(src.loc,targloc)>=3)
src << "We cannot reach our prey!"
return
if(src.weakened >= 1 || src.paralysis >= 1 || src.stunned >= 1)
src << "We cannot pounce if we are stunned.."
return
visible_message("\red <B>[src] pounces on [target]!</B>")
if(src.m_intent == "walk")
src.m_intent = "run"
src.hud_used.move_intent.icon_state = "running"
src.loc = targloc
src.canmove = 0
src.frozen = 1
target.Weaken(3)
usedpounce = 12
What you could do instead is step_toward() the target until you hit something. If you end up next to the target, then that's a hit.