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