diff --git a/code/defines/procs/global_lists.dm b/code/defines/procs/global_lists.dm index 7e17b8cb5e7..30e6e64dfdc 100644 --- a/code/defines/procs/global_lists.dm +++ b/code/defines/procs/global_lists.dm @@ -94,10 +94,13 @@ proc/rebuild_mob_lists() proc/add_to_mob_list(var/mob/A)//Adds an individual mob if(A) mob_list |= A - if(A.stat == 2) - dead_mob_list |= A - if(A.stat != 2) - living_mob_list |= A + if(istype(A,/mob/new_player))//New players are only on the mob list, but not the dead/living + return + else + if(A.stat == 2) + dead_mob_list |= A + if(A.stat != 2) + living_mob_list |= A // if(A.client) // player_list |= A diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index 82c94634efc..585add5e15b 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -21,13 +21,25 @@ say_understands(var/other) if (istype(other, /mob/living/silicon/ai)) - return 1 + if(!(container && istype(container, /obj/item/device/mmi)))//Goddamn is this hackish, but this say code is so odd + return 0 + else + return 1 if (istype(other, /mob/living/silicon/decoy)) - return 1 + if(!(container && istype(container, /obj/item/device/mmi))) + return 0 + else + return 1 if (istype(other, /mob/living/silicon/pai)) - return 1 + if(!(container && istype(container, /obj/item/device/mmi))) + return 0 + else + return 1 if (istype(other, /mob/living/silicon/robot)) - return 1 + if(!(container && istype(container, /obj/item/device/mmi))) + return 0 + else + return 1 if (istype(other, /mob/living/carbon/human)) return 1 if (istype(other, /mob/living/carbon/metroid))