diff --git a/code/datums/spells/ethereal_jaunt.dm b/code/datums/spells/ethereal_jaunt.dm index c2a5d938f78..867eb048903 100644 --- a/code/datums/spells/ethereal_jaunt.dm +++ b/code/datums/spells/ethereal_jaunt.dm @@ -19,6 +19,9 @@ /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets) //magnets, so mostly hardcoded for(var/mob/living/target in targets) + if(!target.can_safely_leave_loc()) // No more brainmobs hopping out of their brains + target << "You are somehow too bound to your current location to abandon it." + continue spawn(0) if(target.buckled) diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index ea350268792..3fe57ec2acc 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -95,4 +95,7 @@ I'm using this for Stat to give it a more nifty interface to work with if(istype(src.loc, /obj/mecha)) var/obj/mecha/M = src.loc stat("Exosuit Charge:", "[istype(M.cell) ? "[M.cell.charge] / [M.cell.maxcharge]" : "No cell detected"]") - stat("Exosuit Integrity", "[!M.health ? "0" : "[(M.health / initial(M.health)) * 100]"]%") \ No newline at end of file + stat("Exosuit Integrity", "[!M.health ? "0" : "[(M.health / initial(M.health)) * 100]"]%") + +/mob/living/carbon/brain/can_safely_leave_loc() + return 0 //You're not supposed to be ethereal jaunting, brains \ No newline at end of file diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index ce81f116920..623905c75e7 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1436,4 +1436,8 @@ mob/proc/yank_out_object() //Can the mob see reagents inside of containers? /mob/proc/can_see_reagents() - return 0 \ No newline at end of file + return 0 + +//Can this mob leave its location without breaking things terrifically? +/mob/proc/can_safely_leave_loc() + return 1 // Yes, you can \ No newline at end of file