Voice Preferences

Added different voices and voice preferences to character customization. Already implemented voices are human, roach and lizard
This commit is contained in:
Alphas00
2024-06-19 10:48:56 +02:00
parent e51f547c87
commit 11182eeed4
15 changed files with 31 additions and 14 deletions
+7
View File
@@ -107,6 +107,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/starting_weight = 0 //how thicc you wanna be at start
var/wg_rate = 0.5
var/wl_rate = 0.5
var/voice = "human"
//HS13 jobs
var/sillyroles = TRUE //for clown and mime
@@ -446,6 +447,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<h2>Body</h2>"
dat += "<b>Gender:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=gender'>[gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]</a><BR>"
dat += "<b>Species:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=species;task=input'>[pref_species.id]</a><BR>"
dat += "<b>Voice:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=voice_select;task=input'>[voice ? voice : "None"]</a><BR>"
dat += "<b>Custom Species Name:</b><a style='display:block;width:100px' href='?_src_=prefs;preference=custom_species;task=input'>[custom_species ? custom_species : "None"]</a><BR>"
dat += "<a style='display:block;width:100px' href='?_src_=prefs;preference=all;task=random'>Random Body</A><BR>"
dat += "<b>Always Random Body:</b><a href='?_src_=prefs;preference=all'>[be_random_body ? "Yes" : "No"]</A><BR>"
@@ -1996,6 +1998,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else
custom_species = null
if("voice_select")
var/chosenvoice = input(user, "Select your character's voice.", "Voice Selection", voice) in list("human", "roach", "lizard")
voice = chosenvoice
if("mutant_color")
var/new_mutantcolor = input(user, "Choose your character's alien/mutant color:", "Character Preference","#"+features["mcolor"]) as color|null
if(new_mutantcolor)
@@ -2957,6 +2963,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
character.name = character.real_name
character.nameless = nameless
character.custom_species = custom_species
character.voice = voice
//h13 character custom body size, make sure to set to 100% if the player hasn't choosen one yet.
character.custom_body_size = body_size
@@ -372,6 +372,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["skin_tone"] >> skin_tone
S["hair_style_name"] >> hair_style
S["facial_style_name"] >> facial_hair_style
S["voice"] >> voice
// GS13: Hair gradients from Skyrat
S["grad_style"] >> grad_style
S["grad_color"] >> grad_color
@@ -638,6 +639,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["skin_tone"] , skin_tone)
WRITE_FILE(S["hair_style_name"] , hair_style)
WRITE_FILE(S["facial_style_name"] , facial_hair_style)
WRITE_FILE(S["voice"] , voice)
// GS13: Hair gradients from Skyrat
WRITE_FILE(S["grad_style"] , grad_style)
WRITE_FILE(S["grad_color"] , grad_color)
@@ -79,3 +79,5 @@
var/account_id
can_be_held = "micro"
appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE
var/voice = "human"
+3 -1
View File
@@ -497,7 +497,9 @@
. = ..()
message = null
emote_type = EMOTE_VISIBLE
playsound(usr.loc, 'GainStation13/sound/voice/voices/speak_1.ogg', 90, 10)
if(ishuman(usr))
var/mob/living/carbon/human/H = usr
playsound(usr.loc, "GainStation13/sound/voice/voices/[H.voice].ogg", 90, 10)
/datum/emote/living/custom/replace_pronoun(mob/user, message)
return message
+14 -12
View File
@@ -219,22 +219,24 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
if(pressure < ONE_ATMOSPHERE*0.4) //Thin air, let's italicise the message
spans |= SPAN_ITALICS
if(message_mode == MODE_WHISPER)
if(ishuman(src))
var/mob/living/carbon/human/H = src
var/vmod = ""
switch(say_mod(message, message_mode))
if("asks")
playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1_ask.ogg', 45, 5, -3)
if("exclaims" || "yells")
playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1_exclaim.ogg', 45, 5, -3)
else
playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1.ogg', 45, 5, -3)
else
vmod = "_ask"
if("exclaims")
vmod = "_exclaim"
if("yells")
vmod = "_exclaim"
switch(say_mod(message, message_mode))
if("asks")
playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1_ask.ogg', 90, 10, message_range)
if("exclaims" || "yells")
playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1_exclaim.ogg', 90, 10, message_range)
if("whispers")
playsound(src.loc, "GainStation13/sound/voice/voices/[H.voice][vmod].ogg", 45, 5, -3)
if("yells")
playsound(src.loc, "GainStation13/sound/voice/voices/[H.voice][vmod].ogg", 130, 10, message_range+2)
else
playsound(src.loc, 'GainStation13/sound/voice/voices/speak_1.ogg', 90, 10, message_range)
playsound(src.loc, "GainStation13/sound/voice/voices/[H.voice][vmod].ogg", 90, 10, message_range)
//playsound(user.loc, pick('GainStation13/sound/voice/voices/speak_1.ogg', 'GainStation13/sound/voice/voices/speak_1_ask.ogg', 'GainStation13/sound/voice/voices/speak_1_exclaim.ogg'), 90, 10)
send_speech(message, message_range, src, bubble_type, spans, language, message_mode)
+3 -1
View File
@@ -72,7 +72,9 @@ proc/get_top_level_mob(var/mob/S)
if(M.stat == DEAD && M.client && (M.client?.prefs?.chat_toggles & CHAT_GHOSTSIGHT) && !(M in viewers(T, null)))
M.show_message(message)
playsound(usr.loc, 'GainStation13/sound/voice/voices/speak_1.ogg', 90, 10)
if(ishuman(usr))
var/mob/living/carbon/human/H = usr
playsound(usr.loc, "GainStation13/sound/voice/voices/[H.voice].ogg", 90, 10)
if(emote_type == EMOTE_AUDIBLE)
user.audible_message(message=message,hearing_distance=1)