diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 193ee62edd0..1bfba9d0d38 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -600,21 +600,22 @@ GLOBAL_LIST_INIT(slot_equipment_priority, list( \ if(next_move >= world.time) return - if(!src || !isturf(src.loc)) - return 0 - if(istype(A, /obj/effect/temp_visual/point)) - return 0 + if(!isturf(loc) || istype(A, /obj/effect/temp_visual/point)) + return FALSE var/tile = get_turf(A) if(!tile) - return 0 + return FALSE changeNext_move(CLICK_CD_POINT) var/obj/P = new /obj/effect/temp_visual/point(tile) P.invisibility = invisibility - P.pixel_x = A.pixel_x - P.pixel_y = A.pixel_y - return 1 + if(get_turf(src) != tile) + // Start off from the pointer and make it slide to the pointee + P.pixel_x = (x - A.x) * 32 + P.pixel_y = (y - A.y) * 32 + animate(P, 0.5 SECONDS, pixel_x = A.pixel_x, pixel_y = A.pixel_y, easing = QUAD_EASING) + return TRUE /mob/proc/ret_grab(obj/effect/list_container/mobl/L as obj, flag) if((!( istype(l_hand, /obj/item/grab) ) && !( istype(r_hand, /obj/item/grab) )))