diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 96c73f71be5..37d452f5893 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -278,7 +278,7 @@ proc/get_radio_key_from_channel(var/channel) var/speech_bubble_test = say_test(message) var/image/speech_bubble = image('icons/mob/talk.dmi',src,"h[speech_bubble_test]") INVOKE_ASYNC(GLOBAL_PROC, /proc/animate_speechbubble, speech_bubble, hear_clients, 30) - INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, speaking, italics, hear_clients, 30) + do_animate_chat(message, speaking, italics, hear_clients, 30) for(var/o in listening_obj) var/obj/O = o @@ -289,6 +289,9 @@ proc/get_radio_key_from_channel(var/channel) log_say("[key_name(src)] : ([get_lang_name(speaking)]) [message]",ckey=key_name(src)) return 1 +/mob/living/proc/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) + /proc/animate_speechbubble(image/I, list/show_to, duration) var/matrix/M = matrix() M.Scale(0,0) diff --git a/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm b/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm index 79d4b555b1a..4ea0a568135 100644 --- a/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm +++ b/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm @@ -156,3 +156,6 @@ newstate = "[health_prefix]_health[newstate]" if(healths.icon_state != newstate) healths.icon_state = newstate + +/mob/living/simple_animal/construct/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/familiars/familiars.dm b/code/modules/mob/living/simple_animal/familiars/familiars.dm index 72a46b6dd0e..35e832e0495 100644 --- a/code/modules/mob/living/simple_animal/familiars/familiars.dm +++ b/code/modules/mob/living/simple_animal/familiars/familiars.dm @@ -25,6 +25,9 @@ for(var/spell in wizardy_spells) src.add_spell(new spell, "const_spell_ready") +/mob/living/simple_animal/familiar/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) + /mob/living/simple_animal/familiar/carcinus name = "crab" desc = "A small crab said to be made of stone and starlight." @@ -217,3 +220,6 @@ add_language(LANGUAGE_TCB) name = initial(name) desc = initial(desc) + +/mob/living/simple_animal/rat/familiar/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/changeling.dm b/code/modules/mob/living/simple_animal/hostile/changeling.dm index 468223909df..64d1677e8c0 100644 --- a/code/modules/mob/living/simple_animal/hostile/changeling.dm +++ b/code/modules/mob/living/simple_animal/hostile/changeling.dm @@ -51,6 +51,8 @@ icon_living = "horror_alt" icon_dead = "horror_alt_dead" +/mob/living/simple_animal/hostile/true_changeling/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) /mob/living/simple_animal/hostile/true_changeling/Life() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index b612b6dac96..dec7c3164c0 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -1,6 +1,6 @@ /mob/living/simple_animal/hostile/faithless name = "Faithless" - desc = "The Wish Granter's faith in humanity, incarnate" + desc = "The Wish Granter's faith in humanity, incarnate." icon = 'icons/mob/npc/human.dmi' icon_state = "faithless" icon_living = "faithless" @@ -65,6 +65,9 @@ ..() check_horde() +/mob/living/simple_animal/hostile/faithless/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) + /mob/living/simple_animal/hostile/faithless/wizard name = "lost soul" desc = "The result of a dark bargain." diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index d523959ba02..080282ab599 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -41,6 +41,9 @@ attack_emote = "focuses on" var/mob/living/simple_animal/hostile/hivebotbeacon/linked_parent = null +/mob/living/simple_animal/hostile/hivebot/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) + /mob/living/simple_animal/hostile/hivebot/get_bullet_impact_effect_type(var/def_zone) return BULLET_IMPACT_METAL diff --git a/code/modules/mob/living/simple_animal/hostile/pra.dm b/code/modules/mob/living/simple_animal/hostile/pra.dm index f6bb0c505d6..fc8ce24414f 100644 --- a/code/modules/mob/living/simple_animal/hostile/pra.dm +++ b/code/modules/mob/living/simple_animal/hostile/pra.dm @@ -63,6 +63,9 @@ add_language(LANGUAGE_SIIK_MAAS) set_default_language(LANGUAGE_SIIK_MAAS) +/mob/living/simple_animal/hostile/republicon/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) + /mob/living/simple_animal/hostile/republicon/get_bullet_impact_effect_type(var/def_zone) return BULLET_IMPACT_METAL diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm index 6e650ff7d10..d36e2f20c8a 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm @@ -62,6 +62,9 @@ ion_trail = new(src) ion_trail.start() +/mob/living/simple_animal/hostile/retaliate/malf_drone/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) + /mob/living/simple_animal/hostile/retaliate/malf_drone/Allow_Spacemove(var/check_drift = 0) return 1 diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index dcf4b71b22c..063bfeb3bea 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -121,6 +121,9 @@ ..() stat("Held Item", held_item) +/mob/living/simple_animal/parrot/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) + /* * Inventory */ diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index 00312422664..8020eea9069 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -40,6 +40,9 @@ new residue(loc) qdel(src) +/mob/living/simple_animal/shade/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) + /mob/living/simple_animal/shade/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri if(istype(O, /obj/item/device/soulstone)) var/obj/item/device/soulstone/S = O; diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 0b021354357..ecbab6adbe2 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -598,6 +598,9 @@ mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj) ..(message, null, verb) +/mob/living/simple_animal/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) + INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, pick(speak), language, small, show_to, duration) + /mob/living/simple_animal/get_speech_ending(verb, var/ending) return verb diff --git a/html/changelogs/geeves-simple_talk.yml b/html/changelogs/geeves-simple_talk.yml new file mode 100644 index 00000000000..8e3fbc8f70d --- /dev/null +++ b/html/changelogs/geeves-simple_talk.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Most simple mobs can no longer communicate via floating messages." \ No newline at end of file