diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 6fefb320f64..3649b4704aa 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -41,10 +41,16 @@ user.hud_used.lingstingdisplay.invisibility = 101 /datum/action/changeling/sting/can_sting(mob/user, mob/target) - if(!..() || !iscarbon(target) || !isturf(user.loc) || !length(get_path_to(user, target, max_distance = cling.sting_range, simulated_only = FALSE))) + if(!..() || !iscarbon(target) || !isturf(user.loc)) + return FALSE + if(get_dist(user, target) > cling.sting_range) // Too far, don't bother pathfinding + to_chat(user, "Our target is too far for our sting!") + return FALSE + if(!length(get_path_to(user, target, max_distance = cling.sting_range, simulated_only = FALSE, skip_first = FALSE))) + to_chat(user, "Our sting is blocked from reaching our target!") return FALSE if(!cling.chosen_sting) - to_chat(user, "We haven't prepared our sting yet!") + to_chat(user, "We haven't prepared our sting yet!") return FALSE if(ismachineperson(target)) to_chat(user, "This won't work on synthetics.") diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 0308815ef1f..62c0d440e08 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -201,6 +201,9 @@ AM.setDir(current_dir) now_pushing = FALSE +/mob/living/CanPathfindPass(obj/item/card/id/ID, to_dir, atom/movable/caller, no_id = FALSE) + return TRUE // Unless you're a mule, something's trying to run you over. + /mob/living/proc/can_track(mob/living/user) //basic fast checks go first. When overriding this proc, I recommend calling ..() at the end. var/turf/T = get_turf(src)