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
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+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)