diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index d795f4ff9e..3396d157de 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -225,7 +225,9 @@ var/mob/living/L = mob switch(L.incorporeal_move) if(INCORPOREAL_MOVE_BASIC) - L.loc = get_step(L, direct) + var/T = get_step(L,direct) + if(T) + L.loc = T L.setDir(direct) if(INCORPOREAL_MOVE_SHADOW) if(prob(50)) @@ -254,31 +256,36 @@ return else return - L.loc = locate(locx,locy,mobloc.z) - var/limit = 2//For only two trailing shadows. - for(var/turf/T in getline(mobloc, L.loc)) - new /obj/effect/temp_visual/dir_setting/ninja/shadow(T, L.dir) - limit-- - if(limit<=0) - break + var/target = locate(locx,locy,mobloc.z) + if(target) + L.loc = target + var/limit = 2//For only two trailing shadows. + for(var/turf/T in getline(mobloc, L.loc)) + new /obj/effect/temp_visual/dir_setting/ninja/shadow(T, L.dir) + limit-- + if(limit<=0) + break else new /obj/effect/temp_visual/dir_setting/ninja/shadow(mobloc, L.dir) - L.loc = get_step(L, direct) + var/T = get_step(L,direct) + if(T) + L.loc = T L.setDir(direct) if(INCORPOREAL_MOVE_JAUNT) //Incorporeal move, but blocked by holy-watered tiles and salt piles. var/turf/open/floor/stepTurf = get_step(L, direct) - for(var/obj/effect/decal/cleanable/salt/S in stepTurf) - to_chat(L, "[S] bars your passage!") - if(isrevenant(L)) - var/mob/living/simple_animal/revenant/R = L - R.reveal(20) - R.stun(20) - return - if(stepTurf.flags_1 & NOJAUNT_1) - to_chat(L, "Holy energies block your path.") - else - L.loc = get_step(L, direct) - L.setDir(direct) + if(stepTurf) + for(var/obj/effect/decal/cleanable/salt/S in stepTurf) + to_chat(L, "[S] bars your passage!") + if(isrevenant(L)) + var/mob/living/simple_animal/revenant/R = L + R.reveal(20) + R.stun(20) + return + if(stepTurf.flags_1 & NOJAUNT_1) + to_chat(L, "Holy energies block your path.") + else + L.loc = get_step(L, direct) + L.setDir(direct) return TRUE