diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 5ffbfc0e68e..4d70eab1251 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -19,6 +19,7 @@ layer = MOB_LAYER - 0.2//icon draw layer infra_luminosity = 15 //byond implementation is bugged. force = 5 + flags = HEAR var/can_move = 1 var/mob/living/carbon/occupant = null var/step_in = 10 //make a step in step_in/10 sec. @@ -333,8 +334,16 @@ return /obj/mecha/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans) - if(speaker == occupant && radio.broadcasting) - radio.talk_into(speaker, text, , spans) + if(speaker == occupant) + if(radio.broadcasting) + radio.talk_into(speaker, text, , spans) + //flick speech bubble + var/list/speech_bubble_recipients = list() + for(var/mob/M in get_hearers_in_view(7,src)) + if(M.client) + speech_bubble_recipients.Add(M.client) + spawn(0) + flick_overlay(image('icons/mob/talk.dmi', src, "hR[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30) return //////////////////////////// diff --git a/code/game/say.dm b/code/game/say.dm index ec015f49674..e4d53e7b5b5 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -125,7 +125,7 @@ var/list/freqtospan = list( output = "[output]'>" return output -/mob/living/proc/say_test(text) +/proc/say_test(text) var/ending = copytext(text, length(text)) if (ending == "?") return "1"