Ports CM's langchat to replace floating chat. (#20818)

Works generally better and will allow for better customization and emote
display.

---------

Co-authored-by: realmattatlas <liermattia@gmail.com>
This commit is contained in:
Matt Atlas
2025-07-07 23:55:26 +00:00
committed by GitHub
co-authored by realmattatlas
parent 2700e9b9ca
commit 1738301ea7
26 changed files with 533 additions and 245 deletions
+4 -2
View File
@@ -909,9 +909,11 @@ GLOBAL_LIST_INIT(slot_flags_enumeration, list(
SSicon_cache.bloody_cache[type] = blood_overlay
/obj/item/proc/showoff(mob/user)
for (var/mob/M in view(user))
var/list/viewers = get_hearers_in_view(world.view, src)
user.langchat_speech("holds up [src].", viewers, GLOB.all_languages, skip_language_check = TRUE, animation_style = LANGCHAT_FAST_POP, additional_styles = list("langchat_small", "emote"))
for (var/mob/M in viewers)
if(!user.is_invisible_to(M))
M.show_message("<b>[user]</b> holds up [icon2html(src, viewers(get_turf(src)))] [src]. <a href='byond://?src=[REF(M)];lookitem=[REF(src)]>Take a closer look.</a>",1)
M.show_message("<b>[user]</b> holds up [icon2html(src, viewers)] [src]. <a href='byond://?src=[REF(M)];lookitem=[REF(src)]>Take a closer look.</a>",1)
/mob/living/carbon/verb/showoff()
set name = "Show Held Item"
+1 -1
View File
@@ -319,4 +319,4 @@
if(mob.client)
clients_in_hearers += mob.client
if(length(clients_in_hearers))
INVOKE_ASYNC(src, TYPE_PROC_REF(/atom/movable, animate_chat), message, null, FALSE, clients_in_hearers, overhead_time)
langchat_speech(message, hearers, GLOB.all_languages, skip_language_check = TRUE)