ID:151724
 
Ok Basicaly i want the object to still deal damage but carry on moving after it hits the user.Any ideas?

When i make the objects density 0 it obviously doesnt bump.
... Don't make the Bump() proc do damage? Make a Damage() proc. Call that as often as needed.
In response to Foomer
You could also use bump() and if it stops, call up whatever u need to to move the monsters.
In response to Superbike32
thanks. I resolved this by doing this:

Bump(atom/movable/a)
if(ismob(a))
var/mob/A=a
src.loc=A.loc//place object on user to carry on moving.
var/dmg=500
A.Dec_health(dmg,src.owner)
A << output("[src.owner]'s Suuton wave hit you for [dmg]!", "output2.combat")
In response to Rapmaster
That's just a bad implementation, since the object will still be dense (and pathfinding functions will think that way as well, not that it matters), it will be stopped by dense turfs or objs*, and setting the loc directly to move things is just a bad practice which should be normally avoided.
*: Maybe you want this part, you didn't specify. If you do, then you'd do it in a slightly different way then what I'm about to describe.

Instead you should make the object non-dense, and simply make it hit mobs by looking for them each time it moves into a turf. You could do this by overriding either turf/Entered() or the moving-object's Move():
obj/special_attack
density = 0
proc
LookForTargets(location = src.loc)
var/hit
for(var/mob/M in location)
if(M.density) //if you want it to skip non-dense mobs or use another condition
hit = 1
src.Hit(M)
//break //if you want it to hit only one mob.
if(hit) del src //delete after hitting something
Hit(mob/M)
M.TakeDamage(9000)

//method 1:
obj/special_attack/Move()
. = ..() //do the usual, keep and check the result
if(. && isturf(src.loc)) //if the move was successful, and it was into a turf
src.LookForTargets()

//method 2:
//you could also implement a system where turf/Entered() \
alerts every movable to having moved on the map.

turf/Entered(obj/special_attack/A)
if(istype(A)) A.LookForTargets()
..()