diff --git a/code/datums/helper_datums/teleport_vr.dm b/code/datums/helper_datums/teleport_vr.dm index 1cb73d6ad9..eba2570c18 100644 --- a/code/datums/helper_datums/teleport_vr.dm +++ b/code/datums/helper_datums/teleport_vr.dm @@ -1,13 +1,17 @@ /datum/teleport/proc/try_televore() //Destination is in a belly - if(isbelly(destination.loc)) + if(isbelly(destination.loc) && isliving(teleatom)) + var/mob/living/L = teleatom var/obj/belly/B = destination.loc - + + if(!L.can_be_drop_prey) //Overloading this as a pref for 'want to be unexpectedly eaten' + return FALSE + teleatom.forceMove(get_turf(B)) //So we can splash the sound and sparks and everything. playSpecials(destination,effectout,soundout) teleatom.forceMove(B) - return 1 + return TRUE //No fun! - return 0 + return FALSE \ No newline at end of file diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm index 48aa1e415e..5dd7f8f492 100644 --- a/code/modules/vore/fluffstuff/custom_items_vr.dm +++ b/code/modules/vore/fluffstuff/custom_items_vr.dm @@ -1448,24 +1448,27 @@ //Destination beacon vore checking var/atom/real_dest = dT - var/televored = FALSE //UR GONNA GET VORED var/atom/real_loc = destination.loc if(isbelly(real_loc)) real_dest = real_loc - televored = TRUE if(isliving(real_loc)) var/mob/living/L = real_loc if(L.vore_selected) real_dest = L.vore_selected - televored = TRUE else if(L.vore_organs.len) real_dest = pick(L.vore_organs) + + //Confirm televore + var/televored = FALSE + if(isbelly(real_dest)) + var/obj/belly/B = real_dest + if(!target.can_be_drop_prey && B.owner != user) + to_chat(target,"\The [src] narrowly avoids teleporting you right into \a [lowertext(real_dest.name)]!") + real_dest = dT //Nevermind! + else televored = TRUE - - //Televore fluff stuff - if(televored) - to_chat(target,"\The [src] teleports you right into \a [lowertext(real_dest.name)]!") + to_chat(target,"\The [src] teleports you right into \a [lowertext(real_dest.name)]!") //Phase-out effect phase_out(target,get_turf(target)) @@ -1496,7 +1499,7 @@ ready = 1 update_icon() - logged_events["[world.time]"] = "[user] teleported [target] to [real_dest] [televored ? "(Belly: [lowertext(real_loc.name)])" : null]" + logged_events["[world.time]"] = "[user] teleported [target] to [real_dest] [televored ? "(Belly: [lowertext(real_dest.name)])" : null]" /obj/item/device/perfect_tele/proc/phase_out(var/mob/M,var/turf/T)