Makes typing indicators use your bubble icon (#67872)

About The Pull Request

Typing indicators now rely on what bubble icon you have, rather than all being the default.

Most speech bubbles with Admin Combo HUD: https://cdn.discordapp.com/attachments/751307359351210014/992025794207551538/speechbubbles.mp4

A new sprite has been added for every bubble type for this to properly work, and nearly all bubble icons have been resprited by @Crumpaloo

All bubbles have been moved to the right side of the user as to not cover their HUDs, so it is now consistent with the default bubbles.
Why It's Good For The Game

This sucks:
https://user-images.githubusercontent.com/53777086/174477936-98d92891-7d2d-409c-8b9b-f92cd046edc4.mp4

It also lets us re-add one of the main perks of the Lawyer's badge, which is currently locked to not being on runechat, an option that might not exist in the future.
Changelog

cl Crumpaloo, jlsnow301, JohnFulpWillard
add: Typing indicators now use your speech bubble type, rather than all being the same, so Cyborgs no longer look like a human when typing, and Lawyers have that cool speech bubble again.
/cl
This commit is contained in:
John Willard
2022-07-06 12:43:52 +12:00
committed by GitHub
parent e56374d395
commit c3132671e1
3 changed files with 16 additions and 22 deletions
+12 -18
View File
@@ -1,9 +1,3 @@
/// Thinking
GLOBAL_DATUM_INIT(thinking_indicator, /mutable_appearance, mutable_appearance('icons/mob/talk.dmi', "default3", TYPING_LAYER))
/// Typing
GLOBAL_DATUM_INIT(typing_indicator, /mutable_appearance, mutable_appearance('icons/mob/talk.dmi', "default0", TYPING_LAYER))
/** Creates a thinking indicator over the mob. */
/mob/proc/create_thinking_indicator()
return
@@ -81,28 +75,28 @@ GLOBAL_DATUM_INIT(typing_indicator, /mutable_appearance, mutable_appearance('ico
/// Overrides for overlay creation
/mob/living/create_thinking_indicator()
if(thinking_indicator || typing_indicator || !thinking_IC || stat != CONSCIOUS )
if(active_thinking_indicator || active_typing_indicator || !thinking_IC || stat != CONSCIOUS )
return FALSE
add_overlay(GLOB.thinking_indicator)
thinking_indicator = TRUE
active_thinking_indicator = mutable_appearance('icons/mob/talk.dmi', "[bubble_icon]3", TYPING_LAYER)
add_overlay(active_thinking_indicator)
/mob/living/remove_thinking_indicator()
if(!thinking_indicator)
if(!active_thinking_indicator)
return FALSE
cut_overlay(GLOB.thinking_indicator)
thinking_indicator = FALSE
cut_overlay(active_thinking_indicator)
active_thinking_indicator = null
/mob/living/create_typing_indicator()
if(typing_indicator || thinking_indicator || !thinking_IC || stat != CONSCIOUS)
if(active_typing_indicator || active_thinking_indicator || !thinking_IC || stat != CONSCIOUS)
return FALSE
add_overlay(GLOB.typing_indicator)
typing_indicator = TRUE
active_typing_indicator = mutable_appearance('icons/mob/talk.dmi', "[bubble_icon]0", TYPING_LAYER)
add_overlay(active_typing_indicator)
/mob/living/remove_typing_indicator()
if(!typing_indicator)
if(!active_typing_indicator)
return FALSE
cut_overlay(GLOB.typing_indicator)
typing_indicator = FALSE
cut_overlay(active_typing_indicator)
active_typing_indicator = null
/mob/living/remove_all_indicators()
thinking_IC = FALSE