diff --git a/code/modules/ai/ai_holder_targeting_vr.dm b/code/modules/ai/ai_holder_targeting_vr.dm new file mode 100644 index 00000000000..4c7ef854038 --- /dev/null +++ b/code/modules/ai/ai_holder_targeting_vr.dm @@ -0,0 +1,5 @@ +/datum/ai_holder/can_see_target(atom/movable/the_target, view_range = vision_range) + if(the_target && isbelly(the_target.loc)) + return FALSE + + return ..() diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 5c48e5ea22b..11ce8988f0f 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -201,6 +201,17 @@ var/taste if(can_taste && (taste = M.get_taste_message(FALSE))) to_chat(owner, "[M] tastes of [taste].") + //Stop AI processing in bellies + if(M.ai_holder) + M.ai_holder.go_sleep() + +// Called whenever an atom leaves this belly +/obj/belly/Exited(atom/movable/thing, atom/OldLoc) + . = ..() + if(isliving(thing) && !isbelly(thing.loc)) + var/mob/living/L = thing + if((L.stat != DEAD) && L.ai_holder) + L.ai_holder.go_wake() // Release all contents of this belly into the owning mob's location. // If that location is another mob, contents are transferred into whichever of its bellies the owning mob is in. diff --git a/vorestation.dme b/vorestation.dme index f9930ace873..1712fe91f88 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1616,6 +1616,7 @@ #include "code\modules\ai\ai_holder_movement.dm" #include "code\modules\ai\ai_holder_pathfinding.dm" #include "code\modules\ai\ai_holder_targeting.dm" +#include "code\modules\ai\ai_holder_targeting_vr.dm" #include "code\modules\ai\interfaces.dm" #include "code\modules\ai\say_list.dm" #include "code\modules\ai\ai_holder_subtypes\simple_mob_ai.dm"