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
+4 -4
View File
@@ -227,10 +227,10 @@
var/interaction_range = 0 //how far a mob has to be to interact with something without caring about obsctruction, defaulted to 0 tiles
/// Typing indicator - mob is typing into a input
var/typing_indicator = FALSE
/// Thinking indicator - mob has input window open
var/thinking_indicator = FALSE
///the icon currently used for the typing indicator's bubble
var/active_typing_indicator
///the icon currently used for the thinking indicator's bubble
var/active_thinking_indicator
/// User is thinking in character. Used to revert to thinking state after stop_typing
var/thinking_IC = FALSE
+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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 31 KiB