Merge pull request #14536 from Heroman3003/protean

Makes speech bubbles manually selectable, adds a whole bunch of new ones
This commit is contained in:
Casey
2023-02-25 14:28:57 -05:00
committed by CHOMPStation2
parent d1d10dcd7d
commit 41c20ca400
8 changed files with 52 additions and 8 deletions

View File

@@ -946,6 +946,26 @@ var/global/list/event_wildlife_roaming = list(
)
var/global/list/selectable_speech_bubbles = list(
"default",
"normal",
"slime",
"comm",
"machine",
"synthetic",
"synthetic_evil",
"cyber",
"ghost",
"slime_green",
"dark",
"plant",
"clown",
"fox",
"maus",
"heart",
"textbox",
"posessed")
// AREA GENERATION AND BLUEPRINT STUFF BELOW HERE

View File

@@ -48,7 +48,7 @@
/mob/living/carbon/brain/runechat_holder(datum/chatmessage/CM)
if(isturf(loc))
return ..()
return loc
/mob/living/carbon/brain/set_typing_indicator(var/state)
@@ -59,8 +59,11 @@
loc.cut_overlay(typing_indicator, TRUE)
return
if(!typing_indicator)
init_typing_indicator("[speech_bubble_appearance()]_typing")
var/cur_bubble_appearance = custom_speech_bubble
if(!cur_bubble_appearance || cur_bubble_appearance == "default")
cur_bubble_appearance = speech_bubble_appearance()
if(!typing_indicator || cur_typing_indicator != cur_bubble_appearance)
init_typing_indicator("[cur_bubble_appearance]_typing")
if(state && !typing)
loc.add_overlay(typing_indicator, TRUE)
@@ -80,7 +83,7 @@
var/datum/transcore_db/db = SStranscore.db_by_mind_name(mind.name)
if(db)
var/datum/transhuman/mind_record/record = db.backed_up[src.mind.name]
if(!(record.dead_state == MR_DEAD))
if(!(record.dead_state == MR_DEAD))
if((world.time - timeofhostdeath ) > 5 MINUTES) //Allows notify transcore to be used if you have an entry but for some reason weren't marked as dead
record.dead_state = MR_DEAD //Such as if you got scanned but didn't take an implant. It's a little funky, but I mean, you got scanned
db.notify(record) //So you probably will want to let someone know if you die.

View File

@@ -191,3 +191,12 @@
if (visible)
visible_message("<b>\The [src]</b> shifts and contorts, taking the form of \a [new_species]!")
regenerate_icons()
/mob/verb/select_speech_bubble()
set name = "Select Speech Bubble"
set category = "OOC"
var/new_speech_bubble = tgui_input_list(src, "Pick new voice!", "Character Preference", selectable_speech_bubbles)
if(new_speech_bubble)
to_chat(src, "<span class='notice'>Your voice changes.</span>")
custom_speech_bubble = new_speech_bubble

View File

@@ -341,7 +341,9 @@ var/list/channel_to_radio_key = new
//The 'post-say' static speech bubble
var/speech_bubble_test = say_test(message)
//var/image/speech_bubble = image('icons/mob/talk_vr.dmi',src,"h[speech_bubble_test]") //VOREStation Edit. Commented this out in case we need to reenable.
var/speech_type = speech_bubble_appearance()
var/speech_type = custom_speech_bubble
if(!speech_type || speech_type == "default")
speech_type = speech_bubble_appearance()
var/image/speech_bubble = generate_speech_bubble(src, "[speech_type][speech_bubble_test]")
var/sb_alpha = 255
var/atom/loc_before_turf = src

View File

@@ -109,7 +109,9 @@
if(comm)
var/speech_bubble_test = say_test(message)
//var/image/speech_bubble = image('icons/mob/talk_vr.dmi',comm,"h[speech_bubble_test]") //VOREStation Edit - Commented out in case of needed reenable.
var/speech_type = speech_bubble_appearance()
var/speech_type = custom_speech_bubble
if(!speech_type || speech_type == "default")
speech_type = speech_bubble_appearance()
var/image/speech_bubble = generate_speech_bubble(comm, "[speech_type][speech_bubble_test]")
spawn(30)
qdel(speech_bubble)

View File

@@ -218,6 +218,8 @@
var/typing
var/obj/effect/decal/typing_indicator
var/cur_typing_indicator
var/custom_speech_bubble = "default"
var/low_priority = FALSE //Skip processing life() if there's just no players on this Z-level

View File

@@ -12,6 +12,9 @@
return I
/mob/proc/init_typing_indicator(var/set_state = "typing")
if(typing_indicator)
qdel(typing_indicator)
typing_indicator = null
typing_indicator = new
typing_indicator.appearance = generate_speech_bubble(null, set_state)
typing_indicator.appearance_flags |= (RESET_COLOR|PIXEL_SCALE) //VOREStation Edit
@@ -23,8 +26,11 @@
cut_overlay(typing_indicator, TRUE)
return
if(!typing_indicator)
init_typing_indicator("[speech_bubble_appearance()]_typing")
var/cur_bubble_appearance = custom_speech_bubble
if(!cur_bubble_appearance || cur_bubble_appearance == "default")
cur_bubble_appearance = speech_bubble_appearance()
if(!typing_indicator || cur_typing_indicator != cur_bubble_appearance)
init_typing_indicator("[cur_bubble_appearance]_typing")
if(state && !typing)
add_overlay(typing_indicator, TRUE)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB